谢希仁的第七版计算机网络--第四章总结概述
第四章 网络层
网际协议 IP 是 TCP/IP 体系中两个最主要的协议之一。
与 IP 协议配套使用的还有三个协议:
地址解析协议 ARP (Address Resolution Protocol)
网际控制报文协议 ICMP (Internet Control Message Protocol)
网际组管理协议 IGMP (Internet Group Management Protocol)
4.1 IP地址
IP地址就是给互联网上的每一台主机的每一个接口分配一个在全世界范围内是唯一的32位的标识符。主机号在它前面的网络号所指明的网络范围内必须是唯一的,一个 IP 地址在整个互联网范围内是唯一的。
IP 地址特点:
1.在同一个局域网上的主机或路由器的IP地址中的网络号必须是一样的。
2.用网桥互联的网段仍然是一个局域网,只能有一个网络号。
3.路由器总是具有两个或者两个以上的IP地址,即路由器的每一个接口都有一个不同的网络号的IP地址。
4.当两个路由器直接相连时,在连线两端的接口处,可以分配也可以不分配IP地址。但是分配了也是在一个网段内。
5.物理地址是数据链路层和物理层的地址,而IP地址是网络层和以上各层使用的地址,是一个逻辑地址。
6.虽然在IP数据报首部有源站IP地址,但路由器只根据目的站的IP地址的网络号进行路由选择。
7.在局域网的链路层,只能看到MAC帧。IP数据报被封装在MAC帧中。MAC帧在不同网络上传送时,其MAC帧首部中的源地址和目的地之要发生变化。
4.2地址解析协议ARP
IP协议使用了ARP协议,因此通常就把ARP协议划归网络层。但ARP协议的用途是为了从网络层的IP地址,解析出在数据链路层使用的硬件地址。
ARP协议是在主机ARP高速缓存中存放一个从IP地址到硬件地址的映射表。并且这个映射表还经常动态更新,生存时间为10-20分钟。从IP地址到到硬件地址的解析是自动进行的。每一个主机都设有一个 ARP 高速缓存 (ARP cache),里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。
ARP找目的地之的MAC地址。如果本地映射表中存在,就直接获取,如果本地没有,就发送一个ARP请求分组的广播出去查询。
ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。
4.3划分子网和构造超网
划分子网
优点:1.减少了 IP 地址的浪费。2.使网络的组织更加灵活。3.更便于维护和管理
划分子网纯属一个单位内部的事情,对外部网络透明,对外仍然表现为没有划分子网的一个网络。
子网掩码
使用子网掩码的好处是:不管网络有没有划分子网,只要把子网掩码和IP地址进行逐位的“与AND”,就能得出所要找的子网的网络地址。现在互联网规定必须使用子码掩码,如果网络不划分子网,那么该网络的子网掩码就使用默认的子网掩码。
无分类编址CIDR
特点:
1.CIDR消除了传统的A类,B类和C类地址以及划分子网的概念。CIDR使用/。即在IP地址后面加上斜线/,然后写上网络前缀所占的位数。
2.CIDR使用各种长度的“网络前缀”(network-prefix)来代替分类地址中的网络号和子网号。
3.IP 地址从三级编址(使用子网掩码)又回到了两级编址。
128.14.35.7/20,表示前20位是网络位,还可以使用地址掩码,斜线计法战总,斜线后面的数字就是地址掩码中1的个数。
由于一个CIDR地址块有很多地址,所以在路由表中就利用CIDR地址块来查找目的网络,这种地址的聚合常称为路由聚合,也成为了构成超网。
使用二叉线索自上而下的查找路由表。
4.4网际控制报文ICMP
ICMP报文的种类有两种:ICMP差错报告报文和ICMP询问报文。
ICMP 报文的前 4 个字节是统一的格式,共有三个字段:即类型、代码和检验和。接着的 4 个字节的内容与 ICMP 的类型有关。
差错报告报文分为四种:3-终点不可发,11-时间超过,12-参数问题,5-改变路由(重定向)。
询问报文:8或0-回送请求或回答。13或14-时间戳请求或回答。
不应发送 ICMP 差错报告报文的几种情况:
1.对 ICMP 差错报告报文不再发送 ICMP 差错报告报文。
2.对第一个分片的数据报片的所有后续数据报片都不发送 ICMP 差错报告报文。
3.对具有多播地址的数据报都不发送 ICMP 差错报告报文。
4.对具有特殊地址(如127.0.0.0 或 0.0.0.0)的数据报不发送 ICMP 差错报告报文。
ICMP典型应用实例:
1.PING 用来测试两个主机之间的连通性。PING 使用了 ICMP 回送请求与回送回答报文。PING 是应用层直接使用网络层 ICMP 的例子,它没有通过运输层的 TCP 或UDP。
2.在 Windows 操作系统中这个命令是 tracert。用来跟踪一个分组从源点到终点的路径。它利用 IP 数据报中的 TTL 字段和 ICMP 时间超过差错报告报文实现对从源点到终点的路径的跟踪。
4.5路由选择协议
从路由算法的自适应性考虑:
静态路由选择策略——即非自适应路由选择,其特点是简单和开销较小,但不能及时适应网络状态的变化。
动态路由选择策略——即自适应路由选择,其特点是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大。
互联网有两大类路由选择协议:
内部网关协议 IGP (Interior Gateway Protocol) :在一个自治系统内部使用的路由选择协议。目前这类路由选择协议使用得最多,如 RIP 和 OSPF 协议。
外部网关协议 EGP (External Gateway Protocol) :若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议 EGP。在外部网关协议中目前使用最多的是 BGP-4。
内部网关协议RIP
RIP是一种分布式的基于距离向量的路由选择协议。
协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。
最大跳数为15.超过15跳就默认为不可达状态。直连的默认为1跳。
RIP 不能在两个网络之间同时使用多条路由。RIP 选择一个具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由。
特点:
1.仅和相邻路由器交换信息。
2.交换的信息是当前本路由器所知道的全部信息,即自己的路由表。
3.按固定的时间间隔交换路由信息,例如,每隔 30 秒。当网络拓扑发生变化时,路由器也及时向相邻路由器通告拓扑变化后的路由信息。
4.RIP 存在的一个问题:当网络出现故障时,要经过比较长的时间 (例如数分钟) 才能将此信息传送到所有的路由器
5.RIP 协议的收敛 (convergence) 过程较快。“收敛”就是在自治系统中所有的结点都得到正确的路由选择信息的过程。
好消息传播得快,坏消息传播得慢
实现简单,开销较小
RIP2可以支持变长子网掩码和无分类域间路由选择CIDR,此外,RIP2还提供简单的鉴别过程支持多播。
内部网关协议OSPF
最短路径优先协议。采用分布式的链路状态协议 (link state protocol)与RIP协议相比。
特点:
1.向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法。就是路由器通过所有输出端口向所有相邻的路由器发送消息。
2.发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。“链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(metric)。
3.只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。
4.OSPF 对不同的链路可根据 IP 分组的不同服务类型 TOS 而设置成不同的代价。因此,OSPF 对于不同类型的业务可计算出不同的路由。
5.如果到同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径。这叫做多路径间的负载平衡。
6.所有在 OSPF 路由器之间交换的分组都具有鉴别的功能。
7.支持可变长度的子网划分和无分类编址 CIDR。
8.每一个链路状态都带上一个 32 位的序号,序号越大状态就越新。
9.OSPF 还规定每隔一段时间,如 30 分钟,要刷新一次数据库中的链路状态。
10.由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。因此当互联网规模很大时,OSPF 协议要比距离向量协议 RIP 好得多。
11.OSPF 没有“坏消息传播得慢”的问题,据统计,其响应网络变化的时间小于 100 ms。
12.OSPF对这种多点接入的局域网采用了指定的路由器 (designated router) 的方法,使广播的信息量大大减少。
13.指定的路由器代表该局域网上所有的链路向连接到该网络上的各路由器发送状态信息。
链路状态数据库 (link-state database)
1.由于各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库。
2.这个数据库实际上就是全网的拓扑结构图,它在全网范围内是一致的(这称为链路状态数据库的同步)。
3.OSPF 的链路状态数据库能较快地进行更新,使各个路由器能及时更新其路由表。
4.OSPF 的更新过程收敛得快是其重要优点。
OSPF 的区域 (area) :
1.为了使 OSPF 能够用于规模很大的网络,OSPF 将一个自治系统再划分为若干个更小的范围,叫做区域。
2.每一个区域都有一个 32 位的区域标识符(用点分十进制表示)。
3.区域也不能太大,在一个区域内的路由器最好不超过 200 个。
划分区域的好处就是将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,这就减少了整个网络上的通信量。OSPF 使用层次结构的区域划分。在上层的区域叫做主干区域 (backbone area)。主干区域的标识符规定为0.0.0.0。主干区域的作用是用来连通其他在下层的区域。
**OSPF 不用 UDP 而是直接用 IP 数据报传送。**OSPF 构成的数据报很短。这样做可减少路由信息的通信量。数据报很短的另一好处是可以不必将长的数据报分片传送。但分片传送的数据报只要丢失一个,就无法组装成原来的数据报,而整个数据报就必须重传。
OSPF 的五种分组类型:
类型1,问候 (Hello) 分组。
类型2,数据库描述 (Database Description) 分组。
类型3,链路状态请求 (Link State Request) 分组。
类型4,链路状态更新 (Link State Update) 分组,用洪泛法对全网更新链路状态。
类型5,链路状态确认 (Link State Acknowledgment)分组。
外部网关协议BGP
边界网关协议 BGP 只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。
BGP 发言人:每一个自治系统的管理员要选择至少一个路由器作为该自治系统的“ BGP 发言人” (BGP speaker) 。一般说来,两个 BGP 发言人都是通过一个共享网络连接在一起的,而 BGP 发言人往往就是 BGP 边界路由器,但也可以不是 BGP 边界路由器。 通过建立 TCP 连接。
BGP 协议的特点:
1.BGP 协议交换路由信息的结点数量级是自治系统数的量级,这要比这些自治系统中的网络数少很多。
2.每一个自治系统中 BGP 发言人(或边界路由器)的数目是很少的。这样就使得自治系统之间的路由选择不致过分复杂。
3.BGP 支持 CIDR,因此 BGP 的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。
4.在 BGP 刚刚运行时,BGP 的邻站是交换整个的 BGP 路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销都有好处。
BGP-4 共使用四种报文
打开 (OPEN) 报文,用来与相邻的另一个BGP发言人建立关系。
更新 (UPDATE) 报文,用来发送某一路由的信息,以及列出要撤消的多条路由。
保活 (KEEPALIVE) 报文,用来确认打开报文和周期性地证实邻站关系。
通知 (NOTIFICATION) 报文,用来发送检测到的差错。
路由器的路由选择和分组转发两个特点的区别
“转发”(forwarding) 就是路由器根据转发表将用户的 IP 数据报从合适的端口转发出去。
“路由选择”(routing) 则是按照分布式算法,根据从各相邻路由器得到的关于网络拓扑的变化情况,动态地改变所选择的路由。
路由表是根据路由选择算法得出的。而转发表是从路由表得出的。
在讨论路由选择的原理时,往往不去区分转发表和路由表的区别。
4.6 IPV6
IPv6 仍支持无连接的传送,但将协议数据单元 PDU 称为分组。为方便起见,本书仍采用数据报这一名词。
所引进的主要变化如下:
1.更大的地址空间。IPv6 将地址从 IPv4 的 32 位 增大到了 128 位。
2.扩展的地址层次结构。
3.灵活的首部格式。 IPv6 定义了许多可选的扩展首部。
4.允许协议继续扩充。
5.支持即插即用(即自动配置)。因此 IPv6 不需要使用 DHCP。
6.支持资源的预分配。 IPv6 支持实时视像等要求,保证一定的带宽和时延的应用。
7.IPv6 首部改为 8 字节对齐。首部长度必须是 8 字节的整数倍。原来的 IPv4 首部是 4 字节对齐。
IPV6在IPV4的基础上的改进:
取消了首部长度字段,因为首部长度是固定的 40 字节;
取消了服务类型字段;
取消了总长度字段,改用有效载荷长度字段;
把 TTL 字段改称为跳数限制字段;
取消了协议字段,改用下一个首部字段;
取消了检验和字段;
取消了选项字段,而用扩展首部来实现选项功能。
冒号十六进制记法
在 IPv6 中,每个地址占 128 位,地址空间大于 3.4 1038 。
为了使地址再稍简洁些,IPv6 使用冒号十六进制记法(colon hexadecimal notation, 简写为 colon hex)。
每个 16 位的值用十六进制值表示,各值之间用冒号分隔。例如:
68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF
IPV4到IPV6,有两种过度方法。
使用双协议栈:是指在完全过渡到 IPv6 之前,使一部分主机(或路由器)装有两个协议栈,一个 IPv4 和一个 IPv6。
使用隧道技术:在 IPv6 数据报要进入 IPv4 网络时,把 IPv6 数据报封装成为 IPv4 数据报,当 IPv4 数据报离开 IPv4 网络中的隧道时,再把数据部分(即原来的 IPv6 数据报)交给主机的 IPv6 协议栈。
ICMPv6
IPv6 也不保证数据报的可靠交付,因为互联网中的路由器可能会丢弃数据报。
因此 IPv6 也需要使用 ICMP 来反馈一些差错信息。新的版本称为 ICMPv6。
地址解析协议 ARP 和网际组管理协议 IGMP 协议的功能都已被合并到 ICMPv6 中。
IP多播
能够运行多播协议的路由器称为多播路由器(multicast router)。多播就是要进行一对多的通信,例如交互式会议等。
IP 多播需要两种协议
1.为了使路由器知道多播组成员的信息,需要利用网际组管理协议 IGMP (Internet Group Management Protocol)。
2.连接在局域网上的多播路由器还必须和互联网上的其他多播路由器协同工作,以便把多播数据报用最小代价传送给所有的组成员。这就需要使用多播路由选择协议。
多播数据报也是“尽最大努力交付”,不保证一定能够交付多播组内的所有成员。因此,多播地址只能用目的地址,而不能用于源地址。此外,对多播数据报不产生 ICMP 差错报文。因此,若在 PING 命令后面键入多播地址,将永远不会收到响应。
网际组管理协议IGMP
IGMP 协议是让连接在本地局域网上的多播路由器知道本局域网上是否有主机(严格讲,是主机上的某个进程)参加或退出了某个多播组。
多播路由选择协议在转发多播数据报时使用三种方法:
(1) 洪泛与剪除
(2) 隧道技术 (tunneling)
(3) 基于核心的发现技术
虚拟专用网v*n
1.利用公用的互联网作为本机构各专用网之间的通信载体,这样的专用网又称为虚拟专用网v*n (Virtual Private Network)。
2.“专用网”是因为这种网络是为本机构的主机用于机构内部的通信,而不是用于和网络外非本机构的主机通信。
3.“虚拟”表示“好像是”,但实际上并不是,因为现在并没有真正使用通信专线,而v*n只是在效果上和真正的专用网一样。
网络地址转换NAT
1.需要在专用网连接到互联网的路由器上安装 NAT 软件。装有 NAT 软件的路由器叫做 NAT路由器,它至少有一个有效的外部全球IP地址。
2.所有使用本地地址的主机在和外界通信时,都要在 NAT 路由器上将其本地地址转换成全球 IP 地址,才能和互联网连接。