计算机网络——网络层数据交换方式、IP数据报、IPv4地址、重要协议、IPv6


前言

本文的主要内容是计算机网络中网络层的一些基础知识,包括网络层功能概述、三种数据交换方式、路由算法概述、IP 数据报的格式与分片、IPv4地址中的子网掩码和CIDR、ARP /DHCP/ICMP 协议以及IPv6。


一、网络层功能概述

网络层的主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务,网络层传输单位是数据报。
网络层的功能有:①路由选择与分组转发(选择一条最佳的路径);②异构网络互联;③拥塞控制。
若所有结点都来不及接受分组,而要丢弃大量分组的话,网络就处于拥塞状态,因此要采取一定措施缓解这种拥塞。主要的方法有开环控制(静态)和闭环控制(动态)。


二、数据交换方式

如果主机通信时每两个主机之间都通过一条线连接的话,需要的代价很大,因此就出现了交换设备,交换设备的引入可以大大缩减链路数量。如果主机数量太多,对交换设备的接口数量的要求就会很高,因此就有了交换网络,如下图所示。
在这里插入图片描述

1、电路交换

电路交换的一个简单例子就是电话网络,如下图所示。
在这里插入图片描述
电路交换的阶段分为建立连接(呼叫/电路建立)、通信和释放连接(拆除电路)。
电路交换的优点:①通信时延小;②有序传输 ;③没有冲突;④实时性强。
电路交换的缺点:①建立连接时间长;②线路独占,使用效率低;③灵活性差;④无差错控制能力。

2、报文交换

报文是源应用发送的信息整体。
报文发送的示意图如下图所示。
在这里插入图片描述
上图中的交换设备具有存储转发的功能,也就是报文传送到该交换设备后,该交换设备不会把它立即发送出去,而是先存储起来,等线路空闲时再进行发送。
报文交换的优点:①无需建立连接;②存储转发,动态分配线路;③线路可靠性较高;④线路利用率较高;⑤多目标服务。
报文交换的缺点:①有存储转发时延;②报文大小不定,需要网络节点有较大的缓存空间。

3、分组交换

分组指的是把大的数据块分割成小的数据块,然后进行传输。
分组交换发送数据的示意图如下图所示。
在这里插入图片描述
分组交换的优点:①无需建立连接;②存储转发,动态分配线路;③线路可靠性较高;④线路利用率较高;⑤相对于报文交换,其存储管理更容易,因为其对缓存空间的大小要求不高。
分组交换的缺点:①有存储转发时延;②需要传输额外的信息量;③乱序到目的主机时,要对分组排序重组。
举例:根据下图所给信息,分别计算报文交换和分组交换下从源主机到目的主机所耗费的最短时间。
在这里插入图片描述
解答:耗费最短的时间肯定要经过最少的交换设备,所以传送的路径为源主机—>交换设备1—>交换设备2—>目的主机。
采用报文交换方式:从源主机传送完所有数据需要 10000 b i t 1000 b p s \frac{10000bit}{1000bps} 1000bps10000bit = 10s,从交换设备 1 传送完所有数据需要也需要 10s,从交换设备 2 传送完所有数据需要也需要 10s,所以总共需要 10s + 10s +10s = 30s。
采用分组交换方式:10bit 为一个分组,总共1000个分组,传送每个分组需要 10 b i t 1000 b p s \frac{10bit}{1000bps} 1000bps10bit = 0.01s,由于各分组之间是并行传输的,因此只需要考虑最后一个分组从源主机传送到目的主机的时间,即 0.01s × 1000 + 0.01s + 0.01s = 10.02s。
通过对比可以发现,分组交换方式能够大大缩减数据传送的时间。
电路交换、报文交换和分组交换的比较如下图所示。
在这里插入图片描述
在传送数据量大且传送时间远大于呼叫时间的情况下选择电路交换,电路交换传输时延最小。报文交换和分组交换都采用存储转发的方式,从信道利用率看,报文交换和分组交换要优于电路交换,其中分组交换时延更小。

