6-14 数据封装与转发的全过程分析(极为重要)

数据封装转发过程

通过案例理解,涉及以下4台设备,分别是PC、路由器R1、R2、服务器WebServer

image-20231002165356329.png

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

image-20231002165402210

PC通过浏览器访问服务器时,在浏览器中输入服务器的IP地址进行访问。

PC的封装

应用层:PC的应用层产生一个应用层数据DATA,为HTTP载荷

image-20231002165709530

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

image-20231002165741610

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

image-20231002165906515

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

image-20231002170000867

物理层:比特流传输

image-20231002170330764

到达R1处理

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

image-20231002170615926

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

image-20231002170625693

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

image-20231002171043987

封装后再发送至R2

image-20231002171106703

到达R2处理

数据链路层解封装:发现是发给自己的数据帧

image-20231002171136874

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

image-20231002171231241

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

image-20231002171405116

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

image-20231002171440815

到达服务器处理

数据链路层解封装:发现是发给自己的数据帧

image-20231002171500606

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

image-20231002171530063

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

image-20231002171803840

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

image-20231002171932306

站内搜索

没有找到内容!