网工成长笔记《七》:数据转发过程

前言

今天是第七节分享了,不知道大家看完前六篇内容感觉怎么样? 应该留言的朋友不多,所以我也不知道大家的一个观感如何,只能尽力的来更新了

好吧!话不多说,开始今天的内容~

数据的封装
数据的解封装

数据转发过程

如图,主机A想访问服务器A由一个数据传输过程:

数据的封装

传输层的封装

主机A会对待发送的应用数据首先执行加密和压缩等相关操作,之后进行传输层封装。然后将数据从应用层下放到传输层,以传输层TCP封装为例:

当主机建立了到达目的地的TCP连接后,开始对应用层数据进行封装,将数据段的源端口号为主机A随机选择的1027号端口,目的端口号为服务器A的TCP知名端口80(源端口:使用动态端口 目的端口:根据所需要的服务来封装 HTTP=80)

网络层的封装

主机A完成传输层封装后,一般会进行网络层数据封装,以IP封装为例:

在使用IP进行封装时,需要明确IP报文的源和目的地址。如果IP报文的大小大于网络的最大传输单元(MTU),则该报文有可能在传输过程中被分片。

生存时间(TTL)字段用来减少网络环路造成的影响。默认TTL值为255。路由器转发一个数据包时,该值会被减1,如果路由器发现该值被减为0,就会丢弃该数据包

本例中,Protocol: 根据上层的协议来决定取值 TCP=6/UDP=17,SIP:自己的IP地址,DIP:目标服务器的IP地址

查找路由表

主机A在发送数据前需要先检查是否能够到达目的端,这个过程是通过查找路由来完成的。

在此示例中,主机A拥有一条到达“任何网络”的路由,它发往其他网络的数据都会通过IP地址为10.1.1.1的接口转发到下一跳,即网关10.1.1.254。

查找ARP缓存

接下来,由于数据包要被封装成数据帧,所以主机A需要获取下一跳的MAC地址,也就是网关的MAC地址。主机首先会查询ARP缓存表。
本例中,主机A的ARP缓存表中存在网关MAC地址的表项。
如果没有查找到网关的MAC地址表项,主机A会通过发送ARP请求来获取网关的MAC地址。

数据链路层的封装

DMAC:根据路由表查找下一跳,封装去往服务器的下一跳的MAC地址
SMAC:自己的MAC地址

此时数据封装完毕,就可以在网络中进行转发

数据的解封装

数据链路层的解封装

当下一跳的设备收到报文后,对数据帧进行解封装
发现目的MAC是自己,则继续处理
发现目的MCA不是自己,则丢弃报文

网络层的解封装

此时继续处理报文,对IP报文进行解封装
发现IP地址是自己,则会送往上层协议处理
发现IP地址不是自己,则会路由表查找去往该网段的下一跳地址。如果存在转发路径,会为数据包添加一个新的二层帧头和帧尾部
DMAC: 自己的MAC
SMAC: 下一跳的MAC

传输层的解封装

服务器检查TCP头部的目的端口,然后将数据段发送给应用层相应的协议进行处理

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值