4、数据报和虚电路

数据报方式为网络层提供无连接服务。虚电路方式为网络层提供连接服务。
无连接服务:不事先为分组的传输确定传输路径,每个分组独立确定传输路径,不同分组传输路径可能不同。
连接服务:首先为分组的传输确定传输路径,即建立连接,然后沿该路径传输系列分组,系列分组传输路径相同,传输结束后拆除连接。
各层对应的单元名词如下图所示。
在这里插入图片描述
数据报采取无连接方式,且每个分组携带者源地址和目的地址,路由器根据分组的目的地址转发分组。基于路由协议构建转发表,然后检索转发表,从而每个分组实现独立选择。
虚电路将数据报方式和电路交换方式结合,以发挥两者优点。
虚电路:一条源主机到目的主机类似于电路的路径,路径上所有结点都要维持这条虚电路的建立,都维持一张虚电路表,每一项记录了一个打开的虚电路的信息。
数据报和虚电路的对比如下表所示。
在这里插入图片描述


三、路由算法概述

最佳路由中的最佳只能是相对于某一种特定要求下得出的较为合理的选择。
路由算法分为静态路由算法和动态路由算法。
静态路由算法也称为非自适应路由算法,它是指管理员手工配置路由信息,其优点是简便、可靠,在负荷稳定、拓扑变化不大的网络中运行效果很好,广泛用于高度安全性的军事网络和较小的商业网络,其缺点是路由更新慢,不适用大型网络。
动态路由算法也称为自适应路由算法,它是指路由器间彼此交换信息,按照路由算法优化出路由表项,其优点是路由更新快,适用大型网络,及时响应链路费用或网络拓扑变化,其缺点是算法复杂,会增加网络负担。
动态路由算法还可以根据全局性和分散性分为链路状态路由算法和距离向量路由算法。 链路状态路由算法是指所有路由器掌握完整的网络拓扑和链路费用信息。距离向量路由算法是指路由器只掌握物理相连的邻居及链路费用。
自治系统(AS):在单一的技术管理下的一组路由器,这些路由器使用一种 AS 内部的路由选择协议和共同的度量以确定分组在该 AS 内的路由,同时还使用一种 AS 之间的路由协议以确定在 AS 之间的路由。一个 AS 内的所有网络都属于一个行政单位来管辖,一个自治系统的所有路由器在本自治系统内都必须连通。
路由选择协议分为内部网关协议(IGP,Interior Gateway Protocol)和外部网关协议(EGP,External Gateway Protocol)。


四、IP 数据报

1、IP 数据报格式

IP 数据报如果太大,就会形成分组。
IP 数据报格式的示意图如下图所示。
在这里插入图片描述
由上图可以看到,首部分为固定部分和可变部分,首部的具体划分如下图所示。
在这里插入图片描述
版本:有 IPv4 和 IPv6,目前主流的是 IPv4。
首部长度:占 4 位,其单位是 4B,最小为 5(二进制为0101)。 5 × 4B = 20B
区分服务:指示期望获得哪种类型的服务。
总长度:占 16 位,首部+数据,单位是1B。最大为 ( 2 16 − 1 ) (2^{16}-1) (2161) × 1B = 65535B
生存时间(TTL,Time to Live):IP 分组的保质期,每经过一个路由器减 1,变成 0 则丢弃。生存时间的提出是为了防止数据在各路由器之间循环传送。
协议:数据部分的协议,主要的协议如下图所示。
在这里插入图片描述
首部检验和:只检验首部,不检验数据部分,检验数据报是否出错。
源 IP 地址和目的 IP 地址:32位。
可选字段:0~40B,用来支持排错、测量以及安全等措施。
填充:全0,把首部补成 4B 的整数倍。

2、IP 数据报分片

