一名小白网工想记录自己的网络学习之路,先介绍下自己,本科专业是网络工程,毕业了之后进了一家做zf口的企业做实施,主要做zf三套网和分保测评,做了两年后,回了老家,到了银行做网络运维。计划是按照模型架构的层级来逐渐写,今天第一篇就写写解封包吧,希望大佬们多多指点,写这个目的一个是加深自己的认识,另一个就是希望被指出我理解的一些不足。

一、网络模型架构

  这个属于老生常谈了,TCP/IP模型如下图:

  网络层传输单位:包(packet),数据链路层传输单位:帧(frame),物理层单位:比特(bite)


第一篇:网络传输过程中,数据解封包过程_mac地址


二、解封包过程

数据封包的过程:

1、应用层:通过各程序对数据进行整理,形成可处理的数据单元

2、传输层:将端口信息添加至数据单元头部,端口号范围:0-65535

3、网络层:将ip地址(源地址,目的地址)封装至数据单元,形成数据包

4、数据链路层:将mac地址(源mac地址、目的mac地址)封装至数据包,形成帧

数据解封装的过程:

与封装相反,通过查看目的mac地址是否相符,解掉数据链路层的头部,通过查看目的ip地址是否相符,解掉网络层的头部,如此类推。

需要明确的是:

1、封装报文的顺序是上层到下层,解封装则相反

2、在传输过程,源ip地址和目的ip地址不会改变,除了nat的情况,源mac地址和目标mac地址则一跳一变。

3、在传输过程中,二层交换利用mac寻址(如mac地址表),三层则通过路由寻址(如路由表)

三、实例讲解

第一篇:网络传输过程中,数据解封包过程_ip地址_02

数据包的第一次封装和最后一次解封装都是在pc中完成,按照topo中的过程来写一下哈

1、pc

数据由浏览器或某些应用程序完成了应用层的封装,下沉到传输层,加上一些小端口

接着来到网络层,此时封装的源地址为pc网卡中写的ip地址,目的地址为用户需访问的ip地址(一般用户访问的是域名,域名可通过dns解析成ip地址)

下沉到数据链路层,此时封装的源mac地址为pc网卡中写的mac地址,目的mac地址是网关的mac地址

封装完成,报文传输至二层交换机s1,

2、二层交换机s1

当设备收到报文后,通过查看报文中的目的mac地址对比mac地址表完成在交换机s1内的转发

3、路由器r1

当路由器收到该报文时,首先对比目的mac地址,当路由器发现报文中目的mac地址与设备本身的mac地址相同,就会在路由器的入接口对数据报文进行数据链路层的解封装,此时路由器查看报文的目的ip地址,查询路由表后,找到下一跳为s2,此时路由器将会对数据报文进行封装,网络层未解封保持不变,通过查看arp表项查找下一跳的mac地址,封装源mac地址为路由器本身的mac地址,目的地址为下一跳s2的mac地址,同时将数据报文传输至s2。

4、三层交换机s2

当三层交换机s2收到报文时,将会通过不同vlanif间的路由进行转发,这个过程与路由器的不同接口的解封装相同,当报文到pc网关的vlan时,将会通过查找arp表项,选择源mac地址为交换机mac,目的mac地址为pc的mac地址对报文进行封装,同时进行转发。