发布网友 发布时间:2023-04-14 14:30
共1个回答
热心网友 时间:2023-10-12 05:17
a首先封装数据,先是tcp源端口和目的端口,然后ip的源地址和目的地址,然后再封装源mac和目的mac,注意这里封装的目的mac是网关的mac,也就是路由器和它直连的端口的mac。如果是第一次通信,这里可能需要一个arp广播获取网关的mac ,然后把数据封装成帧。然后在物理层上转换成电信号传输出去,路由器接收到了,先检查mac,发现就是自己的mac,然后继续往上检查目的ip,发现不是自己的ip,而是其他网段的ip。然后路由器查看路由表,找到b所在网段对应得出接口,然后把数据包丢过去。出接口收到数据后,重新封装源mac和目的mac,源mac就是自己,目的mac就是b的mac,这里也需要一个arp请求b的mac完成封装。然后数据被送到物理层转换后传输出去,到了b后,b检查mac,是自己的,然后检查ip,也是自己的,然后b再根据目的端口号,把数据送往上层对于的应用。这样a的数据就送达b了。通用,b一般得按相同的过程反过来给a回应。追问挺详细的,我想问下,a在判断b是否在同一网络中,是直接用arp去广播发现没有回应再去找路由器mac,还是直接用目的IP与子网掩码位与看网络号不同去判断,或者这是同时进行的?不太清楚追答根据目的ip和子网掩码判断。