在讲网络传输的基本流程前,我需要先引入几个知识。
- 报头(数据首部),应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),这种行为称为封装(Encapsulation) 。首部信息中包含了一些类似于首部有多长, 载荷(payload)有多长,上层协议是什么等信息。打个比方,应用层数据就是皇上下的命令,报头就是各级政府向下传递命令是盖的公章。
- 数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,这个过程叫解包。
- 根据首部中的 “上层协议字段” 将数据交给对应的上层协议处理,这个过程叫分用。
网络传输流程图:
数据在网络中传输流程:
不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame) 。
每层对应报头后的数据被称为有效载荷,而每一层实现封装的过程就是在有效载荷前加上本层报头。
上图数据在网络网络中传输是一个简化的过程,现实中,在以太网传输时,必须通过路由器进行路径选择,直到到达目的主机。
示意过程如下图所示: