浅谈DIRECT路由的作用Word文档格式.docx

上传人:b****4 文档编号:17228946 上传时间:2022-11-29 格式:DOCX 页数:11 大小:166.28KB
下载 相关 举报
浅谈DIRECT路由的作用Word文档格式.docx_第1页
第1页 / 共11页
浅谈DIRECT路由的作用Word文档格式.docx_第2页
第2页 / 共11页
浅谈DIRECT路由的作用Word文档格式.docx_第3页
第3页 / 共11页
浅谈DIRECT路由的作用Word文档格式.docx_第4页
第4页 / 共11页
浅谈DIRECT路由的作用Word文档格式.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

浅谈DIRECT路由的作用Word文档格式.docx

《浅谈DIRECT路由的作用Word文档格式.docx》由会员分享,可在线阅读,更多相关《浅谈DIRECT路由的作用Word文档格式.docx(11页珍藏版)》请在冰豆网上搜索。

浅谈DIRECT路由的作用Word文档格式.docx

修订

版本

SecNo.

修改

章节

ChangeDescription

修改描述

Author

作者

1.00

初稿完成

王逸彬/41478

Catalog目录

一、概述5

二、问题引入5

三、问题分析6

1.理解windows系统的路由表6

2.认识DIRECT路由8

3.DIRECT路由的作用8

4.问题的深入分析9

四、总结13

五、附录14

FigureList图目录

图1为什么二层交换机不能连接不同网段的PC机5

图2PC机的TCP/IP协议栈6

图3PC1的默认网关指向它自己10

图4PC2的默认网关指向它自己11

Keywords关键词:

DIRECT路由LANswitchARP

Abstract摘要:

DIRECT路由是“直连路由”的意思,表示目的网段就是本网段。

一般,人们很少关注DIRECT路由,但深入理解DIRECT路由的含义,对于我们理解和掌握二层、三层的工作原理,具有重要的意义。

Listofabbreviations缩略语清单:

Abbreviations缩略语

Fullspelling英文全名

Chineseexplanation中文解释

LANswitch

局域网交换机

ARP

AddressResolutionProtocol

地址解析协议

MAC

MediumAccessControl

介质访问控制

IP

InternetProtocol

因特网协议

一、概述

二、问题引入

有一个简单的问题是:

如图1所示,如果连接到同一个LANswitch的两台PC机,它们在不同网段,但通过ARP协议,也能相互发现对方的MAC地址,所以通过二层交换机应该是可以通信的,但实际上为什么就不能ping通呢?

图1为什么二层交换机不能连接不同网段的PC机

 

三、问题分析

但我第一次思考这个问题时,我觉得这是一个很有价值的问题。

我们都知道,正常情况下,二层交换机只能连接同一网段的PC机,但我们从表面上来分析,不同网段的PC机,通过ARP协议也能相互发现对方的MAC地址,然后在二层进行以太网帧的封装,这样也能互相通信的。

但实际上为什么就不能呢?

这个问题的焦点是:

PC1是如何知道(根据什么)PC2和自己是在同一网段的?

1.理解windows系统的路由表

首先我们分析两台PC机通信的TCP/IP协议栈。

如下:

图2PC机的TCP/IP协议栈

TCP/IP协议栈分为5层:

应用层、传输层、网络层、链路层和物理层。

PC机已经实现到了应用层了,所以也存在路由表。

我们在windows系统的“运行”中,输入“cmd”,在打开的窗口中,输入“routeprint”,就可以查询到PC机的路由表,如下:

ActiveRoutes:

NetworkDestinationNetmaskGatewayInterfaceMetric

10.12.0.0255.255.0.010.12.3.12810.12.3.1281

10.12.3.128255.255.255.255127.0.0.1127.0.0.11

10.78.234.0255.255.255.010.78.234.14010.78.234.1401

10.78.234.140255.255.255.255127.0.0.1127.0.0.11

10.255.255.255255.255.255.25510.12.3.12810.12.3.1281

10.255.255.255255.255.255.25510.78.234.14010.78.234.1401

127.0.0.0255.0.0.0127.0.0.1127.0.0.11

129.0.0.0255.0.0.010.12.3.6410.12.3.1281

192.1.0.0255.255.0.010.12.3.6410.12.3.1281

224.0.0.0224.0.0.010.12.3.12810.12.3.1281

224.0.0.0224.0.0.010.78.234.14010.78.234.1401

255.255.255.255255.255.255.25510.12.3.12810.12.3.1281

每一个Windows系统中都具有IP路由表,它存储了本地计算机可以到达的网络目的地址范围和如何到达的路由信息。

路由表是TCP/IP通信的基础,本地计算机上的任何TCP/IP通信,都要受到路由表的控制。

那么,路由表里的路由表项是什么意思呢?

路由表中的每一个路由项具有五个属性,在这里我们将它们分为四个部分:

