IP pack 详解

IP数据包结构详解

如果你想对网络安全了解的更全面,而不是限制于Web层的冰山一角,那么TCP/IP是你必须要精通的!就从IP数据包结构说起吧,先了解最基本的IP数据包张什么样子,才能知道其工作原理与漏洞。

IP报文是在网络层传输的数据单元,也叫IP数据报。IP报文格式如下图:

  • 版本:

IP协议的版本,目前的IPV4,以后会是IPV6

  • 首部长度:

IP报头的长度。固定部分的长度(20字节)和可变部分的长度之和。共占4位。最大为1111,即10进制15,代表IP报头的最大长度可以为15个32bits(4字节),也就是最长可为15*4=60字节,除去固定部分的长度20字节,可变部分的长度最大为40字节。也就是IP数据包最小为20字节,最大为60字节

  • 服务类型:

这个一般没什么用,因为你就算选了也没效果,只有在QOS或其他特殊情况下才会使用到。

  • 总长度:

用来记录IP报文的总长度。报头的长度和数据部分的长度之和。

  • 标识:

唯一的标识主机发送的每一分数据报。通常每发送一个报文,它的值加一。当IP报文长度超过传输网络的MTU(最大传输单元)时必须分片,这个标识字段的值被复制到所有数据分片的标识字段中,使得这些分片在达到最终目的地时可以依照标识字段的内容重新组成原先的数据。(说白了就算用来排序的)

  • 标志:

共3位。R、DF、MF三位。目前只有后两位有效,DF位:为1表示不分片,为0表示分片。MF:为1表示“还有更多的片”,为0表示这是最后一片。

  • 片位移:

本分片在原先数据报文中相对首位的偏移位。(也就是用来IP分片最后排序组合的)

  • 生存时间:

IP报文所允许通过的路由器的最大数量。每经过一个路由器,TTL减1,当为0时,路由器将该数据报丢弃。TTL 字段是由发送端初始设置一个 8 bit字段.推荐的初始值由分配数字 RFC 指定,当前值为 64。发送 ICMP 回显应答时经常把 TTL 设为最大值 255。(注意:Linux和Windows不一样)

  • 协议:

指出IP报文携带的数据使用的是那种协议,以便目的主机的IP层能知道要将数据报上交到哪个进程(不同的协议有专门不同的进程处理)。和端口号类似,此处采用协议号,TCP的协议号为6,UDP的协议号为17。ICMP的协议号为1,IGMP的协议号为2.

  • 首部校验和:

计算IP头部的校验和,检查IP报头的完整性。

  • 源IP地址:

这个如果不知道的话,请出门左转,去打游戏吧。

  • 目的IP地址:

这个如果不知道的话,请出门右转,影视VIP-传送门

以上这个东西很简单吧,只有了解数据包结构,才能了解其工作原理。

再此想问大家三个问题:

广域网存在各种安全隐患

1、如何避免网上传输的数据有被窃听的风险?
传送门
2、如何避免网上传输的数据有被篡改的危险?
传送门
3、如何避免通信双方有被冒充的风险?
传送门


  转载请注明: Qingy IP pack 详解

  目录