欢迎来到 常识词典网 , 一个专业的常识知识学习网站!
[ Ctrl + D 键 ]收藏本站
答案 1:
-地址不能用于直接的通信,这是因为-地址是抽象的网络层地址,不是物理地址以Ping命令为例,实际通信过程如下A和B要发送的人在同一个网段
首先,Ping命令会构建一个固定格式的ICMP请求数据包,然后由ICMP协议将这个数据包连同-地址一起交给-层协议(和ICMP一样,实际上是一组后台运行的进程),-层协议将以-地址作为目的地址,本机-地址作为源地址,加上一些其他的控制信息,构建一个-数据包,并想办法得到与-地址对应的MAC地址(Media Access Control介质访问控制地址,以太网的物理地址,每一个网卡会有一个全球唯一固定的MAC地址例如:00-23-5A-15-99-42),以便交给数据链路层构建一个数据帧。关键就在这里,-层协议通过机器B的-地址和自己的子网掩码,发现它跟自己属同一网络,就直接在本网络内查找这台机器的MAC,如果以前两机有过通信,在A机的ARP(地址映射协议,将-地址转化为MAC地址)缓存表可能会有B机-与其MAC的映射关系,如果没有,就发一个ARP请求广播(向本网内所有主机发送)“x.x.x.x的MAC地址是什么”,这个广播所有主机都能收到,但是只有B才回应,发送自己的MAC地址,得到B机的MAC,一并交给数据链路层。后者构建一个数据帧,目的地址是-层传过来的物理地址,源地址则是本机的物理地址,还要附加上一些控制信息,依据以太网的介质访问规则,将它们传送出去。 主机B收到这个数据帧后,先检查它的目的地址,并和本机的物理地址对比,如符合,则接收;否则丢弃。接收后检查该数据帧,将-数据包从帧中提取出来,交给本机的-层协议。同样,-层检查后,将有用的信息提取后交给ICMP协议,后者处理后,马上构建一个ICMP应答包,发送给主机A,其过程和主机A发送ICMP请求包到主机B一模一样。A和B不在同一网段内
在主机A上运行“Ping 8.8.8.8”后,开始跟上面一样,到了怎样得到MAC地址时,-协议通过计算发现D机与自己不在同一网段内(子网掩码的计算),就直接将交由路由处理,也就是将路由的MAC取过来(路由器-已知),这被称作代理ARP,至于怎样得到路由的MAC,跟1一样,先在ARP缓存表找,没有就广播。路由得到这个数据帧后,再跟主机B进行联系。对路由器来说,他收到目的-地址后动作如下路由器的某一个接口接收到一个数据包时,会查看包中的目标网络地址以判断该包的目的地址在当前的路由表中是否存在(即路由器是否知道到达目标网络的路径)。如果发现包的目标地址与本路由器的某个接口所连接的网络地址相同,那么马上数据转发到相应接口;如果发现包的目标地址不是自己的直连网段,路由器会查看自己的路由表,查找包的目的网络所对应的接口,并从相应的接口转发出去;如果路由表中记录的网络地址与包的目标地址不匹配,则根据路由器配置转发到默认接口,在没有配置默认接口的情况下会给用户返回目标地址不可达的 ICMP 信息。 如此层层查找,直到将消息转发到目的地。 而对主机来说,其中的过程都由网络设备完成,主机只要将数据发送到自己的-,剩下的事情就交给网络设备了。PS:8.8.8.8是GOOGLE提供的免费DNS服务器地址扩展:
OSI七层模型:baike.baidu/view... TCP/-协议:baike.baidu/view... -地址:baike.baidu/view... ICMP:baike.baidu/view... DNS:baike.baidu/view...答案 2:
通过运营商的路由器把tcp包一级一级向上递归,直到有路由器的路由表中保存有这个ip,然后8.8.8.8返回tcp包,顺着接受路径返回到你的主机。答案 3:
一台主机的应用层产生要发送的数据,然后传给下层,会晤层,网络层,数据链路层,物理层等,具体去看iso制定的osi 7层网络模型。中间某层使用的协议是TCP或者UDP,下一层是-,要发送的信息,层层封装,通过ip来确定接受主机的信息,继续向下,变成比特流,通过电路进行传输,中间经过路由器,路由器一般认为三层,层层向上进行处理,然后又下来,继续发送,中间查了路由表,确定下一步送往哪里。(此处还涉及路由表的各种算法)最后传到接受主机的物理层,层层向上处理,解封装,最后整理成应用程序需要的数据,交给应用层。简单来说,就是,产生数据,传给路由器,路由器根据路由表和路由算法,确定该把这个包送向哪里,然后送过去,一点点的送到接受主机。具体的过程看下通信网相关文献吧。具体的东西记不大得了。刚看到具体的提问,补充说下。简单说,路由器通过查询路由表,确定8。8。8。8在哪里。具体点的给你几个概念,你自己去看,ip分为class A class B??等等,网络中路由器有路由表(他们有自己的算法进行更新,具体参阅communication networks),路由表里面写明了哪个地址应该送到哪里去,这里涉及很多东西。一两句说不清楚??答案 4:
简单的来说,首先查找本机的路由表,但路由表不会告诉你到达目的-地址的完整路径,只会告诉你下一跳是哪个地址,哪个出口,到达下一跳以后继续重复上面的查找路由表的动作,直到到达目的-地址。打个比方来说,你找警察问路,但这个警察并不告诉你一条完整的路,而是告诉你你先走到下一个路口,然后那边有个警察,你再继续问下一个警察。。。答案 5:
看上面讲的基本都不太准确。 互联网上的路由器是网状的而非树状的,他们依靠路由协议互相交换信息。比如一个简单的A-B-C网络,A会发出信息通知自己相邻的路由器B告知自己的存在,B会发信息告知C自己的存在,以及隔一跳还有一个A。于是,当C需要发给A的时候,查一下路由表,就知道要从这个端口发往B,而B收到后,查一下路由表,就知道由左边的端口发往A。 A-B | | C-D 如果是这样一个菱形的网络,A会通知B和C,B和C再通知D自己的存在,以及他们都隔一跳可以到达A,于是D给A发信息的时候,可以随机选择两条路中的一条发过去。 当然,现实中的还有更多复杂的东西,比如上一个菱形网络,每条线路可以计算线路容量,如果D到C只有1M,到B有100M,那么优先选择走B线路到A。另外还有自治系统AS之类的,就不多说了。 由于你在一个局域网内,用route PRINT打印出来的路由表通常只包括局域网内的直接发到网卡,其他的全都发到默认-。数据包到了-后再通过ADSL到电信的网络里,就可以在整个互联网内转悠,找到最优的路径到达目标-。通过tracert命令可以看到所有经过的路由器。 多次使用tracert 8.8.8.8命令,然后比较了结果,可以看到我这里经过14跳可以到达这个-。另外,最后一跳的-地址在216.239.48.230~216.239.48.239之间变动,这就是通过路由表实现的负载均衡了。下一篇:哪里能够找到关于国家组织结构的书或者资料? 下一篇 【方向键 ( → )下一篇】
上一篇:优质靠谱儿单身盼嫁女青年这个物种到底存在么?哪儿有? 上一篇 【方向键 ( ← )上一篇】
快搜