文章目录
- ip协议基本认识
- ip协议的报头
ip协议基本认识
前面对于TCP的内容已经基本结束了,那么这也就意味着在传输层也已经结束了,那么下一步要进入的是的是网络层,网络层中也有很多种协议,这里主要进行解析的是ip协议
前面的TCP协议层把一大堆数据看起来是传输给了对方,那么实际上真的传输过去了吗?实际上只是把数据交给了网络层,而在网络层中也会对应的进行报头的封装等等内容
在对于网络层的认识前,要先明确一个概念,比如我们说有传递报文可靠的能力是代表确实一定能可靠传递吗?其实这两个概念并不等价,在网络协议栈中,TCP扮演的角色是提供可靠性的策略,比如说有对应的超时重传,快重传,流量控制,滑动窗口,阻塞控制等,但这些其实都是所谓的可靠性策略,对于真正进行传输的其实还是对应的网络层,ip协议,因此我们说ip的本质就是有能从主机a到主机b进行传输报文的能力,本质上来说它是一种能力,但是至于能不能传输过去也不敢保证,只是传输过去的概率比较大
那在当代网络的传输来说,ip协议能够保证以较大概率能够传递过去,而TCP又能提供可靠的策略,二者相结合,就能真正做到基本100%可靠的进行网络传输了
在进行传输的时候,数据包就会在路由器中进行传输,这是宏观上建立起的一个基本的认识
我们平时使用的设备,不管是任何设备,它一定是处于一个子网当中的,那这个子网和子网之间就会借助路由器来进行链接,在子网当中可能会存在很多个设备,例如有主机a和主机b,那主机a要发送数据给主机b,就意味着它一定是会借助路由器进行传输转发,说白了就是会跨越很多的子网,所以对于网络的理解,要首先理解到它是由一个一个的子网构成的,那么宏观上来讲,ip的报文就会在这个网络当中进行不断的转发,最后从源ip地址传递到了目标ip地址,凭借的就是这些很多的路由器进行转发的工作
ip协议的报头
对于ip协议的理解,必然要涉及到两个问题,这里先进行第一个问题:
1. 报头和有效载荷如何进行分离?
结论是固定长度和自描述字段,这个和TCP协议其实是一样的,这里就不过多进行说明了
2. 报文如何进行交付?
结论是使用8位协议,具体的使用如下所示
下面对于ip协议的协议字段进行理解
8位生存时间
这个字段是什么意思呢?下面我给出这样的一个场景:当一个ip的报文被发送出去之后,那么这个报文就会在网络当中进行转发,假如现在这个目标主机已经离线了,或者有其他原因,反正是处于不可应答的状态了,那么就会导致这个报文会被一直转发,在网络中自然是不会允许这样的情况出现的,所以就会提前设置好对应的8位生存时间这样的概念,使得最终这个报文在路由器的跳数是固定的,如果接受到一个跳数为0的报文,说明这个报文已经没用了,此时就把这个报文直接丢弃掉就可以,所以这个其实就是一个计数器
8位协议
那这个字段是做什么的呢?一句话来说,8位协议就是指的是要把报文交付给上层的哪一个协议,这个字段的作用就是用来表示要交付的协议,比如下面要发送给传输层,那么这个里面就要填写的是TCP协议,表示下一步要交付给传输层
32位源ip地址和32位目的ip地址
在进行TCP协议的学习中有源端口和目的端口,那么在