计算机网络关于IP协议的思考

首先我们知道目前的互联网在逻辑上分为五层:物理层,数据链路层,网络层,运输层和应用层.在这五层中,IP协议是属于网络层的范围,那什么要引入IP地址的概念,网络层是用来实现什么功能的呢?

在现实世界中,其实存在着不同的网络,比如电脑使用的以太网等,手机使用的无线网,卫星使用的卫星组网等,不同的网络使用的是不同的数据链路层协议,不同的数据链路层协议的帧格式又是不同的.当然,在同一个网络中通过数据链路层通信是完全没有问题,但是如果一个网络中的主机A想要和另一个网络中的主机B直接通信则就不可行了,原因是主机A发出消息包装成帧后发给主机B,主机B无法解析该消息,因为两个网络的帧格式是不同的.所以为了实现不同网络之间的通信,我们需要在数据链路层之上规定一个所有网络都遵守的协议(IP协议),这样便可以实现不同网络之间的通信.

那IP协议为什么能实现不同网络之间的通信呢?

当主机A解析主机B的IP地址后会有两种情况:

(1)主机B和主机A在同一个网络中,这时主机A将消息打包成数据帧后直接根据主机B的MAC地址将消息发送给A即可,至于如何根据IP地址找到MAC地址,这就需要用到ARP协议(地址解析协议),这个协议会在主机的高速缓存中产生一个IP地址和MAC地址的映射表.

(2)主机B和主机A不在同一个网络中.这时需要一个在网络中十分重要的硬件设备路由器了,路由器是网络层中一个十分重要的硬件设备,其功能是用来连接不同的网络.路由器会有两个及以上的IP接口,这就意味着他有两个及以上的IP地址,但他只有一个MAC地址,其实感觉上IP地址像是一个逻辑地址,而MAC地址像是一个物理地址.当主机A解析主机B的IP地址发现主机B在另一个网络中时,主机A就会将消息打包成数据帧后发送给路由器,路由器收到后会先将数据帧解包成IP包,通过IP包拿到目标IP地址后,路由器再通过路由协议(一种寻找到目标IP地址最优路径的协议)找到下一步要通过的网络,然后将IP包按照该网络的数据链路层协议把IP包打包成数据包,将该数据包发送到下一个地址.

我理解的主要的通信过程就是上文所述的了.或许有人会问,既然实际寻址用的都是MAC地址,那还要IP地址干什么,其实这和网络层中IP协议存在的目的是一样的,是为了屏蔽差异,不同网络的MAC地址编码是不同的,没法制作出一个可以兼容各种网络MAC地址的软硬件设备,只有指定一个大家都遵守的IP地址来解决这个问题.

你可能感兴趣的:(计算机网络)