计算机网络(第8版)-第4章 网络层

4.1 网络层的几个重要概念

4.1.1 网络层提供的两种服务

如果主机(即端系统)进程之间需要进行可靠的通信,那么就由主机中的运输层负责(包括差错处理、流量控制等)。

4.1.2 网络层的两个层面

4.2 网际协议 IP

图4-4 网际协议 IP 及其配套协议

4.2.1 虚拟互连网络

从一般的概念来讲,将网络互相连接起来要使用一些中间设备。根据中间设备所在的层次,可以有以下四种不同的中间设备:

(1)物理层使用的中间设备叫作转发器(repeater)。

(2)数据链路层使用的中间设备叫作网桥桥接器(bridge),以及交换机(switch)。

(3)网络层使用的中间设备叫作路由器(router)。

(4)在网络层以上使用的中间设备叫作网关(gateway)。用网关连接两个不兼容的系统需要在高层进行协议的转换。

讨论网络互连时,都是指用路由器进行网络互连和路由选择。

在互联网的词汇中,分组在传送途中的每一次转发都称为一“(hop)”。

4.2.2 IP 地址

IP 地址编址方式有 3 种:分类、子网划分、无分类。

1. IP 地址及其表示方法

对主机或路由器来说,IP 地址都是 32 位的二进制代码(IPv4)。

一个 IP 地址在整个互联网范围内是唯一的。

2. 分类的 IP 地址

图4-10 分类的 IP 地址(a)以及各类地址所占的比例(b)

但要注意,第一,网络号为全 0 的 IP 地址有特殊的用途,它表示“本网络;第二,网络号为127(即01111111)保留作为本地软件环回测试(loopback test)本主机的进程之间的通信之用

这里要指出,由于近年来已经广泛使用无分类 IP 地址进行路由选择(即网络位任意,主机位全 0,网络主机 ID),A 类、B 类和 C 类这种分类地址已成为历史[RFC 1812]。

3. 无分类编制 CIDR

这种编制方法的全名是无分类域间路由选择 CIDR(Classless Inter-Domain Routing,CIDR 的读音是“sider”)[RFC 4632],其要点有以下三个。

(1)网络前缀

(2)地址块

(3)地址掩码

地址掩码(常简称为掩码,又称为子网掩码)由一连串 1 和接着的一连串 0 组成,而 1 的个数就是网络前缀的长度。

把二进制的 IP 地址和地址掩码进行按位 AND 运算,即可得出网络地址。

4. IP 地址的特点

4.2.3 IP 地址与 MAC 地址

这里要强调指出以下几点:

(1)在 IP 层抽象的互联网上只能看到 IP 数据报

(2)虽然在 IP 数据报首部有源站 IP 地址,但路由器只根据目的站的 IP 地址进行转发

(3)在局域网的链路层,只能看见 MAC 帧

(4)尽管互连在一起的网络的 MAC 地址体系各不相同,但 IP 层抽象的互联网却屏蔽了下层这些很复杂的细节。只要我们在网络层上讨论问题,就能够使用统一的、抽象的 IP 地址研究主机和主机或路由器之间的通信

4.2.4 地址解析协议 ARP

(a)主机 A 广播发送 ARP 请求分组(广播请求)

(b)主机 B 向 A 发送 ARP 响应分组(单播)

图4-18 地址解析协议 ARP 的工作原理

然而 IP 编址把这个复杂问题解决了。连接到互联网的主机只需各自拥有一个 IP 地址,它们之前的通信就像连接在同一个网络上那样简单方便,即使必须多次调用 ARP 来找到 MAC 地址,但这个过程都是由计算机软件自动进行的,对用户来说是看不见的。

4.2.5 IP 数据报的格式

图4-20 IP 数据报的格式

从图4-20 可以看出,一个 IP 数据报由首部和数据两部分组成。首部的前一部分长度是固定的,共 20 字节,是所有 IP 数据报必须具有的。

下面介绍首部各字段的意义。

1. IP 数据报首部的固定部分中的各字段

(1)版本

(2)首部长度

(3)区分服务

(4)总长度

总长度指首部和数据之和的长度,单位为字节。总长度字段为 16 位,因此数据报的最大长度为 2^{16}-1=65535 字节

(5)标识(identification)

(6)标志(flag)

