因特网的传输层有两个协议:TCP和UDP,分别提供面向连接的传输服务和无连接的传输服务。TCP的协议数据单元叫做TCP段,段头结构如图5-42所示,其中的字段解释如下。
 |
图5-42 TCP段头结构 |
• 源端口(16 位):说明源服务访问点。 • 目标端口(16位):表示目标服务访问点。 • 发送顺序号(32位):本段中第一个数据字节的顺序号。 • 接收顺序号(32):应答顺序号,指明接收方期望接收的下一个数据字节的顺序号。 • 偏置值(4位):传输头中的32位字的个数。因为传输头有任选部分,长度不固定,所以需要偏置值。 • 保留(6位):以后使用,所有实现必须把这个手段置全0。 • 标志字段(6位):表示各种控制信息,其中 URG:紧急指针字段有效。 ACK:应答顺序号字段有效。 PSH:推进功能有效。 RST:连接复位为初始状态,通常用于连接故障后的恢复。 SYN:对顺序号同步,用于连接的建立。 FIN:数据发送完,连接可以释放。 • 窗口(l6位):为流控分配的信贷数。 • 检查和(16位):段中所有16位字按模216-1相加的和,然后取1的补码。 • 紧急指针(16位):从发送顺序号开始的偏置值,指向字节流中的一个位置,此位置之前的数据是紧急数据。 • 任选部分(长度可变):目前只有一个任选项,即建立连接时指定的最大段长。 • 补丁:补齐32位字边界。 同步标志SYN用于建立连接阶段。TCP用三次握手过程建立连接,首先是发起方发送一个SYN标志置位的段,其中的发送顺序号为某个值X,称为初始顺序号ISN(Initial Sequence Number),接收方以SYN和ACK标志置位的段响应,其中的应答顺序号应为X+1(表示期望从第X+1个字节处开始接收数据),发送顺序号为某个值Y(接收端指定的ISN)。这个段到达发起端后,发起端以ACK标志置位,应答顺序号为Y+1的段回答,连接就正式建立了,连接建立的同时发起方还可以发送数据,如图5-43所示。TCP的连接状态,如图5-44所示。
 |
图5-43 TCP建立连接的过 |

|
图5-44 TCP的连接状态 |
TCP采用的流控方式与数据链路层的流控方式不同,属于可变大小的滑动窗口协议,也叫信贷(Credit)滑窗协议,它更适合于两个相距遥远的主机在无连接的网络上实现流量控制。 用户数据报协议UDP提供无连接的传输服务,虽然这种服务是不可靠的、不保证顺序的提交,但这并没有减少它的使用价值。相反,由于协议开销少而在很多场合相当实用,特别是网络管理方面,大都使用UDP协议。 UDP运行在IP协议层之上,由于它不提供连接,所以只是在IP协议之上加上端口寻址能力,UDP的报头如图5-45所示。
 |
图5-45 UDP的报头 |
【责任编辑: 雪花 TEL:(010)68476606-8007】
|