电脑知识 | IPv4数据报分片
一、🌎️什么是IPv4
有一个讲的非常好的视频。
【硬核科普】IP地址是什么东西?IPV6和IPV4有什么区别?公网IP和私有IP又是什么?_哔哩哔哩_bilibili
二、❓️什么是IP数据报
电脑传递消息和我们平时寄快递是一样的,主要分成两个部分:
第一部分:快递上的地址+收信人+电话+寄信人等。(如下图所示)
第二部分:盒子里的东西
同理,我们从一个电脑给另一个电脑发送信息,也需要两个部分:
第一部分:首部(电脑的地址等信息)
第二部分:数据
和寄快递一样,我们需要统一地址等信息的写法,这样每个电脑才能方便收到
三、✉️首部有什么
1.🔚首部的最大长度
和快递的地址栏一样,不可能让你一直写一直写的,有最大长度的限制
60字节(byte) = 480bit
同样也有最小长度,最少得写多少,才能被正确的寄出去
20字节(byte) = 160bit
2.📦️首部要装的东西
这里有讲的很好的半个视频:26 IP数据报的格式、IP数据报首部的固定部分中的各字段_哔哩哔哩_bilibili
版本(0.5字节):这里填版本,现在分两种地址版本一个是IPv4一个是IPv6
首部长度(0.5字节):这里填长度,现在是20字节~60字节之间的一个长度,但是每次增加必须是4个4个增加,不是一个字节一个字节增加的。例如:20字节如果不够用,增加到24字节
服务类型(1字节):当年设计的时候有用,现在不怎么用的,所以具体含义略
总长度(2字节):这里填首部+数据一共的长度,这段最大可以表示65535字节,但这太大了,实际上不允许发送这么大
标识(2字节):这里填发数据的过程中,要记录一下,发到哪了,下一个发什么,这种临时存一下的数据
标志位+片偏移(2字节):标志位,这里填在数据发送过程中,后面还有没有数据片,当前这个数据片能不能分成更小的数据片等。片偏移,这里填如果前面被拆分了,那现在发送是什么情况了
生存时间(1字节):填写一共允许通过几个路由器
协议(1字节):填写现在用的哪个协议,例如UDP协议(填17),还是TCP协议(填6)
首部校验和(2字节):填写的数据可以大概判断一下发来的首部有没有错,具体如何判断,略
源IP地址(4字节):略
目的IP地址(4字节):略
以上是必须有的内容:
0.5+0.5+1+2+2+2+1+1+2+4+4=20(字节)
选项字段:类似备注,可有可没有
填充:每次发数据长度是4个字节,4个字节增加的,如果前面没填够四个字节,就补充一下
数据:略
四、⚠️特殊的ip地址
1.当没有ip地址时,用0.0.0.0代替
2.当自己想给自己发信息时,用127.0.0.1~127.255.255.254之间的任何一个Ip都可以
以下假设分了一个公网ip是66.66.XXX,XXX
3.路由器专用,用来纪录数据的ip是66.66.0.0
4.你想给某个公网ip下连的所有ip发信息,那ip写成66.66.255.255,或者你想给88.88的这个公网下所有ip发信息,ip写成88.88.255.255
5.你想给公网ip运行的主机或路由器发信息,ip写成0.0.66.66
6.你想给自己在的这个网段所有的ip发信息,那ip写成255.255.255.255