(1)网络地址(NetworkDestination)、网络掩码(Netmask):

网络地址和网络掩码相与的结果,用于定义本地计算机可以到达的网络目的地址范围。

在添加路由时,Windows要求输入的网络地址和网络掩码相与后的结果必须等于网络地址,否则路由添加会失败。

(2)网关(Gateway,又称为下一跳服务器):

在发送IP报文时,网关定义了针对特定的网络目的地址,IP报文发送到的下一跳服务器。

如果是本地计算机直接连接到的网络,网关通常是本地计算机对应的网络接口,但是此时接口必须和网关一致;

如果是远程网络或默认路由,网关通常是本地计算机所连接到的网络上的某个服务器或路由器。

(3)接口(Interface):

接口是本地计算机上为IP数据报在网络上转发时所使用的本地网络适配器配置的IP地址。

网关和接口的IP地址必须在同一网段,否则会造成在使用此路由项时需要调用其他路由项,从而可能会导致路由死锁。

(4)跃点数(Metric):

跃点数表示使用路由的开销,通常是到IP目标位置的跃点数目。

本地子网上的任何设备都是一个跃点,其后经过的每个路由器是另一个跃点。

跃点数的范围是:

1~9999。

跃点数越低,代表路由成本越低;

跃点数越高,代表路由成本越高。

如果到同一目标有不同跃点数的多个路由,则选择跃点数最低的路由。

2.认识DIRECT路由

一般,我们会在PC机上添加到不同网段的永久路由,而处在同一网段的PC机,它们通过二层交换机直接通信,不需要我们添加路由。

这就造成了一种假象,好像PC1和PC2在同一网段就不用查路由一样。

其实不是这样的。

请注意以上路由表里红色的路由项,它的下一跳和本机网络出口是一样的,如下:

10.78.234.0255.255.255.010.78.234.14010.78.234.1401

这种路由就是DIRECT路由,即直连路由,它的下一跳是路由出口的IP地址。

直连路由是本文研究的重点,也是我们理解图1中二层交换机原理的关键所在。

3.DIRECT路由的作用

实际上,因为PC机已经实现到了应用层了,所以应用程序的数据封装在TCP报文段中,这个TCP报文段又被装在IP报文里,这个IP报文就有路由功能。

所以在网络层,无论这个IP报文是要到同一网段的PC机,还是要到不同网段的PC机,本机的windows系统都会一视同仁,首先在路由表中查找路由,从而决定如何转发。

如果IP报文是到不同网段,一般我们要在PC机上人为地添加一条静态路由,但如果是到同一网段的PC机,那么本机查找的就是DIRECT路由。

只要Ethernet网口是激活的,也就是处于UP状态,那么,PC机或路由器就会自动生成一条到与网口IP地址在同一网段的DIRECT路由。

这样,当PC机或路由器要转发一个IP报文的时候,它首先是去查路由表,当它发现最终匹配到的路由表项的下一跳IP地址,和本机网络接口IP地址相同的时候,它就已经知道,这个IP报文的目的IP地址,和我是在同一个网段的。

所以PC机直接发送ARP请求报文,查找目的主机IP地址对应的MAC地址,然后把IP报文封装在链路层的以太网帧里,通过LANswitch发送出去。

到了这里,我们就可以解答图1中提出的问题了。

因为PC2和PC1不在同一个网段,PC1查找不到到PC2所在网段的路由,所以PC1就把封装有ICMP请求报文的IP报文直接丢弃了,而不是发送ARP报文询问PC2的MAC地址。

所以在这种情况下,不同网段的PC机,通过LANswitchping不通。

4.问题的深入分析

其实IP地址属于不同网段的说法,是网络层自己的事情,二层的数据帧是不会理会IP报文的,它也看不懂,也没有必要懂。

所以,二层交换机只能交换同一网段的PC机报文的说法,是不一定正确的。

我们可以通过一些方法,让图1中不同网段的PC1和PC2,通过LANswitch也能正常通信。

这种现象是很有趣的。

我们将会看到,我们又用到了DIRECT路由,可见二层的交换活动,其控制权还是掌握在三层的路由表手里。

我们已经知道,图1中,普通情况下,PC1和PC2是不能互相ping通的,例如PC1pingPC2的结果如下:

C:

\DocumentsandSettings\Administrator>

ping10.13.3.88

Pinging10.13.3.88with32bytesofdata:

Destinationhostunreachable.

Pingstatisticsfor10.13.3.88:

Packets:

Sent=4,Received=0,Lost=4(100%loss),

Approximateroundtriptimesinmilli-seconds:

Minimum=0ms,Maximum=0ms,Average=0ms

这时候PC1的路由表如下:

10.12.0.0255.255.0.010.12.3.12810.12.3.1281

80.0.0.0255.0.0.010.12.3.6410.12.3.1281

