tcp报文路由传输过程

以太网报文封装:

1、以太网报文结构:src_mac,dst_mac,vlan号(非必须),网络层协议号

2、src_mac,dst_mac均是通过路由或arp决定,a、arp学到目的ip地址所在的remote_mac地址,则:src_mac=local_mac(学习网口),dst_mac=remote_mac;b、arp没有学习到remote_mac地址,则通过路由查看目标ip的所在gw,将dst_mac=gw_mac即可

报文路由发送:

1、本机客户端封装好以太网报文后通过src_mac将报文写入对应的网卡缓存中

2、下一跳gw即路由器收到该报文后,发现mac地址是自己,但是ip地址不是自己,根据路由表将dst_mac替换成路由器的下一         跳 gw1_mac;  同时将报文中的src_mac替换成自己的gw_mac

3、路由器重复第二步直至发送到目的ip所在的服务器,路由器不修改数据,仅作路由mac地址替换,服务器回复报文同理,可以通过ip层的TTL值可以判别出报文经过几跳。

 

             ip_addr                        mac_addr                    route     gw             ethX    arp
client:   10.43.85.162[eth5]   00:22:93:75:A2:43  10.0.0.0/8  10.43.85.1  eth5  10.43.85.1  00:19:c6:01:f6:9b  eth5
client_gw:10.43.85.1               00:19:c6:01:f6:9b  //路由器
sever_gw:10.43.42.1              00:d0:d0:c2:14:23  //路由器
server:     10.43.42.199[eth5]  00:22:93:71:DC:35  10.0.0.0/8  10.43.42.1  eth5 10.43.42.1   00:d0:d0:c2:14:23 eth5
 

客户端配置:

客户端SYN报文发送:

客户端SYN+ACK报文接受:

服务器配置:

服务器收到SYN报文:

服务器发送ACK报文:

相关文章

方法: 打开一个新的可跨域的chrome窗口实现方法: 1. 打开终...
MacBook Pro 14价格和配置对比 尺寸 SOC	内存&#...
现在给大家介绍一下如何查询MAC的生产日期,希望对你查询MAC...
1、点击【编辑虚拟机设置】,转到【CD/DVD (SATA)】,选中【...
注意:用哪个版本的 Python 运行安装脚本,pip 就被关联到哪...
Mac 安装nvm