IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 第4章 网络层 -> 正文阅读

[网络协议]第4章 网络层

第4章 网络层

一、网络层的功能

主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务
网络层传输单位是数据报
分组、包,packet,信息在互联网当中传输的单元,网络层实现分组交付。用抓包工具抓到的一条条记录就是包
数据报,Datagram,通过网络传输的数据的基本单元,包含一个报头(header)和数据本身,其中报头描述了数据的目的地以及和其它数据之间的关系。可以理解为传输数据的分组。我们将通过网络传输的数据的基本单元称为数据报

1.异构网络互联

1.1 异构网络互联定义

所谓异构网络互联,是指将两个以上的不同的计算机网络,通过一定的方法,用一种或多种通信处理设备(即中间设备)相互连接起来,以构成更大的网络系统(中间设备又称中间系统或中继系统)
网络互联通常是指用路由器进行网络互联和路由选择
路由器是一台专用计算机,用于在互联网中进行路由选择

1.2 根据所在的层次,中继系统分为以下4种:

1)物理层的中继系统:中继器,集线器(Hub)
2)数据链路层的中继系统:网桥或交换机
3)网络层的中继系统:路由器
4)网络层以上的中继系统:网关

2.路由选择与分组转发

2.1 路由器主要完成两个功能

路由选择 (确定哪一条路径)

指按照复杂的分布式算法,根据从各相邻路由器所得到的关于整个网络拓扑的变化情况,动态地改变所选择的路由。

分组转发 (当一个分组 到达时所采取的动作)

指路由器根据转发表将用户的IP数据报从合适的端口转发出去。
路由表是根据路由选择算法得出的,而转发表是从路由表得出的。
路由表则需要对网络拓扑变化的计算最优化, 转发表的结构应当使查找过程最优化。

3.拥塞控制

3.1 拥塞控制的方法有两种:

若所有结点都来不及接受分组,而要丢弃大量分组的话,网络就处于拥塞状态。因此要采取一定措施,缓解这种拥塞。
1)开环控制。在设计网络时事先将有关发生拥塞的因素考虑周到,力求网络在工作时不产生拥塞。这是一种静态的预防方法。一旦整个系统启动并运行,中途就不再需要修改。开环控制手段包括确定何时可接收新流量、何时可丢弃分组及丢弃哪些分组,确定何种调度决策等。所有这些手段的共性是,在做决定时不考虑当前网络的状态。
2)闭环控制。事先不考虑有关发生拥塞的各种因素,采用监测网络系统去监视,及时检测哪里发生了拥塞,然后将拥塞信息传到合适的地方,以便调整网络系统的运行,并解决出现的问题。闭环控制是基于反馈环路的概念,是一种动态的方法

二、数据交换方式

1.电路交换(主要应用于电话网络)

1.1 电话通信分为三个阶段:

建立连接(呼叫/电路建立)
通信
释放连接(电路拆除)

1.2 优点:

1.通信时延小
2.有序传输
3.没有冲突
4.实时性强

1.3 缺点:

1.建立连接时间长
2.线路独占,使用效率低
3.灵活性差
4.无差错控制能力

2.报文交换(报文:源应用发送的信息整体(比如一个pdf文件))

2.1 报文交换定义

报文交换(英文:message switching),又称存储转发交换,报文整个地发送,一次一跳。报文交换是分组交换的前身
报文交换的主要特点是:存储接收到的报文,判断其目标地址以选择路由,最后,在下一跳路由空闲时,将数据转发给下一跳路由。报文交换系统现今都由分组交换或电路交换网络所承载

2.2 优点:

1.无需建立连接
2.存储转发,动态分配线路
3.线路可靠性较高
4.线路利用率较高
5.多目标服务

2.3 缺点:

1.有存储转发时延
2.报文大小不定,需要网络节点有较大缓存空间

3.分组交换(分组:把大的数据块分割成小的数据块)

3.1 优点:

1.无需建立连接
2.存储转发,动态分配线路
3.线路可靠性较高
4.线路利用率较高
5.相对于报文交换,存储管理更容易

3.2 缺点:

1.有存储转发时延
2.需要传输额外的信息量
3.乱序到目的主机时,要对分组排序重组

3.3 数据报方式

数据报方式为网络层提供无连接服务
无连接服务:不事先为分组的传输确定传输路径,每个分组独立确定传输路径,不同分组传输路径可能不同
每个分组携带源和目的地址
路由器根据分组的目的地址转发分组(基于路由协议/算法构建转发表;检索转发表;每个分组独立选路)