可以看到,当PC1pingPC2时,PC1开始在它的路由表里查找到10.13.0.0网段的路由,但没有找到,所以PC1就直接把ping应用数据的ICMP请求报文丢弃了,所以ping不通。

但如果我们在PC1上,人为地加上一个默认网关指向它自己,如下:

图3PC1的默认网关指向它自己

添加网关成功后,在PC1的路由表里,就会生成一条默认路由,路由表如下(部分):

0.0.0.00.0.0.010.12.3.12810.12.3.1281

DefaultGateway:

10.12.3.128

同样,我们也在PC2上,人为地加上一个默认网关指向它自己,如下:

图4PC2的默认网关指向它自己

同样,添加网关成功后,在PC2的路由表里,就会生成一条默认路由。

这样,我们再在PC1上pingPC2,发现已经可以ping通了,如下:

Replyfrom10.13.3.88:

bytes=32time<

10msTTL=128

Sent=4,Received=4,Lost=0(0%loss),

这种情况下,PC1和PC2还是处在不同网段,但为什么可以ping通呢?

答案如下:

当PC1发现要访问10.13.0.0网段时,它在路由表里已经查到了匹配的路由,虽然最后找到的0.0.0.0路由是一条默认路由,任何匹配不到精确路由的IP报文,都可以通过0.0.0.0默认路由转发,但在我们的实验环境里,这条默认路由又有所不同,它的下一跳就是它的出口IP地址,所以这条默认路由同时也是一条DIRECT路由。

这样就和本文以上的讨论统一起来了,虽然PC1通过LANswitch访问的是不同网段的PC2,但通过在双方添加默认网关指向它自己,生成了一条DIRECT路由,这样PC1通过查找路由表,发现匹配到的路由的下一跳是它自己,误以为PC2和PC1是在同一网段的,所以就开始发ARP广播报文,询问目的IP地址对应的MAC地址是什么。

PC2也和PC1一样,重复相同的过程。

这样,双方就可以正常通信了。

(其实,这种情况下,PC1和PC2相当于路由器)

可能有些人会问,LANswitch只能连接同一网段的PC机,现在不同网段的PC机通过LANswitch也能访问了,这怎么可能呢?

难道ARP报文不能检查出目的IP地址是不同网段的IP地址吗?

我们知道,ARP报文虽然习惯上称为报文,但它实际上是二层的数据帧,装在以太网数据帧里,“type”值是:

0x0806。

而二层数据帧是不识别三层的IP地址的,所以交换机会把不同网段之间的ARP请求报文广播出去。

总结起来,图1中PC1访问PC2的过程如下:

1)PC1查找路由表,看是不是存在到PC2网段的路由。

如果没有找到,则直接丢弃访问PC2的报文(这种情况就是我们常见的ping不通现象)。

2)如果PC1找到了路由,则它检查路由的下一跳是不是路由项的接口自己,即检查找到的路由是不是DIRECT路由。

如果是,PC1开始发ARP报文询问PC2的MAC地址;

如果不是,PC1开始发ARP报文询问路由的下一跳网关的MAC地址,把访问PC2的IP报文装在以太网帧里,发给下一跳网关。

四、总结

本文通过引入一个二层交换方面的简单问题,由此引起对路由表中的DIRECT路由的联系和思考。

其实DIRECT路由不只是存在于PC机的路由表中,在路由器的路由表中也是广泛存在。

可以说,对于实现到了网络层以上的设备,在其路由表中都是存在DIRECT路由的,因为最终的IP报文还是要通过二层的数据帧进行转发,而实际的设备的接口也是要连接同一网段的设备的。

所以,DIRECT路由的应用是很广泛的。

在学习中,我们要善于总结和联系,把相关的知识编织到我们的知识网络里,这样学过的知识就不容易忘记,当需要使用时也能快速找到,触类旁通。

例如,本文所讨论的DIRECT路由,其实只要设备的端口是UP的,都会自动生成一条本网段的DIRECT路由。

DIRECT路由就是理解二层交换原理的核心。

而且,我们就可以把二层和三层的相关问题统一起来了。

以图1为例,当PC1和同一网段或者不同网段的PC2通信时,都是要先查找路由的,只不过同一网段时查找到的是DIRECT路由,通过二层交换机可以通信;

而不同网段时查找到的是我们手工添加的静态路由,或者是动态路由协议生成的动态路由而已,这时候要通过路由器进行通信。

当然,不同网段的情况下,通过设置默认网关指向网络接口自己,PC机查到的是DIRECT路由,通过二层交换机也可以通信。

本文所讨论的问题涉及到了TCP/IP里面有关二层、三层方面的知识,所以,需要对TCP/IP分层结构、IP报文格式、以太网帧格式、ARP、路由等的原理比较了解,才能更好地掌握二层交换原理和DIRECT路由的作用等。

这样才能在实际工作中,对一些网络现象和网络问题深入分析,明察秋毫,游刃有余。

五、附录

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 电力水利

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1