网络数据包封装与解封装基本过程

网络数据包封装与解封装基本过程_第1张图片

      数据包   应用层
    TCP头:源端口+目的端口 数据包   传输层
  IP头:源IP地址+目的IP地址 TCP头:源端口+目的端口 数据包   网络层
Ethernet头:源MAC+目的MAC IP头:源IP地址+目的IP地址 TCP头:源端口+目的端口 数据包   链路层

本机:192.168.144.223;执行命令:telnet 192.168.145.77 23

【封装】1telnet应用封装telnet程序请求信息,作为数据包传送给下一层;
【封装】2、传输层收到telnet数据包,在其前面封装一个TCP头部:本机随机启动一个端口作为源端口,23端口作为目的端口;然后将TCP报文传送给下一层;
【封装】3、网络层在TCP报文前面封装一个IP头:本地IP地址作为源IP地址,192.168.145.77作为目的IP地址;(多网卡存在不同网段IP,会根据本机路由选择;)根据本地路由表项,查找下一跳地址,如果不在同一个网段,一般会使用default gateway作为下一跳;通过ARP协议查找gateway对应的MAC地址,ARP缓存表没有,则广播查找 who is 192.168.144.1
【封装】4、数据链路层将IP报文,封装一层数据链路头:将下一跳MAC作为目的MAC192.168.144.223网卡的MAC作为源MAC
5、把网络报文以二进制格式,通过网线发送给下一跳(基本上是路由器或者三层交换的入口);中间如果有二层交换机,根据MAC地址表,将数据报文转发到某一接口。
【解封装】6、以太网帧发送到三层交换或者路由器,数据包将被解封装到IP报文,根据目的IP查找路由表,路由转发;
【封装】7、在三层交换或路由器上,路由表项Iface接口MAC被封装成源MAC,对端接口MAC封装为目的MAC,发送到下一跳。
8、重复6、7步进行路由转发,一直发送到目的IP。
【解封装】9、在目的主机上,会进行解封装,然后根据目的Port发送到对应的进程,由该进程处理payload。
10、回包重复1-9步过程。

路由表项

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.120.1    0.0.0.0         UG    0      0        0 br-ext
192.168.120.0   0.0.0.0          255.255.254.0   U     0      0        0 br-ext

ARP表项

Address                  HWtype  HWaddress           Flags Mask            Iface
10.42.2.0                ether   82:fd:67:52:6e:4a   CM                    flannel.1
_gateway                 ether   48:7a:da:fa:aa:01   C                     ens192
192.168.34.151           ether   54:bf:64:59:16:f0   C                     ens192
10.42.0.12               ether   c2:50:c1:89:69:ab   C                     cni0

MAC地址表

MAC ADDR             VLAN ID       STATE          PORT INDEX              AGING TIME(s)
0026-b935-e865       120          Learned    GigabitEthernet1/0/24         AGING

你可能感兴趣的:(网络技术,网络,网络协议,mac,telnet)