1.TCP报头格式
TCP协议头至少20个字节
(1)源端口
16位,主要用于标志报文的返回地址,其中包含初始化通信的端口
(2)目的端口
16位,指明了要把数据传送到哪
(3)序列号
32位,它用来标志tcp源设备向目的设备发送的字节流,它表示在这个报文段中的第几个数据字节
(4)确认号
32位,它用来标志期望期望收到的下一个段的第一个字节,并声明此前所有的数据已准确无误地收到。因此,确认号应是上次已成功收到的数据字节序列号加1
(5)数据偏移量
4位,包括tcp头大小,指示何处开始数据
(6)保留
6位,全0,用于定义新的用途所保留
(7)标志
6位,按顺序依次是URG、ACK、PSH、RST、SYN、FIN
URG
紧急标志,用来表示tcp的紧急字段有效,用来保证TCP的连接不被中断,并督促中间设备尽快处理这些数据
ACK
确认标志,取1时表示应答字段有效
PSH
推标志,表示PUSH操作,表示数据包到达接收端后,立即送给应用程序,而不是在缓冲区中排队
RST
复位标志,用于复位相应的TCP连接
SYN
同步标志,表示同步序号,用来建立连接
FIN
结束标志,用于结束一个TCP会话,但对应端口仍处于开放状态,准备接收后续数据
(8)窗口
16位,表示目的主机告诉源主机它每次期望收到的数据段的字节数
(9)检验和
16位,用于错误检查
(10)紧急指针
16位,其指向段内最后一个位置,只有URG标记被设置时才有效
(11)选项
至少1字节的可变长字段,标志哪个选项有效(如果有的话),如果没有选项,这个字节为0,说明选项的结束,字节为1表示无需操作,为2表示下四个字节包括源机器的最大长度。
(12)填充
该字段中加入额外的0,以保证tcp头是32的整数倍。
2.UDP报头格式
3.TCP/UDP的区别
(1)TCP有连接,提供可靠服务,UDP无连接,不保证可靠交付(Tcp通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输)
(2)TCP只能点到点,而UDP则支持一对一,一对多,多对一,多对多
(3)TCP资源需求较大,而UDP需求较少,因此UDP具有较好的实时性,在对传输速度要求较高的领域应用较广