(挑战性的问题)高分请教-关于路由和底层协议的问题

时间:2021-03-18 19:54:21
一个内部计算机想要和外部通信的时候,在IP层发现IP地址是外部地址,她是不是用以太网桢把原始IP数据报 包装,发到MAC地址为路由器的服务器上,但是原始IP数据报的原地址和目的地址都没有改变,路由器收到这种目的MAC地址是自己,但是目的IP地址是外部的数据时开始进行进行路由。这种说法对吗?请各位高手详细说一下网络通讯在底层如何进行的。重点在IP层和数据链路层

9 个解决方案

#1


咱俩的理解差不多,补充一点:本机的发包的时候也要进行路由,如果是同一个网段就用目标机器的mac地址封装成桢在网上发送,如果是外部地址就会用路由器(网关)的mac地址封装寺。

#2


谢谢海阔天空的支持

#3


是的....具体的操作 由软件内部完成.选择好路由后...将加上MAC地址封装成桢发送给下一跳就可以了

#4


补充,在数据链路层的通信是点到点的,在网络层的通信是端到端的。
      在网络层数据单位称为ba包,在数据链路层称为桢
 Internet网上的路由是这样的:
         请求主机(IP)封装成桢->在数据链路层,路由器根据路由表封装上自己的mac地址->下一个路由器如果不是,封装自己的Mac地址->..........->目地主机IP

#5


我不完全同意各位观点: 在数据链路层与各位的说法差不多,当LAN想外网发送数据时,发现在目的不在LAN内,他会查找自己是否指定了router,有他会发送ARP请求查找该ROUTER的MAC并封装ETHERNET包,ROUTER收到包后会查找路由,若是要转发的就封装ETHERNET包扔到另一网卡,同时IP包也要修改,将源IP地址改为ROUTER外网地址,同时ROUTER也会建立NAT表之类的东西,以便数据回时知道是LAN内那台主机

#6


楼上说的是用NAT代理的情况,要传统意义上的路由器是有区别的。传统意义上的路由器只是负责选择路由进行包转发,不会修改IP包源地址。nat代理服务器才会修改ip包源地址,并为源主机建立端口映射(采用端口映射的nat服务器)

#7


基本对!

#8


基本没问题,路由器收到IP包后,查找路由表,按照主机、网段的顺序查找,如果没有查到,将按照默认路由的方式转发。

#9


不同的协议自当区别对待,比如,novell网它的特有的novell rip就通过mac寻址和访问。
同意cwanter(海阔天空)的nat转换,因为那osi协议就是通过各层的封装,解封,来达到目的 的,而tcp/ip是其简化协议,只进行ip封装就可了。

#1


咱俩的理解差不多,补充一点:本机的发包的时候也要进行路由,如果是同一个网段就用目标机器的mac地址封装成桢在网上发送,如果是外部地址就会用路由器(网关)的mac地址封装寺。

#2


谢谢海阔天空的支持

#3


是的....具体的操作 由软件内部完成.选择好路由后...将加上MAC地址封装成桢发送给下一跳就可以了

#4


补充,在数据链路层的通信是点到点的,在网络层的通信是端到端的。
      在网络层数据单位称为ba包,在数据链路层称为桢
 Internet网上的路由是这样的:
         请求主机(IP)封装成桢->在数据链路层,路由器根据路由表封装上自己的mac地址->下一个路由器如果不是,封装自己的Mac地址->..........->目地主机IP

#5


我不完全同意各位观点: 在数据链路层与各位的说法差不多,当LAN想外网发送数据时,发现在目的不在LAN内,他会查找自己是否指定了router,有他会发送ARP请求查找该ROUTER的MAC并封装ETHERNET包,ROUTER收到包后会查找路由,若是要转发的就封装ETHERNET包扔到另一网卡,同时IP包也要修改,将源IP地址改为ROUTER外网地址,同时ROUTER也会建立NAT表之类的东西,以便数据回时知道是LAN内那台主机

#6


楼上说的是用NAT代理的情况,要传统意义上的路由器是有区别的。传统意义上的路由器只是负责选择路由进行包转发,不会修改IP包源地址。nat代理服务器才会修改ip包源地址,并为源主机建立端口映射(采用端口映射的nat服务器)

#7


基本对!

#8


基本没问题,路由器收到IP包后,查找路由表,按照主机、网段的顺序查找,如果没有查到,将按照默认路由的方式转发。

#9


不同的协议自当区别对待,比如,novell网它的特有的novell rip就通过mac寻址和访问。
同意cwanter(海阔天空)的nat转换,因为那osi协议就是通过各层的封装,解封,来达到目的 的,而tcp/ip是其简化协议,只进行ip封装就可了。