6-14 数据封装与转发的全过程分析(极为重要)
数据封装转发过程
通过案例理解,涉及以下4台设备,分别是PC、路由器R1、R2、服务器WebServer

其IP地址的编址情况如下图所示

PC通过浏览器访问服务器时,在浏览器中输入服务器的IP地址进行访问。
PC的封装
应用层:PC的应用层产生一个应用层数据DATA,为HTTP载荷

传输层:PC的传输层为应用层数据DATA封装传输层头部

网络层:PC的网络层封装IP层头部,TCP的IP层协议号字段值为6,UDP的IP层协议号字段为17

数据链路层:PC的数据链路层封装数据链路层头部,源MAC为本机MAC,目的MAC为网关的MAC地址,因为数据链路层负责一段链路的传输,保证从链路的一个端传递到另一个端,比如从PC的网口传递到R1的FE0/0口

物理层:比特流传输

到达R1处理
数据链路层:R1发现数据包的目的MAC地址为自己的FE0/0口地址,就去掉数据链路层头部,得到网络层数据

网络层解封装:R1得到IP层数据包,得到目的IP地址,查询自己的路由表,得知应从自己的FE1/0口进行转发

网络层重新封装:于是R1对IP数据报进行重新封装,源MAC地址为自身R1的FE1/0口的地址,目的MAC地址为R2的FE0/0口的MAC地址,IP地址不会变化(笔者注:可见在同一个网络内部,通信是根据MAC地址进行寻址的,数据包的源目IP地址不随经过网络而变化)

封装后再发送至R2

到达R2处理
数据链路层解封装:发现是发给自己的数据帧

网络层解封装:发现目的IP地址,查询自己的路由表,得知应当从自己的FE1/0口进行转发

数据链路层重新封装:源MAC地址为R2自己FE1/0的MAC地址,目的MAC地址为服务器MAC地址

重新封装之后再发送给服务器

到达服务器处理
数据链路层解封装:发现是发给自己的数据帧

网络层解封装:发现是发给自己的数据包,去掉IP头部识别协议号交给传输层TCP

传输层解封装:发现目的端口号80,交给Web服务处理

应用层处理:Web服务处理应用层数据DATA
