虚拟互联网的概念。
IP地址与物理地址的关系。
传统的分类的IP地址(包括子网掩码)和无分类域间路由选择CIDR。
路由选择协议的工作原理。
在互联网中,网络层向上只提供简单灵活的,无连接的,尽最大努力交付的数据报服务,即网络层不提供服务质量的承诺。
ARP画在最下面,因为 IP 经常要使用这个协议,ICMP 和 IGMP 画在这一层的上部,因为它们要使用 IP 协议。
虚拟互联网络即逻辑互联网络,忽略物理层的客观异构性,在网络层看起来好像是一个统一的网络,即互联网可以有多种异构的网络组成。
网络互联的一些中间设备:
IP地址:用来唯一标识全球连接在互联网上的主机的接口的标识符。
IP地址的划分方式历史:分类的IP地址 – > 子网的划分 – > 构成超网
IP地址前几位为类位别,标明该IP地址属于哪类。
IP地址的点分十进制表示法:把IP地址的每八位用十进制表示,便于记忆书写。
本网络:A类地址中网络号全为0的IP地址。
环回测试:A类地址中网络号为01111111的IP地址用作本地软件环回测试本主机的进程之间的通道。
路由器仅根据目的主机IP地址中的网络号来转发分组。
实际IP地址是主机与网络链路之间的一条链路的标识(一个主机连接在两个不同的网络上时,该主机对应的就有两个IP地址)。
一个网络是指具有相同网络号的主机的集合,因此用网桥或转发器连接起来的若干局域网属于同一个网络。
互联网上的网络号都是平等的,与其范围大小没有关系。
无名网络:两个路由器直接相连时并不分配IP地址,这两个路由器之间的网络称为无名网络,或无编号网络。
硬件地址时物理层和数据链路层使用的地址。
IP地址是IP数据报在网络层及以上各层使用的一种逻辑地址。
MAC帧中的源地址和目的地址都是硬件地址,整个IP数据报在物理层被封装在数据部分,IP地址对数据链路层不可见。
数据报在路由其之间传送时,途径的路由器地址不出现在IP数据报中,当前路由器根据目的IP地址自主路由出下一路由器地址。
分组每次经过路由器转发时都要将MAC的首部和尾部丢弃重新封装,即变换MAC帧中的目的地址和源地址。
ARP协议:根据已知的IP地址解析出该主机的硬件地址。
RARP协议:根据硬件地址解析出该主机对应的IP地址。
主机ARP高速缓存:用来存放从IP地址映射硬件地址的映射表,并且动态更新(方法:新增或超时删除)这个映射表。
新增的方法:通过向本局域网内所有的主机发送ARP请求分组,在得到响应分组后便将这个目的主机的硬件地址写入ARP高速缓存中。同时,ARP高速缓存中对每个硬件地址都设置了生存时间,超过生存时间的硬件地址便进行删除操作,便于进行动态更新,防止出现发送到错误(过时的)硬件地址处。
ARP工作流程:
注意:地址解析协议ARP只能用来解决同一个局域网(包括该网络和与该网络相连的路由器)内的地址映射,网络之间的路由并能不能做到,不同局域网,需要先转发到路由器,路由器再查表进行转发。
从硬件地址到IP地址的解析每次转发分组时都要重复进行,但这种开销是不可避免的,是为方便的在各种异构网络之间进行转发工作而屏蔽网络硬件之间的异构性,从而体现出虚拟网络的含义。
标识字段:该标识不是序号,因为IP是无连接服务,数据报不存在按序接收的问题。当数据报超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报片的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。
标志:MF = 1,表示后面“还有分片”;MF = 0,表示这是若干数据报片的最后一个。DF = 1,表示“不能分片”。
片偏移:指出较长分组在分片后,某片在原分组中的相对位置。片偏移以8字节为偏移单位。每个分片的长度一定是8字节的整数倍
生存时间:现在的意义改为“跳数限制”,指明数据报在因特网中至多可经过多少个路由器
路由表的每一条路由信息,最主要的信息是:(目的网络地址,下一跳地址)。
既然IP数据报中没有下一跳路由器的IP地址,那么待转发的数据报又怎样能够找到下一跳路由器:
路由器分组转发算法:
分类地址存在的问题: IP地址空间的利用率有时很低(A类、B类)。 给每一个物理网络分配一个网络号会使路由表变得太大,因为使网络性能变坏。两级IP地址不够灵活(需要新开网络,但是在申请到新的IP地址之前,是不可能连接到因特网)
划分子网:
注意:当没有划分子网时,IP地址是两级结构。划分子网后IP地址就变成了三级结构。划分子网只是把IP地址的主机号 host-id 这部分进行再划分,而不改变IP地址原来的网络号 net-id。
子网掩码:从一个IP数据报的首部并无法判断源主机或目的主机所连接的网络是否进行了子网划分。使用子网掩码可以找出IP地址中的子网部分。
在不划分子网的两级IP地址下,从IP地址得出网络地址是个很简单的事。但在划分子网的情况下,从IP地址却不能唯一地得出网络地址来,这是因为网络地址取决于那个网络所采用的子网掩码,但数据报的首部并没有提供子网掩码的信息。因此分组转发的算法也必须做相应的改动。
在划分子网的情况下路由器转发分组的算法:
划分子网在一定程度上缓解了因特网在发展中遇到的困难。然而在1992年因特网仍然面临三个必须尽早解决的问题,这就是B类地址在1992年已分配了近一半,眼看就要在1994年3月全部分配完毕。因特网主干网上的路由表中的项目数急剧增长,整个IPv4的地址空间将全部耗尽。
无分类域间路由选择 CIDR:
路由聚合:一个CIDR地址块可以表示很多地址,这种地址的聚合常称为路由聚合,它使得路由表中的个项目可以表示很多个原来传统分类地址的路由。路由聚合也称为构成超网。CIDR虽然不使用子网了,但仍然使用“掩码”这一名词(但不叫子网掩码)。对于/20地址块,它的掩码是20个连续的1。斜线记法中的数字就是掩码中1的个数。
最长前缀匹配:使用CIDR时,路由表中的每个项目由“网络前缀”和“下一跳地址”组成。在查找路由表时可能会得到不止一个匹配结果。应当从匹配结果中选择具有最长网络前缀的路由:最长前缀匹配。网络前缀越长,其地址块就越小,因而路由就越具体。
使用二叉线索查找路由表:当路由表的项目数很大时,怎样设法减小路由表的查找时间就成为一个非常重要的问题。为了进行更加有效的查找,通常是将无分类编址的路由表存放在一种层次的数据结构中,然后自上而下地按层次进行查找。这里最常用的就是二叉线索。IP地址中从左到右的比特值决定了从根结点逐层向下层延伸的路径,而二叉线索中的各个路径就代表路由表中存放的各个地址。为了提高二叉线索的查找速度,广泛使用了各种压缩技术。
为了提高IP数据报交付成功的机会,在网际层使用了网际控制报文协议ICMP。ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。
注意:ICMP不是高层协议,而是IP层的协议。ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去。
ICMP分为两种:ICMP差错报告报文和ICMP询问报文。
改变路由(重定向):出于效率考虑,主机不和连接在网络上的路由器定期交换路由信息。主机刚开始都发到默认路由,若默认路由发往某个地址的最佳路径时经过另一个R,则用该报文通知主机。该主机在其路由表中增加一项:到某目的地址应经过路由器R(而不是默认路由)。
ping:用来测试两个主机之间的连通性。ping使用了ICMP回送请求与回送回答报文。PING是应用层直接使用网络层ICMP的例子,它没有通过运输层的TCP或UDP。
traceroute:跟踪一个分组从源点到终点的路径。从源主机向目的主机发送一连串IP数据报,数据报中封装的是无法交付的UDP用户数据报。第一个数据报P1的生存时间TTL设置为1。到达R1时,R1丢弃P1,并向源主机发送一个ICMP时间超过报文。第二个数据报P2,TTL设置为2。P2先经过R1,再到R2,丢弃P2,并向源主机发送一个ICMP时间超过报文 … 最后一个数据报到达目的主机时,TTL=1,不转发,因此不减1。但是无法交付,使用了非法的端口号。因此目的主机向源主机发送ICMP终点不可达报文。
理想的路由算法的特点:
分层次的路由选择协议:因特网的规模非常大。如果让所有的路由器知道所有的网络应怎样到达,则这种路由表将非常大,处理起来也太花时间。而所有这些路由器之间交换路由信息所需的带宽就会使因特网的通信链路饱和。许多单位不愿意外界了解自己单位网络的布局细节和本部门所采用的路由选择协议(这属于本部门内部的事情),但同时还希望连接到因特网上。因此互联网将互联网划分为许多较小的自治系统。
自治系统 AS:在单一技术管理下的一组路由器(一个AS对其他AS表现出的是一个单一的和一致的路由选择策略)。
两种路由选择协议:
工作原理:RIP是一种分布式的基于距离向量的路由选择协议。
三个要点:
距离向量算法:
RIP2可以支持变长子网掩码和无分类域间路由选择CIDR。
特点:好消息传播的快,坏消息传播的慢。
RIP报文通过运输层的用户数据报UDP传送,使用UDP端口520
特点:开放最短路径优先(为克服RIP协议制定的协议),使用了Dijkstra的最短路径算法。并不表示其他的路由选择协议不是最短路径优先(实际上所有在自治系统内的路由选择协议都是要找一条最短路径),使用分布式的链路状态协议。
链路状态:就是说明本路由器都和哪些路由器相邻,以及该链路的度量(费用、距离、时延、带宽等)。
三个要点:
OSPF可以支持变长子网掩码和无分类域间路由选择CIDR。
洪范法:路由器通过所有的端口向所有的相邻路由器发送信息,而所有的相邻路由器也是同样的做法,(但发送的对象不包括之前向他发送信息的那个路由器),从而最终使得整个局域网都得到该信息的一个副本,而发送的信息就是与本路由器相邻的所有路由器的链路状态(链路状态是指相邻路由器及到达该路由器的代价),只有链路状态发生变化时,才使用洪范法发送信息,(不是定期交换)。
所有路由器最终都能建立一个链路状态数据库,这个数据库实际就是全网的拓扑结构图。
OSPF直接用IP数据报传送。OSPF的五种分组类型:问候分组,数据库描述分组,链路状态请求分组,链路状态更新分组,链路状态确认分组。
在不同自治系统AS之间的路由选择为什么不使用内部网管协议,如RIP或OSPF:
外部网关协议:用来解决不同自治系统之间的路由选择策略。边界网关协议不追求寻找最佳路径,而是在可到达的基础上找到一条相对较好的路径。
BGP发言人:在BGP协议中,一个自治系统中用来与其他自治系统(通过TCP连接)交换路由信息的路由器。
交换信息的两个BGP发言人彼此成为临站或对等站,所交换的信息是可达性信息。
每个发言人除了要运行BGP协议外,还要运行本自治系统内部的协议。
路由器的结构:路由选择部分 和 分组转发部分。
三种转发方法:通过存储器进行交换,通过总线进行交换,通过纵横交换结构(总线网)进行交换。
IP多播:许多应用需要由一个源点发送到许多终点,即一对多通信。
在因特网中每一个主机必须有一个全球唯一的IP地址,如果某个主机想接收某个特定多播组的分组,怎样做:
多播组的IP地址为D类IP地址,多播地址只能用来当作目的地址,不能用作源地址。
多播组的MAC地址:是由MAC地址和D类IP地址的后23位拼接起来的。
由于多播IP地址和以太网硬件地址的映射关系不唯一,因此收到多播数据报的主机还要在IP层利用软件进行过滤,把不是本主机要接收的数据报丢弃。
IGMP协议:IGMP协议是让连接在本地局域网上的多播路由器知道本局域网上是否有主机参加或退出某个多播组。
多播组协议的特点:多播转发必须动态地适应多播组成员的变化。多播路由器在转发多播数据报时,不能仅根据数据包中的目的地址来转发数据报,还要知道数据报的来源(多播组内的成员发送信息时,就不用再向该成员转发数据报)。多播成员或非多播成员均可发送多播数据报。
多播路由选择协议 :连接在局域网上的多播路由器还必须和其他多播路由器协同工作,以便将多播数据报用最小的代价发送给所有组成员。多播路由选择实际上要找出以源主机为根节点的多播转发树。
三种方法:
本地地址:仅在机构內部使用的IP地址,可以由本机构自行分配,而不需要向因特网的管理机构申请。
全球地址:全球唯一的P地址,必须向因特网的管理机构申请。
10.0.0.0到10.255.255.255,172.16.0.0到172.31.255.255,192.168.0.0到192.168.255.255,这些地址只能用于ー个机构的內部通信,而不能用于和因特网上的主机通信。专用地址只能用作本地地址而不能用作全球地址。在因特网中的所有路由器对目的地址是专用地址的数据报一律不进行转发。
专用网内部分配了专用地址的主机,想和因特网上的主机通信,怎么办:使用NAT(网络地址转换协议)。这种方法需要专用网连接到因特网的路由器上安装NAT软件(至少有一个有效的外部全球IP地址)。所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。
网络地址转换的过程: