在很多地方TCP协议通过链接,收发数据,断开链接来完成网络数据的传输,这个过程实际需要IP将数据封装成包来发送给通信对象,本稳将会对IP收发包的具体过程进行展示。
一、什么是包?
如下所示为典型的TCP/IP协议所封装成的包,可以看到包由头部信息和数据块信息组成,其中头部信息为包含目的地址之类的控制信息,他能保证数据能够发送到目的地址,当然不止于此。
二、包是怎样收发数据的?
在说明包的收发过程的时候首先需要了解在通信过程中两种重要的收发设备:路由器、集线器。
在图中可以看到,路由器与集线器可以通过互联的方式来形成一个个的子网。其中两者的作用分别如下所示,
路由器:判断下一个路由器的位置
集线器:将子网中的网络包发送给下一个路由
这两者可以分别对应着IP头与MAC头的作用,
IP协议根据目标地址判断下一个IP转发设备的地址;
子网中的以太网协议转发给下一个转发设备
由此可以判断,
IP头部用于IP协议(路由器)
MAC头部用于以太网协议(集线器)
因此发送过程可以这样来说明首先,发送方将包的目的地,也就是要访问的服务器的 IP 地址写入 IP 头部中。这样一来,我们就知道这个包应该发往哪里,IP 协议就可以根据这一地址查找包的传输方向,从而找到下一个路由器的位置,接下来,IP 协议会委托以太网协议将包传输过去。这时,IP 协议会查找下一个路由器的以太网地址(MAC 地址),并将这个地址写入 MAC 头部中。这样一来,以太网协议就知道要将这个包发到哪一个路由器上了。
网络包在传输过程中会经过集线器,集线器是根据以太网协议工作的设备。为了判断包接下来应该向什么地方传输,集线器里有一张表(用于以太网协议的表,可根据以太网头部中记录的目的地信息查出相应的传输方向。这张图中只有一个集线器,当存在多个集线器时,网络包会按顺序逐一通过这些集线器进行传输。接下来,包会到达下一个路由器
三、 IP头部信息与MAC头部信息