网络互连的目的是使一个网络上的用户能够访问网络上的资源,使不同网络上的用户能够相互通信和交换信息。
网络互连涉及的概念很多,下面将从3个概念进行解释。
网络连接
网络连接(Internetworking)是指一对通构或者异构的端系统,通过多个网络(或中间系统)所提供的接续通路连接起来,完成信息互传的组织形式。
连接的目的是实现系统之间的端到端(End To End)通信。所以网络连接时对于不同网络系统之间的连接,要求它们在协议能力上有接续能力,以完成端系统之间的数据传输。
网络互连
网络互连(Internetconnection)是指不同网络之间的相互连接,目的是实现不同网络之间的数据传输。
这里把一个子网看作一条“链路”,把网络之间的连接看作交换节点,从而形成一个大型的网络。
网络互通
网络互通(Interworking)是指网络不依赖于其他形式的一种能力,它不仅指端到端之间的数据传输,还表现出各种业务之间的相互作用。
网络连接和网络互连实现数据传输,而网络互通则是表现形式,是各种应用之间相互作用的协议环境。
互连的网络在体系结构、层次协议及网络服务等方面都存在着差异,对于异构网络来说差异就更大。这种差异可能表现在寻址方式、路由选择、最大分组长度、网络接入机制、用户接入控制、差错恢复、服务、管理方式等很多方面的不同。所以要实现网络互连,就必须消除网络之间的差异。
屏蔽异种网络的差异有以下两个条件。
由网络的作用范围进行分类,可以分为WAN、MAN、LAN。
因此,网络互连也就涉及LAN-LAN、LAN-WAN、WAN-WAN、LAN-WAN-WAN四种形式,如下图所示。
物理层互连设备主要解决不同电缆、不同信号的互连问题。互连的主要设备是中继器和集线器。
中继器、集线器的标准与功能:集线器、中继器工作在OSI参考模型的第一层即物理层。
物理层互连标准由EIA、CCITT及IEEE制定。
物理层设备常用于连接两个网络节点,进行物理信号的双向转发,对信号起到中继放大作用,补偿信号衰减,支持远距离通信。
数据链路层互连主要实现不同网络间数据帧的存储和转发。互连的主要设备是网桥和交换机。
网桥、交换机的标准和功能:网桥和交换机工作在OSI参考模型的第二层即数据链路层。
其标准由IEEE 802工程委员会开发。
网桥和交换机的功能是完成数据帧的转发,主要目的是在连接的网络间提供透明通信。
数据帧的转发依据是帧结构中的目的地址(MAC地址),然后根据网桥、交换机的MAC地址表决定是否转发,转发到哪个端口。帧中的地址称为MAC地址或实际地址,又叫作网卡的物理地址。
网桥和交换机能够起到隔离网络的作用,如图所示,A、B两台计算机组成一个局域网,C、D两台计算机组成另一个局域网,而局域网1所发出的数据是不会转发到局域网2中去的。
网络层互连设备主要实现不同网络间的存储和转发分组。互连的主要设备是路由器。
路由器主要功能是建立并维护路由表。为了实现分组的转发功能,路由器内部有一个路由表数据库与一个网络路由状态数据库。在路由表数据库中,保存着路由器每个端口对应连接的节点地址,以及其他路由器的地址信息。路由器通过定期与其他路由器交换路由信息来更新路由表;提供网络间分组转发功能,每当一个分组进入路由器时,路由器检查报文分组的源IP地址与目的地IP地址,然后根据路由表数据库的相关信息,决定应该分组将往哪个接口转发。
路由器对每一个网络都起到了隔离作用,如图所示,当数据在三个局域网中传送时,路由器将检查路由表,如果路由表里有相关的路由条目,路由器则转发数据,否则路由器就丢弃数据。
在传输层及以上各层协议下进行网络互连属于高层互连,其主要的实现设备是网关等。
网关也叫网间协议变换器,用于高层协议的转换,它是比交换机和路由器更复杂的网络互连设备。网关可以实现不同协议的网络间互连,包括不同网络操作系统的网络互连,也可以实现远程网络间的互连。在高层协议转换的实际实现中,并不一定要分层进行,例如,从传输层到应用层的协议转换可以一起进行。
由于现在Internet使用非常广泛并且正在迅速发展,因此下面主要介绍在Internet中使用较广的一些网络互连协议。
在路由器上可以手工配置路由信息,该路由称为静态路由。
静态路由的例子就是默认路由。静态路由需要网络管理员进行初始配置并对任何路由的变化做出修改。静态路由通常认为是很可靠的,路由器不会有任何处理数据包的开销。另一方面,静态路由不能自动更新,需要有网络管理员进行持续的管理。
如果路由器与多台其他的路由器相连接,则需要完全了解网络的结构。为了确保使用最合适的下一跳地址来转发数据包,每一个目的地网络都需要配置路由或者默认路由。由于在每一跳都要转发数据包,因此每台路由器都需要配置静态路由。
此外,如果网络结构变化很快,或者有新的网络加入,还必须在每台路由器上手动更新。如果没有及时更新,路由信息就不准确,导致数据转发延迟或者丢失数据包。
在一个网络中,路由器可以从其他路由器那里动态学习路由信息,该路由称为动态路由。
动态路由从其他路由器获得更新信息,无须额外配置。动态路由协议需要路由器CPU的资源来处理信息。
动态路由协议是路由器动态共享其路由协议所依据的规则集。当路由器发现自身直连的网络发生变化或者路由器之间的链路变更时,会将此类信息传送给其他路由器。当一台路由器收到有关新路由或路由更新信息时,它会自动地传递给其他路由器。最后,所有的路由器都会有更新路由表,如图示为共享动态路由。
常用动态路由协议有以下几种:
尽管动态路由协议能够为路由器提供最新的路由表,但也会增加各种开销。
网络层的基本数据传输单元叫作IP数据报,简称为包。
IP数据报
选项字段主要是用于网络测试或调试。
该字段长度可变,从1字节到40字节不等,其变化依赖于所选的类型,例如,路由选项、时间戳选项等。
填充字段依赖于选项字段的值,一般情况下填充字段都以“0”来填充。
为了深刻理解IP数据报的特征,在Packet Tracer中搭建如图所示实验拓扑。
给两台计算机分别分配IP地址为192.16.81.1、192.168.1.2,把Packet Tracer模拟器切换到Simulation模式,进入计算机A命令行执行命令ping 192.168.1.2,单击模拟模式面板上的Capture/Forward按钮捕获数据包,打开数据包(单击Info下面正方形图案),图显示了Packet Tracer中这两个计算机发送ping包的IP数据报格式。
通信子网为网络节点和目的节点提供了多条通信线路(通信路径)。
网络节点在收到一个分组后,要确定下一个节点的转发路径,这就是路由选择,路由选择是网络层实现的基本功能。
路由选择包括两个基本操作,即最佳路径的判断和网间信息包的转发。两者之间,路径的选择相对来说是较复杂的过程,如图所示,从计算机A发送数据报到计算机B,当经过节点1时,节点1需要确定向哪个节点转发数据包。
当主机A要向另一个主机B发送数据报时,先要检查目的主机B是否与源主机A连接在同一个网络中,如果是,就将数据报直接交付给目的主机B而不需要通过路由器;如果目的主机与源主机A不是连接在同一个网络上,则应将数据报发送给本网络中的某个路由器,由该路由器按照转发表指出的路由将数据报转发给下一个路由器,这就叫作间接交付,如图所示。
路由器收到分组后,根据分组中包含的目的地址,在转发表中选择适当的输出端口,转发分组。若路由器处理分组的速率赶不上分组进入队列的速率,则队列的存储空间最终必定减少到零,这就使后面再进入队列的分组由于没有存储空间而只能被丢弃。路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因。
因特网上的路由协议众多,根据路由算法对网络变化的适应能力,主要分为以下两种类型。
因特网采用分层次的路由选择协议,因特网的规模非常大,如果让所有的路由器知道所有的网络应怎样到达,则这种路由表将非常大,处理起来也太花时间,而所有这些路由器之间交换路由信息所需的带宽就会使因特网的通信链路饱和。
许多单位不愿意外界了解自己单位网络的布局细节和本部门所采用的路由选择协议(这属于本部门内部的事情),但同时还希望连接到因特网上。
因特网将整个互连网络划分为许多较小的自治系统(Autonomous System,AS)。
一个自治系统就是一个互连网络,其最重要的特点就是自治系统有权自主地决定在本系统内应采用何种路由选择协议。
一个自治系统内的所有网络都属于一个行政单位(例如,一个公司,一所大学,政府的一个部门,等等)来管辖,一个自治系统的所有路由器在本自治系统内都必须是连通的。
内部网关协议(Interior Gateway Protocol,IGP)是在一个自治系统内部使用的路由选择协议,目前,这类路由选择协议使用得最多,如RIP 和OSPF 协议。
外部网关协议(External Gateway Protocol,EGP)是在自治系统之间使用的路由协议,若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中,这样的协议就是外部网关协议(EGP)。
在外部网关协议中,目前使用最多的是BGP-4。
路由是指为每个到达网关接口的数据包做出转发决定的过程。
将数据包转发到目的地网络,路由器需要有到那个网络的路由条目。如果在路由器上目的网络的路由条目不存在,数据包就会被转发到默认网关。如果没有默认网关,则数据包就会被丢弃。
路由器中转发数据包所依据的路由条目就组成了路由器的路由表。
路由器的路由表存储下列信息。
路由器的路由表中的条目主要包括以下三个信息。
从R1的路由表中可以看出,直连路由条目有两条,如表所示。
因特网是一组网络或者自制系统的集合,在因特网中,实现这些网络互连的关键就是网络协议,IP协议就是实现网络互连的最关键协议。
IP协议是TCP/IP协议族的核心,它提供了一种无连接、不可靠的IP数据包服务,不管主机处于哪个网络,要将数据发送到哪个网络,都必须以IP报文的形式从源端到目的端进行发送。
互连网协议(Internet Protocol,IP)是网络层最重要的协议,可把多个网络或者自制系统连成一个网络,可以把高层(传输层以上)的数据以多个数据报的形式通过互联网发送出去。
网络层的主要功能都是以IP为基础的,主要负责IP寻址、路由选择和IP数据报的分片和重组。
IP数据报是通过封装为物理帧来传输的。由于因特网是通过各种不同的物理网络技术互连起来的,在因特网的不同部分,物理帧的大小(MTU,最大传输单元)各不相同。为了合理利用物理网络的传输数据能力,IP模块所在的物理网络以MTU这个参数作为依据来确定IP数据报的大小。
当数据报的大小超过了MTU的值时,就可能出现IP数据报的分段与重组操作。
在IP报文首部中有标识、标志、片偏移三个字段,是用来说明IP数据报分片与重组过程的参数。IP数据报在传输过程中,一旦被分片,各个分片就作为独立的IP数据报进行传输,在到达目的主机之前有可能会被再次或多次分片。但IP分片的重组都是在目的主机完成的。
为了观察IP数据报分片与重组的过程,在Packet Tracer中搭建如下拓扑,路由器基本的配置已经完成,如图所示。
首先查看一下路由器Router的以太网接口Fastethernet0/0接口模块的MTU参数,输入命令show interface fastethernet0/0,查看结果,如图所示。
从参数中可以看出,路由器以太网接口的MTU值是1 500字节。然后把Packet Tracer模拟器切换到Simulation模式,创建一个复杂的数据包,大小为1 600(大于MTU值)字节,如图所示。
Simulation结果如图所示,从中可以看出,IP数据报被分片为两个数据包。
打开两个分片数据报(单击Info下面正方形图案),查看分片的三个标识域,如图所示。
从中可以看出,两个分片的标识域都是0x3,说明它们是同一个IP数据报的分片;第一个分片标志域为0x1,说明其后还有分片;第二个分片标志域为0x0,说明其后没有分片了,它是最后一个分片。第一个分片片偏移为0x0,说明它是第一个分片;第二个分片片偏移为0x5c8,说明它在分片中的位置,转换为十进制为1 480(IP数据报首部20字节,所以第二个数据分片位置不是1 500,而是1 480)。
IP对数据报的处理分为两种:一是主机对数据报进行处理;另一种是网关对数据报进行处理。
当IP数据报到达主机时,如果IP数据报的目的地址与主机相同,主机接收该数据报并将它转给高层协议处理,否则将丢弃该数据报。
如果是网关接收到的数据报,网关首先判断是否本机是数据报中的目的地址,如果不是,则将数据继续转发,转发过程则由路由器控制。
地址解析协议(Address Resolution Protocol,ARP),是将IP地址解析为MAC地址的一个关键协议。
ARP协议的基本功能有以下两个:
在TCP/IP网络环境下,每个主机都需要分配一个32比特的IP地址,这是网络层通信寻址的一种逻辑地址。为了让数据在物理网络上传输,必须知道彼此的物理地址。这样就存在把互联网地址变换为物理地址的地址转换问题。
在以太网环(Ethernet)境下,为了正确地向目的主机发送报文,就必须把32位的IP地址转换成48位的MAC地址DA。
每一个主机中都设有一个ARP高速缓存(ARP Cache),存有所在局域网上的各主机和路由器的IP地址到硬件地址的映射表。
当主机A欲向本局域网上的某个主机B发送IP数据报时,就先在其ARP高速缓存中查看有无主机B的IP地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入MAC帧,然后通过局域网将该MAC帧发往此硬件地址;如果没有,则广播发送一个ARP请求数据分组,ARP广播报文格式如图所示。
为了减少网络上的通信量,主机A在发送其ARP请求分组时,就将自己的IP地址和硬件地址都写入ARP请求分组。
当主机B收到主机A的ARP请求分组时,就将主机A的这一地址映射写入主机B自己的ARP高速缓存中,主机B以后向A发送数据报时可从高速缓存读取。
主机B向主机A发送ARP应答分组,其中包括IP地址和对应的硬件地址。
为了方便理解ARP协议的工作原理,在Packet Tracer模拟器中搭建如图所示拓扑。
首先,在主机 A 的命令行中输入“arp-a”命令查看其 ARP 高速缓存,结果如图所示,ARP缓存中无任务信息。
把Packet Tracer模拟器切换到Simulation模式,发送一个简单PDU,从主机A到主机B,观察其动画效果,可以发现主机A发送了一个ARP广播报文,其他所有的主机都可以收到,如图所示,广播报文的内容如图所示。
从报文中看出,目的地IP地址是192.168.1.2,目的地MAC未知,以零填充,源IP地址为192.168.1.1,源MAC地址为000C.CFE9.5A0C,其二层以太网帧如图所示,目的地地址是一个全1的广播帧,目的地地址为FFFF.FFFF.FFFF。
其他主机收到广播保报文后都丢弃了报文,只有主机B做出了回应(因为A发送的PDU的目的IP地址是主机B的地址),主机B的ARP响应报文如图所示。
通信结束后再次查看主机A的ARP缓存,如图所示,主机A已经把主机B的IP地址与MAC地址的映射关系存储下来了。
应该注意的是,ARP 是解决同一个网络上的主机或路由器的IP地址和硬件地址的映射问题。
如果所要找的主机和源主机不在同一个局域网上,那么就要通过ARP找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。
为了提高IP数据报交付成功的机会,在网际层使用了因特网控制报文协议(Internet Control Message Protocol,ICMP)。ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。ICMP 不是高层协议,而是网络层的协议。ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去,图所示为ICMP报文格式。
ICMP报文的种类有以下两种:
ICMP报文的前4字节是统一的格式,共有类型、代码和检验和三个字段;接着的4字节的内容与ICMP的类型有关,ICMP询问报文一般是询问和应答成对使用的。
ICMP是TCP/IP协议族的消息协议。ICMP提供控制和错误消息,由ping和traceroute实用程序使用。虽然ICMP使用IP数据报承载,但它实际上是TCP/IP协议族中独立的第三层协议。
PING(Packet InterNet Groper)用来测试两个主机之间的连通性。PING使用了ICMP 回送请求与回答报文。PING是应用层直接使用网络层ICMP的例子,它没有通过传输层的TCP或UDP。当网络中存在网关或防火墙时,由于其防护和数据包过滤功能,连通性测试结果可能不正确。
其正确实用格式为ping
因特网组管理协议(Internet Group Management Protocol,IGMP)是在组播环境下使用的协议,IGMP使用IP数据报传递其报文(即IGMP 报文加上IP首部构成IP数据报),但它也向IP提供服务。
因特网支持两类组地址
IGMP分为以下两个阶段。
IP协议是因特网中的关键协议。现在广泛使用的是20世纪70年代末设计的IPv4,从计算机本身发展以及从因特网规模和网络传输速率来看,现在IPv4 已很不适用,其中最主要的问题是32比特的IP地址空间已经无法满足迅速膨胀的因特网规模。
IPv6将首部长度变为固定的40字节,称为基本首部(Base Header)。将不必要的功能取消,首部的字段数减少到只有8个;取消了首部的检验和字段,加快了路由器处理数据报的速度;在基本首部的后面允许有零个或多个扩展首部,所有的扩展首部和数据合起来叫作数据报的有效载荷(Payload)或净负荷,图所示为IPv6首部格式。
IPv6的表示方法是:每个16 bit的值用十六进制值表示,各值之间用冒号分隔。例如,68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF。
IPv6地址可以使用零压缩(Zero Compression),即一连串连续的零可以用一对冒号所取代。FF05:0:0:0:0:0:0:B3可以写成:FF05::B3。在一个IPv6地址中,零压缩只能使用一次。
IPv6的设计可满足国际网络迅速膨胀的需求。但是,IPv6的实施缓慢,目前IPv4网络还将延续一段时间。不过,IPv6最终取代IPv4的必然趋势是不会改变的,IPv6必将成为未来网络的国际协议。