TCP模块在执行连接、收发、断开等各阶段操作时,都需要委托IP模块将数据封装成包发送给通信对象。
关于网络包的一些基本知识。
首先,包是由头部和数据两部分构成的。头部包含目的地址等控制信息,可以理解为快递包裹的面单;头部后面就是委托方要发送给对方的数据,相当于快递包裹里的货物。
![](https://img.haomeiwen.com/i7749898/63636f874fb08984.jpeg)
首先,发送方的网络设备会负责创建包,创建包的过程就是生成含有正确控制信息的头部,然后再附加上要发送的数据。接下来,包会被发往最近的网络转发设备。当到达最近的转发设备之后,转发设备会根据头部中的信息判断接下来应该发往哪里。
转发过程需要用到一张表,这张表里面记录了每一个地址对应的发送方向,也就是按照头部里记录的目的地址在表里进行查询,并根据查到的信息判断接下来应该发往哪个方向。如果查表的结果是“目标地址为××××的包应该发到××××号线路”,那么转发设备就会把这个包发到××××号线路去。
接下来,包在向目的地移动的过程中,又会到达下一个转发设备,然后又会按照同样的方式被发往下一个转发设备。就这样,经过多个转发设备的接力之后,包最终就会到达接收方的网络设备。
当然,发送方向接收方发送一个包,接收方可能也会向发送方返回一个包,此时的发送方到了接下来的某个时刻就会变成接收方。因此,我们不需要把发送方和接收方明确区分开来,在这里我们把发送方和接收方统称为终端节点。相应地,转发设备被称为转发节点或者中间节点。
本文摘取自周自恒翻译的户根勤编写的《网络是怎样连接的》
网友评论