电子商务网站开发前言,我要自学网app,设计师可以接单的网站,哈尔滨哪里做网站「作者主页」#xff1a;士别三日wyx 「作者简介」#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」#xff1a;对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 IP协议 1、IP地址划分2、IP协议报文格式3、IP协议数… 「作者主页」士别三日wyx 「作者简介」CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 IP协议 1、IP地址划分2、IP协议报文格式3、IP协议数据分片4、IP协议抓包分析 IPInternet Protocol协议也叫
「网际互联协议」负责
「不同网络」之间的
「通信」为主机提供一种无连接、不可靠的数据包传输服务。 1、IP地址划分
IP协议规定网络上的所有设备都必须有一个「唯一」的IP地址同一设备可以有多个不同的IP
cmd 执行 ipconfig 可以查看本机的IP地址 IP地址由「网络地址」和「主机地址」两部分组成。
「网络地址」用来识别设备所在的「网络」位于IP地址的前段同一网络上的所有设备都使用相同的网络地址。比如 192.168.31.121前段的 192.168 就是网络地址。IP在路由的时候就是根据网络地址决定数据发给哪个网络。「主机地址」用来识别网络上的「设备」位于IP地址的后段。比如 192.168.31.121后段的 31.121 就是主机地址。IP路由到指定网络以后就根据主机地址决定数据发给哪个设备。
为了适应「不同大小」的网络规模IP地址被划分为A、B、C、D、E五类。 A类地址第一段是网络地址剩下三段是主机地址 B类地址前两段是网络地址剩下两段是主机地址 C类地址前三段是网络地址最后一段是主机地址
类别IP范围子网掩码描述A类1~1261.0.0.1 ~ 127.255.255.254255.0.0.0共有126个网络每个网络有1600万台主机适合大规模的网络。B类128~191128.0.0.1 ~ 191.255.255.254255.255.0.0共有16384个网络每个网络有6万台主机适合中等规模的网络。C类192~223192.0.0.1 ~ 233.255.255.254255.255.255.0共有209万个网络每个网络有254台主机适合小型网络。D类224~239224.0.0.0 ~ 239.255.255.255组播地址一次请求发给一组特定的主机 常用于视频会议等场景。E类240~255240.0.0.0 ~ 255.255.255.254保留地址
其中A、B、C三类地址比较常用分别适用于大、中、小型网络公司可以根据自己的规模申请合适的网络地址。比如我是个大公司我就可以申请 126.0.0.0 这个网络地址我公司的员工可以使用它的主机地址。
IP地址是有限的总有用完的一天为了节约IP资源从A、B、C类地址中抽出一部分作为「私有地址」。私有地址不需要注册也不不能跟互联网直接通信。比如我们公司的网络可以用192.168.100.1这个私有IP其他公司的网络也可以用同样的IP。
私有地址如下
A类 10.0.0.0–10.255.255.2551个B类 172.16.0.0–172.31.255.25516个C类 192.168.0.0–192.168.255.255255个
A、B、C类地址范围中私有IP外的地址都是「公有地址」特殊地址除外。
为了满足不同的应用场景产生了很多不同作用的「特殊地址」
类型地址格式描述全0地址0.0.0.0路由表的默认路由表示整个网络即网络内的所有主机而非某一个主机不可用。网络号全00.x.x.x本网内某个特定主机主机号全0x.0.0.0网络地址表示整个网络全1地址255.255.255.255子网的广播地址路由器不转发主机号全1x.255.255.255广播地址对当前网络所有主机进行广播环回地址127.0.0.1 ~ 127.255.255.254代表本机IP可用于测试网络连通性 2、IP协议报文格式
IP协议的报文分为「首部」和「数据」两个部分首部分由固定部分20字节和可变部分组成。 结合数据包解释下每个字段的含义 Version版本【4位】目标主机按照此版本解释数据如果目标主机使用的是其他版本则丢弃数据报。Header Length首部长度【4位】数据报协议头长度最小值为5最大值为15。Differentiated Services Field服务【8位】用于分配优先级、延迟、吞吐量以及可靠性前3位是优先级后面4位成为服务类型最后1位没有定义。Total Length总长度【16位】IP数据报的字节长度协议头部和数据其最大值为65535字节。Identification标识【16位】一个整数数据报分段时用于识别当前数据报。Flags标记【3位】由3位字段构成最低位MF控制分段存在下一个分段置为1否则置0代表该分段是最后一个分段中间位DF指出数据报是否可进行分段如果为1则机器不能将该数据报进行分段第三位即最高位保留不使用值为0。Fragment offset分段偏移【13位】指出数据在源数据报中的相对位置用于重组源数据。Time to live生存时间【8位】一种计数器在丢弃数据报的每个点值依次减1直至减少为0。这样确保数据报拥有有限的环路过程即TTL限制了数据报的寿命。Protocol协议【8位】指明上层接收数据报的协议。Header checksum头部校验和【16位】该字段帮助确保IP协议头的完整性。由于某些协议头字段的改变这就需要对每个点重新计算和检验。计算过程是先将校验和字段置为0然后将整个头部每16位划分为一部分将个部分相加再将计算结果取反码插入到校验和字段中。Source源地址【32位】源主机IP地址该字段在IPv4数据报从源主机到目的主机传输期间必须保持不变。Destination目的地址【32位】目标主机IP地址该字段在IPv4数据报从源主机到目的主机传输期间同样必须保持不变。
3、IP协议数据分片
IP协议接收传输层的数据包添加IP首部后发送给数据链路层由链路层「封装成帧」进行传输。 由于帧默认MTU最多只能封装1500字节的数据当「超过最大限制」时IP协议就会将报文的数据部分「分割」成若干个报文也就是IP分片。
分片的时候用标记位Flags和偏移量Fragment offset来记录报文的顺序。 等目标主机接收到所有的IP分片以后再按照顺序「重组」起来。
4、IP协议抓包分析
1Wireshark开启抓包后cmd 执行 ping 54.222.162.186 -n 1 -l 3200向百度发送一个3200字节的数据包 2找到IPv4协议的数据包前三个是「请求包」后三个「响应包」是 数据帧的最大传输限制MTU是1500字节我们 ping 的数据包是 3200 字节会被IP协议分割成三个数据包1500 1500 200刚好对应前面三个请求包
三个请求包最后以一个ICMP协议数据包结尾用来传输「控制信息」。响应包的作用也是如此。
3先看第一个数据包IPv4重点看我圈中的字段 Flags字段第二个值是 More Fragments表示这个数据报后边有多余的数据分片 Fragment Offset字段的值是0表示这个数据分片从第0个字节开始保存数据。
4再看第二个数据包IPv4重点看我圈中的字段 Flags字段第二个值仍是More Fragments表示这个数据报后边也有多余的数据分片 Fragment Offset字段的值是1480表示这个数据分片从第1480个字节开始保存数据。 从这里也可以反推出第一个字段保存了 0~1480个字节。之所以只保存了1480个字段是因为首部占了20个字节首部数据刚好够1500个字节达到数据帧的上限。
5再看第三个数据包ICMP重点看我圈中的字段 Flags字段第二个值为「空」表示这个数据报没有多余的数据分片 Fragment Offset字段的值是2960表示这个数据分片从第2960个字节开始保存数据。 从这里可以反推出第二个字段保存了第 1480 ~ 2960个字节。
最下面的 IPv4 Fragments 字段记录了数据报的分片信息第一、二个数据包保存了1480个字节第三个数据包保存了248个字节。
接收方可以根据这些分片信息重组被分割的数据。