3.4 虚电路方式

虚电路方式为网络层提供连接服务
连接服务:首先为分组的传输确定传输路径(建立连接),然后沿该路径(连接)传输系列分组,系列分组传输路径相同,传输结束后拆除连接
虚电路将数据报方式和电路交换方式结合,以发挥两者优点
虚电路:一条源主机到目的主机类似于电路的路径(逻辑连接),路径上所有结点都要维持这条虚电路的建立都维持一张虚电路表,每一项记录了一个打开的虚电路的信息

通信过程:
建立连接(虚电路建立)

每个分组携带虚电路号(标志着走哪条虚电路),而非目的地址
源主机发送“呼叫请求”分组,收到“呼叫应答’分组后才算建立连接

数据传输

全双工通信

释放连接(虚电路释放)

源主机发送“释放请求”分组,然后拆除虚电路

4.几种传输单元名词辨析

4.1 应用层:

报文(比如用qq发送一个文件,这一个文件就是一个报文)

4.2 传输层:

报文段(报文分割而成,如果应用层的报文比较小,传输层可能不用切割,也是报文)

4.3 网络层:

IP数据报(要将报文段封装上网络层的ip地址(源地址和目的地址))
分组(如果IP数据报过大(数据链路层有最大传送单元MTU),就要进行切割,切割下来的就叫一个分组)

4.4 数据链路层:

帧(在分组的基础之上,加头加尾,加头加上MAC地址,加上物理地址,加尾加上FCS帧检验序列)

4.5 物理层:

比特流

三、路由算法及路由协议

1.路由算法

1.1 静态路由算法(非自适应路由算法)

管理员手工配置路由信息
简便、可靠,在负荷稳定、拓扑变化不大的网络中运行效果很好,广泛用于高度安全性的军事网络和较小的商业网络。路由更新慢,不适用大型网络

1.2 动态路由算法(自适应路由算法)

路由器间彼此交换信息,按照路由算法优化出路由表项
路由更新快,适用大型网络,及时响应链路费用或网络拓扑变化算法复杂,增加网络负担

全局性链路状态路由算法(OSPF协议)

所有路由器掌握完整的网络拓扑和链路费用信息

分散性距离向量路由算法(RIP协议)

路由器只掌握物理相连的邻居及链路费用

四、IP

1.IP数据报格式

1.1 TCP/IP协议栈

1.2 IP数据报



版本:IPv4 / IPv6
首部长度:单位是4B,最小为5(0101)
区分服务:指示期望获得哪种类型的服务
总长度:首部+数据,单位是1B

标识:同一数据报的分片使用同一标识
标志:只有2位有意义(x _ _)
(中间位DF (Don’t Fragment) : DF=1,禁止分片,DF=0,允许分片
最低位MF (More Fragment): MF=1,后面“还有分片”MF=0,代表最后一片/没分片)
片偏移:指出较长分组分片后,某片在原分组中的相对位置。以8B位单位

生存时间(TTL) :IP分组的保质期。经过一个路由器-1,变成0则丢弃
协议:数据部分的协议

首部检验和:占 16 位,只检验数据报的首部,不检验数据部分。这里不采用 CRC 检验码而采用简单的计算方法(数据报每经过一个路由器,路由器都要重新计算一下首部检验和)
源IP地址和目的IP地址:32位
可选字段:0~40B ,用来支持排错、测量以及安全等措施
填充:,全0,把首部补成4B的整数倍

例 一数据报的总长度为 3820 字节,其数据部分的长度为 3800 字节(使用固定首部),需要分片为长度不超过 1420 字节的数据报片。试问应当划分为几个短些的数据报片?各数据报片的总长度、片偏移字段、MF、DF标志应为何值?


IP 数据报首部中与分片有关的字段中的数值

现在假定数据报片2经过某个网络时还要再进行分片,即划分为数据报片2-1(携带数据800字节)和数据报片2-2(携带数据600字节)
那么这两个数据报片的
总长度、标识、MF、DF和片偏移分别为:
820,12345,1,0,175
620.12345.1,0,275

2.IP数据报分片

2.1 最大传送单元MTU

链路层数据帧可封装数据的上限。以太网的MTU是1500字节

3.IPv4地址



3.1 子网划分和子网掩码