IP 数据报之所以要分片是因为数据部分太长,以太网的最大传输单元(MTU)是1500B。
IP 数据报分片涉及到首部中的标识、标志和片偏移字段,如下图所示。
在这里插入图片描述
标识:同一数据报的分片使用同一标识,这样才能在接收端将各分片再组合起来。
标志:占 3 位,但只有后 2 位有意义,其格式为:x ▁ ▁
中间位为不分片位(DF,Don’t Fragment):当 DF=1,禁止分片;当 DF=0,允许分片。
最低位为还有分片位(MF,More Fragment):当 MF=1,表示后面还有分片;当 MF=0,代表这是最后一片或者没分片。
片偏移:指出较长分组分片后,某片在原分组中的相对位置,它以 8B 为单位。除了最后一个分片,每个分片长度一定是 8B 的整数倍,最后一个分片也可能是 8B 的整数倍。
下图是一个数据报分片的例子。
在这里插入图片描述
总结成一个表格如下表所示。

总长度标识不分片 DF还有分片MF片偏移
原始数据报382012345000
数据报片 1142012345010
数据报片 214201234501175
数据报片 310201234500350

对于数据报分片,需要注意的是分片的时候预留首部的20B,其次就是片偏移的计算。


五、IPv4地址

1、IP 地址

IP 编址的历史阶段:分类的 IP 地址;子网的划分;构成超网(无分类编址方法)。
IP 地址:全世界唯一的32位(4字节)标识符,标识路由器主机的接口。
IP地址由网络号和主机号组成,比如11011111 00000001 00000001 00000001= 223.1.1.1 (点分十进制表示),比如前 8 位是网络号,后面 24 位为主机号。
IP 地址分为以下 5 类,注意其网络号的位数及其开头,如下图所示。
在这里插入图片描述
A、B、C 类各自所能表示的最大可用网络数、第一个可用的网络号、最后一个可用的网络号以及每个网络中最大的主机数如下图所示。
在这里插入图片描述
一些特殊的 IP 地址如下图所示。
在这里插入图片描述

2、网络地址转换

网络地址转换(NAT,Network Address Translation):在专用网连接到因特网的路由器上安装 NAT 软件,安装了 NAT 软件的路由器叫 NAT 路由器,它至少有一个有效的外部全球IP地址。
简单示意图如下图所示。
在这里插入图片描述
NAT 路由器有一个网络转换表,一个是外网,一个是内网,内网和外网都有地址和端口号,NAT 路由器就负责实现两者之间的转换。

3、子网划分和子网掩码

分类 IP 地址的弱点是 IP 地址空间的利用率有时很低,此外,两级(网络号和主机号) IP 地址不够灵活。
子网划分就是把主机号分为子网号和主机号两部分,简单的示意图如下。
在这里插入图片描述
需要注意的是,单位划分子网后,对外仍表现为一个网络,即本单位外的网络看不见本单位内子网的划分。
如下图,到达路由器的分组怎么传送到目的主机呢?
在这里插入图片描述
这里就需要子网掩码了,不管是两级 IP 地址还是三级 IP 地址,除了主机号全0外,其他位全部设为1,如下图所示。
在这里插入图片描述
子网掩码与 IP 地址逐位相与就会得到子网的网络地址。
举例1:已知 IP 地址为 141.14.72.24,子网掩码是255.255.192.0,求网络地址。
解答:IP 地址的前两位与 255 (11111111) 相与后还是自身,最后一位与0相与后是0,故只需要计算第三位相与的结果。72 (01001000) 与 192 (11000000) 相与后得 64 (01000000)。故所求的网络地址为 141.14.64.0。
举例2:某主机的IP地址为180.80.77.55,子网掩码为255.255.252.0。若该主机向其所在子网发送广播分组,则目的地址可以是()。
A. 180.80.76.0 B. 180.80.76.255 C. 180.80.77.255 D. 180.80.79.255
解答:252 对应的二进制为 11111100,故该掩码对应的主机号是10位的(第三位十进制对应的二进制下的后2位加上第四位十进制的8位)。广播分组要求主机号全1,因此在求出的网络地址的第三位(十进制下的第三位)的后两位要置为1。
77 (01001101) 与 252 (11111100) 相与得 76 (01001100),但是后两位要置为1,即01001111,也就是79,第一位、第二位相与后不变,最后一位是255,故目的地址是 180.80.79.255,故选 D

