TCP/IP五层模型之数据包发送流程

【TCP/IP五层模型之数据包发送流程】OSI七层模型是一种标准,TCP/IP五层模型是OSI七层模型的一种实现。本文详细介绍主机间的数据包是如何传输的,对于源主机和目标主机之间的数据交流,主要分为两种情况:同网段和不同网段的数据转发。
对于一层物理层设备,通常就是指物理线的连接,两台主机之间直接通过物理线相连,例如网线、双绞线、无线连接、光纤等,这是实现物理层的基本设备。
二层数据链路层设备通常指的就是交换机,不同主机之间的互联,如果不是一对一地连接,通常都需要使用一台交换机。二层的编址方案是MAC地址,交换机中的主机通信是依据MAC地址通信的。
三层物理层使用的是IP地址,ARP协议是IP地址到MAC地址的映射,通过ARP协议可以很方便地通过IP地址获取到目标主机的MAC地址,你可以通过arp –a查看本机的ARP表。

TCP/IP五层模型之数据包发送流程

文章图片
一、同网段数据包转发过程
TCP/IP五层模型之数据包发送流程

文章图片
如上图,PC1的IP地址是192.168.3.1,MAC地址为0800:0222:2222,PC2的IP地址是192.168.3.2,MAC地址为0800:0222:1111。
首先,PC1应用层的应用程序产生需要发送的数据,向下层传递数据给传输层,传输层将数据发送到网络层,网络层使用IP协议对数据进行封装,并检查目标PC2的地址是否和本机PC1属于同一个网段,若属于同一个网段则进行同网段数据包传输。检查IP地址是否在同一网段的方式是通过比较IP网络段,192.168.3.1和192.168.3.2是C类地址,前24位相同,因此在同一网段。
再将数据向下层传输到二层数据链路层,二层通过ARP协议查看ARP表,ARP是IP和MAC地址映射,即查找是否有PC2的IP192.168.3.2对应MAC地址0800:0222:1111,若找到则将其MAC地址一同封装到数据包中,若没有记录,则通过ARP协议请求MAC地址,最后在物理层直接传输数据包。
二、不同网段的数据包转发过程
TCP/IP五层模型之数据包发送流程

文章图片
若源主机IP地址和目标主机IP地址不在同一个网段,如上图,PC1的IP为192.168.3.1,PC2的IP地址为192.168.4.2,C类地址前24位不同,因此不在同一个网段。
不同网段之间的主机通信,需要使用路由器进行转发,PC1先将数据发送到本网的网关,PC1所属网络的网关的IP地址为192.168.3.2。网关查找路由表,路由表记录了网关对应网络的主机IP地址,在这里找到网关192.168.4.1中有目标主机PC的IP地址192.168.4.2,则通过该网关发送数据到PC2。
在这里要注意,在网络层进行IP地址校验的时候,如果发现目标IP地址和源IP地址不在同一个网段,那么到数据链路层的时候,不是请求目标主机的MAC地址,而是获取本网网关的MAC地址并封装到数据包中,在之后的传输中,每经过一个网端,MAC地址都会变。

    推荐阅读