例 已知IP地址是141.14.72.24,子网掩码是255.255.192.0,求网络地址

01001000
11000000
01000000
如果子网掩码是255.255.224.0,求网络地址
01001000
11100000
01000000
(说明同样的IP地址和不同的子网掩码相与,可以得到相同的网络地址)

例 某主机的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
因该主机向其所在子网发送广播分组,所以主机号全1,排除选项A
77:01001101
252:11111100
01001100(76)
所以这个IP地址所在的网络是180.80.76.0
所以目的地址可以是180.80.79.255(把主机号变为全一)

3.2 无分类编址CIDR(构成超网)

CIDR (Classless Inter-Domain Routing) :无分类域间路由选择
消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,可以更加有效地分配 IPv4 的地址空间,但无法解决 IP 地址枯竭的问题

网络前缀

地址块

CIDR把网络前缀都相同的连续的IP地址组成一个CIDR地址块

地址掩码 (address mask)

例 路由器 R 0 R_0 R0?的路由表见下表:若进入路由器 R 0 R_0 R0?的分组的目的地址为132.19.237.5,请问该分组应该被转发到哪一个下一跳路由器


第一个:132.0.0.0/8(网络前缀为8)
对应 R 0 R_0 R0?:132.19.237.5/8
R 0 R_0 R0?对应的网络号 ? \Rightarrow ? 132.0.0.0
所以可能是 R 1 R_1 R1?
第二个:132.0.0.0/11(网络前缀为11)
对应 R 0 R_0 R0?:132.19.237.5/11
R 0 R_0 R0?对应的网络号 ? \Rightarrow ? 132.0.0.0
所以可能是 R 2 R_2 R2?
第三个:132.19.232.0/22(网络前缀为11)
对应 R 0 R_0 R0?:132.19.237.5/22
R 0 R_0 R0?对应的网络号 ? \Rightarrow ? 132.19.236.0
所以不可能是 R 3 R_3 R3?
R 4 R_4 R4? 是一个特殊IP地址,默认路由
(默认路由(Default route),是对IP数据包中的目的地址找不到存在的其他路由时,路由器所选择的路由。目的地不在路由器的路由表里的所有数据包都会使用默认路由。这条路由一般会连去另一个路由器,而这个路由器也同样处理数据包: 如果知道应该怎么路由这个数据包,则数据包会被转发到已知的路由;否则,数据包会被转发到默认路由,从而到达另一个路由器。每次转发,路由都增加了一跳的距离)
综上选择 R 2 R_2 R2?,即网络前缀较长的一个

例 某网络的IP地址空间为192.168.5.0/24,采用定长子网划分,子网掩码为255.255.255.248,则该网络中的最大子网个数、每个子网内的最大可分配地址个数分别是

在CIDR基础上划分子网,子网掩码为255.255.255.248,由 248 ? \Rightarrow ? 11111000 可以得出,最后的一个字节当中,前5位作为子网号,后边3位作为主机号
所以最大子网个数为 2 5 = 32 2^5=32 25=32 个(CIDR技术中子网号是可以全0和全1的,所以不需要减2)
最大可分配地址个数为 2 3 ? 2 = 6 2^3-2=6 23?2=6 个(全0代表本网络,全1代表广播地址)

4.NAT(Network Address Translation,网络地址转换)

是1994年提出的。当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法
这种方法需要在专用网(私网IP)连接到因特网(公网IP)的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址(公网IP地址)。这样,所有使用本地地址(私网IP地址)的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接
另外,这种通过使用少量的全球IP地址(公网IP地址)代表较多的私有IP地址的方式,将有助于减缓可用的IP地址空间的枯竭。在RFC 2663中有对NAT的说明

五、ARP协议

1.ARP协议

完成主机或路由器IP地址到MAC地址的映射。解决下一跳走哪的问题(由于在实际网络的链路上传送数据帧时,最终必须使用MAC地址)
处于链路层和网络层中间的一个协议,但主要划分成网络层的协议,主要为IP地址提供服务

2.ARP协议使用过程

检查ARP高速缓存,有对应表项则写入MAC帧,没有则用目的MAC地址为FF-FF-FF-FF-FF-FF的帧封装并广播ARP请求分组,同一局域网中所有主机都能收到该请求。目的主机收到请求后就会向源主机单播一个ARP响应分组,源主机收到后将此映射写入ARP缓存(10-20min更新一次)

