赞
踩
互联网络与单个网络有很大的不同,因为互联网络的不同部分可能有截然不同的拓扑结构、带宽、延迟、数据包大小和其他参数。TCP的设计目标是能够动态地适应互联网络的这些特性,而且具备面对各种故障时的健壮性。
TCP为了保证报文传输的可靠,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。
TCP是一种面向广域网的通信协议,目的是在跨越多个网络通信时,为两个通信端点之间提供一条具有下列特点的通信方式:
(1)基于流的方式;
(2)面向连接;
(3)可靠通信方式;
(4)在网络状况不佳的时候尽量降低系统由于重传带来的带宽开销;
(5)通信连接维护是面向通信的两个端点的,而不考虑中间网段和节点。
为满足TCP协议的这些特点,TCP协议做了如下的规定:
① 数据分片:在发送端对用户数据进行分片,在接收端进行重组,由TCP确定分片的大小并控制分片和重组;
② 到达确认:接收端接收到分片数据时,根据分片数据序号向发送端发送一个确认;
③ 超时重发:发送方在发送分片时启动超时定时器,如果在定时器超时之后没有收到相应的确认,重发分片;
④ 滑动窗口:TCP连接每一方的接收缓冲空间大小都固定,接收端只允许另一端发送接收端缓冲区所能接纳的数据,TCP在滑动窗口的基础上提供流量控制,防止较快主机致使较慢主机的缓冲区溢出;
⑤ 失序处理:作为IP数据报来传输的TCP分片到达时可能会失序,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层;
⑥ 重复处理:作为IP数据报来传输的TCP分片会发生重复,TCP的接收端必须丢弃重复的数据;
⑦ 数据校验:TCP将保持它首部和数据的检验和,这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到分片的检验和有差错,TCP将丢弃这个分片,并不确认收到此报文段导致对端超时并重发。
图注:TCP协议数据格式
5 x 4 = 20 byte
,这个长度是除去可选项的长度),从上图中看出,其规定头部长为 4 bit,所以最大值为 15, 15 x 4 = 60 byte
可以算出可选项长度大为40个字节(60 byte - 20 byte = 40 byte
)。标志位简写 | 全写 | 含义 |
NS | Nonce | 有效排除潜在的ECN滥用 |
CWR | Congestion Window Reduced | 拥塞窗口减少标志 |
ECE | ECN-Echo | ECN标志 |
URG | Urgent | 紧急指针有效性标志 |
ACK | Acknowledgment | 确认序号有效性标志,一旦一个连接建立起来,该标志总被置为1 |
PSH | Push | Push标志(接收方应尽快将报文段提交至应用层) |
RST | Reset | 重置连接标志 |
SYN | Synchronization | 同步序号标志(建立连接时候使用) |
FIN | Fin | 传输数据结束标志(断开连接时使用) |
图注:TCP三次握手建立连接过程
图注:TCP四次挥手断开连接过程
当客户端没有数据再需要发送给服务端时,就需要释放客户端的连接,这整个过程为:
☛ 以上部分图片及内容显示异常,详细图文内容!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。