发布网友 发布时间:2022-04-25 17:04
共2个回答
热心网友 时间:2023-01-24 11:22
每一层的数据包会包含MAC,但不是你的MAC地址.在经过路由后,MAC地址会更新为路由的MAC,包里只有你的IP地址是不会被改变的(当然,NAT的话IP也会相应改掉)。如果本地路由接收到发给你的数据包,他也会重新填入你的MAC地址,然后转发追问那包里的IP地址到底是我的内网还是*IP,如果是*IP,数据包到达我的路由后怎么分别是局域网的哪台计算机,因为局域网里的计算机的*IP都是一样的。如果是内网IP,那就不可能进行路由过程了。
http://zhidao.baidu.com/question/3655087.html?oldq=1
追答由路由来解决..看你配置,如果用NAT的话,路由会自动转换地址的
热心网友 时间:2023-01-24 12:40
付费内容限时免费查看回答亲,你好包内mac是不变的,只有数据包的IP是改成下一跳路由的IP,路由表只以IP记录跳转规则,到了你所在的AS(自治系统)后,再由网关按ARP表上的mac映射将数据包发给你的主机你在局域网(假设为以太网)A(私有地址)计算机发送数据给B(公有地址),由于在路由器G-B之间,几乎可以肯定不再是以太网,所以,包含MAC地址的以太网数据帧帧头是会被抛弃的,只有IP包原样送到B。那么B到A的数据是怎么到达呢?很明显,B的数据只能直接到达路由器G(公有地址),然后,路由器根据公有地址-私有地址转换(NAT映射表)将数据送到A。如果局域网有多台计算机的话,加上路由器公有地址只有一个,此时如何区别目标是谁呢?这种情况,路由器在由G到B建立NAT表的时候,必须为每一台局域网计算机分配不同的端口号,那么回来的数据根据端口号就能确定到底应该发往哪一台局域网计算机。当然,端口号也可以用来区分主机上的哪一个软件模块(比如进程)在通信,只要端口号互相(端口号多的是,足够一个局域网使用)。