计算机网络基础-1-概述
计算机网络基础-2-物理层
计算机网络基础-3-数据链路层
网络层
一、虚电路和数据报
在计算机网络领域,网络层应该向运输层提供怎样的服务(“面向连接”还是“无连接”)曾引起了长期的争论。争论焦点的实质就是:在计算机通信中,
可靠交付应当由谁来负责?是网络还是端系统。于是就产生了两种形式:虚电路和数据报。
1.虚电路
观点:让网络负责可靠交付。认为应借助于电信网的成功经验,让网络负责可靠交付,计算机网络应模仿电信网络,使用面向连接的通信方式。通信之前应先
建立虚电路,以保证双方通信所需的一切网络资源。如果再使用可靠传输的网络协议,就可使所发送的分组无差错按序到达终点,不丢失、不重复。
2.数据报
互联网的先驱者提出了一种崭新的网络设计思路。网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。网络在发送分组时不需要先建立
连接。每一个分组(即IP数据报)独立发送,与其前后的分组无关(不进行编号)。网络层不提供服务质量的承诺。即所传送的分组可能会出错、丢失、重复和失序(不按
序到达终点),当然也不保证分组传送的时限。
由于传输网络不提供端到端的可靠性传输服务,这就使网络中的路由器可以做得比较简单,而且价格低廉(同电信网的交换机比较)。如果主机(即端系统)中的进程
之间的通信需要是可靠的,那么就由网络的主机中的运输层负责可靠交付(包括差错处理、流量控制等)。采用这种设计思路的好处是:网络的造价大大降低,运行方式
灵活,能够适应多种应用。互联网能够发展到今天的规模,充分证明了当采用这种设计思路的正确性。
3.虚电路和数据报对比
二、网络层概述
网络层又称IP层或网际层,主要作用是为分组转发选择合适路由,分组即IP数据报。网络互连主要靠路由器来完成。
1.直接交付与间接交付
2.网际协议IP及配套协议
网际协议IP是TCP/IP体系中两个最主要的协议之一。
与IP协议配套使用的还有三个协议:地址解析协议ARP(Address Resolution Protocol)
网际控制报文协议ICMP(Internet Control Message Protocol)
网际组管理协议IGMP(Internet Group Management Protocol)
3.中间设备
将网络互相连接起来要使用一些中间设备。中间设备又称为中间系统或中继系统。有以下五种不同的中间设备:物理层的中继系统:转发器
链路层的中继系统:网桥或桥接器
网络层的中继系统:路由器
网桥和路由器的混合物:桥路器
网络层以上的中继系统:网关
4.虚拟网络互连
一般所说的网络互连都是指用路由器进行网络互连和路由选择。所谓虚拟互连网络也就是逻辑互连网络,它的意思是互连起来的各种物理网络的异构性
本来是客观存在的,但是我们利用IP协议就可以使这些性能各异的网络从客户看起来好像是一个统一的网络。使用IP协议的虚拟互连网络可简称为IP网。当
使用虚拟互连网络的好处是:当互联网上的主机进行通信时,就好像在一个网络上通信一样,而看不见互连的各个具体的网络异构细节。如果在这种覆盖全
球的IP网的上层使用TCP协议,那么就是现在的互联网。
5.从IP层看数据的流动
如果我们只从网络层考虑问题,那么IP数据报就可以想象是在网络层中传送。(协议是水平的)
三、分类的IP地址
IP地址是给每个连接在因特网的主机或路由器分配一个在全世界范围是唯一的32bit的标识符。IP地址现在由互联网的名字与数字分配机构ICANN进行分配。
1.点分十进制记法
=> => =>
2.IP地址的两个字段
IP地址::={<网络号>,<主机号>}
3.IP地址的分类
4.IP地址的重要特点
(1)IP地址是一种分等级的地址结构,分两个等级的好处是:
第一,IP地址管理机构在分配IP地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。这样就方便了IP地址的管理。
第二,路由器仅根据目的主机所连接的网络号来转发分组,不必考虑目的主机号,这样就可以使路由表中的项目大幅度减少,从而减小了路由表所占存储空间。
(2)实际上IP地址是标志一个主机或路由器和一条链路的接口。
当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的IP地址,其网络号net-id必须是不同的。这种主机称为多归属主机。由于一个路由器
至少应当连接到两个网络(这样它才能将IP数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的IP地址。
(3)用转发器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号net-id。
(4)所有分配到网络号net-id的网络,无论是范围很小的局域网,还是可能覆盖很大地理范围的广域网,都是平等的。
四、IP层转发分组的流程
1.路由表
(1)路由表的简化
假设:有四个A 类网络通过三个路由器连接在一起。每一个网络上都可能有成千上万个主机。可以想像,若按目的主机号来制作路由表,每一个路由表就有
4 万个项目,即 4 万行(每一行对应于一台主机),则所得出的路由表就会过于庞大。但若按主机所在的网络地址来制作路由表,那么每一个路由器中的路由表
就只包含 4 个项目(每一行对应于一个网络),这样就可使路由表大大简化。
(2)路由表的内容
(3)路由表的查找
根据目的网络地址就能确定下一跳路由器,这样做的结果是:IP 数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次的间接交付)。
只有到达最后一个路由器时,才试图向目的主机进行直接交付。
(4)特定主机路由
虽然互联网所有的分组转发都是基于目的主机所在的网络,但在大多数情况下都允许有这样的特例,即为特定的目的主机指明一个路由。采用特定主机路由
可使网络管理人员能更方便地控制网络和测试网络,同时也可在需要考虑某种安全问题时采用这种特定主机路由。实现:将整个主机的IP地址作为网络号,直接
添加在相关的路由器的路由表中。
(5)默认路由
路由器还可采用默认路由以减少路由表所占用的空间和搜索路由表所用的时间。这种转发方式在一个网络只有很少的对外连接时是很有用的。如果一个主机
连接在一个小网络上,而这个网络只用一个路由器和互联网连接,那么在这种情况下使用默认路由是非常合适的。
2.路由器分组转发算法
(1) 从数据报的首部提取目的主机的 IP 地址 D, 得出目的网络地址为N。
(2) 若网络N 与此路由器直接相连,则把数据报直接交付目的主机D;否则是间接交付,执行 (3)。
(3) 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行 (4)。
(4) 若路由表中有到达网络 N 的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行 (5)。
(5) 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行 (6)。
(6) 报告转发分组出错
3.路由表的注意
(1)路由表没有给分组指明到某个网络的完整路径。
(2)路由表指出,到某个网络应当先到某个路由器(即下一跳路由器)。
(3)在到达下一跳路由器后,再继续查找其路由表,知道再下一步应当到哪一个路由器。
(4)这样一步一步地查找下去,直到最后到达目的网络。
五、IP数据报格式
(1)一个 IP 数据报由首部和数据两部分组成。
(2)首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。
(3)首部的后一部分是一些可选字段,其长度是可变的(最大是40字节)。
(4)IP数据报首部字段介绍
版本:占4位,表示当前IP协议的版本。
首部长度:占4位,由于首部包含可变部分,这里表示首部包含多少个字节。(注意:一个数表示4个字节,那么最大为15*4个字节,表示首部长度最大为60个字节)。
区分服务:占8位,用来获得更好的服务。在旧标准中叫做服务类型,但实际上一直未被使用过。只有在使用区分服务(DiffServ)时,这个字段才起作用。
总长度:占 16 位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节。总长度必须不超过最大传送单元 MTU(一般为1500字节)。
标识:占 16 位,它是一个计数器,用来产生 IP 数据报的标识。
标志:占 3 位,目前只有前两位有意义。标志字段的最低位是 MF (More Fragment)。MF = 1 表示后面“还有分片”。MF =0 表示最后一个分片。
标志字段中间的一位是 DF (Don't Fragment) 。只有当 DF = 0 时才允许分片。
片偏移:占13 位,指出较长的分组在分片后某片在原分组中的相对位置。片偏移以 8 个字节为偏移单位。举例:
生存时间:占8 位,记为 TTL (Time To Live),指示数据报在网络中可通过的路由器数的最大值。
协议:占8 位,指出此数据报携带的数据使用何种协议,以便目的主机的 IP 层将数据部分上交给那个处理过程
首部检验和:占16 位,只检验数据报的首部,不检验数据部分。这里不采用 CRC 检验码而采用简单的计算方法,16 位二进制反码求和算法
源地址或目的地址:占 4 字节
首部中的可变部分:IP 首部的可变部分就是一个选项字段,用来支持排错、测量以及安全等措施,内容很丰富。
选项字段的长度可变,从 1 个字节到 40 个字节不等,取决于所选择的项目。
要保证IP首部是4字节对齐的。
增加首部的可变部分是为了增加 IP 数据报的功能,但这同时也使得 IP 数据报的首部长度成为可变的。增加了每一个路由器处理数据报的开销。
实际上这些选项很少被使用。
六、IP地址和MAC地址
此处Internet地址就是IP地址,物理地址就是MAC地址,为什么一个站点两个地址?
1.IP地址和MAC地址在分层协议栈中的位置不同
2.IP地址和MAC地址的定义和性质不同
IP地址:IP:( Internet Protocol,网际协议),又被称为逻辑地址或软件地址。分为两个字段
IP 地址 ::= { <网络号>, <主机号>}
MAC地址:MAC:(Medium Access Control,媒体接入控制)又被称为物理地址或硬件地址。MAC地址编址由网卡生产商完成
3.IP地址和MAC地址的作用不同
4.IP地址和MAC地址的转发变化不同
5.IP地址和MAC地址的获取方式不同
ARP地址解析协议获取MAC地址流程:
七、划分子网
1.从两级IP地址到三级IP地址
在 ARPANET 的早期,IP 地址的设计确实不够合理:
1) IP 地址空间的利用率有时很低。
2) 给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏。
3) 两级的 IP 地址不够灵活
三级IP地址
从 1985 年起在 IP 地址中又增加了一个“子网号字段”,使两级的 IP 地址变成为三级的IP 地址。这种做法叫做划分子网 (subnetting) 。
划分子网是互联网的正式标准协议。
2.划分子网基本思路
划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络。从主机号借用若干个位作为子网号 subnetid,而主机号
host-id 也就相应减少了若干个位
凡是从其他网络发送给本单位某个主机的IP 数据报,仍然是根据 IP 数据报的目的网络号 net-id,先找到连接在本单位网络上的路由器。
然后此路由器在收到 IP 数据报后,再按目的网络号 net-id 和子网号 subnet-id 找到目的子网。最后就将 IP 数据报直接交付目的主机
==》
3.子网掩码
从一个 IP 数据报的首部并无法判断源主机或目的主机所连接的网络是否进行了子网划分。使用子网掩码 (subnet mask) 可以找出 IP 地址中的子网部分。
规则:
子网掩码长度 = 32 位
某位 = 1:IP地址中的对应位为网络号或子网号
某位 = 0:IP地址中的对应位为主机号
默认子网掩码:
4.使用子网进行分组转发
在不划分子网的两级 IP 地址下,从 IP 地址得出网络地址是个很简单的事。但在划分子网的情况下,从 IP 地址却不能唯一地得出网络地址来,这是因为
网络地址取决于那个网络所采用的子网掩码,但数据报的首部并没有提供子网掩码的信息。因此分组转发的算法也必须做相应的改动。
步骤:
例题:
八、无分类编址
1985年制定的标准——划分子网,由于它的灵活性,在一定程度上缓解了互联网在发展中遇到的困难。然而在 1992 年因特网仍然面临三个必须尽早解决的问题,
这就是:B 类地址在 1992 年已分配了近一半,眼看就要在 1994 年 3 月全部分配完毕!互联网主干网上的路由表中的项目数急剧增长(从几千个增长到几万个)。整
个 IPv4 的地址空间最终将全部耗尽。
1.无分类编址
1987 年,RFC 1009 就指明了在一个划分子网的网络中可同时使用几个不同的子网掩码。使用变长子网掩码 VLSM (Variable Length SubnetMask)可进一步提高
IP 地址资源的利用率。在 VLSM 的基础上又进一步研究出无分类编址方法,它的正式名字是无分类域间路由选择CIDR (Classless Inter-Domain Routing)。
2.网络前缀
CIDR 消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,因而可以更加有效地分配IPv4 的地址空间。CIDR使用各种长度的“网络前缀”(networkprefix)来
代替分类地址中的网络号和子网号。IP 地址从三级编址(使用子网掩码)又回到了两级编址。
3.无分类的两级编址
4.CIDR地址块
CIDR 把网络前缀都相同的连续的 IP 地址组成“CIDR 地址块”。128.14.32.0/20 表示的地址块共有 2 的12次方个地址(因为斜线后面的 20 是网络前缀的位数,所
以这个地址的主机号是 12 位)。在不需要指出地址块的起始地址时,也可将这样的地址块简称为“/20 地址块”。全 0 和全 1 的主机号地址一般不使用。
5.路由聚合
一个 CIDR 地址块可以表示很多地址,这种地址的聚合常称为路由聚合 , 也 称 为 构成超网(supernetting),它使得路由表中的一个项目可以表示很多个(例如上
千个)原来传统分类地址的路由。路由聚合有利于减少路由器之间的路由选择信息的交换,从而提高了整个互联网的性能。CIDR 虽然不使用子网了,但仍然使用“掩码”
这一名词(但不叫子网掩码)。例如对于/20地址块,它的掩码是20个连续的 1。
6.CIDR记法的其他形式
1)10.0.0.0/10 可简写为 10/10,也就是把点分十进制中低位连续的 0 省略。10.0.0.0/10 隐含地指出 IP 地址 10.0.0.0 的掩码是255.192.0.0。此掩码可表示为:
2)网络前缀的后面加一个星号 * 的表示方法,如00001010 00*,在星号 * 之前是网络前缀,而星号 *表示 IP 地址中的主机号,可以是任意值。
7.最长前缀匹配
使用 CIDR 时,路由表中的每个项目由“网络前缀”和“下一跳地址”组成。在查找路由表时可能会得到不止一个匹配结果。应当从匹配结果中选择具有最长网络前缀
的路由:最长前缀匹配 (longest-prefix matching),又称为最长匹配或最佳匹配。网络前缀越长,其地址块就越小,因而路由就越具体 (more specific)。
九、报文控制协议ICMP
为了更有效地转发 IP 数据报和提高交付成功的机会,在网际层使用了网际控制报文协议 ICMP (InternetControl Message Protocol)。ICMP 是互联网的标准协议。
ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。但 ICMP 不是高层协议(看起来好像是高层协议,因为 ICMP 报文是装在 IP 数据报中,作为其中
的数据部分),而是 IP 层的协议。
1.ICMP报文格式
2.ICMP报文类型
ICMP 报文的种类有两种,即 ICMP 差错报告报文和 ICMP 询问报文。
差错报告报文共有 4 种:终点不可达
时间超过
参数问题
改变路由(重定向)(Redirect)
询问报文有2种:回送请求和回答报文
时间戳请求和回答报文
3.ICMP差错报文的内容
4.不再发送差错报告报文的情况
对 ICMP 差错报告报文不再发送 ICMP 差错报告报文。
对第一个分片的数据报片的所有后续数据报片都不发送 ICMP 差错报告报文。
对具有多播地址的数据报都不发送 ICMP 差错报告报文。
对具有特殊地址(如127.0.0.0 或 0.0.0.0)的数据报不发送 ICMP 差错报告报文。
5.ICMP应用实例
1)PING (Packet InterNet Groper)
PING 用来测试两个主机之间的连通性。
PING 使用了 ICMP 回送请求与回送回答报文。
PING 是应用层直接使用网络层 ICMP 的例子,它没有通过运输层的 TCP 或UDP。
2)Traceroute。在 Windows 操作系统中这个命令是 tracert。
用来跟踪一个分组从源点到终点的路径。
它利用 IP 数据报中的 TTL 字段和 ICMP 时间超过差错报告报文实现对从源点到终点的路径的跟踪。
十、路由选择协议RIP
1.理想的路由算法
算法必须是正确的和完整的。
算法在计算上应简单。
算法应能适应通信量和网络拓扑的变化,这就是说,要有自适应性。
算法应具有稳定性。
算法应是公平的。
算法应是最佳的。
2.代价
在研究路由选择时,需要给每一条链路指明一定的代价,又叫度量。这里“代价”并不是指“钱”,而是由一个或几个因素综合决定的一种度量(metric),如链路长度、
数据率、链路容量、是否要保密、传播时延等,甚至还可以是一天中某一个小时内的通信量、结点的缓存被占用的程度、链路差错率等。
3.关于"最佳路由"
不存在一种绝对的最佳路由算法。所谓“最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已。实际的路由选择算法,应尽可能接近于理想的算法。路
由选择是个非常复杂的问题。它是网络中的所有结点共同协调工作的结果。路由选择的环境往往是不断变化的,而这种变化有时无法事先知道。
4.分层次的路由协议
互联网采用分层次的路由选择协议。这是因为:
(1) 互联网的规模非常大。如果让所有的路由器知道所有的网络应怎样到达,则这种路由表将非常大,处理起来也太花时间。而所有这些路由器之间交换路由信息
所需的带宽就会使互联网的通信链路饱和。
(2) 许多单位不愿意外界了解自己单位网络的布局细节和本部门所采用的路由选择协议(这属于本部门内部的事情),但同时还希望连接到互联网上。
5.自治系统AS(Autonomous System)
自治系统 AS 的定义:在单一的技术管理下的一组路由器,而这些路由器使用一种 AS 内部的路由选择协议和共同的度量以确定分组在该 AS 内的路由,同时还使
用一种 AS 之间的路由选择协议用以确定分组在 AS之间的路由。
6.两大类路由选择协议
内部网关协议 IGP (Interior Gateway Protocol)
在一个自治系统内部使用的路由选择协议。目前这类路由选择协议使用得最多,如 RIP 和OSPF 协议。
外部网关协议 EGP (External Gateway Protocol)
若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就
是外部网关协议 EGP。在外部网关协议中目前使用最多的是 BGP-4。
7.内部网关协议RIP(Routing Information Protocol)
路由信息协议 RIP 是内部网关协议 IGP中最先得到广泛使用的协议。
RIP 是一种分布式的基于距离向量的路由选择协议。
RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。
8."距离"的定义
从一路由器到直接连接的网络的距离定义为 1。
从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1。
RIP 协议中的“距离”也称为“跳数”(hop count),因为每经过一个路由器,跳数就加 1。
RIP 认为一个好的路由就是它通过的路由器的数目少,即“距离短”。
RIP 允许一条路径最多只能包含 15 个路由器。“距离”的最大值为16 时即相当于不可达。可见 RIP 只适用于小型互联网。
RIP 选择一个具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由。
9.RIP协议的三个要点
实现RIP实际就是实现路由信息的交换
仅和相邻路由器交换信息。
(向谁发)
交换的信息是当前本路由器所知道的全部信息,即自己的路由表。 (发什么)
交换信息的内容(目的网络,距离,下一跳)
按固定的时间间隔交换路由信息,例如,每隔 30 秒。 (何时发)
10.路由表的建立
1)路由器在刚刚开始工作时,只知道到直接连接的网络的距离(此距离定义为1)。
2)以后,每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。
3)经过若干次更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址。
4)RIP 协议的收敛(convergence)过程较快,收敛即在自治系统中所有的结点都得到正确的路由选择信息的过程。
11.距离向量算法
收到相邻路由器(其地址为 X)的一个 RIP 报文:
(1) 先修改此 RIP 报文中的所有项目:将“下一跳”字段中的地址都改为 X,并将所有的“距离”字段的值加 1。
(2) 对修改后的 RIP 报文中的每一个项目,重复以下步骤:
若项目中的目的网络不在路由表中,则将该项目加到路由表中。否则,
若下一跳字段给出的路由器地址是同样的,则将收到的项目替换原路由表中的项目。否则,
若收到项目中的距离小于路由表中的距离,则进行更新,否则,
什么也不做
(3) 若 3 分钟还没有收到相邻路由器的更新路由表,则将此相邻路由器记为不可达的路由器,即将距离置为16(距离为16表示不可达)。
(4) 返回。
12.RIP协议的位置
RIP 协议使用运输层的用户数据报 UDP进行传送(使用 UDP 的端口 520)。
因此 RIP 协议的位置应当在应用层。但转发 IP 数据报的过程是在网络层完成的。
路由器也是一个主机,也是有应用层的,但是在分组转发过程中只达到网络层。
13.RIP协议的优缺点
1)RIP 协议最大的优点就是实现简单,开销较小。
2)RIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)。
3)RIP 存在的一个问题是当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器(坏消息传播慢)。
4)路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。
14.坏消息传得慢的原因解释
十一、IPv6协议
1.为什么需要IPv6协议
互联网经过几十年的飞速发展,到 2011 年 2 月,IPv4 的 32 位地址已经耗尽。ISP 已经不能再申请到新的 IP 地址块了。我国在 2014 – 2015 年也逐步停止了向
新用户和应用分配 IPv4 地址。
解决 IP 地址耗尽的问题的措施:采用划分子网和无类别编址 CIDR,使 IP 地址的分配更加合理
采用网络地址转换 NAT方法以节省全球 IP 地址
采用具有更大地址空间的新版本的 IP 协议 IPv6
解决 IP 地址耗尽的根本措施就是采用具有更大地址空间的新版本的 IP,即 IPv6
2.引进IPv6所产生的变化
IPv6 仍支持无连接的传送,主要变化如下:1)更大的地址空间:IPv6 将地址从 IPv4 的 32 位 增大到了 128 位
2)扩展的地址层次结构
3)灵活的首部格式: IPv6 定义了许多可选的扩展首部
4)改进的选项:IPv6 允许数据报包含有选项的控制信息,其选项放在有效载荷中
5)允许协议继续扩充。
6)支持即插即用(即自动配置),因此 IPv6 不需要使用DHCP
7)支持资源的预分配:IPv6 支持实时视像等要求,保证一定的带宽和时延的应用
8)IPv6 首部改为 8 字节
3.IPv6数据报的一般形式
IPv6 数据报由两大部分组成:基本首部 (base header)
有效载荷 (payload)。有效载荷也称为净负荷。有效载荷允许有零个或多个扩展首部 (extensionheader),再后面是数据部分。
4.IPv6的基本首部
IPv6 将首部长度变为
固定的 40 字节,称为基本首部(base header)。
1)将不必要的功能取消了,首部的字段数减少到只有 8 个。
2)取消了首部的检验和字段,加快了路由器处理数据报的速度。
3)在基本首部的后面允许有零个或多个扩展首部。
4)所有的扩展首部和数据合起来叫做数据报的有效载荷(payload)或净负荷。
5.IPv4数据报首部的对比
6.IPv6的报文
版本(version):占4位。它指明了协议的版本,对IPv6 该字段总是 6。
通信量类(traffic class):占8位。这是为了区分不同的 IPv6 数据报的类别或优先级。目前正在进行不同的通信量类性能的实验。
流标号(flow label):占20位。 “流”是互联网络上从特定源点到特定终点的一系列数据报。所有属于同一个流的数据报都具有同样的流标号。
有效载荷长度(payload length):占16位。它指明 IPv6 数据报除基本首部以外的字节数(所有扩展首部都算在有效载荷之内),其最大值是 64 KB。
下一个首部(next header):占8位。它相当于 IPv4 的协议字段或可选字段,表示对应的高层协议(无扩展首部时)或者第一个扩展首部的类型(有扩展首部时)。
跳数限制(hop limit):占8位。源站在数据报发出时即设定跳数限制。路由器转发数据报时将跳数限制字段中的值减1。跳数限制的值为零时,就要将此数据报丢弃。
源地址:占128位。是数据报的发送站的 IP 地址。
目的地址:占128位。是数据报的发送站的 IP 地址。
7.IPv6扩展首部
IPv6 把原来 IPv4 首部中选项的功能都放在扩展首部中,并将扩展首部留给路径两端的源站和目的站的主机来处理。数据报途中经过的路由器都不处理这些扩展
首部(只有一个首部例外,即逐跳选项扩展首部)。这样就大大提高了路由器的处理效率。
在 RFC 2460 中定义了六种扩展首部:(1) 逐跳选项
(2) 路由选择
(3) 分片
(4) 鉴别
(5) 封装安全有效载荷
(6) 目的站选项
每一个扩展首部都由若干个字段组成,它们的长度也各不相同。但所有扩展首部的第一个字段都是8位的“下一个首部”字段。此字段的值指出了在该扩展首部后面
的字段是什么。
IPv6扩展首部示例:
首部扩展举例:
8.IPv6冒号十六进制记法
9.IPv6点分十进制记法后缀
10.IPv6地址分类
未指明地址:这是 16 字节的全 0 地址,可缩写为两个冒号“::”。这个地址只能为还没有配置到一个标准的 IP地址的主机当作源地址使用。这类地址仅此一个。
环回地址:即 0:0:0:0:0:0:0:1(记为 ::1)。作用和 IPv4 的环回地址一样。这类地址也是仅此一个。
多播地址:功能和 IPv4 的一样。这类地址占 IPv6 地址总数的 1/256。
本地链路单播地址 :有些单位的网络使用 TCP/IP 协议,但并没有连接到互联网上。连接在这样的网络上的主机都可以使用这种本地地址进行通信,但不能和
互联网上的其他主机通信。这类地址占 IPv6 地址总数的 1/1024
全球单播地址:IPv6 的这一类单播地址是使用得最多的一类。曾提出过多种方案来进一步划分这 128 位的单播地址。根据 2006 年发布的草案标准 RFC 4291
的建议, IPv6 单播地址的划分方法非常灵活。
11.IPv4向IPv6过渡
向 IPv6 过渡只能采用逐步演进的办法,同时,还必须使新安装的 IPv6 系统能够向后兼容:IPv6 系统必须能够接收和转发 IPv4分组,并且能够为 IPv4 分组
选择路由。
两种向 IPv6 过渡的策略:使用双协议栈
使用隧道技术
12.双协议栈
双协议栈 (dual stack) 是指在完全过渡到 IPv6之前,使一部分主机(或路由器)装有两个协议栈,一个 IPv4 和一个 IPv6。双协议栈的主机(或路由器)记为
IPv6/IPv4,表明它同时具有两种 IP 地址:一个 IPv6 地址和一个 IPv4 地址。双协议栈主机在和 IPv6 主机通信时是采用IPv6 地址,而和 IPv4 主机通信时就采用
IPv4地址。根据 DNS返回的地址类型可以确定使用 IPv4地址还是 IPv6 地址。
13.隧道技术
在 IPv6 数据报要进入 IPv4 网络时,把 IPv6数据报封装成为 IPv4 数据报,整个的 IPv6数据报变成了 IPv4 数据报的数据部分。当 IPv4 数据报离开 IPv4 网
络中的隧道时,再把数据部分(即原来的 IPv6 数据报)交给主机的 IPv6 协议栈。
十二、IP多播
IP 多播 (multicast,以前曾译为组播) 已成为互联网的一个热门课题。
目的:更好第支持一对多通信。
一对多通信:一个源点发送到许多个终点。
例如,实时信息的交付(如新闻、股市行情等),软件更新,交互式会议及其他多媒体通信
1.IP多播节省网络资源
==》
2.IP多播
在互联网上进行多播就叫做 IP 多播。互联网范围的多播要靠路由器来实现。能够运行多播协议的路由器称为多播路由器(multicast router)。当然它也可以转发
普通的单播IP数据报。
从 1992 年起,在互联网上开始试验虚拟的多播主干网 MBONE (Multicast Backbone On theInterNEt)。 现在多播主干网已经有了相当大的规模。
3.多播IP地址
IP 多播所传送的分组需要使用多播 IP 地址。在多播数据报的目的地址写入的是多播组的标识符。多播组的标识符就是 IP 地址中的 D 类地址(多播地址)。
每一个 D 类地址标志一个多播组。 多播地址只能用于目的地址,不能用于源地址。
4.多播数据报
多播数据报和一般的 IP 数据报的区别就是它使用 D 类 IP 地址作为目的地址,并且首部中的协议字段值是 2,表明使用网际组管理协议 IGMP。多播数据报也是
“尽最大努力交付”,不保证一定能够交付多播组内的所有成员。对多播数据报不产生 ICMP 差错报文。因此,若在 PING 命令后面键入多播地址,将永远不会收到响应。
5.在局域网上进行硬件多播
互联网号码指派管理局 IANA 拥有的以太网地址块的高 24 位为 00-00-5E。
以太网多播地址块的范围是:从 01-00-5E-00-00-00 到 01-00-5E-FF-FF-FF。
6.地址映射关系
由于多播 IP 地址与以太网硬件地址的映射关系不是唯一的,因此收到多播数据报的主机,还要在 IP 层利用软件进行过滤,把不是本主机要接收的数据报丢弃。
7.多播需要两种协议
为了使路由器知道多播组成员的信息,需要利用网际组管理协议 IGMP (InternetGroup Management Protocol)。连接在局域网上的多播路由器还必须和互联网上的
其他多播路由器协同工作,以便把多播数据报用最小代价传送给所有的组成员。这就需要使用多播路由选择协议。
8.IGMP协议
IGMP协议使用范围:IGMP 并非在互联网范围内对所有多播组成员进行管理的协议。IGMP 不知道 IP 多播组包含的成员数,也不知道这些成员都分布在哪些网络上。
IGMP 协议是让连接在本地局域网上的多播路由器知道本局域网上是否有主机(严格讲,是主机上的某个进程)参加或退出了某个多播组。
IGMP和IP:和 ICMP 相似,IGMP 使用 IP 数据报传递其报文(即 IGMP 报文加上 IP 首部构成 IP 数据报),但它也向 IP 提供服务。因此,我们不把 IGMP 看成是一
个单独的协议,而是属于整个网际协议 IP 的一个组成部分。
IGMP工作的两个时段:第一阶段:加入多播组。当某个主机加入新的多播组时,该主机应向多播组的多播地址发送 IGMP 报文,声明自己要成为该组的成员。本地的
多播路由器收到 IGMP 报文后,将组成员关系转发给互联网上的其他多播路由器。
第二阶段:探询组成员变化情况。因为组成员关系是动态的,因此本地多播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是
否还继续是组的成员。只要对某个组有一个主机响应,那么多播路由器就认为这个组是活跃的。但一个组在经过几次的探询后仍然没有
一个主机响应,则不再将该组的成员关系转发给其他的多播路由器。
十三、VPN和NAT技术
1.虚拟专用网VPN
利用公用的互联网作为本机构各专用网之间的通信载体,这样的专用网又称为虚拟专用网VPN (Virtual Private Network)。“专用网”是因为这种网络是为本机构的主机用
于机构内部的通信,而不是用于和网络外非本机构的主机通信。“虚拟”表示“好像是”,但实际上并不是,因为现在并没有真正使用通信专线,而VPN只是在效果上和真正的专
用网一样。
2.虚拟专用网VPN构建
如果专用网不同网点之间的通信必须经过公用的互联网,但又有保密的要求,那么所有通过互联网传送的数据都必须加密。一个机构要构建自己的 VPN 就必须为它的每
一个场所购买专门的硬件和软件,并进行配置,使每一个场所的 VPN 系统都知道其他场所的地址。
3.隧道技术实现虚拟专用网
==》
4.远程接入VPN
远程接入 VPN (remote access VPN)可以满足外部流动员工访问公司网络的需求。在外地工作的员工拨号接入互联网,而驻留在员工 PC 机中的 VPN 软件可在
员工的PC机和公司的主机之间建立 VPN 隧道,因而外地员工与公司通信的内容是保密的,员工们感到好像就是使用公司内部的本地网络。
5.网络地址转换NAT
问题:在专用网上使用专用地址的主机如何与互联网上的主机通信(并不需要加密)?
解决:(1) 再申请一些全球 IP 地址。但这在很多情况下是不容易做到的。
(2)采用网络地址转换 NAT。这是目前使用得最多的方法
网络地址转换 NAT (Network AddressTranslation) 方法于1994年提出。需要在专用网连接到互联网的路由器上安装 NAT 软件。装有 NAT 软件的路由器叫做
NAT路由器,它至少有一个有效的外部全球IP地址。所有使用本地地址的主机在和外界通信时,都要在 NAT 路由器上将其本地地址转换成全球 IP 地址,才能和互联
网连接。
6.网络地址转换过程
1)内部主机 A 用本地地址 IPA 和互联网上主机 B通信所发送的数据报必须经过 NAT 路由器。
2)NAT 路由器将数据报的源地址 IPA 转换成全球地址 IPG,并把转换结果记录到NAT地址转换表中,目的地址 IPB 保持不变,然后发送到互联网。
3)NAT 路由器收到主机 B 发回的数据报时,知道数据报中的源地址是 IPB 而目的地址是 IPG。
4)根据 NAT 转换表,NAT 路由器将目的地址 IPG转换为 IPA,转发给最终的内部主机 A。
可以看出,在内部主机与外部主机通信时,在NAT路由器上发生了两次地址转换:离开专用网时:替换源地址,将内部地址替换为全球地址;
进入专用网时:替换目的地址,将全球地址替换为内部地址;
7.网络地址转换NAT
当 NAT 路由器具有 n 个全球 IP 地址时,专用网内最多可以同时有 n 台主机接入到互联网。这样就可以使专用网内较多数量的主机,轮流使用 NAT 路由器
有限数量的全球 IP 地址。通过 NAT 路由器的通信必须由专用网内的主机发起。专用网内部的主机不能充当服务器用,因为互联网上的客户无法请求专用网内的
服务器提供服务。
8.网络地址与端口地址转换NAPT
为了更加有效地利用 NAT 路由器上的全球IP地址,现在常用的 NAT 转换表把运输层的端口号也利用上。这样,就可以使多个拥有本地地址的主机,共用一
个 NAT 路由器上的全球 IP 地址,因而可以同时和互联网上的不同主机进行通信。使用端口号的 NAT 叫做网络地址与端口号转换NAPT (Network Address and Port
Translation),而不使用端口号的 NAT 就叫做传统的 NAT (traditional NAT)
9.NAPT地址转换表