网络层提供的两种服务
在计算机网络领域,网络层应该向运输层提供面向连接还是无连接的服务曾引起了长期的争论。
一种观点:让网络负责可靠交付,使用面向连接的通信方式。通信之前先建立虚电路,以保证双方通信所需的一切网络资源。如果再使用可靠传输的网络协议,就可以使所发送的分组无差错按序到达终点,不丢失,不重复。虚电路表示这只是一条逻辑上的链接,分组沿着这条逻辑链接按照存储转发方式发送,而不是真正建立了一条物理连接。因此分组交换的虚连接和电路交换的连接只是类似,但并不完全一样。
另一种观点:网络提供数据报服务。网络层向上层只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。网络在分组时不需要先建立连接,每一个分组(IP数据报)独立发送,与其前后的分组无关(不进行编号)。网络层不提供服务质量的承诺,即所传送的分组可能出错、丢失、重复和失序,也不能保证分组传送的时限。由于传输网络不提供端到端的可靠传输,这就使网络中的路由器可以做的比较简单,而且价格低廉。如果主机(即端系统)中的进程之间的通信使可靠的,那么就有运输层负责可靠传输。这种方式网络的造假大大降低,运行方式灵活,能适应多种应用。
网际协议IP
网际协议IP是TCP/IP体系中两个最主要的协定之一。与IP协议配套使用的还有三个协议:地址解析协议ARP(Address Resolution Protocol),网际控制报文协议ICMP(Internet Control Message Protocol),网际组管理协议IGMP(Internet Group Management Protocol)。
下层为上层提供服务,所以ARP为IP提供服务,IP又为ICMP,IGMP提供服务
虚拟互联网络
将异构的网络互相连接起来。
五种不同的中间设备(中间系统/中继系统):物理层转发器,数据链路层网桥或桥接器,网络层路由器,网桥和路由器的混合物桥路器,网络层以上网关。
当中继系统是转发器或网桥是,一般并不称之为网络互连,因为这仅仅是吧一个网络扩大了,而这仍然是一个网络。网络互连都是指用路由器进行网络互连和路由选择。将网络层使用的路由器称为网关。
所谓虚拟互联网络也就是逻辑互联网,他的意思就是互连起来的各种物理网络的异构型是客观存在的,但我们利用IP协议就可以使这些性能各异的网络从用户看起来好像是一个统一的网络。使用IP协议的虚拟互联网络简称为IP网。使用虚拟互联网络的好处是:当互联网上的主机进行通信时,就好像在一个网络上通信一样,而看不见互连的各具体的网络异构细节。如果在这种覆盖全球的IP网上层使用TCP协议,那么就是现在的互联网。
分类的IP地址
IP地址及其表示方法
IP地址就是给每个连接在互联网上的主机或路由器分配一个全世界范围内唯一的32为标识符,由互联网名字和数字分配机构进行分配。
IP地址的编址方法
分类的IP地址:最基本的编制方法。
子网划分:对基本的编址方法的改进。
构成超网:无分类编址方法。
分类IP地址
将IP地址划分为若干个固定类。每一类地址都由两个固定长度的字段组成,其中一个字段是网络号net-id,标志主机或路由器所连接到的网络;另一个字段是主机号host-id,标志该主机或路由器。网络号所指明的网络范围必须是唯一的。因此一个IP地址在整个互联网内是唯一的。
分类IP地址的网络号字段和主机号字段:
A类地址的网络号字段net-id为1字节,主机号字段host-id为3字节;B类地址的网络号字段net-id为2字节,主机号字段host-id为2字节;C类地址的网络号字段net-id为3字节,主机号字段host-id为1字节;D类是多播地址;E类保留为今后使用。采用点分十进制记法,每8位二进制为一组转为为十进制数。
IP地址的重要特点
- IP地址是一种分等级的地址结构,好处是:1.IP地址管理机构在分配IP地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配,方便了IP地址管理。2.7路由器仅根据目的主机所连接的网络号来转发分组(不考虑主机号),这样就可以使路由表中的项目数大幅度减少,减少了路由表所占的存储空间。
- 实际上IP地址是标志一个主机或路由器和一条链路的接口 。当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的IP地址,其网络号必须是不同的,这种主机称为对归属主机。由于一个路由器至少应当连接到两个网路(这样它才能将IP数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的IP地址。
- 用转发器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号net-id。
- 所有分配到网络号net-id的网络,无论是范围很小的局域网还是可能覆盖很大地理范围的广域网,都是平等的。
互联网中的IP地址
在同一个局域网上的主机或路由器的IP地址中的网络号必须是一样的。路由器总是具有两个或两个以上的IP地址。路由器的每一个接口都有一个不同网路号的IP地址。两个路由器直接相连的接口处可指明也可不指明IP地址。如指明IP地址,则这一段连线就构成了一种只包含一段特殊线路的特殊”网络“。现在常不知名IP地址。
IP地址与硬件地址
IP地址与硬件地址是不同的地址。从层次的角度看,硬件地址(物理地址)是数据链路层和物理层使用的地址;IP地址是网络层和以上各层使用的地址,是一种逻辑地址(用软件实现的)。路由器只根据目的站的IP地址的网络号进行路由选择。在具体的物理网络的链路层只能看见MAC帧而看不见IP数据报。
地址解析协议ARP
通信时使用了两个地址:IP地址(网络层地址),MAC地址(数据链路层地址)。地址解析协议ARP从网络层使用的IP地址解析出在数据链路层使用的硬件地址(根据IP找MAC)。
每个主句都设有一个ARP高速缓存,里面有所在的局域网上的各主机和路由器的IP地址到硬件地址的映射表<IP address;MAC address;TTL(Time To Tive地址有效应映射时间)>。
地址解析协议ARP要点:
当主机A欲向本局域网上的某个主机B发送IP数据报时,就先在其ARP高速缓存中查看有无主机B的IP地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入MAC帧,然后通过局域网将该MAC帧发往此硬件。如没有,ARP进程在本局域网上广播发送一个ARP请求分组,收到AQP响应分组后,将得到的IP地址到硬件地址的映射写入ARP高速缓存。
ARP请求分组:包含发送方硬件地址,发送方IP地址,目标方硬件地址(未知时填0),目标IP地址。
本地广播ARP请求。路由器不转发ARP请求。
ARP响应分组:包含发送方硬件地址,发送方IP地址,目标硬件地址,目标IP地址。
ARP分组封装在物理网络的帧中传输。
ARP高速缓存的作用:
存放最近获得的IP地址到MAC地址的绑定,以减少ARP广播的数量。
为了减少网络上的通信量,主机A在发送其ARP请求分组时,就将自己的IP地址到硬件地址的映射写入ARP请求分组。当主机B收到A的ARP请求分组时,就将主机A的地址映射写入主机B自己的ARP高速缓存中,这对主机B以后向主机A发送数据报时就更方便了。
ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题(网络号net-id相同)。如果要找的主机和源主机不在同一局域网上,那么就要通过ARP找到一个位于本局域网的某个路由器的硬件地址,然后把分组发送给路由器,让这个路由器转发给下一个网络。
从IP地址到硬件地址的解析是自动的,主机的用户对这种地址解析过程是不知道的。只要主机或路由器要和本网络上的另一个已知IP地址的主机或路由器通信,ARP就会自动地将该IP地址解析为链路层所需要的硬件地址。
IP数据报的格式
一个IP数据报由首部和数据两部分组成。首部地前一部分是固定长度,共20字节,是所有IP数据报必须具有的。在首部的固定部分地后面是一些可选字段,其长度是可变的。
版本---占4位,指IP协议的版本,目前为IPv4。
首部长度---占4位,可表示的最大数值是15个单位,一个单位为4字节,因此IP的首部长度最大值是60字节。
总长度---占16位,指首部和数据之和的长度,单位为字节,数据报的最大长度为2^16-1=65535字节,总长度必须不超过最大传送单元MTU(数据链路层使用CSMA/CD协议的的MAC帧的有效长度为64~1518字节,IP数据报部分为46~1500字节)。
标识---占16位,是一个计数器,用来产生IP数据报的标识。
标志(flag)---占3位,最低位MF(more fragment),MF=1表示后面还有分片,=0表示最后一个分片。中间位DF(don't fragment),DF=0时才允许分片。
片偏移---占13位,指出较长的分组在分片后某片在原分组中的相对位置。片偏移以8个字节为偏移单位。
生存时间---占8位,记为TTL,指数据报在网路中可通过的路由器数的最大值。
协议---占8位,指出数据报携带的数据使用何种协议,以便目的主机的IP层将数据部分上交给那个处理过程。
首部检验和---占16位,只检验数据报的首部,不检验数据部分。这里不采用CRC。
划分子网和构造超网
划分子网
在IP地址中增加一个”子网号段“,使两级的IP地址变为三级的IP地址。这种做法叫做子网划分。
划分子网的基本思路:
划分子网纯属于一个单位内部的事情,单位对外仍然表现为没有划分子网的网络。从主机号借用若干个位作为子网号subnet-id,而主机号host-id也就相应的减少了若干位。
凡是从其他网络发送给本单位某个主机的IP数据报,仍然是根据IP数据报的目的网络号net-id先找到连接在本单位网络上的路由器。然后此路由器在收到IP数据报后,再按目的网络号net-id和收到的子网号subnet-id找到目的子网。最后将IP数据报直接交付给目的主机。
优点:减少了IP地址的浪费;使网络的组织更加灵活;更便于维护和管理。
子网掩码
从一个IP数据报的首部并无法判断主机或目的主机所连接的网络是否进行了子网划分。使用子网掩码可以找出IP地址中的子网部分。
子网掩码长度32位。某位=1表示IP地址中的对应位为网络号和子网号;某=0表示IP地址中的对应位为主机号。IP地址 AND 子网掩码 = 网络地址。逻辑与运算:全1为1,有0则0。
子网掩码是一个网络或一个子网的重要属性。路由器在和相邻路由器交换路由信息时,必须把自己所在网络或子网的子网掩码告诉相邻路由器。路由器的路由表中的每一个项目,除了要给出目的网络地址外,还必须同时给出该网络的子网掩码。若一个路由器连接在两个子网上就拥有两个网络地址和两个子网掩码。
子网划分方法
有固定长度子网和变长子网两种子网划分方法。采用固定长度子网时,所划分的所有子网的子网掩码都是相同的。划分子网增加了灵活性,但却减少了能够连接在网络上的主机总数。
- 需求分析:即每个单位或部门需要接入网络的计算机台数(记为K1),然后在此数字的基础上加3(广播地址,网络地址,网关;如果K1是主机数,则应加2,广播地址,网络地址),即为子网最少应包含IP地址的个数(记为K2)。
- 牢记特殊数字:4、8、16、32、64、128、256、512、1024、2^n。从这些数字中找出大于等于K2的最接近的那个数字。记为K3,则K3就是给该单位划分的子网中的总的IP个数,如果用2^n表示,则n就是该子网中主机位的位数,32-n就是网络前缀的位数。
- 找到IP地址中的关键字节(第一个主机位从哪里开始,该字节极为关键字节);基于网络前缀的位数m(m<8关键字节为第一个,8<=m<16关键字节为第二个,16<=m<24关键字节为第三个, m<=24关键字节为最后一个)。或者子网掩码中第一个不是255的数所在的字节,把此关键字变成二进制数,然后标出从哪一位开始是主机位。
- 按照先大后小的顺序一一解决每个单位所需的子网,从主机位开始借位,先借1位看能不能解决最大的需求问题,如果可以就把二进制位为1(也可以是0)的对应的子网给该部门,剩下的子网划分只能基于为0(或1)的这一位进行划分,如果剩下的子网需求个数超过1个,则必须在所借的第一位为0的基础上继续借位,在解决第二大需求,方法同上,直到划分出所有需求,然后对划分的没一个子网转变成十进制数来表示。
- 子网划分时应掌握:每个子网的网络地址、广播地址、总的IP个数、最多主机个数、最多可以接入计算机台数、网络前缀的位数、十进制表达的子网掩码、该子网可以使用的默认网关的IP地址范围。
使用子网分组的转发
在划分子网情况下路由器转发分组的算法:
1.从收到的分组的首部提取目的IP地址D。
2.先用各网络的子网掩码和D逐位相与,看是否和相应的网络地址匹配,若匹配则将分组直接交付。否则就是间接交付,执行3。
3.若路由表中有目的地址D的特定主机路由,则将分组传送给指明的下一跳路由器;否则执行4。
4.对路由表中的每一行,将子网掩码和D逐位相与,若结果与该行的目的网络地址匹配,则将分组传送给该行指明的下一跳路由器;否则执行5。
5.若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器;否则执行6。
6.转发分组出错。
无分类编址CIDR(构造超网)
使用变长子网掩码VLSM提高IP地址资源的利用率。在VLSM的基础上又进一步研究出无分类编制方法,它的正式名字是误分类域间路由选择CIDR(Classledd Iner-Domain Routing)。
CIDR消除了传统的A类、B类和C类地址以及子网划分的概念,可以更有效地分配IPV4的地址空间。CIDR使用各种长度的”网络前缀“来代替分类地址中的网络号和子网号。IP地址从三级编址(使用子网掩码)又回到了两级编址。
CIDR使用”斜线记法“,又称为CIDR记法,在IP地址面加上一个斜线/,然后协商网络前缀所占的位数(这个数值对应子网掩码中1的个数) 。例如”220.78.168.0/24“。也可以把点分十进制中地位连续的0省略,例如“10.0.0.0/10”可简写为“10/10”。网络前缀的后面加一个*,如“00001010 00*”,在*之前是网络前缀,*表示IP地址中的主机号,可以是任意值。
CIDR地址块
CIDR把网络前缀都相同的连续的IP地址组成”CIDR地址块“。例如:“128.14.32.0/20”表示的地址块由2^12个地址,20是网络位数,主机号是12位。
聚合路由
一个CIDR地址块可以表示很多地址,这种地址的聚合常称为路由聚合,路由聚合也称为构造超网。它使得路由表中的一个项目可以表示很多个原来传统分类地址的路由。
路由聚合有利于减少路由器之间的路由选择信息的交换,还可以提高路由选择的速度,从而提高了整个互联网的性能。
CIDR多数情况下仍然需要划分子网,仍然使用子网掩码。
特定主机路由
虽然互联网所有的分组转发都是基于目的主机所在的网络,但在绝大多数情况下都允许有这样的特里:为特定的目的主机指明一个路由。采用特定主机路由可使网络管理人员能更方便地控制网络和测试网络,同时也可在需要考虑某种安全问题时采用这种特定主机路由。
默认路由
采用默认路由以减少路由表所占用地空间和搜索路由表所用的时间。这种转发方式在一个网路只有很少的对外连接时是有用的。如果一个主机连接在一个小网络上,而这个网络只用一个路由器和互联网连接,那么在这种情况下使用默认路由是非常合适的。
构成超网
前缀长度不超过23位的CIDR地址块都包含了多个C(2^8)类地址。这些C类地址合起来就构成了超网。CIDR地址块中的IP地址数一定是2的整数次幂。2^n / 2^8 = 该地址所包含的C类网络个数。网络前缀越短,其地址块所包含的地址数越多。三级结构的IP地址中,划分子网是使网络前缀变长。
最长前缀匹配
使用CIDR时,路由表中的每个项目由“网络前缀”和“下一跳地址”组成,在查找路由表时可能会得到不止一个匹配结果。应当从匹配结果中选择具有最长网络前缀的路由:最长前缀匹配。网络前缀越长,其地址块就越小,因而路由就越具体。最长前缀匹配又称为最长匹配或最佳匹配。
IP层转发分组的流程
按主机所在的网络地址来制作路由表,根据网络地址就能确定下一跳路由器。
路由器可采用默认路由以减少路由表所占用的空间和搜索路由表所用的时间,适用于主机连接在一个小网络上,而这个网络只用一个路由器和互联网连接的情况。
路由表没有给分组指明到某个网络的完整路径。路由表指出,到某个网络应当先到某个路由器(即下一跳路由器)。在到达下一跳路由器后,再继续查找其路由表。这样一步步地查找下去,直到最后到达目的网络。
IP数据报的首部没有地方可以用来指明下一跳路由器的IP地址,当路由器收到待转发的数据报,不是将下一跳路由器的IP地址填入IP数据报,而是交给下层的网络接口软件,网络接口软件使用ARP将下一跳路由器的IP地址转换成硬件地址并封装成MAC帧,根据这个硬件地址找到下一跳路由器。
路由分组转发算法(路由器工作原理)
1.从数据报的首部提取出目的主机地IP地址D,得出目的网络地址为N。
2.若网络N为此路由器直接连接,则把数据报直接交给目的主机D;否则是间接交付,执行3。
3.若路由表中没有目的地址为D地特定主机路由,则把数据报传送给路由表中所指明地下一跳路由器;否则执行4。
4.若路由表中有到达网络N的路由,则把数据报传送给路由表指明的下一跳路由器;否则执行5。
5.若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由;否则执行6。
6.报转发分组出错。
网际控制报文协议ICMP
ICMP是互联网的标准协议,允许主机或路由器报告差错情况和提供有关异常情况的报告。ICMP报文装在IP数据报中,作为其中的数据部分 ,是IP层的协议。
ICMP报文分为差错报告报文和ICMP询问报文。差错报告报文有四种:终点不可达,时间超过,参数问题,改变路由(重定向)。询问报文有两种:回送请求和回答报文,时间戳请求和回答报文。
ICMP的应用举例:
PING:测试两个主机之间的连通性,使用了回送请求和回送回答报文。PING是应用层直接使用网络层ICMP的例子,没有通过运输层。
Traceroute(Windows:tracert):用来跟踪一个分组从源点到终点的路径。利用IP数据报中的TTL字段和ICMP时间超过差错报告报文实现对源点到终点的路径的跟踪。
互联网的路由选择
相关概念
静态路由选择策略:非自适应路由选择,简单开销小,但不能及时适应网络状态的变化。
动态路由选择策略:自适应路由选择,能较好的适应网络状态的变化,但实现起来较为复杂,开销较大。
互联网采用分层次的路由选择协议。
自治系统AS:单一的技术管理下的一组路由器。这些路由器使用一种AS内部的路由选择协议和共同的度量以确定分组在该AS内的路由,同时还使用一种AS之间的路由选择协议用以确定分组在AS之间的路由。一个AS对其他AS表现出的是单一的和一致的路由选择策略。把AS想象成移动,联通
互联网的两大路由选择协议:1.内部网关协议IGP:在一个AS内部使用的路由选择协议,具体的协议有多种,如RIP,OSPF协议。2.外部网关协议EGP:源站和目的站处在不同的自治系统中,将路由选择信息传递到另一个自治系统中,目前使用的协议是BGP。
内部网关协议RIP
工作原理:一种分布式的,基于距离向量的路由选择协议。RIP协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。
“距离”:从路由器到直接连接的网络距离定义为1。从一个路由器到非直接连接的网络的距离定义为所经过的路由器数+1.RIP协议中的“距离”也称为“跳数”,没经过一个路由器,条数+1。这里的距离指的是最短距离。
RIP协议的特点www:
- 仅和相邻路由器交换信息。who
- 交换的信息是当前本路由器所知道的全部信息,即自己的路由表。what
- 按固定的时间间隔交换路由信息。when
路由表的建立:
- 路由器在刚刚开始工作时,只知道直接连接的网络距离(此距离为1),他的路由表是空的。
- 以后,每一个路由器也只和数目非常有限的相邻路由器交换并更新信息。
- 经过若干次更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短路径距离和下一跳路由器的地址
- RIP协议的收敛过程很快:收敛就是在自治系统中所有结点都得到正确的路由选择信息的过程。
距离向量算法:
路由器收到相邻路由器(其地址为X)的一个RIP报文:
- 先修改次RIP报文中的所有项目:把下一跳字段中的地址都改为X,并把所有的距离字段的值+1。
- 对修改后的RIP报文中的每一个项目,重复一下步骤:若项目中的目的网络不在路由表中,则把该项目加到路由表中;若吓一跳字段给出的路由器地址是一样的,则把收到的项目替换原路由表中的项目;若收到项目中的距离小于路由表中的距离,则进行更新。
- 若3分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,将距离值为16
- 返回
RIP协议的优缺点:
优点:实现简单,开销较小。
缺点:RIP限制了网络的规模,最大距离为15,16不可达;路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的增大,开销也就增加;坏消息传播得慢,使更新过程的收敛时间过长;不支持链路负载均衡
内部网关协议OSPF开放最短路径优先
OSPF协议的基本特点:
- “开放”表明OSPF协议不是受某一家厂商控制,而是公开发表的。原理简单但实现复杂。
- “最短路径优先”是因为使用可迪杰斯特拉提出的最短路径算法SPF。注意,OSPF只是一个协议的名字,它并不代表其他的路由协议不是“最短路径优先”。
- 采用分布式的链路状态协议。
三个要点WWW:
- 使用洪泛法向本自治系统中所有路由器发送信息;who
- 发送的信息就是与本路由器相邻的所有路由器的链路状态(链路状态就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(为1-65535中的任何一个数,常基于链路带宽设定,数越小,表示代价越小)),但这只是路由器所知道的部分信息;what
- 只有当链路状态发生变化或每隔一段时,路由器才用洪泛法向所有路由器发送此信息。when
链路状态数据路:
由于各路由器之间频繁地交换链路状态信息,因此所有地 路由器最终都能建立一个链路状态数据库。这个数据库实际上就是全网地拓扑结构,它在全网范围内是一致的(称为链路状态数据库的同步)。OSPF的链路状态数据库能较快地进行更新,使个各路由器能即时更新其路由表。OSPF的更新过程收敛得快是其重要特点。
OSPF的区域:
为了使OSPF能够用于规模很大的网络,OSPF将一个自治系统再划分为若干个更小的范围叫做区域,每一个区域都有一个32位的区域标识符(点分十进制表示)。区域不能太大,在一个区域内的路由器最好不超过200个。
划分区域的好处就是将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个自治系统,减少了整个网络上的通信量。在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑情况,减少了需要维护的状态数量。缺点是交换信息的种类增多了,使OSPF协议更加复杂了。
OSPF使用层次结构的区域划分,在上层的区域叫做主干区域。主干区域的标识符规定为0.0.0.0.主干区域的作用是连通其他在下层的区域。层次划分区域的好处是:使每一个区域(最好不超过200台路由器)内部交换路由信息的通信量大大减小,因而使OSPF协议能够用于规模很大的自治系统中。
OSPF直接用IP数据报传送:
OSPF不用UDP而是直接用IP数据报传送。OSPF构成的数据报很短这样做可减少路由信息的通信量。数据报很短的另一个好处是可以不必将长的数据报分片传送。但分片传送的数据报只要丢失一个,就无法组装成原来的数据报,而整个数据报就必须重传。
OSPF的其他特点:
OPSF对不同的链路可根据IP分组的不同服务类型TOS而设置成不同的代价,因此OSPF对于不同类型的业务可计算出不同的路由。
如果到同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径,这叫做多路径间的负载均衡。
所有在OSPF路由器之间交换的分组都具有鉴别功能。
支持可变长度的子网划分和无分类编制CIDR。
每一个链路状态都带上一个32位的序号,序号越大状态就越新。
OSPF规定每隔一段时间要刷新一次数据库中的链路状态。
由于一个路由器的链路状态只涉及到与相邻路由器的联通状态,因而与整个互联网的规模并无直接联系。因此当互联网规模很大时,OSPF协议要比向量协议RIP好得多。
OSPF没有“坏消息传播得慢”的问题,据统计,其响应网络变化的时间小于100ms。
OSPF的五种分组类型:
类型1,问候分组;类型2,数据库描述分组;类型3,链路状态请求分组;类型4,链路状态更新分组,用洪泛法对全网更新链路状态;类型5,链路状态确认分组。
OSPF工作过程:
OSPF使用可靠的洪泛法发送更新分组:第一次先发给相邻的三个路由器,这三个路由器收到后再转发给他们下游的路由器,上游的不转发。
外部网关协议BGP
协议BGP的主要特点:
用于自治系统AS之间的路由选择。
只能是力求选择出一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要计算出一条最佳路由。互联网规模太大,是的自治系统AS之间路由选择非常困难,AS之间的路由选择必须考虑有关策略(政治,安全,经济)。
采用了路径向量路由选择协议。
IGP,iBGP和eBGP的关系:
在AS内部运行:内部网关协议IGP(OSPF或RIP),协议iBGP。
在AS之间运行:协议eBGP。
BGP路由信息:
BGP路由 = [前缀,BGP属性] = [前缀,AS-PATH,NEXT-HOP]
前缀:指明到哪一个子网(用CIDR记法表示)
BGP最重要的两个属性:自治系统路径AS-PATH,下一跳NEXT-HOP
不同的自治系统AS:
末梢AS:不会吧其他AS的分组再转发给另一个AS,必须向所连接的AS付费。
多归属AS:同时连接到两个或两个以上的AS,增加连接的可靠性。
穿越AS:为其他AS有偿分组转发。
对等AS:经过事先协商的两个AS,彼此之间的发送或接收都不收费。
BGP路由避免兜圈子:
AS检查收到的BGP路由的AS-PATH中已经有了自己,立即删除这条路有,从而避免兜圈子路由出现。
BGP的路由选择:
- 本地偏好值最高的路由(默认值=100)
- AS跳数最小的路由
- 使用热土豆路由算法(分组在AS内的转发次数最少)
- 路由器BGP ID数值最小的路由,具有多个接口的路由器有多个IP地址,BGP ID就使用该路由器的IP地址中数值最大的一个
路由器的构成:
路由器工作在网络层,用于互联网络,是互联网中的关键设备。路由器的主要工作是转发分组。
转发和路由选择地区别:
转发:根据转发表将用户的IP数据报从合适的端口转发出去,仅涉及到一个路由器。转发表是从路由表得出的。转发表必须包含转发功能所必须地信息,每一行必须包含从要到达的目的网路到输出端口的某些MAC地址信息(如下一跳的以太网地址)的映射。
路由选择:按照路由选择算法,根据网络拓扑的变化情况,动态地改变所选择的路由,并由此构造出整个的路由表。涉及到很多路由器。路由表一般仅包含从目的网络到下一跳(用IP地址表示)的映射。
常用的交换方法有三种:通过存储器,通过总线,通过纵横交换结构。
IPv6
解决IP地址耗尽的问题。IPV6仍支持无连接的传送,但将协议数据单元称为分组(数据报).
主要的变化:
- 更大的地址空间:IPv6将地址从IPv4的32位增大到了128位。
- 扩展的地址层次结构
- 灵活的首部格式:IPv6定义了许多可选的扩展首部。
- 改进的选项:IPv6允许数据报包含有选项的控制信息,其选项放在有效载荷中。
- 允许此协议继续扩充
- 支持即插即用
- 支持资源预分配:IPv6支持实时影响等要求,保证一定的带宽和时延的应用。
- IPv6首部改为8字节对齐:首部长度必须是8字节的整数倍,原来的IPv4首部是4字节对齐。
IPv6数据报的一般形式:
IPv6将首部长度变为固定的40字节(IPv4固定首部20字节+可变首部),成为基本首部。把首部中不必要的功能取消了,使得IPv6首部的字段数减少到只有8个。
IPv6对首部中的某些字段进行了如下更改:
- 取消了首部长度字段,因为首部固定长度40字节;
- 取消了服务类型字段;
- 取消了总长度字段,改用有效载荷长度字段;
- 把TTL字段改称为跳数限制字段;
- 取消了协议字段,改用下一个首部字段;
- 取消了检验和字段;
- 取消了选项字段,而用扩展首部来实现选项功能。
版本:4位,指明了协议的版本,对于IPv6该字段总是6。
通信量类:8位,为了区分不同的IPv6数据报的类别或优先级。
流标号:20位,“流”是互联网络上从特定源点到特定终点的一系列数据报,“流”所经过的路径上的路由器都保证指明地服务质量。所有属于同一个流的数据报都具有同样的流标号。
有效载荷长度:16位,指明IPv6数据报除基本首部以外的字节数,最大值是64KB。
下一个首部:8位,相当于IPv4的协议字段或可选字段。
跳数限制:8位,源站在数据报发出时即设定跳数限制。路由器在转发数据报时将跳数限制字段 中的值-1,当跳数限制的值为0时,就要将此数据报丢弃。
IPv6的扩展首部:
IPv6把与原来IPv4首部中选项的功能都放在扩展首部中,并将扩展首部留给路径两端的源站和目的站的主机来处理。数据报途径中经过的路由器都不处理这些扩展首部(除了逐跳选项扩展首部),这样大大提高了路由器的处理效率。
六种扩展首部:逐条选项,路由选择,分片,鉴别,封装安全有效载荷,目的站选项。
IPv6的地址:
IPv6数据报的目的地址可以是以下三种基本类型地址之一:
- 单播:传统的点对点通信
- 多播:一点对多点的通信
- 任播:任播的目的站是一组计算机,但数据包在交付时只交付其中的一个,通常是距离最近的一个。
结点与接口
IPv6将实现IPv6的主机和路由器均称为结点。一个结点就可能有多个与链路相连的接口。IPv6地址是分配给结点上面的接口的,一个接口可以有多个单播地址,其中的任何一个地址都可以当作到达该结点的目的地址,即一个结点接口的单播地址可以用来唯一的标志该结点。
冒号十六进制记法:
每个16位的值用十六进制表示,各值之间用冒号分隔。允许零压缩,但只能使用一次。CIDR的斜线表示法仍可用。
IPv6地址分类:
从IPv4向IPv6过渡
向IPv6过渡只能采用逐步演进的办法,同时,还必须使新安装的IPv6系统能够向后兼容:IPv6系统必须能够接受和转发IPv4分组,并且能够为IPv4分组选择路由。
两种向IPv6过渡的策略:双协议栈,隧道技术。
双协议栈:主机或路由器装有两个协议栈,一个IPv4和一个IPv6,同时具有两种IP地址,一个IP
v6地址一个IPv4地址。
隧道技术:把IPv6数据报封装成为IPv4数据报。
虚拟专用网VPN
由于IP地址紧缺,一个机构能够申请到的IP地址数远远小于本机构所拥有的主机数。考虑到互联网并不很安全,一个机构内也并不需要把所有的主机接入到外部的互联网。如果一个机构内部的计算机通信也是采用TCP/IP协议,那么这些仅在机构内部使用的计算机就可以由本机构自行分配其IP地址。
本地地址与全球地址
本地地址:仅在机构内部使用的IP地址,可以有本机构自行分配,而不需要向互联网的管理机构申请。
全球地址:全球唯一的IP地址,必须向互联网的管理机构申请。
RFC1918指明的专用IP地址:10.0.0.0/8~10.255.255.255(A类);172.16.0.0/12~172.31.255.255(B类);192.168.0.0/16~192.168.255.255(C类)
专用地址只能用作本地地址,而不能用作全球地址。互联网中的所有路由器对目的地址是专用地址的数据报一律不进行转发。采用专用IP地址的互连网络称为专用互联网或本地互联网或者专用网。专用IP地址而叫做可重用地址。
虚拟专用网VPN
利用公用的互联网作为本机构各专用网之间的通信在他,这样的专用网又称为虚拟专用网VPN。”专用网“是因为这种网络本身是为本机构的主机用于机构内部的通信,而不是用于和网络外非本机构的主机通信。”虚拟“表示”好像是“,但实际上并不是,因为现在并没有真正使用通信专线,而VPN只是在效果上和真正的专用网一样。
使用隧道技术实现虚拟专用网:
网络地址转换NAT
问题:在专用网上使用专用地址的主机如何与互联网上的主机通信(并不需要加密)? 解决:再申请一些全球IP地址,但不易实现;采用网络地址转换NAT。
1994年提出,需要在专用网连接到互联网的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址。所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址(源IP)转换成全球IP地址,才能和互联网连接。
网络地址转换过程
在内部主机与外部主机通信时,在NAT路由器上发生了两次地址转换:1.离开专用网时:替换源地址,将内部地址替换为全球地址;2.进入专用网时:替换目的地址,全球地址替换为内部地址。
网络地址与端口号转换NAPT
NAT并不能节省IP地址。NAPT可以使多台拥有本地地址的主机共用一个全球IP地址,同时和互联网上的不同主机进行通信。使用运输层端口号的NAT叫做网络地址与端口号转换NAPT,不使用端口号的NAT就叫做传统的NAT。
NAPT把专用网内不同的源IP地址都转换为相同的全球IP地址,将TCP源端口号转换为新的TCP端口号(互不相同)。收到从互联网发来的应答时,从IP数据报的数据部分找出运输层端口号,从NAPT转换表中找到正确的目的主机。