TCP/IP 报文格式(IP数据包、TCP报头、UDP报头) |
您所在的位置:网站首页 › 无协议tcpip › TCP/IP 报文格式(IP数据包、TCP报头、UDP报头) |
TCP/IP 报文格式(IP数据包、TCP报头、UDP报头)
一、IP包格式 IP数据包,是一种可以变长的分组,由首部与数据负载组成。首部长度为20-60字节(Byte),后40字节是可选的,但长度不固定,前20字节格式为固定。数据负载部分的长度一般可变。 二、TCP报文
TCP报文中数据部分是可选的,即TCP报文可以不包含数据(同理IP包也可以不包含数据)。不含数据的TCP报文通常是一些确认和控制信息类的报文,如TCP建立连接时的三次握手和TCP终止时的四次挥手等。 1、源端口号(Source Port) 16位的源端口字段包含初始化通信的端口号。源端口和IP地址的作用是标识报文的返回地址。 2、目的端口号(Destination Port) 16位的目的端口字段定义传输的目的。这个端口指明接收方计算机上的应用程序接口。 3、序列号(Sequence Number) 该字段用来标识TCP源端设备向目的端设备发送的字节流,它表示在这个报文段中的第几个数据字节。序列号是一个32位的数。 4、确认号(Acknowledge Number) TCP使用32位的确认号字段标识期望收到的下一个段的第一个字节,并声明此前的所有数据已经正确无误地收到,因此,确认号应该是上次已成功收到的数据字节序列号加1。收到确认号的源计算机会知道特定的段已经被收到。确认号的字段只在ACK标志被设置时才有效。 5、首部长度 长度为4位,用于表示TCP报文首部的长度。用4位(bit)表示,十进制值就是[0,15],一个TCP报文前20个字节是必有的,后40个字节根据情况可能有可能没有。如果TCP报文首部是20个字节,则该位应是20/4=5。 6、保留位(Reserved) 长度为6位,必须是0,它是为将来定义新用途保留的。 7、标志(Code Bits) 长度为6位,在TCP报文中不管是握手还是挥手还是传数据等,这6位标志都很重要。6位从左到右依次为: 1. • URG:紧急标志位,说明紧急指针有效; • ACK:确认标志位,多数情况下空,说明确认序号有效; 取1时表示应答字段有效,也即TCP应答号将包含在TCP段中,为0则反之。 • PSH:推标志位,置位时表示接收方应立即请求将报文交给应用层; • RST:复位标志,用于重建一个已经混乱的连接,用来复位产生错误的连接,也会用来拒绝错误和非法的数据包。 • SYN:同步标志,该标志仅在三次握手建立TCP连接时有效 • FIN:结束标志,表示发送端已经发送到数据末尾,数据传送完成,发送FIN标志位的TCP段,连接将被断开。 8、窗口大小(Window Size) 长度为16位,TCP流量控制由连接的每一端通过声明的窗口大小来提供。 9、检验和(Checksum) 长度为16位,该字段覆盖整个TCP报文端,是个强制性的字段,是由发送端计算和存储,到接收端后,由接收端进行验证。 10、紧急指针(Urgent Pointer) 长度为16位,指向数据中优先部分的最后一个字节,通知接收方紧急数据的长度,该字段在URG标志置位时有效。 11、选项(Options) 长度为0-40B(字节),必须以4B为单位变化,必要时可以填充0。通常包含:最长报文大小(MaximumSegment Size,MSS)、窗口扩大选项、时间戳选项、选择性确认(Selective ACKnowlegement,SACK)等。 12、数据 可选报文段数据部分。 三、UDP报头 UDP数据报由首部和数据两部分组成,其中首部只有8B(字节)。 1、源端口号(Source Port) 长度为16位,指明发送数据的进程。 2、目的端口号(Destination Port) 长度为16位,指明目的主机接收数据的进程。 3、长度 长度为16位,该字段值为报头和数据两部分的总字节数。 4、检验和(Checksum) 长度为16位,UDP检验和作用于UDP报头和UDP数据的所有位。由发送端计算和存储,由接收端校验。 5、数据 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |