IP工作在网络层
IP头分为两部分,固定部分和可变部分,固定部分就是一定要带这些数据,正常存储应该是连续的,并不是像图中这样会换行,图中只是为了方便观察。
首先是一个版本号,也就是看是ipv4还是ipv6,然后是首部长度,就是我们ip头的首部长度,是为了能将首部和数据部分拆开,区分服务暂时先不用管,然后是总长度,总长度就是我们ip数据报的总长度,之后的标识、标志和片偏移是一起使用的,因为我们先发出去的包不一定是先到达的,那么在处理的时候就要分清那些包是先发出的那些包是后发出的,所以就用到了标识,他就是包的编号,使接收端能按正确顺序来处理数据,因为我们知道一个包最大的数据是固定的,那么如果数据量超过了这个大小,那就需要分包,为了能让接收端在收到多个包时能再组合成一个包,靠的就是一个包。标志就是用来看是否分包了和当前包是不是分片了之后的结尾的那个片。生存时间是一个倒计时,当计时为0时,这个包的生存时间就到了,当某一个路由器在转发时发现你的生存时间为0时就会将这个包丢弃,原因是有的包会在传输过程中迷路,那么这种数据包不能让它在网络中一直存在,这就造成了丢包,他会占用我们的带宽,生存时间不是单纯的时间,而是能经过路由器的个数。协议是我们底层使用的协议,首部校验和是一种加密算法,他用某种算法将首部的所有数据算出一个数放在这个校验和里,然后接收端也用相同算法对数据进行运算,如果算出的数与发过来的相等,那就证明发过来的首部是没有经过改动的,如果有任何修改的地方那么这个首部校验和的结果是不一样的。后面的源ip和目的ip之前都讲过了。可变部分就是为了我们想要在ip层网络层加一些东西,因为收到数据时是先到达网络层,然后到达传输层应用层的,所以网络层一定会先处理数据,比如用华为的手机连接华为的路由器,是不需要密码的,那么就是在网络层处理的。可变部分的存储格式(TVL)Type Value Length可以让数据正确的还原。