网络层---计算机网络
由于用户需求是多样的,没有一种单一的网络能适应所有用户的需求。网络层所要完成的任务之一就是使这些异构的网络实现互联。所谓网络的互联是指将两个以上的计算机网络,通过一定的方法,用一种或多种通信处理设备(中间设备)相互联接起来,以构成更大的网络系统。中间设备又称为中间系统或中继系统。根据中继系统所在层次,有以下四种不同的中继系统。
1)物理层中继系统:中继器、集线器
2)数据链路层中继系统:网桥和交换机
3)网络层中继系统:路由器
4)网络层以上的中继系统:网关。
网络层互联通常指用路由器进行网络互联和路由选择。
路由器主要完成两个功能:一是路由选择,另一个是分组转发。
1)路由选择:指按照复杂的分布式算法,根据从各相邻路由器所得到的关于整个网络拓扑的变化情况,动态地改变所选择的路由。
2)分组转发:指路由器根据转发表将用户的IP数据报从合适的端口转发出去。
拥塞控制主要解决的问题是如何获取网络中发生拥塞的信息,从而利用这些信息进行控制,以避免由于拥塞而出现分组的丢失以及严重拥塞而产生网络死锁的现象。
流量控制和拥塞控制的区别:流量控制往往是指在发送端和接收端之间的点对点通信量的控制。流量控制所要做的就是抑制发送端发送数据的速率,以便接收端来得及接收。而拥塞控制必须确保通信子网能够传送待传送的数据,是一个全局性的问题,涉及网络中所有的主机、路由器以及导致网络传输能力下降的所有因素。
拥塞控制的两种方法:
1)开环控制:在设计网络时事先将有关发生拥塞的因素考虑周到,力求网络在工作时不产生拥塞。它是一种静态的预防方法,一旦整个系统启动并运行起来,中途就不再需要修改。开环控制手段可包括确定何时可接收新流量、何时可丢弃分组及丢弃哪些分组,确定何种调度决策等。这些手段的共性是:在做决定时不考虑当前网络的状态。
2)闭环控制:事先不考虑有关发生拥塞的各种因素,采用检测网络系统去监视,及时检测到哪里发生拥塞,然后将拥塞信息传到合适的地方,以便调整网络系统的运行,并解决出现的问题。闭环控制是基于反馈环路的概念,是一种动态的方法。
路由器转发分组是通过路由表转发的,而路由表是通过各种算法得到的。从能否随网络的通信量或拓扑自适应地进行调整变化来划分,路由算法可分类两大类:静态路由算法(非自适应路由算法)和动态路由算法(自适应路由算法)。前者指的是网络管理员手工配置的路由信息,当发生变化时,网络管理员需要手工去修改静态路由信息,对大型复杂的网络环境而言,一方面网络管理员难以全面地了解整个网络的拓扑结构,另一方面调整的难度和复杂程度非常高。 后者是按照一定的算法优化出来的,这些路由信息是在一定时间间隙里不断更新,以适应不断变化的网络,以随时获得最有的寻路效果。常用的动态路由算法可分为两类:距离-向量路由算法和链路状态路由算法。
距离-向量路由算法:所有结点都定期地将它们的整个路由选择表传送给所有与之直接相邻的结点。路由选择表包括:每条路径的目的地、路径的代价。距离-向量路由算法实质上是迭代计算一条路由中的站段数或延迟时间,从而得到到达一个目标的最短通路。常见的距离-向量路由算法是RIP算法,它采用“跳数”作为距离的度量。
链路状态路由算法:链路状态路由算法要求每个参与该算法的结点都有完全的网络拓扑信息,他们执行下述两项任务。第一,主动测试所有邻接节点的状态。两个共享一条链路的结点是相邻结点,它们连接到同一条链路,或者连接到同一广播型物理挽留过。第二:定期地将链路状态传播给所有其他的结点(或称路由结点)。典型的联络状态算法是OSPF算法。可伸展性好,应用于大型的或路由信息变化聚敛的互联网环境。具有三个特征:
1)向本自治系统中所有路由器发送信息,这里使用的方式是泛洪法,即路由器通过所有端口向所有相邻的路由器发送信息,而每一个相邻路由器又将此信息发往其所有相邻路由器(但不再发送给刚刚发来信息的那个路由器)
2)发送的信息就是与路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。
3)只有当链路发生变化时,路由器才向所有路由器发送此信息。
两者的对比:前者,每个结点仅与它的直接邻居交谈,为它的邻居提供了从自己到网络中所有其他结点的最低费用估计。后者每个结点通过广播的方式与所有其他结点交谈,但仅告诉它们与它直接相连的链路的费用。相比之下,距离-向量路由算法有可能遇到路由环路等问题。
层次路由
当网络规模扩大时,路由器的路由表成比例地增大,这不仅消耗越来越多的路由器缓冲区间,而且需要用更多CPU时间来扫描路由表,用更多的带宽来交换路由状态信息。因此路由选择必须按照层次的方式进行。
因特网将整个互联网划分为许多较小的自治系统,每个自治系统有权自主地决定本系统内应采用何种路由选择协议。如果两个自治系统需要通信,就需要一种在两个自治系统之间的协议来屏蔽这些差异。据此,因特网把路由选择协议划分为两大类:
1)一个自治系统内部所使用的路由选择协议称为内部网关协议(IGP),也称为域内路由选择,具体的协议有RIP和OSPF等。
2)自治系统之间所使用的二路由选择协议称为外部网关协议(EGP),也称为域间路由选择,用于不同自治系统的路由器之间交换路由信息,并负责为分组在不同自治系统之间选择最优的路径。具体的协议有BGP。
IPv4,即普遍使用的IP协议,IP协议定义数据传送的基本单元—IP分组及其确切的数据格式。IP协议也包括一套规则,指明分组如何处理、错误怎样控制。特别是IP协议还包含非可靠投递的思想,以及此关联的分组路由选择的思想。
1.IPv4分组的格式
一个IP分组由首部和数据两部分组成。首部的前一部分是固定长度的,共20字节,是所有IP分组必须具有的。在首部固定部分的后面是一些可选字段,其长度是可变的,用来提供错误检测及安全等机制。
IP首部的部分重要字段含义图:
在IP数据报首部中有三个关于长度的标记,一个是首部长度、一个是总长度、一个是片偏移,基本单位分别为4B,1B、8B。
2.IP数据报分片
一个链路层数据报能承载的最大数据量称为最大传送单元(MTU)。因为IP数据报被封装在链路层数据报中,故链路层的MTU严格地限制着IP数据报的长度,而且在IP数据报的源于目的地路径上的各段链路可能使用不同的链路层协议,有不同的MTU。当IP数据报的总长度大于链路MTU,就需要将IP数据报中的数据分装在两个或更多个较小的IP数据报中,这些较小的数据报叫做片。
3.网络层转发分组的流程
网络层的路由器执行的分组转发算法如下:
1)从数据报的首部提取目的主机IP地址D,得出目的网络地址为N。
2)若网络N与此路由器直接相连,则把数据报直接交付目的主机D;否则是间接交付,执行3)
3)若路由表中有目的地址为D的特定主机路由(对特定的目的主机致命一个特定的路由,通常是为了控制或测试网络,或处于安全考虑才采用的),则把数据报传送给路由表中所指明的下一跳路由器;否则,执行4)
4)若路由表中有到达网络N的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行5)
5)若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器,否则,执行6)
6)报告转发分组出错。
1.IPv地址
连接在Internet中的每一台主机(或路由器)都分配一个32比特的全球唯一的标识符,即IP地址。传统的IP地址是分类的地址,分为A、B、C、D、E五类。都是由网络号和主机号组成。
网络号A:1-126 B:128-191 C:192-223 D:224-239 E:240-255
2.网络地址转换
网络地址转换(NAT)是通过将专用网络地址转换为公用地址,从而对外隐藏了内部管理的IP地址。它使得整个专用网只需要一个全球IP地址就可以与因特网连通,由于专用网本地IP地址是可重用的,所以NAT大大节省了IP地址的消耗。同时,它隐藏了内部网络结构,从而降低了内部网络收到攻击的风险。
1.子网划分
从1985年起,在IP地址中又增加了一个“子网号字段”,使两级IP地址变成为三级IP地址。
划分子网基本思路:属于一个单位内部的事情,对外仍然表现为没有划分子网的网络。从主机号借用若干个比特作为子网络。凡是从其他网络发送给本单位某个主机的IP数据报,仍然是根据IP数据报的目的网络号,先找到连接在本单位网络上的路由器。然后此路由器在收到IP数据报后,再按目的网络号和子网号找到目的子网。
2.子网掩码
子网掩码中1对应于IP地址中的网络号及子网号,0对应主机号。只需将IP地址和其对应的子网掩码相“与”,就可以得到相应子网的网络地址。
3.无分类编址CIDR
无分类域间选择(CIDR)是在变长子网编码的基础上提出的一种消除A、B、C类网络划分,并且可以在软件的支持下实现超网构造的一种IP地址的划分方法。
CIDR有点在于网络前缀长度的灵活性。最长前缀匹配(最佳匹配):使用CIDR时,路由表中的每个项目由网络前缀和下一跳地址组成。在查找路由表时可能会得到不止一个匹配结果。应当从匹配结果中选择具有最长网络前缀的路由,因为网络前缀越长,其地址块越小,路由就越具体。
CIDR查找路由表的方法:为了进行更加有效的查找最长前缀匹配,通常是将无分类编址的路由表存放在一种层次的数据结构中,然后自上而下地按层次进行查找。这里最常用的数据结构就是二叉线索。
1.IP地址与硬件地址
IP地址是网络层使用的地址,它是分层次等级的。硬件地址是数据链路层使用的地址(如MAC地址),它是平面式的。在网络层及网络层之上使用IP地址,IP地址放在IP数据报的首部,而MAC地址放在MAC帧的首部。通过数据封装,把IP数据报分组封装成为MAC帧之后,数据链路层看不见数据报分组中的IP地址。
注意:路由器由于互联多个网络,因此它不仅有多个IP地址,也有多个硬件地址。
2.地址解析协议ARP
无论网络层使用设么协议,在实际网络的链路上传送数据帧时,最终必须使用硬件地址。所以需要一种方法来完成IP地址到MAC地址的映射,这就是地址解析协议ARP。每个主机都设有一个ARP高速缓存,存放本局域网上各主机和路由器的IP地址到MAC地址的映射,称ARP表。使用ARP协议来动态维护此ARP表。(工作在网络层)。
工作原理:当主机A欲向本局域网上的某个主机B发送IP数据报时,就先在其ARP高速缓存中查看有无主机B的IP地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入MAC帧,然后通过局域网将该MAC帧发往此硬件地址。如果没有,就通过使用目的MAC地址为FF-FF-FF-FF-FF-FF的帧来封装并广播ARP请求分组,可以使同一个局域网里的所有主机收到ARP请求。当主机B收到该ARP请求后,就会向主机A发出相应ARP分组,分组中包含主机B的IP与MAC地址的映射关系,主机A在收到后将此映射写入ARP缓存中红,然后按照查询到的硬件地址发送MAC帧。
3.动态主机配置协议DHCP
动态主机配置协议常用于给主机动态地分配IP地址,它提供了即插即用联网的机制,这种机制允许一台计算机加入新的网络和获取IP地址而不用手工参与。DHCP是应用层协议,基于UDP的。
工作原理:它使用客户/服务器方式。需要IP地址的主机在启动时就向DHCP服务器广播发送发现报文,这时该主机就称为DHCP客户。本地网络上所有主机都能收到此广播报文,但只有DHCP服务器才回答此广播报文。DHCP服务器先在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息。若找不到,则从服务器的IP地址池中取一个地址分配给该计算机。DHCP服务器的回答报文叫做提供报文。
4.网际控制报文协议ICMP
为了提高IP数据报交付成功的机会,在网络层使用了网际控制报文协议ICMP来允许主机或路由器报告差错和异常情况。ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去。ICMP协议是IP层协议。
ICMP报文的种类有两种,即ICMP差错报告报文和ICMP询问报文。
ICMP差错报告报文用于目标主机或到目标主机路径上的路由器向源主机报告差错和异常情况,共有五种类型:
1)终点不可达
2)源点抑制
3)时间超时
4)参数问题
5)改变路由(重定向)
ICMP询问报文有四种类型:回送请求和回答报文、时间戳请求和回答报文、掩码地址请求和回答报文、路由器询问和通告报文,最常用的是前两类。
ICMP的两个常见的应用是分组网间探测PING(用来测试两个主机之间的连通性)和traceroute(UNIX中的名字,在Windows中是tracert,可以用来跟踪分组经过的路由)。其中PING使用了ICMP回送报文和回答报文,traceroute(tracert)使用了ICMP时间超过报文。 PING工作在应用层,它直接使用网络层的ICMP协议,而没有使用传输层的TCP或UDP协议。Traceroute/tracert工作在网络层。4.IPv6 4.1 IPv6主要特点
要解决IP地址耗尽的问题的措施有以下三种:1采用无类别CIDR,使IP地址的分配更加合理;2采用网络地址转换NAT方法以节省全球IP地址;3采用具有更大地址空间的新版本IP协议IPv6。前两者只是延长了IPv4地址分配结束的时间,只有第三种方法从根本上解决了IP地址的耗尽问题。
IPv6的主要特点如下:
1)更大的地址空间。IPv6将地址从IPv4的32位增大到了128位
2)扩展的地址层次结构
3)灵活的首部格式
4)改进的选项
5)允许协议继续扩充
6)支持即插即用(即自动配置)
7)支持资源的预分配
8)IPv6只有在包的源结点才能股份片,是端到端的,传输路径中的路由器不能分片,所以从一般意义上来讲,IPv6不允许分片。
9)IPv6首部长度必须是8B的整数倍,而IPv4首部是4B的整数倍
10)增加安全性。身份验证和保密功能是IPv6的关键特征。
IPv6数据报的目的地址可以是以下三种基本类型地址之一:
1)单播:传统的点对点通信
2)多播:多播是一点对多点的通信,分组被交付到一组计算机的每一个
3)任播:这是IPv6增加的一种类型。任播的目的站是一组计算机,但数据报在交付时只交付其中的一个,通常是距离最近的一个。
IPv6扩展了IPv4地址的分级概念:它使用了一下三个等级:第一级(*)指明全球都知道的公共拓扑。第二级(场点级)指明单个场点。第三极指明单个的网络接口。
IPv4向IPv6过度可以采用双协议栈和隧道技术两种策略:双协议栈是指在完全过度到IPv6之前,使一部分主机(或路由器)装有两个协议栈,一个IPv4和一个IPv6,通过双协议栈进行转换;隧道技术是将整个IPv6数据报封装发哦IPv4数据报的数据部分,这样使得IPv6数据报可以在IPv4网络的隧道中传输。
自治系统:在单一的技术管理下的一组路由器,而这些路由器使用一种AS内部的路由选择协议和共同的度量以确定分组在该AS内的路由,同时还使用一种AS之间的路由选择协议用以确定分组在AS之间的路由。
5.2 域内路由与域间路由自治系统内部的路由选择称域内路由选择,自治系统之间的路由选择称域间路由选择。
因特网有两大类路由选择协议:
1.内部网关协议(IGP)
目前这类路由选择协议使用得最多,如RIP协议和OSPF协议。
2.外部网关协议(EGP)
目前使用最多的外部网关协议是BGP-4
路由信息协议(RIP)是内部网关协议中最先得到广泛应用的协议,是一种分布式的基于距离向量的路由选择协议,其最大优点就是简单。
RIP协议的特点(注意与OSPF协议的特点比较):
1)仅和相邻路由器交换信息
2)路由器交换的信息是当前本路由器所知道的全部信息,即自己的路由表
3)按固定的时间间隔交换路由信息,如每隔30秒。
称RIP协议最终是收敛的,通过RIP歇息收敛之后,每隔路由器到每个目标网络的路由都是距离最短的,哪怕还存在另一条高速(低时延)但路由器较多的路由。
RIP协议的缺点
1)RIP限制了网络的规模,它能使用的最大距离为15(16表示不可达)
2)路由器之间交换的是路由器中的完整路由器,因此网络规模越大,开销也越大
3)当网络出现故障时,会出现慢收敛现象(即需要较长时间才能将此信息传送到所有路由器),俗称“坏消息传的慢”,使更新过程的收敛时间长。
RIP是应用层协议,它使用UDP传送数据(端口520)。RIP协议选择的路径不一定是时间最短的,但一定是具有最少路由器的路径。
1.OSPF协议的基本特点
开放最短路径优先协议是使用分布式链路状态路由算法的典型代表。
OSPF与RIP协议相比有以下4点主要区别:
1)OSPF向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法。而RIP协议是仅仅向自己相邻的几个路由器发送信息。
2)发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。
3)只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息,并且更新收敛得快,不会出现RIP协议“坏消息传得慢”的问题。
4)OSPF是网络层协议,它不使用UDP或TCP而是直接IP数据报传送。
除以上区别外,OSPF还有以下的特点:
1)OSPF对不同的链路可根据IP分组的不同服务类型(TOS)而设置成不同的代价。因此,OSPF对于不同类型的业务可计算出不同的路由,因此十分灵活。
2)如果到同一目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径。这叫做多路径间的负载平衡。
3)所有在OSPF路由器之间交换的分组都具有鉴别的功能,因而保证了仅在可信赖的路由器之间交换链路状态信息。
4)支持可变长度的子网划分和无分类编址CIDR
5)每一个链路状态都带上一个32位的序号,序号越大状态就越新。
2.OSPF的基本工作原理
由于各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库。这个数据库实际上就是全网的拓扑结构图,它在全网范围内是一致的。(这称为链路状态数据库的同步),然后,每个路由器就根据这个全网拓扑结构图,使用Dijkstra最段露泾算法从自己到各目的网络最优路径。以此构造自己的路由表。在此之后,当链路状态发生变化时,每个路由器重新计算到各目的网络的最优路径,构造新的路由表。
3.OSPF的五种分组类型
OSPF共有以下五种分组类型:
1)问候分组,用来发现和维持邻站的可达性
2)数据库描述分组,向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息。
3)链路状态qing分组,向对方请求发送某些链路状态项目的详细信息
4)链路状态更新分组,用洪泛法对全网更新链路状态
5)链路状态确认分组,对链路更新分组的确认。
边界网关协议是不同自治系统的路由器之间交换路由信息的协议。外部网关协议,边界网关协议常常应用于互联网的网关之间。路由表包含已知路由器的列表、路由器能够达到的地址以及到达每个路由器的路径的跳数。
边界网关协议BGP只能是力求寻找一条能够到达目的网络且比较好的路由,而并非要寻找一条最佳路由。BGP采用的是路径向量路由选择协议,它与距离向量协议和链路状态协议有很大区别。BGP协议是应用层协议,基于TCP的。
BGP工作原理:每一个自治系统的管理员要选择至少一个路由器(可以有多个)作为该自治系统的“BGP发言人”。一个BGP发言人与其他自治系统中的bGP发言人要交换路由信息,就要先建立TCP连接,然后在此连接上交换BGP报文以建立BGP会话,再利用BGP会话交换路由信息。当所有BGP发言人都相互交换网络可达性的信息后,各BGP发言人就可找出到达各个自治系统的比较好的路由。
BGP-4共使用四种报文:打开报文,更新报文,保活报文,通知报文。
人们需要的组播机制是让源计算机一次发送的单个分组可以抵达用一个组地址标识的若干台目标主机,并被它们正确接收。
6.2IP 组播地址IP组播地址使用D类地址格式,前四位1110,范围:224.0.0.0-239.255.255.255.每一个D类IP地址标志一个组播组。
由于组播IP地址与以太网硬件地址的映射关系不是唯一的,因此受到组播数据报的主句,还要在IP层利用软件进行过滤,把不是本主机要接收的数据报丢弃。
为了使路由器知道组播组成员的信息,需要利用到IGMP协议。连接在局域网上的组播路由器还必须和因特网上的其他组播路由器协同工作,以便把组播数据报用最小代价传送给所有的组成员,这就需要使用组播路由选择协议。IGMP协议是让连接在本地局域网上的组播路由器知道本局域网上是否有主机参加或退出了某个组播组。
IGMP应视作TCP/IP协议的一部分,其工作可分为两个阶段。
第一阶段:当某个主机加入新的组播组时,该主句应向组播组的组播地址发送一个IGMP报文,生命自己要成为该组的成员。
第二阶段:因为组成员关系时动态的,本地组播路由器要周期性地探寻本地局域网上的主机,以便知道这些主机是否还继续是组的成员。
支持移动性的因特网体系结构与协议被共同称为移动IP。
7.2 移动IP通信过程移动IP技术的基本通信流程如下:
1)移动结点在本地网,按传统的TCP/IP方式进行通信
2)移动结点漫游到一个外地网络,仍然使用固定的IP地址进行通信。
3)本地代理接收来自转交地址的注册后,会构建一条通向转交地址的隧道,将截获的发送给移动结点的IP分组通过隧道送到转交地址处。
4)在转交地址处解除隧道封装,恢复出原始的IP分组,最后送到移动结点,这样移动结点在外网就能够收到这些发送给它的IP分组。
5)移动结点在外网通过外网的路由器或者外代理向通信对端发送IP数据报
6)当移动结点来到另一个外网时,只需要向本地代理更新注册的转交地址,就可以继续通信
7)当移动结点回到本地网时,移动结点向本地代理注销转交地址,这时移动结点又将使用传统的TCP/IP方式进行同行。
移动IP为移动主机设置了两个IP地址,即主地址和辅地址(转交地址)。移动主句在本地网,使用主地址,当移动到零壹网络,需要获得一个临时的辅地址,但主地址不变。
路由器是一种具有多个输入输出端口的专用计算机,其任务是连接不同的网络(连接异构网络)并完成路由转发。在多个逻辑网络(即多个广播域)互联时必须使用路由器。路由器也可以作为最基础的包过滤防火墙应用。
8.2 路由表与路由转发转发和路由选择的区别:“转发”是路由器根据转发表把收到的IP数据报从合适的端口转发出去,它涉及到一个路由器。而“路由选择”则涉及到很多路由器,路由表是许多路由器协同工作的结果。
上一篇: IP分配及网段划分