IP协议的基本原理、报⽂结构和抓包分析
IP协议的基本原理、报⽂结构和抓包分析
基本原理:
IP 协议提供了⼀种分层的、与硬件⽆关的寻址系统,它可以在复杂的路由式⽹络中传递数据所需的服务。
IP 协议可以将多个交换⽹络连接起来,在源地址和⽬的地址之间传送数据包。同时,它还提供数据重新组装功能,以适应不同⽹络对数据包⼤⼩的要求。
在⼀个路由式⽹络中,源地址主机向⽬标地址主机发送数据时,IP协议是如何将数据成功发送到⽬标主机上的呢,由于⽹络分同⽹段和不同⽹段两种情况,⼯作⽅式如下:
同⽹段:
如果源地址主机和⽬标地址主机在同⼀⽹段,⽬标 IP 地址被 ARP 协议解析为 MAC 地址,然后根据 MAC 地址,源主机直接把数据包发给⽬标主机。
不同⽹段:
⽹关(⼀般为路由器)的 IP 地址被 ARP 协议解析为 MAC 地址。根据该 MAC 地址,源主机将数据包发送到⽹关。
⽹关根据数据包中的⽹段 ID 寻⽬标⽹络。如果到,将数据包发送到⽬标⽹段;如果没到,重复步骤(1)将数据包发送到上⼀级⽹关。
数据包经过⽹关被发送到正确的⽹段中。重复同⽹段,⽬标IP地址被ARP协议解析为 MAC 地址。根据该 MAC 地址,数据包被发送给⽬标地址的主机。
报⽂结构:
⽤ IP 协议传输数据的包被称为 IP 数据包,每个数据包都包含 IP 协议规定的内容。IP 协议规定的这些内容被称为 IP 数据报⽂(IP Datagram)或者 IP 数据报。
IP 数据报⽂由⾸部(称为报头)和数据两部分组成。⾸部的前⼀部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。在⾸部的固定部分的后⾯是⼀些可选字段,其长度是可变的。
字段含义
版本version4位,通信双⽅ip协议版本必须⼀样,⼀般是4版本
⾸部长度4位,最⼤的⼗进制数为15,单位为32位字长即4字节,⾸部最⼤
长度位60字节,若⾸部长度不是4字节整数倍需要⽤最后的填充字
段
区分服务tos8位,只有区分服务类型时才起作⽤。
总长度totlen16位,⾸部和数据之和,单位为字节,2的16次⽅=65535字节,
即最多65535个字节
标
识identification 16位,标识数据报,是ip协议在存储器维持的计数器产⽣的数字,产⽣⼀个数据报,计数器就加⼀,并将此值赋给标识字段,当数据报长度超过MTU必须分⽚时标识字段的值就复制到所有分⽚的标识字段中,具有相同标识字段的分⽚报⽂⼜会被重组成原来的数据报。
标志flag3位,第⼀位未使⽤,为0;第⼆位df表⽰是否分⽚,0表⽰允许分⽚,1表⽰不允许分⽚。第三位mf表⽰是否还有分⽚在转移,0时
表⽰没有更多分⽚需要发送或者数据报没有分⽚。
⽚偏
移offsetfrag 13位,报⽂被分⽚后,标记分⽚在原报⽂中的相对位置,⽚偏移以8个字节为单位,除了最后⼀个其他分⽚的偏移值都是8字节的整数倍。
⽣存时间ttl8位,数据报在⽹络中的寿命,防⽌⽆法交付的数据⽆限制在⽹络中传输,从⽽消耗⽹络资源。转发前ttl减1,若减少到0则丢弃,不
中传输,从⽽消耗⽹络资源。转发前ttl减1,若减少到0则丢弃,不
再转发。
指明数据报在⽹络中最多可经过255个,若把ttl初始值设为1,则
表⽰只能在本局域⽹内传送。
协议8位,所携带数据使⽤的协议类型,让⽹络层知道怎么来处理数据部分。如:tcp 6 udp 17 icmp 1
tcp ip协议设置怎么填⾸部校验和16位,每经过⼀个路由器,⾸部的字段都可能发⽣改变
(如ttl值),所以需要重新校验⾸部的校验和,数据部分不发⽣改
变所以不⽤重新⽣成。
源地址32位
⽬的地址32位
可选长度(包括填充部分)⽤于可选的报头设置,主要⽤于测试,调试和安全。包括:严格源路由(必须经过指定路由),⽹际时间戳,安全限制
可⽤若⼲0填充字段,保证整个报头长度为32位的整数倍。
数据长度不固定
8位1个字节
抓包分析:
1. ping百度
1. Werishark抓包
1. 查看主机发送给14.215.177.38的tcp报⽂的ip结构
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论