4、无分类编址CIDR

无分类域间路由选择 CIDR 消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,它划分为网络前缀(可以是任意的长度,不是固定的位数)和主机号两部分,如下图所示。
在这里插入图片描述
无分类编址 CIDR 的记法是:IP 地址后面加上 “/”,然后写上网络前缀的位数。比如:128.14.32.0 /20,即网络前缀的位数为 20 位。
CIDR 融合了子网地址与子网掩码,方便了子网的划分。CIDR 把网络前缀都相同的连续的 IP 地址组成一个 CIDR地址块。CIDR 的子网掩码就是网络前缀部分全置为1,剩余部分置为0。
举例:根据192.199.170.82 / 27 写出最小地址和最大地址。
解答:已知网络前缀是 27 位,故主机号只有 5 位,所以最后 5 位为0是最小地址,最后 5 位为1是最大地址。82 对应的二进制为 01010010,后五位全0是 01000000,对应十进制是64,后五位全1是 01011111,对应的十进制是95。故最小地址为 192.199.170.64,最大地址为 192.199.170.95。
构成超网:将多个子网聚合成一个较大的子网,叫做构成超网或路由聚合。使用的方法是缩短网络前缀。
使用 CIDR 时,查找路由表可能得到几个匹配结果,应选择具有最长网络前缀的路由。前缀越长,地址块越小,路由越具体。
举例如下图所示。
在这里插入图片描述
解答:当网络前缀是8位时,255.0.0.0 (11111111 00000000 00000000 00000000)与 132.19.237.5 (10000100 00010011 11101101 00000101) 相与的结果是132.0.0.0,A 符合。
当网络前缀是 11 位时,255.224.0.0 (11111111 11100000 00000000 00000000)与 132.19.237.5 (10000100 00010011 11101101 00000101) 相与的结果是132.0.0.0,B 符合。
当网络前缀是 22 位时,255.255.252.0 (11111111 11111111 11111100 00000000)与 132.19.237.5 (10000100 00010011 11101101 00000101) 相与的结果是132.19.236.0,C 不符合。
0.0.0.0/0 是默认路由,找不到合适的网络时才发送给默认路由让其帮忙寻找,本题中也不符合。
综上所述,虽然 A 也符合,但 B 的路由前缀更长,因此路由更具体,所以选 B 选项。
举例:某网络的IP地址空间为192.168.5.0/24,采用定长子网划分,子网掩码为255.255.255.248,则该网络中的最大子网个数、每个子网内的最大可分配地址个数分别是()。
A. 32, 8 B. 32, 6 C. 8, 32 D. 8, 30
解答:子网掩码 255.255.255.248 的二进制是 11111111 11111111 11111111 11111000,故子网号占 5 位,主机号占 3 位,最大子网个数 = 2 5 2^5 25 = 32,每个子网内的最大可分配地址个数 = 2 3 − 2 2^3-2 232 = 6 (去除掉全0和全1) ,故选择 B 选项。


六、重要协议

TCP/IP 协议栈的结构如下图所示。
在这里插入图片描述
下面会介绍到其中的 ARP 协议和 ICMP 协议。

1、ARP 协议

