IP包头,TCP包头格式回顾

IPV4数据包结构

1-1 版本4位:表示版本号,目前最广泛的是IPv4=B0100,相信IPv6=B0110

1-2 头长4位:数据包头部长度。它表示数据包头部包括多少个32位长整型,也就是多少个4字节的数据。无选项则为5(红色部分)。

1-3 服务类型:包括8个二进制位,每个位的意义如下:

       过程字段:3位,设置了数据包的重要性,取值越大数据越重要,取值范围为:0(正常)~ 7(网络控制)

       延迟字段:1位,取值:0(正常)、1(期特低的延迟)

       流量字段:1位,取值:0(正常)、1(期特高的流量)

       可靠性字段:1位,取值:0(正常)、1(期特高的可靠性)

       成本字段:1位,取值:0(正常)、1(期特最小成本)

       保留字段:1位 ,未使用

1-4 总长度16位:当前IP数据包的总长度,单位是字节。当然最大只能是65535,即63KB。

扫描二维码关注公众号,回复: 10706379 查看本文章

2-1 重组标识16位:发送者发送的包的顺序,依序递增1,如果客户端收到的包乱序了。依据这个排序,例如下图

 

2-2 标志3位:

  第一位:保留字段

  第二位:取值:0(允许数据报分段)、1(数据报不能分段)

  第三位:后面是否有更多分片,取值:0(数据包后面没有包,该包为最后的包)、1(数据包后面有更多的包)

2-3 段偏移量13位:与更多段位组合,帮助接收方组合分段的报文,以字节为单位。

【示例wireshark抓包 标准位+偏移量共计 16位】

3-1 生存时间8位:经常ping命令看到的TTL(Time To Live)就是这个,每经过一个路由器,该值就减一,到零丢弃。

3-2 协议代码8位:表明使用该包裹的上层协议,如TCP=6,ICMP=1,UDP=17等。

【示例TCP】

3-3 IP头检验和16位:是IPv4数据包头部的校验和。

IP首部检验和字段(16位,2字节),只计算IP头部的的所有字段的校验和,它不对首部后面的数据进行计算。 

发送方:计算一份数据报的IP头部检验和,则需要首先把此检验和字段置为0。然后对首部中每个16 bit(2字节)进行二进制反码求和(整个首部看成是由一串16 bit的字组成),然后结果存在此检验和字段中。

接受方:当收到一份IP数据报后,对首部中每个16 bit(2字节)进行二进制反码的求和。由于接收方在计算过程中包含了发送方存在首部中的检验和,因此,如果首部在传输过程中没有发生任何差错,那么接收方计算的结果应该为全1。如果结果不是全1(即检验和错误),那么IP就丢弃收到的数据报。但是不生成差错报文,由上层去发现丢失的数据报并进行重传。

4-1 源始地址:32位=4字节,我们常看到的IP是将每个字节用点(.)分开,如此而已。

 5-1 目的地址:32位,同上。

6-1 可选选项:主要是给一些特殊的情况使用,往往安全路由会当作攻击而过滤掉,普联(TP_LINK)的TL-ER5110路由就能这么做。

7-1.用户数据。

 

TCP数据包结构

 

1-1 源始端口16位:现在知道为啥TCP端口范围是 0-65535了吧

1-2 目的端口:同上。

2-1 数据序号32位:TCP为发送的每个字节都编一个号码,这里存储当前数据包数据第一个字节的序号。

3-1 确认序号32位:为了安全,TCP告诉接受者希望他下次接到数据包的第一个字节的序号也同时代表自己确认接收到了这个序号-1字节的数据了。

4-1 首部长度4位:类似IP--->表明数据距包头有多少个32位(有几个四个字节)。20个字节,则为5

4-2 保留6位:未使用,应置零。

4-3 紧急比特URG:当URG=1时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。

4-4 确认比特ACK:只有当ACK=1时确认号字段才有效。当ACK=0时,确认号无效。参考TCP三次握手

4-5 PSH:表示要求对方在接到数据后立即请求递交给应用程序,而不是缓冲起来直到缓冲区收满为止。一般为1.

4-6 复位比特RST(Reset) :当RST=1时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。参考TCP三次握手

4-7 同步比特SYN:同步比特SYN置为1,就表示这是一个连接请求或连接接受报文。参考TCP三次握手

4-8 终止比特FIN(FINal):用来释放一个连接。当FIN=1时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。

4-9 窗口字段16位:窗口字段用来控制对方发送的数据量,单位为字节。TCP连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限。

5-1.包校验和16位,包括首部和数据这两部分。在计算检验和时,要在TCP报文段的前面加上12字节的伪首部。校验范围包括TCP头、数据报内容和概念性伪头部。

概念性伪头部又包括源IP,目的IP,TCP协议号。

5-2.紧急指针16位,紧急指针指出在本报文段中的紧急数据的最后一个字节的序号:指向数据报中紧急数据最后一个字节的下一个字节。

6-1.可选选项24位,类似IP,是可选选项。

6-2.填充8位,使选项凑足32位。

7-1.用户数据……

======================THE    END==================================

猜你喜欢

转载自www.cnblogs.com/zhangmingda/p/12683149.html