占 3 位,但目前只有两位有意义。

  • 标志字段中的最低位为 MF(More Fragment)。MF = 1即表示后面“还有分片”的数据报。MF = 0表示这已是若干数据报片中的最后一个。
  • 标志字段中间的一位记为 DF(Don't Fragment),意思是“不能分片”。只有当 DF = 0 时才允许分片。

(7)片偏移

占 13 位。片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。这就是说,除最后一个数据报片外,其它每个分片的长度一定是 8 字节(64 位)的整数倍。

(8)生存时间

(9)协议

(10)首部检验和

(11)源地址

(12)目的地址

2. IP 数据报首部的可变部分

4.3 IP 层转发分组的过程

4.3.1 基于终点的转发

分组每到达一个路由器,路由器就根据分组中的终点(目的地址)查到转发表,然后就得知下一跳应当到哪一个路由器。

4.3.2 最长前缀匹配

4.3.3 使用二叉线索树查找转发表

4.4 网际控制报文协议 ICMP

4.4.1 ICMP 报文的种类

4.4.2 ICMP 的应用举例

4.5 IPv6

4.5.1 IPv6 的基本首部

在 RFC 8200 中定义了以下六种扩展首部:(1)逐跳选项;(2)路由选择;(3)分片;(4)鉴别;(5)封装安全有效载荷;(6)目的站选项。

4.5.2 IPv6 的地址

一般来讲,一个 IPv6 数据报的目的地址可以是以下三种基本类型地址之一:

(1)单播(unicast)        单播就是传统的点对点通信。

(2)多播(multicast)        多播是一点对多点的通信,数据报发送到一组计算机中的每一个。

(3)任播(anycast)        这是 IPv6 增加的一种类型。任播的终点是一组计算机,但数据报只交付其中的一个,通常是按照路由算法得出的距离最近的一个。

4.5.3 从 IPv4 向 IPv6 过渡

4.5.4 ICMPv6

4.6 互联网的路由选择协议

4.6.1 有关路由选择协议的几个基本概念

1. 理想的路由算法

路由选择协议的核心就是路由算法,即需要何种算法来获得路由表中的各项目。一个理想的路由算法应具有如下的一些特点[BELL86]:

(1)算法必须是正确的和完整的

(2)算法在计算上应简单

(3)算法应能适应通信量和网络拓扑的变化,这就是说,要有自适应性

(4)算法应具有稳定性

(5)算法应是公平的

(6)算法应是最佳的

所谓“最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已。

2. 分层次的路由选择协议

这样,互联网就把路由选择协议划分为两大类,即:

(1)内部网关协议 IGP(Interior Gateway Protocol):具体的协议有很多种,如 RIP 和 OSPF 等

(2)外部网关协议 EGP(External Gateway Protocol):目前使用的协议是 BGP-4。

4.6.2 内部网关协议 RIP

1. 协议 RIP 的工作原理

RIP(Routing Information Protocol)是内部网关协议 IGP 中最先得到广泛使用的协议[RFC 1058],它的中文译名是路由信息协议。RIP 是一种分布式的基于距离向量的路由选择协议,是互联网的标准协议,其最大优点就是简单。

RIP 允许一条路径最多包含 15 个网络。因此“距离”等于 16 时即相当于不可达。可见 RIP 只适用于小型互联网

协议 RIP 的特点是:

(1)仅和相邻路由器交换信息。

(2)路由器交换的信息是当前本路由器所知道的全部信息,即自己现在的路由表

(3)按固定的时间间隔交换路由信息,例如,每隔 30 秒。

2. 距离向量算法

3. 坏消息传播得慢

4.6.3 内部网关协议 OSPF

1. 协议 OSPF 的基本特点

OSPF 最主要的特征就是使用链路状态协议(link state protocol),而不是像 RIP 那样的距离向量协议。协议 OSPF 的特点是

(1)向本自治系统中所有路由器发送信息。这里使用的方法是洪泛法(flooding),这就是路由器通过所有输出端口向所有相邻的路由器发送信息。

(2)发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息

(3)当链路状态发生变化或每隔一段时间(如 30 分钟),路由器向所有路由器用洪泛法发送链路状态信息

2. OSPF 的五种分组类型

4.6.4 外部网关协议 BGP

1. 协议 BGP 的主要特点

我们知道,内部网关协议(如 RIP 或 OSPF)主要是设法使数据报在一个 AS 种尽可能有效地从源站传送到目的站。在一个 AS 内部也不需要考虑其它方面的策略。然而 BGP 使用的环境却不同。这主要是因为以下的两个原因:

第一,互联网的规模太大,使得自治系统 AS 之间的路由选择非常困难

第二,自治系统 AS 之间的路由选择必须考虑有关策略

由于上述情况,边界网关协议 BGP 只能是力求选择出一条能够到达目的网络前缀且比较好的路由(不能兜圈子),而并非要计算出一条最佳路由BGP采用了路径向量(path vector)路由选择协议,它与距离向量协议(如 RIP)和链路状态协议(如 OSPF)都有很大的区别。

2. BGP 路由

3. 三种不同的自治系统 AS

4. BGP 的路由选择

5. BGP 的四种报文

4.6.5 路由器的构成

1. 路由器的结构

图4-54 典型的路由器的结构(图中的数字1~3表示相应层次的构件)

从图4-54 可以看出,整个的路由器结构可划分为两大部分:路由选择部分和分组转发部分

2. 交换结构

4.7 IP 多播

4.7.1 IP 多播的基本概念

4.7.2 在局域网上进行硬件多播

4.7.3 网际组管理协议 IGMP 和多播路由选择协议

4.8 虚拟专用网 VPN 和网络地址转换 NAT

4.8.1 虚拟专用网 VPN(安全)

为了解决这种仅在内部使用的本地地址和互联网中某个 IP 地址重合所出现地址的二义性问题,RFC 1918 指明了一些专用地址(private address,即私有地址)。专用地址只能用作本地地址而不能用作全球地址。在互联网中的所有路由器,对目的地址是专用地址的数据报一律不进行转发。2013 年 4 月,RFC 6890 全面地给出了所有特殊用途的 IPv4 和 IPv6 地址,但三个 IPv4 专用地址块的指派并无变化,即

(1)10.0.0.0/8,即从 10.0.0.0 到 10.255.255.255。

(2)172.16.0.0/12,即从 172.16.0.0 到 172.31.255.255。

(3)192.168.0.0/16,即从 192.168.0.0 到 192.168.255.255。

有时一个机构的 VPN 需要有某些外部机构(通常就是合作伙伴)参加进来。这样的 VPN 就称为外联网(extranet 或 extranet VPN,即外联网 VPN)。

4.8.2 网络地址转换

装有 NAT 软件的路由器叫作 NAT 路由器,它至少有一个有效的外部全球 IP 地址。

4.9 多协议标签交换 MPLS

4.9.1 MPLS 的工作原理

4.9.2 MPLS 首部的位置与格式

4.9.3 新一代的 MPLS

4.10 软件定义网络 SDN 简介

本章的重要概念

习题

4-15

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/96175.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Maven 中引用其他项目jar包出现BOOT-INF问题

问题 在B项目中引入A项目的类,但是发现怎么也引入不进来 A项目打包之后,想在B项目中引用jar 在B项目中发现类文件无法引用 参考网上进行清缓存等一系列操作都没有解决。 最后发现引用的jar包中包含BOOT-INF, 然后去A项目中查找&#xff…

黑马点评-02使用Redis代替session,Redis + token机制实现

Redis代替session session共享问题 每个Tomcat中都有一份属于自己的session,所以多台Tomcat并不共享session存储空间,当请求切换到不同tomcat服务时可能会导致数据丢失 用户第一次访问1号tomcat并把自己的信息存放session域中, 如果第二次访问到了2号tomcat就无法获取到在1号…

CSS小计

1:设置图片随窗缩放 使用百分比 width: 100%;height: 100%; 使用vmin: 将可视区域分为100vmin width: 100vmin;height: 100vmin; 2:设置字体颜色与背景色融合 mix-blend-mode: difference 3: 设置宽度自适应 width:fit-content 4:外边距合并 当两个相领的两个容…

Prompt-Tuning(一)

一、预训练语言模型的发展过程 第一阶段的模型主要是基于自监督学习的训练目标,其中常见的目标包括掩码语言模型(MLM)和下一句预测(NSP)。这些模型采用了Transformer架构,并遵循了Pre-training和Fine-tuni…

【MySql】4- 实践篇(二)

文章目录 1. SQL 语句为什么变“慢”了1.1 什么情况会引发数据库的 flush 过程呢?1.2 四种情况性能分析1.3 InnoDB 刷脏页的控制策略 2. 数据库表的空间回收2.1 innodb_file_per_table参数2.2 数据删除流程2.3 重建表2.4 Online 和 inplace 3. count(*) 语句怎样实现…

Uniapp 婚庆服务全套模板前端

包含 首页、社区、关于、我的、预约、订购、选购、话题、主题、收货地址、购物车、系统通知、会员卡、优惠券、积分、储值金、订单信息、积分、充值、礼品、首饰等 请观看 图片参观 开源,下载即可 链接:婚庆服务全套模板前端 - DCloud 插件市场 问题反…

(一)正点原子STM32MP135移植——准备

一、简述 使用板卡:正点原子的ATK-DLMP135 V1.2 从i.mx6ull学习完过来,想继续学习一下移植uboot和内核的,但是原子官方没有MP135的移植教程,STM32MP157的移植教程用的又是老版本的代码,ST官方更新后的代码不兼容老版本…

Redis缓存设计与性能优化

文章目录 一、缓存穿透二、缓存失效(击穿)三、缓存雪崩四、热点缓存key重建优化五、缓存与数据库双写不一致六、开发规范与性能优化键值设计key名设计value设计 命令使用客户端使用系统内核参数优化vm.swapinessvm.overcommit_memory(默认0)合理设置文件句柄数慢查询日志&#…

ZRTP交叉编译与移植

1 ZRTP源码下载 这里采用的是libzrtp来自于freeswitch:libs/libzrtp。 2 ZRTP交叉编译 zrtp编译比较简单,采用configure进行编译在根目录心中zrtp编译脚本,只需要指定交叉编译工具链和安装地址即可。脚本如下所示: unset CC C…

【刷题笔记10.6】LeetCode:汉明距离

LeetCode:汉明距离 一、题目描述 两个整数之间的汉明距离是指这两个数字对应二进制位不同的位置的数目。 给你两个整数x 和 y,计算并返回他们之间的汉明距离。 二、分析及代码实现 对于汉明距离问题我们其实可以将其转换为:计算x 和 y按…

使用opencv及FFmpeg编辑视频

使用opencv及FFmpeg编辑视频 1.融合两个视频2.为视频添加声音2.1 安装ffmpy Python包2.2 下载ffmpeg2.3 代码实现 3.效果参考文献 帮朋友做了一个小作业,具体实现分为几个过程: 将两个mp4格式视频融合到一起为新视频添加声音 1.融合两个视频 其中一个…

makeMakefile

一、 什么是make&Makefile ? ①make 是一条命令,makefile是一个文件,配合使用,通过依赖关系和依赖方法达到我们形成可执行程序的目的 ②makefile好处就是可以进行 自动化编译 ” ,极大的提高软件开发的效率,一旦写好,只需要一个 make 命令…

MySQL 事务隔离级别与锁机制详解

目录 一、前言二、事务及其ACID属性三、并发事务处理带来的问题四、事务隔离级别4.1、隔离级别分类4.2、查看当前数据库的事务隔离级别:4.3、临时修改数据库隔离级别(重启MySQL后恢复到配置中的级别) 五、表数据准备六、MySQL常见锁介绍5.1、锁分类5.2、…

【Pytorch笔记】6.Transforms

pytorch官方文档 - transforms transforms需要使用计算机视觉工具包:torchvision。 torchvision.transforms:常用的图像预处理方法; torchvision.datasets:常用数据集的dataset实现,如MNIST、CIFAR-10、ImageNet等&am…

【RK3588】YOLO V5在瑞芯微板子上部署问题记录汇总

YOLO V5训练模型部署到瑞芯微的板子上面,官方是有给出案例和转过详情的。并且也提供了Python版本的推理代码,以及C语言的代码。 但是,对于转换过程中的细节,哪些需要改?怎么改?如何改,和为什么…

1392. 最长快乐前缀

链接&#xff1a; 1392. 最长快乐前缀 题解&#xff1a; class Solution { public:string longestPrefix(string s) {if (s.size() < 0) {return "";}int MOD 1e9 7;// 构建26的n次方&#xff0c;预处理std::vector<long> pow26(s.size());pow26[0] 1…

vue3中使用return语句返回this.$emit(),在同一行不执行,换行后才执行,好奇怪!

今天练习TodoList任务列表案例,该案例效果如图所示&#xff1a; 此案例除了根组件App.vue&#xff0c;还有TodoList、TodoInput、TodoButton三个子组件。 因为有视频讲解&#xff0c;在制作TodoList、TodoInput时很顺利&#xff0c;只是在完成TodoButton这个组件时出了点问题…

《protobuf》基础语法3

文章目录 默认值更新规则保留字段未知字段 默认值 在反序列化时&#xff0c;若被反序列化的二进制序列中不包含某个字段&#xff0c;则在反序列化时&#xff0c;就会设置对应默认值。不同的类型默认值不同&#xff1a; 类型默认值字符串“”布尔型false数值类型0枚举型0设置了…

微信开放平台第三方代小程序开发,授权事件、消息与事件通知总结

大家好&#xff0c;我是小悟 时间过得真快&#xff0c;转眼就到了国庆节尾巴&#xff0c;小伙伴们吃好喝好玩好了么。 关于微信开放平台第三方代小程序开发的两个事件接收推送通知&#xff0c;是开放平台代小程序实现业务的重要功能。 授权事件推送&#xff0c;事件类型以In…

ssm+vue的培训机构运营管理系统(有报告)。Javaee项目,ssm vue前后端分离项目。

演示视频&#xff1a; ssmvue的培训机构运营管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;ssm vue前后端分离项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结…