由于在实际网络的链路上传送数据帧时最终必须使用 MAC 地址,而 ARP 协议就是完成主机或路由器 IP 地址到 MAC 地址映射的。ARP 协议归根结底就是解决下一跳走哪的问题。
ARP 协议使用过程:检查ARP高速缓存,有对应表项则写入MAC帧,没有则用目的MAC地址为FF-FF-FF-FF-FF-FF的帧封装并广播ARP请求分组,同一局域网中所有主机都能收到该请求。目的主机收到请求后就会向源主机单播一个ARP响应分组,源主机收到后将此映射写入ARP缓存。
ARP 协议的4种典型情况
①主机A发给本网络上的主机B:用ARP找到主机B的硬件地址(MAC地址)即可;
②主机A发给另一网络上的主机B:用ARP找到本网络上的一个路由器(网关)的硬件地址;
③路由器发给本网络的主机A:用ARP找到主机A的硬件地址;
④路由器发给另一网络的主机B:用ARP找到本网络上的一个路由器的硬件地址。
主机1往主机3(两个主机在同一个局域网内)发送数据过程的简单示意图如下图所示。
在这里插入图片描述
主机1往主机5(两个主机不在同一个局域网内)发送数据过程的简单示意图如下图所示。
在这里插入图片描述
一个简单的例子如下图所示。
在这里插入图片描述

2、DHCP 协议

DHCP (Dynamic Host Configuration Protocol,动态主机配置协议) 是应用层协议,使用客户/服务器的方式,客户端和服务端通过广播方式进行交互,基于UDP。
DHCP 提供即插即用联网的机制,主机可以从服务器动态获取IP地址、子网掩码、默认网关、DNS服务器名称与IP地址,允许地址重用,支持移动用户加入网络,支持在用地址续租。
DHCP 协议的工作流程为:
在这里插入图片描述
①主机广播DHCP发现报文。 试图找到网络中的DHCP服务器,服务器获得一个IP地址。
②DHCP服务器广播DHCP提供报文。 服务器(所有的)拟分配给主机一个IP地址及相关配置,先到主机的IP地址会被使用。
③主机广播DHCP请求报文。 主机向服务器请求提供IP地址。这里双方都已经确认了,之所以还用广播的方式是为了“通知”其他的DHCP服务器收回刚才分配的IP地址。
④DHCP服务器广播DHCP确认报文。 正式将IP地址分配给主机。

3、ICMP 协议

ICMP (Internet control message protocol,网络控制报文协议) 是为了更有效地转发 IP 数据报和提高交付成功的机会。
ICMP 报文的组成如下图所示。
在这里插入图片描述
ICMP 报文分为 ICMP 差错报文和 ICMP 询问报文。
ICMP 差错报告报文的5种情况:
①终点不可达:当路由器或主机不能交付数据报时就向源点发送终点不可达报文。
②源点抑制:当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢。
③时间超过:当路由器收到生存时间 TTL=0 的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文,当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文。
④参数问题:当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。
⑤改变路由/重定向:路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器,即可通过更好的路由。
ICMP 差错报告报文的组成如下图所示。
在这里插入图片描述
不应发送 ICMP 差错报文的情况:
①对ICMP差错报告报文不再发送ICMP差错报告报文;②对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文;③对具有组播地址的数据报都不发送ICMP差错报告报文;④对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文。
ICMP 询问报文:
①回送请求和回答报文。主机或路由器向特定目的主机发出的询问,收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。测试目的站是否可达以及了解其相关状态。
②时间戳请求和回答报文。请某个主机或路由器回答当前的日期和时间,用来进行时钟同步和测量时间。
③掩码地址请求和回答报文。
④路由器询问和通告报文。
掩码地址请求和回答报文和路由器询问和通告报文现在已经不再使用。
ICMP 的应用包括 PING 和 Traceroute。其中 PING 是测试两个主机之间的连通性,它使用的是 ICMP 回送请求和回答报文;Traceroute 是跟踪一个分组从源点到终点的路径,它使用的是 ICMP 时间超过差错报告报文。


七、IPv6

1、IPv6