3.ARP协议4种典型情况

3.1 主机A发给本网络上的主机B:用ARP找到主机B的硬件地址

3.2 主机A发给另一网络上的主机B:用ARP找到本网络上一个路由器(网关)的硬件地址

3.3 路由器发给本网络的主机A:用ARP找到主机A的硬件地址

3.4 路由器发给另一网络的主机B:用ARP找到本网络上的一个路由器的硬件地址

(ARP协议自动进行)

例 主机发送lP数据报给主机B,经过了5个路由器,请问此过程总共使用了几次ARP协议?

6次

六、DHCP协议(Dynamic Host Configuration Protocol)

1.DHCP(动态主机配置协议)

DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。默认情况下,DHCP作为Windows Server的一个服务组件不会被系统自动安装,还需要管理员手动安装并进行必要的配置
动态主机配置协议DHCP是应用层协议,使用客户/服务器方式,客户端和服务端通过广播方式进行交互,基于UDP
DHCP提供即插即用联网的机制,主机可以从服务器动态获取P地址、子网掩码、默认网关、DNS服务器名称与IP地址,允许地址重用,支持移动用户加入网络,支持在用地址续租

2.工作流程

2.1 主机广播DHCP发现报文(试图找到网络中的服务器,服务器获得一个IP地址)

2.2 DHCP服务器广播DHCP提供报文(服务器拟分配给主机一个IP地址及相关配置,先到先得)

2.3 主机广播DHCP请求报文(主机向服务器请求提供IP地址)

2.4 DHCP服务器广播DHCP确认报文(正式将IP地址分配给主机)

七、ICMP

1.ICMP差错报告报文

ICMP差错报告报文数据字段

2.ICMP询问报文

3.ICMP的应用

3.1 PING

测试两个主机之间的连通性,使用了ICMP回送请求和回答报文。

3.2 Traceroute

跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报告报文。

八、IPv6(要从根本上解决地址耗尽问题)

1.lPv6数据报格式



指明了协议版本,总是6
区分数据报的类别和优先级
“流”是互联网络上从特定源点到特定终点的一系列数据报,所有属于同一个流的数据报都具有同样的流标签
标识下一个扩展首部或上层协议首部
相当于IPv4的TTL

2.lPv6和IPv4比较

1.IPv6将地址从32位(4B)扩大到128位(16B),更大的地址空间
2.IPv6将IPv4的校验和字段彻底移除,以减少每跳的处理时间
3.IPv6将IPv4的可选字段移出首部,变成了扩展首部,成为灵活的首部格式,路由器通常不对扩展首部进行检查,大大提高了路由器的处理效率
4.IPv6支持即插即用(即自动配置),不需要DHCP协议
5.IlPv6首部长度必须是8B的整数倍,IPv4首部是4B的整数倍
6.IPv6只能在主机处分片,IPv4可以在路由器和主机处分片
7.ICMPv6:附加报文类型“分组过大”
8.IPv6支持资源的预分配,支持实时视像等要求,保证一定的带宽和时延的应用
9.IPv6取消了协议字段,改成下一个首部字段
10.IPv6取消了总长度字段,改用有效载荷长度字段。11.IPv6取消了服务类型字段

3.lPv6地址表示形式

3.1 一般形式

4BF5:AA12:0216:FEBC:BA5F:039A:BE9A:2170(冒号十六进制记法)

3.2 压缩形式

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

4.lPv6基本地址类型

单播
一对一通信可做源地址+目的地址
多播
一对多通信可做目的地址
任播
一对多中的一个通信可做目的地址

5.lPv6向IPv4过渡的策略

5.1 双栈协议

双协议栈技术就是指在一台设备上同时启用lPv4协议栈和IPv6协议栈。这样的话,这台设备既能和IPv4网络通信,又能和IPv6网络通信。如果这台设备是一个路由器,那么这台路由器的不同接口上,分别配置了IPv4地址和IPv6地址,并很可能分别连接了IPv4网络和IPv6网络。如果这台设备是一个计算机,那么它将同时拥有IPv4地址和IPv6地址,并具备同时处理这两个协议地址的功能

5.2 隧道技术

通过使用互联网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据(或负载)可以是不同协议的数据帧或包。隧道协议将其它协议的数据帧或包重新封装然后通过隧道发送

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-10-17 12:19:05  更:2021-10-17 12:19:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年6日历 -2024/6/29 18:31:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码