IPv6 数据报格式如下图所示。
在这里插入图片描述
将其细划分之后如下图所示。
在这里插入图片描述
版本:指明协议版本,总是6。
优先级:区分数据报的类别和优先级。
流标签:“流”是互联网络上从特定源点到特定终点的一系列数据报,所有属于同一个流的数据报都具有同样的流标签。
有效载荷长度:包括扩展首部和数据的长度。
下一个首部:标识下一个扩展首部或上层协议首部。
跳数限制:相当于 IPv4 的生存时间(TTL,Time to Live)。
源地址和目的地址相对于 IPv4 的32位提升到了128位。
IPv6 地址的一般表示形式为冒号十六进制记法,4位二进制数表示一位十六进制数,每4位十六进制数为一组,共8组,组与组之间用冒号隔开。例如4BF5:AA12:0216:FEBC:BA5F:039A:BE9A:2170。
压缩形式可以省略前面的0,四个0可以用一个0表示。比如 4BF5:0000:0000:0000:BA5F:039A:000A:2176 的压缩形式为:4BF5:0:0:0:BA5F:39A:A:2176。
零压缩指的是一连串连续的0可以被一对冒号取代,双冒号表示法在一个地址中仅可出现一次。如 FF05:0:0:0:0:0:0:B3 的零压缩形式为:FF05::B3。
IPv6 基本地址类型有单播、多播和任播。 单播是一对一通信,可以做源地址和目的地址;多播是一对多通信,可以做目的地址;任播是一对多中的一个通信(一般选择最近的一个),可以做目的地址。

2、IPv4 和 IPv6 的比较和过渡策略

IPv4 和 IPv6 的比较:
①IPv6将地址从IPv4的32位扩大到128位,有了更大的地址空间。
②IPv6将IPv4的校验和字段彻底移除,以减少每跳的处理时间。
③IPv6将IPv4的可选字段移出首部,变成了扩展首部,成为灵活的首部格式,路由器通常不对扩展首部进行检查,大大提高了路由器的处理效率。
④IPV6支持即插即用,即自动配置IP,不需要DHCP协议。
⑤IPv6首部长度必须是8B的整数倍,IPv4首部是4B的整数倍。
⑥IPv6只能在主机处分片,IPv4可以在路由器和主机处分片。
⑦ICMPv6:附加报文类型“分组过大”。
⑧IPv6支持资源的预分配,支持实时视像等要求,保证一定的带宽和时延的应用。
⑨IPv6取消了协议字段,改成下一个首部字段。
⑩IPv6取消了总长度字段,改用有效载荷长度字段。
⑪IPv6取消了服务类型字段。
IPv6 向 IPv4 的过渡策略:
双栈协议:双栈协议技术就是指在一台设备上同时启用IPv4协议栈和IPv6协议栈,这样的话设备既能和IPv4网络通信,又能和IPv6网络通信。如果这台设备是一个路由器,那么这台路由器的不同接口上,分别配置了IPv4地址和IPv6地址,并很可能分别连接了IPv4网络和IPv6网络。如果这台设备是一个计算机,那么它将同时拥有IPv4地址和IPv6地址,并具备同时处理这两个协议地址的功能。
隧道技术:隧道技术通过使用互联网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据可以是不同协议的数据帧或包。隧道协议将其它协议的数据帧或包重新封装然后通过隧道发送。


总结

以上就是计算机网络——网络层数据交换方式、IP数据报、IPv4地址、重要协议、IPv6 的所有内容了,三种数据交换方式、IP数据报的格式和分片、IPv4地址以及三种重要的协议是本文中的重点知识。
参考视频:
网络层功能概述
数据交换方式
路由算法与路由协议概述
IP 数据报格式
IP 数据报分片
IPv4 地址
网络地址转换
子网划分和子网掩码
无分类编址CIDR
ARP 协议
DHCP 协议
ICMP 协议
IPv6

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西岸贤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值