互联网计算
2025年春
林圣旋
第一章-计算机网络和因特网
因特网是一个世界范围的计算机网络,即一个互联了遍及全世界的数十亿计算设备的网络。
•什么是主机/端系统、分组、协议?
主机/端系统:主机或端系统是计算机网络中的终端设备,它们运行各种网络应用程序,如Web浏览器、电子邮件客户端、文件传输工具等。主机可以是个人计算机、服务器、移动设备等。
端系统通过通信链路和分组交换机的网络连接到一起。
链路的传输速率以比特/秒(bit/s,或bps)度量。
分组:分组是网络中传输的基本数据单元。当一台端系统要向另一台端系统发送数据时,发送端系统将数据分段,并为每段加上首部字节,由此形成的信息包就是分组。
分组交换机两种常见类型是路由器和链路层交换机。这两种类型的交换机都要向最终目的地转发分组。链路层交换机通常用于接入网中,而路由器通常用于网络核心中。从发送端系统到接收端系统,一个分组所经历的一系列通信链路和分组交换机称为通往该网络的路径。
因特网服务提供商—-ISP。
协议:协议是网络中通信的规则和标准,定义了数据的格式、传输顺序以及在传输和接收数据时应采取的动作。协议确保网络中的设备能够正确地发送和接收数据。
TCP(传输控制协议)和IP(网际协议)是因特网中两个最为重要的协议。因特网中的主要协议统称为TCP/IP。
•客户、服务器?
客户:客户是请求服务的主机。
服务器:服务器是提供服务的主机。
•电路交换和分组交换的对比?
通过网络链路和交换机移动数据有两种基本方法:电路交换和分组交换
| 特性 | 电路交换 | 分组交换 |
|---|---|---|
| 资源预留 | 预留资源,通信期间资源固定占用 | 动态分配资源,资源共享 |
| 延迟 | 建立电路过程可能引入延迟,但通信延迟低 | 分组传输可能引入较大延迟 |
| 效率 | 在流量稳定时效率高,但在流量不均匀时资源利用率低 | 在流量不均匀时效率高,资源利用率高 |
| 适用场景 | 实时通信,如电话网络 | 数据通信,如Internet |
| 路径选择 | 固定路径 | 动态路径选择 |
| 数据传输 | 数据连续传输 | 数据分割成分组,分组独立传输 |
| 控制信息 | 无 | 每个分组包含控制信息 |
| 资源管理 | 复杂的电路建立和释放过程 | 简单的资源管理,但需要处理分组排队和拥塞 |
- 电路交换:适用于实时通信,如电话网络,因为对延迟要求严格,资源预留可以保证通信质量。
- 分组交换:适用于数据通信,如Internet,因为对延迟的容忍度较高,资源共享可以提高资源利用率,适应流量不均匀的情况。
•节点处理时延、排队时延、传输时延、传播时延、吞吐量?

吞吐量:吞吐量是指在单位时间内,从源端到目的端成功传输的数据量。它通常以比特每秒(bps)或字节每秒(Bps)为单位。
影响吞吐量的因素:传输速率、传播延迟、排队延迟、处理延迟、丢包率
吞吐量分为瞬时吞吐量、平均吞吐量
•5层因特网协议栈?每层的作用?(术语:报文、报文段、数据报、帧)


因特网分层的作用主要体现在以下几个方面:
一、简化复杂性
- 分层设计将复杂的网络系统分解为多个相对独立的层次。例如,计算机网络涉及从物理信号传输到应用层数据处理的众多复杂功能。通过分层,每一层只关注特定的任务。以物理层为例,它主要负责在物理介质(如光纤、双绞线等)上进行比特的传输,处理信号的强度、传输速率等物理特性。而应用层则专注于为用户提供各种网络服务,如电子邮件、网页浏览等,不需要关心底层物理信号是如何传输的。这种分层使得网络设计者和开发者可以专注于每一层的功能实现,降低了整体设计的复杂性。
二、提高灵活性和可扩展性
- 灵活性方面:分层架构允许每一层独立地进行技术更新和改进。例如,当新的数据加密技术出现时,可以在传输层或应用层进行更新,而不需要修改其他层。如果新的加密技术应用于网络层,它只会影响网络层内部的处理方式,其他层(如链路层和物理层)可以保持不变。这种独立性使得网络能够灵活地适应新的技术发展。
- 可扩展性方面:随着网络规模的扩大和新功能的增加,分层架构便于扩展。例如,当网络中需要增加新的应用服务时,只需在应用层添加相应的应用协议和软件即可。对于网络层,当新的网络拓扑结构出现或者需要支持更多的设备时,可以在网络层进行路由算法等的优化,而其他层不需要进行大规模的调整。这种分层的可扩展性使得因特网能够从早期的小型网络逐步发展成为如今全球性的庞大网络。
三、促进标准化和互操作性
- 标准化方面:每一层都有明确的协议和标准。例如,物理层有以太网标准(IEEE 802.3)等,规定了物理介质的电气特性、连接器类型等细节。传输层有TCP(传输控制协议)和UDP(用户数据报协议)等标准协议,它们定义了数据传输的格式、错误检测和恢复机制等。这些标准使得不同厂商生产的网络设备和软件能够在相同的协议框架下工作。
- 互操作性方面:分层架构保证了不同网络系统之间的互操作性。只要设备和软件遵循相应的层次协议,就可以在网络中进行通信。例如,一台使用Windows操作系统的计算机和一台使用Linux操作系统的服务器,它们可以通过TCP/IP协议栈进行数据交互。这是因为它们都遵循了因特网分层架构中的协议标准,如在应用层使用HTTP协议进行网页浏览,在传输层使用TCP协议保证数据可靠传输等,从而实现了不同系统之间的互操作。
-
在计算机网络中,L2(链路层)和L3(网络层)都涉及差错检测机制,但它们的原理和应用场景有所不同。下面分别简述它们的差错检测原理,并分析假阳性和假阴性的情况。
L2层(链路层)的差错检测原理
链路层主要负责在相邻节点之间可靠地传输数据帧。它通常使用循环冗余校验(CRC)来检测数据帧在传输过程中是否发生了错误。
原理
- CRC(循环冗余校验):CRC是一种基于多项式除法的差错检测方法。发送方在发送数据帧之前,会根据一个预定义的生成多项式对数据帧进行除法运算,得到一个余数(校验位)。然后将这个余数附加到数据帧的末尾,形成完整的数据帧发送出去。
- 接收方处理:接收方收到数据帧后,使用相同的生成多项式对整个数据帧(包括校验位)进行除法运算。如果结果为零,则认为数据帧在传输过程中没有发生错误;如果结果不为零,则认为数据帧发生了错误。
假阳性和假阴性分析
- 假阳性(False Positive):假阳性是指数据帧实际上没有错误,但链路层检测出错误的情况。在CRC中,这种情况几乎不会发生,因为CRC是一种非常可靠的差错检测方法。只要生成多项式选择得当,CRC可以检测出所有单个错误、所有双位错误以及大多数多位错误。
- 假阴性(False Negative):假阴性是指数据帧实际上存在错误,但链路层没有检测出错误的情况。在CRC中,虽然这种情况发生的概率非常低,但并非完全不可能。例如,如果数据帧发生了多位错误,而这些错误恰好使得接收方的CRC校验结果为零,那么就会出现假阴性。不过,这种情况的概率非常小,通常可以忽略不计。
L3层(网络层)的差错检测原理
网络层主要负责在不同网络之间转发数据包。在IP协议中,网络层使用IP头部的校验和来检测IP头部是否发生了错误。
原理
- IP头部校验和:IP头部校验和是一种简单的差错检测方法。发送方在发送数据包之前,会计算IP头部的校验和,并将结果存储在IP头部的校验和字段中。接收方收到数据包后,会重新计算IP头部的校验和,并与接收到的校验和进行比较。如果两者相同,则认为IP头部没有发生错误;如果两者不同,则认为IP头部发生了错误。
- 计算方法:IP头部校验和通常使用简单的按位加法进行计算。将IP头部的每个16位字段相加,然后对结果进行按位取反,得到校验和。
假阳性和假阴性分析
- 假阳性(False Positive):假阳性是指IP头部实际上没有错误,但网络层检测出错误的情况。在IP头部校验和中,这种情况发生的概率相对较高。因为IP头部校验和是一种简单的按位加法校验,对某些特定的错误模式(如某些特定的多位错误)可能无法检测出来。
- 假阴性(False Negative):假阴性是指IP头部实际上存在错误,但网络层没有检测出错误的情况。在IP头部校验和中,这种情况发生的概率相对较高。因为IP头部校验和的检测能力相对较弱,无法检测出所有类型的错误。例如,如果IP头部发生了某些特定的多位错误,而这些错误恰好使得校验和计算结果不变,那么就会出现假阴性。
三、总结
- L2层(链路层):使用CRC进行差错检测,非常可靠,假阳性几乎不会发生,假阴性发生的概率也非常低。
- L3层(网络层):使用IP头部校验和进行差错检测,检测能力相对较弱,假阳性和假阴性发生的概率相对较高。
在实际网络通信中,链路层和网络层的差错检测机制相互配合,共同保障数据传输的可靠性。链路层主要负责检测数据帧在物理链路上传输过程中发生的错误,而网络层主要负责检测IP头部在不同网络之间转发过程中发生的错误。
第二章-应用层
•客户-服务器体系结构、对等体系结构?
客户-服务器体系结构:客户-服务器体系结构是一种常见的网络应用架构,它将网络中的计算机分为两类:客户和服务器。这种架构的核心特点是客户端和服务器之间存在明确的角色分工。

- 客户(Client):
- 按需启动:客户端程序在需要时启动。
- 主动发起连接:客户端首先发起与服务器的连接,并且“先说话”,即发送请求。(客户之间不直接通信)
- 动态IP地址:客户端主机可能具有动态分配的IP地址,这意味着其IP地址可能会随着网络连接的变化而改变。
- 举例:在Web应用中,客户端通常是浏览器;在电子邮件应用中,客户端是邮件阅读器。
- 服务器(Server):
- 始终运行:服务器程序以守护进程(daemon)的形式运行,始终处于开启状态,以便随时响应客户端的请求。
- 提供服务:服务器为客户端提供所需的特定服务,例如,Web服务器发送客户端请求的网页,邮件服务器投递电子邮件。
- 固定IP地址:服务器主机通常具有永久性的IP地址,这样客户端可以通过这个固定的地址找到并连接到服务器。
- 举例:Web服务器负责发送请求的网页,邮件服务器负责投递电子邮件。
对等体系结构(P2P体系结构):对等体系结构是一种去中心化的网络应用架构,其中每个节点(对等节点)既可以是服务的请求者,也可以是服务的提供者。这种架构的核心特点是每个节点的地位是平等的,不存在固定的客户端和服务器角色。
- 特点:
- 无始终在线的服务器:与客户-服务器体系结构不同,对等体系结构中不存在始终在线的服务器。
- 直接通信:任意的终端系统(对等节点)之间可以直接进行通信。
- 互为服务提供者和请求者:对等节点既可以请求其他对等节点提供的服务,也可以为其他对等节点提供服务。
- 自扩展性:新的对等节点加入网络时,既带来了新的服务需求,也带来了新的服务容量,因此具有良好的可扩展性。
- 动态连接和IP地址变化:对等节点通常是间歇性连接的,并且其IP地址可能会发生变化。
- 举例:Gnutella、BitTorrent、Skype等应用采用了对等体系结构。
•TCP和UDP的区别?
TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)是两种常用的传输层协议。
| 特性 | TCP | UDP |
|---|---|---|
| 连接方式 | 面向连接,需建立连接后才能传输数据 | 无连接,无需建立连接即可传输数据 |
| 可靠性 | 可靠传输,提供确认应答、超时重传等机制 | 不可靠传输,不提供确认应答和重传机制 |
| 流量控制 | 提供流量控制(滑动窗口机制) | 不提供流量控制 |
| 拥塞控制 | 提供拥塞控制(慢启动、拥塞避免等) | 不提供拥塞控制 |
| 数据传输单位 | 字节流,不保留数据边界 | 数据报,保持数据边界 |
| 应用场景 | Web(HTTP/HTTPS)、电子邮件(SMTP/POP3/IMAP)、文件传输(FTP)等 | 视频流(RTP)、语音通话(VoIP)、在线游戏、DNS查询等 |
| 延迟 | 较高延迟,因连接建立和确认机制 | 较低延迟,无连接建立和确认机制 |
| 适合数据量 | 大数据量传输 | 小数据量传输 |
| 端口号 | 使用端口号标识应用程序 | 使用端口号标识应用程序 |
| 头部大小 | 20到60字节(基本头部20字节,可选扩展头部) | 固定8字节 |
| 性能 | 适合需要高可靠性的应用 | 适合对实时性要求高的应用 |
•什么是HTTP?HTTP的请求-响应行为?URL由哪两部分组成?

HTTP(Hyper Text Transfer Protocol,超文本传输协议)是一种用于分布式、协作式超媒体信息系统的应用层协议。它定义了客户端和服务器之间如何交换数据,是Web应用的基础协议。HTTP主要用于从Web服务器获取HTML文档、图片、视频等资源,并将这些资源显示在Web浏览器中。
HTTP的请求-响应行为
HTTP是一个基于请求-响应模式的协议,其工作过程可以分为以下几个步骤:
- 建立连接:
- 客户端(通常是Web浏览器)通过TCP连接到服务器(通常是Web服务器)。默认情况下,HTTP使用TCP的80端口。
- 客户端发送一个HTTP请求到服务器。
- 发送请求:
- 客户端发送一个HTTP请求消息,该消息包含请求行、请求头和可选的请求体。
- 请求行:包含请求方法(如GET、POST等)、请求的资源路径和HTTP版本。
- 请求头:包含关于请求的附加信息,如客户端类型、接受的内容类型、语言偏好等。
- 请求体:对于某些请求方法(如POST),请求体包含要发送到服务器的数据。
- 处理请求:
- 服务器接收到请求后,解析请求内容,并根据请求方法和资源路径进行处理。
- 服务器可能会从文件系统中读取资源,执行脚本,或进行其他操作来生成响应。
- 发送响应:
- 服务器生成一个HTTP响应消息,该消息包含状态行、响应头和可选的响应体。
- 状态行:包含HTTP版本、状态码和状态消息。
- 响应头:包含关于响应的附加信息,如内容类型、内容长度、缓存控制等。
- 响应体:包含服务器返回的数据,如HTML文档、图片等。
- 关闭连接:
- 客户端接收到响应后,根据需要处理响应内容(如显示网页)。
- 客户端和服务器关闭TCP连接。
URL(Uniform Resource Locator,统一资源定位符)是用于标识互联网上资源位置的唯一标识符。URL通常由以下两部分组成:

•因特网电子邮件的三个组成部分?每部分的主要作用?
| 组件 | 主要作用 |
|---|---|
| 用户代理(User Agent) | 允许用户阅读、回复、转发、保存和撰写报文 |
| 邮件服务器(Mail Server) | 存储邮件;转发邮件;管理邮件队列;提供邮件访问服务 |
| 简单邮件传输协议(SMTP) | 使用TCP,从发送方的邮件服务器向接收方的邮件服务器发送邮件 |
•SMTP的基本操作?(A向B发送一条报文的过程)
SMTP是因特网电子邮件中主要的应用层协议。
假如Alice想给Bob发送一封简单的ASCⅡ报文,SMTP的基本操作如下:

•推协议、拉协议?
推协议(Push Protocol)和拉协议(Pull Protocol)是两种不同的数据传输模式
推协议(Push Protocol)
- 定义:
- 推协议是一种由数据源主动将数据发送到数据接收端的协议。在这种模式下,数据的发送是由数据源控制的,接收端通常不需要显式请求数据。
- 特点:
- 主动发送:数据源主动将数据推送到接收端,接收端不需要发送请求。
- 实时性:适合需要实时或近实时更新的场景,因为数据源可以在数据更新时立即发送数据。
- 适用场景:适用于数据源知道何时有新数据需要发送,且接收端愿意接收这些数据的情况。例如,新闻推送、股票行情更新、即时消息等。
- 示例:
- 即时通讯:如WhatsApp、微信等,服务器在收到新消息时会主动将消息推送到用户的设备上。
- 新闻推送:新闻应用在有新文章发布时,会主动将内容推送到用户的设备上。
拉协议(Pull Protocol)
- 定义:
- 拉协议是一种由数据接收端主动请求数据的协议。在这种模式下,数据的发送是由接收端控制的,数据源只有在接收到请求时才会发送数据。
- 特点:
- 主动请求:接收端主动向数据源请求数据,数据源不会主动发送数据。
- 按需获取:适合接收端需要按需获取数据的场景,因为接收端可以根据自己的需求决定何时请求数据。
- 适用场景:适用于数据源不知道何时有新数据需要发送,或者接收端需要根据自己的需求获取数据的情况。例如,Web浏览、文件下载等。
- 示例:
- Web浏览:用户通过浏览器向Web服务器发送HTTP请求,服务器响应请求并返回网页内容。
- 文件下载:用户通过FTP或HTTP协议从服务器下载文件,只有在用户请求时,服务器才会发送文件内容。
•域名系统的作用?DNS服务器的层次结构?DNS中的递归查询和迭代查询?
域名系统(Domain Name System,DNS)是互联网中用于将域名(如www.nju.edu.cn)转换为IP地址(如119.75.217.109)的分布式数据库系统。DNS的主要作用包括:
- 域名解析:
- 将易于记忆的域名转换为计算机可以理解的IP地址,使得用户可以通过域名访问互联网资源,而不需要记住复杂的IP地址。
- 负载分配:
- 通过将一个域名映射到多个IP地址,DNS可以实现负载均衡,提高网站的可用性和性能。例如,一个大型网站可以有多个服务器,DNS可以根据当前的负载情况选择一个合适的服务器。
DNS服务器的层次结构基于域名的层次结构,主要分为以下几个层次:
-
根DNS服务器(Root Name Servers):
- 根域名服务器是DNS层次结构的最顶层,负责提供顶级域名(TLD)服务器的地址。全球共有13个根域名服务器,它们是DNS查询的起点。
-
顶级域DNS服务器(Top-Level Domain, TLD Servers):
- TLD服务器负责管理顶级域名(如
.com、.org、.edu、.cn等)。每个顶级域名都有自己的TLD服务器,负责提供该顶级域名下二级域名的权威DNS服务器的地址。
- TLD服务器负责管理顶级域名(如
-
权威DNS服务器(Authoritative Name Servers):
- 权威域名服务器是组织或机构自己的DNS服务器,负责提供特定域名的权威信息。例如,
nju.edu.cn的权威DNS服务器负责提供nju.edu.cn及其子域名的IP地址。
除此之外还有本地域名服务器(Local Name Servers):
- 本地域名服务器不属于层次结构,是用户所在的ISP(互联网服务提供商)、公司或大学维护的DNS服务器。当用户发起DNS查询时,查询首先发送到本地DNS服务器。本地DNS服务器可以缓存最近的查询结果,以提高查询效率。
- 权威域名服务器是组织或机构自己的DNS服务器,负责提供特定域名的权威信息。例如,
DNS查询主要有两种方式:递归查询(Recursive Query)和迭代查询(Iterative Query)。它们的主要区别在于查询过程中服务器的行为和责任。
递归查询(Recursive Query)
- 定义:
- 在递归查询中,客户端向其本地DNS服务器发送一个查询请求,本地DNS服务器负责完成整个查询过程,直到找到最终的IP地址,并将结果返回给客户端。客户端不需要进行任何额外的操作。
- 特点:
- 简单性:对客户端来说,查询过程非常简单,因为所有的查询工作都由本地DNS服务器完成。
- 效率:如果本地DNS服务器已经缓存了查询结果,可以直接返回结果,无需进一步查询,提高了查询效率。
- 负载:本地DNS服务器需要完成所有的查询工作,可能会增加服务器的负载和响应时间。
- 示例:
- 客户端向本地DNS服务器查询
www.nju.edu.cn的IP地址。 - 本地DNS服务器查询根域名服务器,获取TLD服务器的地址。
- 本地DNS服务器查询TLD服务器,获取
nju.edu.cn的权威DNS服务器的地址。 - 本地DNS服务器查询权威DNS服务器,获取
www.nju.edu.cn的IP地址。 - 本地DNS服务器将最终结果返回给客户端。
- 客户端向本地DNS服务器查询
迭代查询(Iterative Query)
- 定义:
- 在迭代查询中,客户端向其本地DNS服务器发送一个查询请求,本地DNS服务器提供给客户端下一个应该查询的DNS服务器的地址,客户端直接向该服务器发送查询请求。如果该服务器没有结果,会提供下一个服务器的地址,客户端继续查询,直到找到最终的IP地址。
- 特点:
- 分布式负载:查询工作分散在多个DNS服务器之间,减少了单个服务器的负载。
- 效率:如果本地DNS服务器没有缓存结果,客户端需要进行多次查询,可能会增加查询时间。
- 复杂性:客户端需要自己完成整个查询过程,需要更多的网络交互和处理。
- 示例:
- 客户端向本地DNS服务器查询
www.nju.edu.cn的IP地址。 - 本地DNS服务器提供根域名服务器的地址给客户端。
- 客户端向根域名服务器查询,获取TLD服务器的地址。
- 客户端向TLD服务器查询,获取
nju.edu.cn的权威DNS服务器的地址。 - 客户端向权威DNS服务器查询,获取
www.nju.edu.cn的IP地址。
- 客户端向本地DNS服务器查询
总结
- 域名系统(DNS):用于将域名转换为IP地址,提供负载均衡、故障转移和邮件路由等功能。
- DNS服务器的层次结构:包括根域名服务器、顶级域名服务器、权威域名服务器和本地域名服务器。
- 递归查询:本地DNS服务器完成所有查询工作,返回最终结果给客户端,简单但可能增加服务器负载。
- 迭代查询:客户端自己完成查询过程,查询工作分散在多个DNS服务器之间,复杂但负载分布更均匀。
第三章-运输层

•运输层的多路复用与多路分解?
多路复用(Multiplexing)
- 定义:多路复用是指在发送方,运输层将来自不同应用进程的数据块收集起来,组合成一个个运输层报文段(如TCP段或UDP段),然后将这些报文段传递给网络层。
- 作用:
- 提高效率:允许多个应用进程共享同一个网络连接,避免每个进程单独建立连接的开销。
- 资源利用:充分利用网络带宽,避免某些应用进程长时间占用网络资源。
- 实现方式:
- 使用端口号:每个应用进程都有一个唯一的端口号,运输层根据端口号将应用进程的数据封装到报文段中,并在报文段头中记录源端口号和目的端口号。
- 示例:假设主机A上有多个应用进程(如Web浏览器、邮件客户端等),这些进程的数据会被运输层收集并封装成报文段,然后发送到网络层。
多路分解(Demultiplexing)
- 定义:将运输层报文段中的数据交付到正确的套接字的工作。
- 作用:
- 正确交付:确保每个报文段能够准确地到达对应的应用进程,避免数据混乱。
- 支持多任务:允许多个应用进程同时接收数据,提高系统的并发处理能力。
- 实现方式:
- 使用端口号:接收方的运输层根据报文段头中的目的端口号,将报文段传递给对应的应用进程。
- 示例:假设主机B收到一个来自主机A的报文段,报文段头中的目的端口号为80(HTTP服务的默认端口号),运输层会将该报文段传递给主机B上的Web服务器进程。
•UDP套接字?TCP套接字?
教材P123
UDP套接字(UDP Socket)
- 定义:UDP套接字是用于支持UDP协议的套接字类型。UDP是一种无连接的、简单的传输层协议,它不保证数据的可靠传输,但提供了较高的传输效率,是一个二元组,包含了一个目的IP地址和一个目的端口号。
- 特点:
- 无连接:UDP在发送数据之前不需要建立连接,因此没有连接建立和关闭的开销。
- 不可靠:UDP不保证数据包的顺序、完整性或可靠性,数据包可能会丢失、重复或乱序到达。
- 轻量级:UDP的头部较小,只有8字节,适合传输小数据量。
- 套接字类型:UDP套接字的类型是
SOCK_DGRAM(数据报套接字)。 - 端口号:UDP套接字使用端口号进行多路复用和多路分解。端口号是一个16位的数字,用于区分同一主机上的不同应用进程。
- 应用场景:UDP适用于对实时性要求较高但对可靠性要求不高的应用,如流媒体、VoIP、在线游戏等。
TCP套接字(TCP Socket)
- 定义:TCP套接字是用于支持TCP协议的套接字类型。TCP是一种面向连接的、可靠的传输层协议,它保证数据的顺序、完整性和可靠性。是一个四元组,包含源IP地址,源端口号,目的IP地址,目的端口号。
- 特点:
- 面向连接:TCP在发送数据之前需要建立连接,连接建立后才能进行数据传输,连接结束后需要关闭连接。
- 可靠:TCP通过确认机制、重传机制、拥塞控制等技术保证数据的可靠传输。
- 流式传输:TCP将数据视为字节流,不保留数据的边界。
- 套接字类型:TCP套接字的类型是
SOCK_STREAM(流式套接字)。 - 端口号:TCP套接字也使用端口号进行多路复用和多路分解。端口号是一个16位的数字,用于区分同一主机上的不同应用进程。
- 应用场景:TCP适用于对可靠性要求较高的应用,如Web浏览、文件传输、电子邮件等。
•为什么有些应用更适合用UDP?UDP中的检验和计算?
为什么有些应用更适合用UDP?教材P128
- 无连接开销:UDP是无连接的,不需要像TCP那样在数据传输前建立连接和在传输后关闭连接。这减少了连接建立和关闭的开销,适用于那些不需要可靠传输的应用,如流媒体和在线游戏。
- 低延迟:由于UDP不提供可靠性保证,它不会因为重传机制而增加延迟。对于实时性要求较高的应用,如VoIP(Voice over IP)和视频会议,低延迟是至关重要的。
- 简单高效:UDP的头部只有8字节,相比TCP的20-60字节的头部,UDP的头部更小,这使得它在传输小数据包时更加高效。
- 适合多媒体应用:多媒体应用通常可以容忍一定程度的数据丢失,而UDP的“尽力而为”的服务模型正好满足了这一需求。例如,视频流应用可以在丢失一些数据包的情况下仍然提供可接受的视频质量。
UDP中的检验和计算

回卷就是最高位溢出时写为零,回到末尾
•TCP传输控制协议的肯定确认、否定确认、自动重选请求协议?
肯定确认(ACK)
- 定义:肯定确认(ACK)是接收方发送给发送方的一种信号,表示它已经成功接收到了某个数据包。
- 作用:
- 确认接收:告诉发送方数据包已经正确接收,可以继续发送后续数据。
- 流量控制:通过ACK,接收方可以控制发送方的数据发送速率,避免接收方缓冲区溢出。
- 实现方式:
- 序列号:TCP使用序列号来标识每个字节的数据。ACK包含接收方期望接收的下一个字节的序列号。
- 累积ACK:TCP通常使用累积ACK,即ACK号表示接收方已经成功接收并确认了所有小于该ACK号的字节。
- 示例:如果发送方发送了序列号为100到199的数据,接收方成功接收后会发送ACK 200,表示它已经接收到了所有序列号小于200的数据。
否定确认(NAK)
- 定义:否定确认(NAK)是接收方发送给发送方的一种信号,表示它没有成功接收到某个数据包。
- 作用:
- 请求重传:告诉发送方某个数据包丢失或损坏,需要重新发送。
- 实现方式:
- 序列号:NAK包含丢失数据包的序列号,明确指出需要重传的数据包。
- 示例:如果接收方发现序列号为150的数据包丢失,它会发送NAK 150,请求发送方重新发送该数据包。
自动重传请求(ARQ)
- 定义:自动重传请求(ARQ)是一种错误控制机制,用于检测数据传输中的错误,并自动请求发送方重传丢失或损坏的数据包。
- 作用:
- 可靠性:确保数据的可靠传输,即使在不可靠的网络中也能保证数据的完整性和顺序。
- 效率:通过重传机制,避免了数据丢失导致的通信中断。
- 实现方式:
- 超时重传:发送方在发送数据包后启动一个定时器,如果在定时器超时前没有收到ACK,就会重传该数据包。
- 基于ACK的重传:发送方在收到NAK后,会重传丢失的数据包。
- 示例:
- 超时重传:发送方发送了序列号为200到299的数据包,启动定时器。如果在定时器超时前没有收到ACK 300,发送方会重传序列号为200到299的数据包。
- 基于ACK的重传:接收方发现序列号为250的数据包丢失,发送NAK 250。发送方收到NAK后,重传序列号为250的数据包。
•停等协议、比特交替协议的基本原理?
停等协议(Stop-and-Wait Protocol)
- 基本原理:
- 发送方:
- 发送一个数据包。
- 启动一个定时器,等待接收方的确认(ACK)。
- 如果在定时器超时前收到ACK,发送方发送下一个数据包。
- 如果在定时器超时前没有收到ACK,发送方重传当前数据包。
- 接收方:
- 接收数据包并检查其序列号。
- 如果数据包正确且按顺序接收,接收方发送ACK。
- 如果数据包损坏或不是按顺序接收的,接收方丢弃该数据包并等待正确的数据包。
- 发送方:
- 优点:
- 简单易实现。
- 可以保证数据的可靠传输。
- 缺点:
- 效率低下,因为发送方在发送一个数据包后必须等待ACK才能发送下一个数据包,导致链路利用率低。
- 如果ACK丢失,发送方可能会错误地重传数据包,导致接收方收到重复的数据包。
比特交替协议(Alternating Bit Protocol)
- 基本原理:
- 发送方:
- 发送方使用一个单比特的序列号(0或1)来标识每个数据包。
- 发送一个数据包后,发送方等待接收方的ACK。
- 如果收到ACK,发送方发送下一个数据包,并切换序列号(0变1,1变0)。
- 如果在定时器超时前没有收到ACK,发送方重传当前数据包,保持相同的序列号。
- 接收方:
- 接收方检查数据包的序列号。
- 如果接收到的数据包的序列号与期望的序列号一致,接收方发送ACK。
- 如果接收到的数据包的序列号与期望的序列号不一致,接收方丢弃该数据包并等待正确的数据包。
- 接收方在发送ACK时,ACK中包含期望接收的下一个数据包的序列号。
- 发送方:
- 优点:
- 通过比特交替机制,可以区分重传的数据包和新发送的数据包,避免了接收方收到重复的数据包。
- 提高了协议的可靠性。
- 缺点:
- 仍然存在停等协议的效率问题,因为发送方在发送一个数据包后必须等待ACK才能发送下一个数据包。
示例
假设发送方和接收方之间使用比特交替协议进行通信:
- 发送方发送序列号为0的数据包。
- 接收方收到序列号为0的数据包,发送ACK 1(表示期望接收下一个序列号为1的数据包)。
- 发送方收到ACK 1,发送序列号为1的数据包。
- 接收方收到序列号为1的数据包,发送ACK 0(表示期望接收下一个序列号为0的数据包)。
- 如果发送方在定时器超时前没有收到ACK,它会重传当前的数据包,保持相同的序列号。
通过这种方式,比特交替协议可以有效地处理数据包丢失和重传的情况,同时避免接收方收到重复的数据包。
•回退N步、选择重传的基本原理?
回退N步(Go-Back-N, GBN)
- 基本原理:
- 发送方:
- 发送方维护一个滑动窗口,窗口大小为 ( n ),表示可以发送但尚未收到确认的报文段数量。
- 发送方发送报文段,并为每个报文段启动一个定时器。
- 如果发送方在定时器超时前收到接收方的确认(ACK),则滑动窗口向前移动,继续发送新的报文段。
- 如果发送方在定时器超时前没有收到某个报文段的确认(ACK),则认为该报文段及其后续所有报文段都丢失或未被确认,发送方将从丢失的第一个报文段开始重新发送所有未被确认的报文段。
- 接收方:
- 接收方也维护一个滑动窗口,窗口大小与发送方相同。
- 接收方只接受按顺序到达的报文段,即下一个期望的报文段。
- 如果接收方收到一个报文段,但该报文段不是期望的下一个报文段(即报文段乱序到达),则接收方会丢弃该报文段,并发送一个确认(ACK),确认号为期望的下一个报文段的序号。
- 接收方对每个正确接收的报文段发送累积确认(cumulative ACK),表示所有小于确认号的报文段都已正确接收。
- 发送方:
- 优点:
- 实现简单,因为发送方只需要维护一个简单的滑动窗口和一个定时器。
- 能够有效地处理报文段丢失的情况。
- 缺点:
- 如果某个报文段丢失,发送方需要重传该报文段及其后续所有报文段,即使后续报文段可能已经正确到达接收方,这会导致不必要的重传,浪费带宽。
- 对于高错误率的网络,效率较低。
选择重传(Selective Repeat, SR)
- 基本原理:
- 发送方:
- 发送方维护一个滑动窗口,窗口大小为 ( n ),表示可以发送但尚未收到确认的报文段数量。
- 发送方发送报文段,并为每个报文段启动一个定时器。
- 如果发送方在定时器超时前收到接收方的确认(ACK),则滑动窗口向前移动,继续发送新的报文段。
- 如果发送方在定时器超时前没有收到某个报文段的确认(ACK),则只重传该丢失的报文段,而不是重传所有未被确认的报文段。
- 接收方:
- 接收方也维护一个滑动窗口,窗口大小与发送方相同。
- 接收方可以接受乱序到达的报文段,并将这些报文段缓存起来。
- 接收方对每个正确接收的报文段发送确认(ACK),确认号为该报文段的序号。
- 当接收方收到所有缺失的报文段后,将缓存中的报文段按顺序交付给上层应用。
- 发送方:
- 优点:
- 只重传丢失的报文段,而不是重传所有未被确认的报文段,减少了不必要的重传,提高了带宽利用率。
- 能够更好地处理高错误率的网络,因为即使多个报文段丢失,也只需要重传丢失的报文段。
- 缺点:
- 实现复杂,因为发送方和接收方都需要维护一个报文段的缓存,并且需要处理乱序到达的报文段。
- 需要更多的内存来缓存乱序到达的报文段。
示例
假设发送方和接收方之间使用回退N步协议和选择重传协议进行通信:
回退N步(GBN)示例:
- 发送方发送报文段1、2、3、4。
- 接收方收到报文段1、2、4,但报文段3丢失。
- 接收方发送ACK 3,表示期望接收报文段3。
- 发送方在定时器超时后发现报文段3未被确认,重传报文段3,并重新发送报文段4。
- 接收方收到报文段3和4,发送ACK 5,表示期望接收报文段5。
选择重传(SR)示例:
- 发送方发送报文段1、2、3、4。
- 接收方收到报文段1、2、4,但报文段3丢失。
- 接收方发送ACK 2,表示报文段1和2已正确接收。
- 发送方在定时器超时后发现报文段3未被确认,只重传报文段3。
- 接收方收到报文段3,发送ACK 3,表示报文段3已正确接收。
- 接收方将缓存中的报文段4按顺序交付给上层应用,并发送ACK 5,表示期望接收报文段5。
通过这两种协议,可以在不同的网络条件下实现可靠的数据传输。回退N步协议适用于低错误率的网络,而选择重传协议更适合高错误率的网络。
•什么是流量控制、拥塞控制?
流量控制(Flow Control)和拥塞控制(Congestion Control)是传输层协议(如TCP)中的两个重要机制,它们分别用于解决不同的问题,确保网络通信的高效和可靠。
流量控制(Flow Control)

- 定义: 流量控制是一种机制,用于确保发送方不会发送超过接收方处理能力的数据量。它防止接收方因数据过多而缓冲区溢出,从而避免数据丢失。
- 目的:
- 保护接收方的资源,避免因数据过载而导致性能下降或崩溃。
- 确保数据传输的可靠性,避免因缓冲区溢出而导致的数据丢失。
- 实现方式:
- 滑动窗口协议:TCP使用滑动窗口机制来实现流量控制。接收方通过在确认(ACK)报文中包含一个“窗口大小”(Window Size)字段,告知发送方其当前可用的缓冲区大小。发送方根据这个窗口大小来控制发送数据的量。
- 窗口大小调整:接收方根据其缓冲区的使用情况动态调整窗口大小(rwnd)。如果接收方的缓冲区快满了,它会减小窗口大小;如果缓冲区有更多空间,它会增大窗口大小。
- 示例:
- 假设接收方的缓冲区大小为1000字节,当前已使用500字节。接收方会在ACK报文中设置窗口大小为500字节。
- 发送方收到这个ACK后,知道它最多可以发送500字节的数据,而不会使接收方的缓冲区溢出。
拥塞控制(Congestion Control)
- 定义: 拥塞控制是一种机制,用于防止网络中的拥塞现象。它通过动态调整发送方的发送速率,避免网络中的数据包过多,从而导致网络拥塞和数据包丢失。
- 目的:
- 避免网络拥塞,提高网络资源的利用率。
- 确保数据传输的高效性和可靠性,避免因网络拥塞而导致的数据包丢失和重传。
- 实现方式:
- 拥塞窗口(Congestion Window, cwnd):TCP使用拥塞窗口来控制发送方的发送速率。拥塞窗口是一个动态调整的值,表示发送方在未收到确认(ACK)之前可以发送的最大数据量。
- 拥塞控制算法:TCP使用多种拥塞控制算法,如慢启动(Slow Start)、拥塞避免(Congestion Avoidance)、快速重传(Fast Retransmit)和快速恢复(Fast Recovery)等。
- 慢启动(Slow Start):在连接建立初期,发送方以较慢的速率发送数据,逐渐增加拥塞窗口的大小,直到检测到网络拥塞。
- 拥塞避免(Congestion Avoidance):当拥塞窗口达到一定阈值后,进入拥塞避免阶段,以较慢的速率增加拥塞窗口,避免网络拥塞。
- 快速重传(Fast Retransmit):当检测到数据包丢失时,快速重传丢失的数据包,而不是等待超时。
- 快速恢复(Fast Recovery):在快速重传后,调整拥塞窗口的大小,恢复正常的发送速率。
- 示例:
- 假设发送方的初始拥塞窗口为1个报文段,每收到一个ACK,拥塞窗口增加1个报文段。
- 当拥塞窗口达到阈值时,进入拥塞避免阶段,每收到一个ACK,拥塞窗口增加1/cwnd个报文段。
- 如果检测到数据包丢失(如收到3个重复ACK),发送方进入快速重传和快速恢复阶段,调整拥塞窗口的大小,恢复正常的发送速率。
总结
- 流量控制:通过滑动窗口机制,确保发送方不会发送超过接收方处理能力的数据量,保护接收方的资源。
- 拥塞控制:通过动态调整拥塞窗口,防止网络中的拥塞现象,提高网络资源的利用率,确保数据传输的高效性和可靠性。
这两个机制共同作用,确保TCP连接在不同网络条件下都能高效、可靠地传输数据。
•TCP的3次握手?
TCP三次握手
- 第一次握手:SYN
- 发送方(客户端):
- 客户端发送一个SYN(Synchronize Sequence Numbers)报文给服务器,请求建立连接。
- 报文中的SYN标志位被置为1,同时携带一个初始序列号(ISN,Initial Sequence Number)。
- 客户端进入
SYN_SENT状态。
- 报文格式:
- 源端口号:客户端端口号
- 目的端口号:服务器端口号
- 序列号:客户端的初始序列号(ISN)
- 确认号:0(因为还没有收到服务器的任何数据)
- 标志位:SYN
- 窗口大小:客户端的接收窗口大小
- 校验和:计算得到的校验和
- 选项:可能包含最大报文段长度(MSS)等选项
- 第二次握手:SYN-ACK
- 接收方(服务器):
- 服务器收到客户端的SYN报文后,发送一个SYN-ACK报文作为响应。
- 报文中的SYN标志位和ACK标志位都被置为1。
- 服务器的初始序列号(ISN)也被携带在报文中。
- 服务器进入
SYN_RCVD状态。
- 报文格式:
- 源端口号:服务器端口号
- 目的端口号:客户端端口号
- 序列号:服务器的初始序列号(ISN)
- 确认号:客户端的初始序列号(ISN)+ 1
-
标志位:SYN ACK - 窗口大小:服务器的接收窗口大小
- 校验和:计算得到的校验和
- 选项:可能包含最大报文段长度(MSS)等选项
- 第三次握手:ACK
- 发送方(客户端):
- 客户端收到服务器的SYN-ACK报文后,发送一个ACK报文作为确认。
- 报文中的ACK标志位被置为1。
- 客户端的确认号为服务器的初始序列号(ISN)+ 1。
- 客户端进入
ESTABLISHED状态,表示连接已经建立。
- 报文格式:
- 源端口号:客户端端口号
- 目的端口号:服务器端口号
- 序列号:客户端的初始序列号(ISN)+ 1
- 确认号:服务器的初始序列号(ISN)+ 1
- 标志位:ACK
- 窗口大小:客户端的接收窗口大小
- 校验和:计算得到的校验和
- 选项:可能包含最大报文段长度(MSS)等选项
三次握手的状态变化
- 客户端:
CLOSED→SYN_SENT→ESTABLISHED
- 服务器:
CLOSED→LISTEN→SYN_RCVD→ESTABLISHED
三次握手的作用
- 同步序列号:通过交换初始序列号(ISN),双方可以同步各自的序列号,确保数据传输的可靠性。
- 确认双方的接收和发送能力:通过三次握手,双方可以确认对方的接收和发送能力,确保连接的可靠性。
- 防止已失效的连接请求:通过三次握手,可以防止已失效的连接请求报文段突然又传送到了服务端,从而引起错误。

•TCP拥塞控制方法:慢启动、拥塞避免、快速恢复?
TCP的拥塞控制方法主要包括慢启动(Slow Start)、拥塞避免(Congestion Avoidance)和快速恢复(Fast Recovery)。
1. 慢启动(Slow Start)
- 目的:
- 在连接建立初期,快速探测网络的拥塞情况,同时避免发送过多数据导致网络拥塞。
- 工作原理:
- 初始窗口:慢启动开始时,拥塞窗口(cwnd)通常被设置为一个较小的值,通常是1个最大报文段(MSS)。
- 指数增长:每收到一个ACK,拥塞窗口增加1个MSS。这意味着每经过一个往返时间(RTT),拥塞窗口呈指数增长。
- 示例:
- 初始cwnd = 1 MSS
- 第一个RTT后,cwnd = 2 MSS
- 第二个RTT后,cwnd = 4 MSS
- 第三个RTT后,cwnd = 8 MSS
- 以此类推,直到达到拥塞阈值(ssthresh)。
- 优点:
- 快速探测网络的拥塞情况,避免初始发送过多数据。
- 缺点:
- 在高带宽延迟乘积(BDP)的网络中,可能需要较长时间才能达到较高的吞吐量。
2. 拥塞避免(Congestion Avoidance)
- 目的:
- 在拥塞窗口达到拥塞阈值后,进入拥塞避免阶段,以更平滑的方式增加拥塞窗口,避免网络拥塞。
- 工作原理:
- 拥塞阈值(ssthresh):当拥塞窗口达到拥塞阈值时,进入拥塞避免阶段。
- 线性增长:每经过一个RTT,拥塞窗口增加1/cwnd个MSS。这意味着拥塞窗口呈线性增长。
- 示例:
- 假设拥塞窗口cwnd = 10 MSS,拥塞阈值ssthresh = 10 MSS。
- 每经过一个RTT,cwnd增加1个MSS。
- 第一个RTT后,cwnd = 11 MSS
- 第二个RTT后,cwnd = 12 MSS
- 以此类推,直到检测到丢包。
- 优点:
- 通过线性增长的方式,避免拥塞窗口增长过快导致网络拥塞。
- 缺点:
- 增长速度较慢,可能无法充分利用高带宽网络。
3. 快速恢复(Fast Recovery)
- 目的:
- 当检测到丢包时,快速恢复连接,避免长时间的超时重传。
- 工作原理:
- 丢包检测:当发送方收到3个重复ACK时,认为发生了丢包。
- 调整拥塞窗口:
- 设置拥塞阈值ssthresh = cwnd / 2。
- 设置拥塞窗口cwnd = ssthresh + 3 * MSS(因为收到了3个重复ACK,说明有3个报文段已经成功到达接收方)。
- 恢复过程:
- 每收到一个额外的重复ACK,拥塞窗口增加1个MSS。
- 当收到一个新的ACK时,退出快速恢复阶段,进入拥塞避免阶段。
- 示例:
- 假设cwnd = 10 MSS,收到3个重复ACK。
- 设置ssthresh = 10 / 2 = 5 MSS。
- 设置cwnd = 5 + 3 = 8 MSS。
- 每收到一个额外的重复ACK,cwnd增加1个MSS。
- 当收到一个新的ACK时,cwnd = 5,进入拥塞避免阶段。
- 优点:
- 快速恢复连接,避免长时间的超时重传,提高吞吐量。
- 缺点:
- 依赖于重复ACK的检测,可能在某些情况下不够准确。
总结
- 慢启动:在连接建立初期,快速探测网络的拥塞情况,避免初始发送过多数据。
- 拥塞避免:在拥塞窗口达到拥塞阈值后,以线性增长的方式增加拥塞窗口,避免网络拥塞。
- 快速恢复:当检测到丢包时,快速恢复连接,避免长时间的超时重传,提高吞吐量。
这些机制共同作用,确保TCP连接在不同网络条件下都能高效、可靠地传输数据。
第四章-网络层:数据平面
•数据平面、控制平面的主要作用?转发、路由选择?
数据平面的主要作用:转发–将分组从一个输入链路接口转移到适当的输出链路接口的路由器本地操作。
控制平面的主要作用:路由选择–确定分组从源到目的地所采取的端到端路径的网络范围处理过程。
•路由器的4个组件?

•路由器中的最长前缀匹配规则?
最长前缀匹配规则是路由器在查找转发表(forwarding table)时使用的一种方法,用于确定数据报的输出端口。具体规则如下:
- 基本概念:
- 当路由器收到一个数据报时,它会检查数据报的目的IP地址。
- 路由器的转发表中包含多个条目,每个条目都有一个目的IP地址前缀和对应的输出端口。
- 最长前缀匹配规则要求路由器选择与目的IP地址匹配的最长前缀条目。
- 匹配过程:
- 路由器会逐位比较目的IP地址和转发表中的前缀。
- 从最高位开始,逐位比较,直到找到最长的匹配前缀。
- 例如,如果目的IP地址是
11000011.10000001.00000001.00000001(即192.129.1.1),转发表中有以下条目:11000011.10000001.00000000(即192.129.0.0/24)对应端口111000011.10000001.00000001(即192.129.1.0/25)对应端口2
- 路由器会选择
192.129.1.0/25这个条目,因为它与目的IP地址匹配的前缀更长。
- 示例:
- 假设路由器有以下转发表:
11000011.10000001.00000000(即192.129.0.0/24)对应端口111000011.10000001.00000001(即192.129.1.0/25)对应端口211000011.10000001.00000010(即192.129.2.0/25)对应端口3
- 如果目的IP地址是
192.129.1.1,路由器会匹配到192.129.1.0/25,选择端口2。 - 如果目的IP地址是
192.129.2.1,路由器会匹配到192.129.2.0/25,选择端口3。
- 假设路由器有以下转发表:
- 效率问题:
- 最长前缀匹配的效率至关重要,因为路由器需要在极短的时间内处理大量的数据报。
- 为了提高匹配效率,通常会使用树状数据结构(如Trie树)来存储转发表,这样可以在对数时间内完成匹配。
为什么使用最长前缀匹配
- 灵活性:最长前缀匹配允许路由器使用更通用的前缀来覆盖多个子网,从而减少转发表的大小。
- 可扩展性:通过聚合地址,可以有效减少转发表中的条目数量,提高路由器的性能。
- 精确性:在有多个匹配条目时,选择最长的前缀可以确保数据报被发送到最精确的目的地。
通过最长前缀匹配规则,路由器能够高效地确定数据报的输出端口,确保数据报能够正确地在网络中传输。
•三种交换技术?

•分组调度:先进先出、优先权排队、循环和加权公平排队?
教材P213
1. 先进先出(FIFO)
- 描述:在FIFO调度中,数据包按照它们到达的顺序被处理。没有分类,即所有数据包被视为相同优先级。
- 特点:实现简单,易于理解,但可能无法满足不同类型流量的服务质量要求。例如,实时数据包可能会被延迟较高的数据包阻塞。
2. 优先权排队(Priority Scheduling)
- 描述:在优先权调度中,数据包根据其优先级被分类和排队。高优先级的数据包总是先于低优先级的数据包被处理。
- 特点:可以为关键应用提供更好的服务质量,例如实时视频或语音通信。然而,低优先级的数据包可能会被长时间延迟或丢弃。
3. 循环(Round Robin,RR)
- 描述:在循环调度中,每个数据包类(根据源/目的IP地址、端口号等分类)都有一个队列。调度器轮流从每个队列中发送一个数据包(如果可用)。
- 特点:提供了一种公平的调度方式,确保所有类型的流量都能得到处理。但是,它可能不适用于需要最小带宽保证的流量。
4. 加权公平排队(Weighted Fair Queueing,WFQ)
- 描述:WFQ是循环调度的扩展,每个数据包类都有一个权重,这个权重决定了该类在每个调度周期中获得的服务量。权重可以根据流量的需求进行调整。
-
特点:WFQ提供了一种更精细的流量控制方式,可以为每个流量类提供最小带宽保证。这有助于防止某些流量类占用过多的网络资源,从而影响其他流量类的服务质量。
- FIFO:没有分类,使用简单的缓冲区管理策略(如尾部丢弃),采用先到先服务的调度策略。
- 优先权调度:根据数据包的优先级进行分类和排队,高优先级的数据包优先发送。
- 循环调度:对每个流量类进行分类,然后轮流从每个类中发送数据包,每个类在调度周期中获得相等的服务。
- 加权公平排队:为每个流量类分配权重,每个类在每个调度周期中获得与其权重成比例的服务。
这些调度算法的选择和配置对于确保网络的性能和服务质量至关重要。不同的网络环境和应用需求可能需要不同的调度策略来优化性能。
•IPv4编址:二进制/十进制IP地址、子网、无类别域间路由选择?
二进制/十进制IP地址
- 描述:IPv4地址是一个32位的数字,通常表示为四个十进制数,每个数代表一个字节(8位)。每个十进制数的范围是0到255。
- 示例:一个典型的IPv4地址如
192.168.1.1,在二进制形式中表示为11000000.10101000.00000001.00000001。 - 用途:这种表示方法便于人类阅读和理解,同时也便于计算机进行处理。
子网划分(Subnetting)
- 描述:子网划分是将一个较大的网络地址空间划分为更小的子网,以提高网络的效率和安全性。
- 子网掩码:子网掩码用于区分IP地址中的网络部分和主机部分。子网掩码中的“1”表示网络部分,“0”表示主机部分。
- 示例:如果有一个IP地址
192.168.1.0和一个子网掩码255.255.255.0,这意味着网络部分是前三个字节(192.168.1),最后一个字节用于主机地址。 - 用途:子网划分可以减少路由表的大小,提高路由效率,并有助于隔离网络流量,增强网络安全。
无类别域间路由选择(CIDR)
- 描述:CIDR是一种用于分配IP地址以及在互联网上高效路由IP数据包的方法,它消除了传统的A、B、C、D和E类地址的划分。
- CIDR表示法:CIDR使用“/”后跟一个数字来表示前缀长度,例如
192.168.1.0/24表示前24位是网络部分,剩下的8位是主机部分。 - 用途:
- 路由聚合:CIDR允许多个连续的网络地址被聚合成一个更大的地址块,减少了路由表的大小,简化了路由。
- 灵活的地址分配:CIDR提供了更灵活的IP地址分配方式,可以更有效地利用IP地址空间。
- 示例:一个ISP可能会被分配一个
/20的地址块,这意味着它有2^(32-20) = 2^12 = 4096个IP地址可用。
CIDR的一些具体应用,如:
- 路由聚合:CIDR允许将多个小的网络前缀聚合成一个单一的、更大的前缀,以减少路由表的条目数。
- 地址分配:CIDR使得IP地址的分配更加灵活,可以根据实际需要分配合适大小的地址块。
•动态主机配置协议的工作原理?
DHCP概述
DHCP是一种网络管理协议,用于自动分配IP地址给网络中的设备,使得设备能够无需手动配置就能加入网络并进行通信。DHCP提供了一种“即插即用”的网络配置方式,特别适用于经常变化的网络环境,例如移动设备或临时连接的设备。
DHCP的工作原理
DHCP的工作流程通常包括以下几个步骤:
- DHCP Discover(发现):
- 新加入网络的设备(DHCP客户端)会广播一个DHCP Discover消息,以寻找可用的DHCP服务器。
- DHCP Offer(提供):
- DHCP服务器接收到Discover消息后,会从其地址池中选择一个未被分配的IP地址,并发送一个DHCP Offer消息给客户端,表示愿意提供这个IP地址。
- DHCP Request(请求):
- 客户端收到一个或多个Offer消息后,会选择一个Offer,并发送DHCP Request消息给服务器,请求分配选定的IP地址。
- DHCP Acknowledgment(确认):
- DHCP服务器接收到Request消息后,会向客户端发送DHCP Acknowledgment(ACK)消息,确认IP地址的分配,并提供额外的网络配置信息,如子网掩码、默认网关、DNS服务器地址等。
DHCP的作用
- 自动IP地址分配:DHCP可以自动为网络中的设备分配IP地址,减少了手动配置的需求。
- 地址重用:DHCP支持地址租用,即IP地址的使用是有时间限制的,过期后可以被其他设备使用,从而提高了IP地址的利用率。
- 简化网络管理:通过集中管理IP地址分配,网络管理员可以更容易地跟踪和控制网络资源。
DHCP的更多信息
- DHCP还可以提供其他网络配置信息,如域名系统(DNS)服务器的地址、默认网关的地址等。
- DHCP服务器通常位于网络的边缘,与路由器或交换机集成,以便为所有连接到网络的设备提供服务。
通过这种方式,DHCP使得网络设备能够快速、自动地配置网络参数,从而简化了网络的部署和管理。
•网络地址转换的工作原理?
NAT的概述
网络地址转换(NAT)是一种在IP数据包通过路由器或防火墙时重写源IP地址或目的IP地址的技术。NAT主要用于解决IPv4地址空间不足的问题,同时也提供了一种网络安全保护机制。
NAT的工作原理
NAT的工作流程通常包括以下几个步骤:
- 地址转换:
- 当内部网络的设备(私有IP地址)需要与外部网络(如互联网)通信时,其IP数据包会首先经过执行NAT的路由器。
- 路由器会将数据包的源IP地址(私有IP地址)转换为一个有效的公共IP地址。
- 端口映射:
- 由于多个内部设备可能共享同一个公共IP地址,因此需要通过端口号来区分不同的设备。
- NAT路由器会维护一个映射表,记录每个内部IP地址和端口号与外部端口号的对应关系。
- 数据包转发:
- NAT路由器根据映射表将内部设备的IP地址和端口号转换为公共IP地址和端口号,然后将数据包转发到外部网络。
- 当外部网络的响应数据包返回时,NAT路由器会根据映射表将目的IP地址和端口号转换回内部设备的私有IP地址和端口号。
- 维护映射表:
- NAT路由器会维护一个动态映射表,记录每个会话的源IP地址、源端口号、目的IP地址、目的端口号以及映射的公共IP地址和端口号。
- 映射表的条目通常有时间限制,超过时间限制后会自动删除。
NAT的类型
- 静态NAT:为每个内部IP地址分配一个固定的公共IP地址。
- 动态NAT:从一组公共IP地址中动态分配一个给内部IP地址。
- 端口地址转换(PAT,Port Address Translation):也称为NAT Overload,允许多个内部IP地址共享同一个公共IP地址,通过端口号区分不同的内部设备。
NAT的作用
- 地址重用:通过共享少量的公共IP地址,可以为大量的内部设备提供互联网访问。
- 网络安全:隐藏内部网络的IP地址,提供了一定程度的安全保护,防止外部攻击直接针对内部设备。
- 防火墙功能:NAT设备可以配置为只允许特定的内部设备访问外部网络,从而实现基本的访问控制。
通过这种方式,NAT使得多个设备能够共享有限的公共IP地址资源,同时提供了一定程度的网络安全保护。然而,NAT也引入了一些挑战,如可能导致某些网络协议(如VoIP、P2P等)无法正常工作,需要特定的NAT穿越技术来解决。
•IPv4向IPv6迁移中采用的建隧道方法?
ipv6 与 ipv4 首部差异:
首部长度
- IPv4首部长度是可变的。一般首部长度为20字节,但因为存在可选的扩展首部,其最大长度可以达到60字节。例如,当使用了多个扩展首部如IP选项(用于测试、记录路由等)时,首部长度会增加。
- IPv6首部长度是固定的,为40字节。这种固定长度的设计使得处理IP数据报更加高效,因为路由器等网络设备不需要花费额外的时间去解析可变长度首部带来的复杂性。
首部结构
- IPv4首部包含版本、首部长度、服务类型、总长度、标识、标志、片偏移、生存时间(TTL)、协议、首部校验和、源地址、目的地址等字段。其中,首部校验和字段用于检验首部的正确性,但不包括数据部分。
- IPv6首部结构相对简化,包含版本、流量类别、流标签、有效载荷长度、下一首部、跳数限制、源地址和目的地址等字段。IPv6取消了首部校验和字段,因为现代网络链路层本身就有足够的错误检测能力,这一改变减少了路由器处理数据报时的计算负担。IPv6首部还没有了分片/重新组装,选项字段

IP - in - IP隧道的实现和作用
(一)实现
- IP - in - IP隧道是一种网络层的封装技术。在IP - in - IP隧道中,一个IP数据报被封装在另一个IP数据报中。
- 从实现过程来看,当一个IP数据报需要通过隧道传输时,发送端网络设备(如路由器)会将原始IP数据报的整个内容(包括首部和数据部分)作为新的IP数据报的数据部分。然后,它会添加一个新的IP首部,这个新的IP首部的源地址是隧道的入口地址,目的地址是隧道的出口地址。
- 例如,在IPv4 - in - IPv4隧道中,原始IPv4数据报被封装后,新的IPv4首部会被添加,其中包含隧道两端的IPv4地址。同样,在IPv6 - in - IPv6隧道或者IPv4 - in - IPv6隧道等场景下,也会按照类似的原理添加相应的IP首部。
(二)作用
- 穿越不兼容网络:IP - in - IP隧道可以让IP数据报穿越那些不直接支持原始数据报格式的网络。例如,一个IPv6数据报需要穿越一个仅支持IPv4的网络区域,通过IPv6 - in - IPv4隧道封装,就可以使IPv6数据报在IPv4网络中传输,直到到达支持IPv6的网络段。
- 虚拟专用网络(VPN):在构建VPN时,IP - in - IP隧道可以用来封装用户数据。这样,用户的数据在公共网络(如互联网)中传输时,就像在一个虚拟的专用网络中一样。例如,企业员工在远程办公时,通过IP - in - IP隧道将数据封装后发送到企业内部网络,保证数据的安全性和隐私性。
- 网络隔离和测试:可以用于隔离不同的网络流量。例如,在测试新的网络配置或者网络设备时,可以将测试流量封装在隧道中,避免对生产网络造成干扰。同时,也可以方便地将特定的流量引导到特定的网络路径进行分析和测试。
第五章-网络层:控制平面
•每路由器控制、逻辑集中式控制?
每路由器控制和逻辑集中式控制是网络层控制平面的两种不同架构方式
每路由器控制(Per-router Control)
- 定义:在网络层的控制平面中,每个路由器都独立运行自己的路由算法组件,这些组件相互交互以计算出转发表。
- 工作原理:
- 路由器仅知道与其直接相连的链路成本,通过与相邻路由器交换信息,逐步构建出对整个网络拓扑的认知。
- 例如在距离矢量算法中,每个路由器会将其到各目的地的距离向量发送给邻居路由器,邻居路由器收到后会根据Bellman-Ford方程更新自己的距离向量。
- 在链路状态算法中,每个路由器会广播自己的链路状态信息,其他路由器收集这些信息后,利用Dijkstra算法计算出到所有其他节点的最短路径。
- 优点:
- 分布式控制,具有较好的容错性,单个路由器的故障不会导致整个网络控制平面的瘫痪。
- 适应性强,能够快速响应局部网络拓扑的变化,如链路故障或新链路的加入。
- 缺点:
- 路由器需要独立运行复杂的路由算法,计算和存储开销较大,尤其是对于大型网络。
- 不同路由器之间的协调较为困难,可能导致路由环路等问题,如距离矢量算法中的“计数到无穷”问题。
逻辑集中式控制(Logically Centralized Control)
- 定义:在这种控制平面架构中,一个远程控制器负责计算并安装路由器中的转发表。
- 工作原理:
- 控制器收集整个网络的拓扑信息和链路状态信息,然后集中进行路由计算。
- 计算完成后,控制器将生成的转发表推送到各个路由器,路由器根据这些转发表进行数据包的转发。
- 优点:
- 集中式控制使得网络管理更加容易,可以避免路由器的错误配置,提高网络的整体性能和可管理性。
- 便于实现复杂的流量工程策略,例如可以精确地控制流量的路径,实现负载均衡等。
- 缺点:
- 控制器成为单点故障点,一旦控制器出现故障,整个网络的控制平面将受到影响。
- 对控制器的性能要求较高,需要处理大量的网络状态信息和计算任务。
•链路状态算法的工作原理?
链路状态算法(Link-State Algorithm)是一种用于计算网络中路由的算法,其工作原理基于对整个网络拓扑结构的全局了解。
1. 初始化阶段
- 路由器收集本地链路状态信息:每个路由器首先收集与其直接相连的链路的状态信息,包括链路的成本(cost)、延迟、带宽等。这些信息通常存储在一个本地的链路状态数据库中。
- 广播链路状态信息:每个路由器将其收集到的链路状态信息广播给网络中的所有其他路由器。这通常通过一种称为“链路状态广播”(Link-State Advertisement, LSA)的机制实现。在广播过程中,路由器会将自身的链路状态信息封装在一个特殊的报文中,并通过网络发送给其他路由器。
2. 信息收集与同步阶段
- 接收和更新链路状态信息:每个路由器接收来自其他路由器的链路状态广播信息,并将其整合到自己的链路状态数据库中。这样,每个路由器都能获得整个网络的拓扑结构信息,包括所有路由器之间的连接关系和链路成本。
- 数据库同步:为了确保所有路由器的链路状态数据库一致,路由器之间会进行数据库同步操作。这通常通过定期的链路状态广播和确认机制来实现,确保每个路由器都能及时获取最新的网络拓扑信息。
3. 路由计算阶段
- 构建网络拓扑图:每个路由器根据其链路状态数据库中的信息,构建一个表示整个网络拓扑结构的图。在这个图中,路由器作为节点,链路作为边,链路成本作为边的权重。
- 运行Dijkstra算法:每个路由器运行Dijkstra算法,计算从自身到网络中所有其他路由器的最短路径。Dijkstra算法是一种经典的最短路径算法,其基本思想是从源节点开始,逐步扩展到所有其他节点,计算出最短路径。
- 初始化:将源节点加入已确定最短路径的集合,初始化所有节点的最短路径估计值。
- 迭代过程:在每次迭代中,从未确定最短路径的节点中选择一个具有最小路径估计值的节点,将其加入已确定最短路径的集合,并更新其相邻节点的路径估计值。
- 终止条件:当所有节点都被加入已确定最短路径的集合时,算法结束。
- 生成转发表:根据Dijkstra算法计算出的最短路径,生成转发表。转发表中包含了每个目的地址对应的下一跳路由器信息,路由器根据这个转发表进行数据包的转发。
4. 转发表更新与维护阶段
- 转发表安装:计算出的转发表被安装到路由器的数据平面中,用于指导数据包的转发。
- 动态更新:当网络拓扑发生变化(如链路故障、新链路加入等)时,路由器会重新计算链路状态信息,并通过广播机制将这些变化通知给其他路由器。然后,每个路由器会根据新的链路状态信息重新运行Dijkstra算法,更新转发表。
5. 安全性与认证
- 消息认证:为了防止恶意攻击者篡改链路状态信息,链路状态广播消息通常会进行认证。路由器在发送链路状态广播时会附加一个数字签名,接收路由器在接收消息时会验证这个签名,确保消息的完整性和来源的可靠性。
6. 示例
PDF中通过一个具体的例子展示了Dijkstra算法的运行过程:
- 初始化:假设节点u是源节点,初始化时,u到其直接邻居的链路成本被记录下来,其他节点的链路成本被设置为无穷大。
- 迭代过程:在每次迭代中,选择一个未确定最短路径的节点,该节点的路径估计值最小。然后,更新该节点相邻节点的路径估计值。例如,如果节点x是当前选择的节点,那么会更新与x相邻的节点y和z的路径估计值。
- 最终结果:经过若干次迭代后,所有节点的最短路径都被确定,生成了从源节点u到所有其他节点的最短路径树和转发表。
总结

链路状态算法通过让每个路由器广播其本地链路状态信息,使得所有路由器都能获得整个网络的拓扑结构信息。然后,每个路由器运行Dijkstra算法,计算出到所有其他节点的最短路径,并生成转发表。这种算法能够提供全局最优的路由选择,但需要较高的计算和通信开销。
•距离向量算法的工作原理?
距离向量算法(Distance Vector Algorithm)是一种用于计算网络中路由的分布式算法,其工作原理基于贝尔曼-福特(Bellman-Ford)方程。
1. 初始化阶段
- 本地距离向量初始化:每个路由器初始化自己的距离向量(Distance Vector, DV),该向量记录了从该路由器到所有其他路由器的估计成本。初始时,路由器只知道到其直接邻居的成本,其他节点的成本被设置为无穷大(表示不可达)。
2. 信息交换与更新阶段
- 定期交换距离向量:每个路由器定期将其当前的距离向量发送给其直接邻居。这些距离向量包含了该路由器到所有其他路由器的估计成本。
- 接收并更新距离向量:当一个路由器接收到其邻居发送的距离向量时,它会根据贝尔曼-福特方程更新自己的距离向量。
3. 收敛阶段
- 迭代更新:每个路由器不断接收邻居的距离向量并更新自己的距离向量,直到所有路由器的距离向量不再发生变化,此时算法收敛。
- 示例:假设网络中有三个路由器A、B和C,初始时A只知道到B和C的成本,B只知道到A和C的成本,C只知道到A和B的成本。通过多次迭代,每个路由器最终会计算出到所有其他路由器的最短路径。
- 收敛过程:
- 初始时,A的距离向量为 ( D_A(B) = 1 ),( D_A(C) = 2 ),( D_A(D) = \infty )。
- A收到B的距离向量 ( D_B ),更新 ( D_A(D) = 4 )。
- A收到C的距离向量 ( D_C ),更新 ( D_A(D) = 3 )。
- 经过若干次迭代,所有路由器的距离向量不再变化,算法收敛。
4. 动态更新与维护阶段
- 链路成本变化:当某个链路的成本发生变化时,该链路所属的路由器会更新其距离向量,并将更新后的距离向量发送给其邻居。邻居路由器接收到更新后,也会重新计算并更新自己的距离向量。
- 示例:假设链路 ( C_{AB} ) 的成本从1变为2,A会更新其距离向量 ( D_A(B) = 2 ),并通知其邻居。邻居接收到更新后,会重新计算到其他节点的成本。
- “好消息传播快,坏消息传播慢”问题:当链路成本增加时,可能会出现“计数到无穷”(Count-to-Infinity)问题,即路由器之间的距离向量更新可能会导致成本不断增加。为了解决这个问题,可以采用水平分割(Split Horizon)、毒性逆转(Poison Reverse)等技术。
5. 示例
- 初始状态:每个路由器只知道到其直接邻居的成本。
- 迭代过程:
- 每个路由器将自身的距离向量发送给邻居。
- 每个路由器接收到邻居的距离向量后,根据贝尔曼-福特方程更新自己的距离向量。
- 重复上述过程,直到所有路由器的距离向量不再变化。
- 最终结果:每个路由器计算出到所有其他路由器的最短路径,并生成转发表。
总结

距离向量算法通过每个路由器定期交换和更新距离向量,逐步计算出到所有其他路由器的最短路径。这种算法简单易实现,但可能存在收敛速度慢和“计数到无穷”等问题。
•什么是OSPF?
OSPF(Open Shortest Path First,开放最短路径优先)是一种广泛使用的链路状态路由协议,以下是其详细解释:
OSPF概述
- 开放性:OSPF是一种公开发布的标准协议,其规范和实现细节对所有网络设备制造商和运营商开放,这使得不同厂商的设备能够无缝地在网络中协同工作,促进了网络设备的互操作性。
- 链路状态路由协议:OSPF属于链路状态路由协议,这意味着每个路由器会收集并广播其直接相连链路的状态信息(如链路成本、延迟等),然后利用这些信息构建整个网络的拓扑图,并通过Dijkstra算法计算出到所有其他路由器的最短路径。
OSPF工作原理
- 链路状态广播(LSA):每个路由器会生成并广播链路状态广播(Link-State Advertisement,LSA)消息,这些消息包含了路由器的链路状态信息,如与哪些路由器直接相连、链路的成本等。LSA消息通过组播方式发送给网络中的其他路由器,确保所有路由器都能接收到最新的链路状态信息。
- 拓扑数据库同步:路由器接收到LSA消息后,会将其内容整合到本地的拓扑数据库中。为了保证数据库的一致性,OSPF采用了数据库同步机制,如序列号、校验和等技术,确保每个路由器的拓扑数据库都是最新的、一致的。
- 最短路径计算:每个路由器基于其拓扑数据库中的信息,运行Dijkstra算法,计算出到所有其他路由器的最短路径。根据计算结果,生成本地的转发表,用于指导数据包的转发。
- 安全性:为了防止恶意攻击者篡改链路状态信息,OSPF对所有LSA消息进行认证。路由器在发送LSA时会附加一个数字签名,接收路由器在接收消息时会验证这个签名,确保消息的完整性和来源的可靠性。
OSPF特点
- 快速收敛:由于OSPF基于链路状态信息进行路由计算,能够快速响应网络拓扑的变化,如链路故障或新链路的加入,从而快速重新计算路由,保证网络的高效运行。
- 支持多种网络类型:OSPF支持多种网络类型,包括点对点网络、广播网络、非广播多路访问(NBMA)网络等,使其能够适应不同类型的网络环境。
- 可扩展性:OSPF通过将网络划分为多个区域(Area),实现了路由信息的分层管理,减少了路由信息的传播范围,降低了网络的复杂性和路由计算的开销,提高了协议的可扩展性。
- 负载均衡:OSPF支持等价多路径(ECMP)负载均衡,当存在多条等价路径时,可以将流量均匀地分配到这些路径上,提高网络资源的利用率。
OSPF区域划分
- 区域(Area):OSPF将网络划分为多个区域,每个区域是一个逻辑上的子网络,包含一组路由器。区域的划分有助于减少路由信息的传播范围,降低网络的复杂性和路由计算的开销。
- 骨干区域(Backbone Area):骨干区域是网络的核心区域,所有其他区域都必须与骨干区域直接相连。骨干区域负责在不同区域之间传播路由信息,确保整个网络的连通性。
- 区域边界路由器(ABR):区域边界路由器连接骨干区域和其他区域,负责在区域之间传播路由信息。ABR会将一个区域的链路状态信息转换为路由信息,并将其传播到其他区域。
- 自治系统边界路由器(ASBR):自治系统边界路由器连接OSPF自治系统和其他网络(如其他自治系统或互联网),负责在OSPF自治系统和其他网络之间传播路由信息。
OSPF应用场景
- 企业网络:OSPF广泛应用于企业网络中,用于实现企业内部网络的路由。由于其快速收敛、支持多种网络类型和负载均衡等特点,能够满足企业网络对高效、可靠和灵活路由的需求。
- 服务提供商网络:服务提供商网络通常具有复杂的拓扑结构和大量的路由器,OSPF的可扩展性和区域划分机制使其能够有效地管理这些网络,实现高效的数据传输和路由管理。
- 数据中心网络:在数据中心网络中,OSPF可以用于实现数据中心内部的路由,支持虚拟化和云计算环境下的动态路由需求,提高数据中心网络的灵活性和可扩展性。
总结
OSPF是一种开放的链路状态路由协议,通过广播链路状态信息、同步拓扑数据库和运行Dijkstra算法,实现快速收敛和高效路由计算。它支持多种网络类型、可扩展性强,并且具有良好的安全性和负载均衡能力,广泛应用于企业网络、服务提供商网络和数据中心网络中。
•边界网关协议BGP的工作原理?
BGP(边界网关协议)是一种用于互联网上不同自治系统(AS,Autonomous Systems)之间进行路由信息交换的协议。以下是BGP工作原理的详细解释:
BGP概述
- 自治系统(AS):互联网由许多自治系统组成,每个AS是一个独立的网络,由一个组织管理,具有自己的路由策略。
- BGP的角色:BGP是连接这些AS的“胶水”,它允许一个AS向其他AS宣告其可以到达的网络目的地(即IP地址前缀),并基于这些信息决定数据包的路由。
BGP的工作原理
- BGP会话:BGP通过在两个BGP路由器(称为对等体或peers)之间建立的半永久性TCP连接来交换路由信息。这些信息包括可达目的地的IP前缀和到达这些目的地的路径信息(路径向量)。
- 路径属性:BGP路由信息包括目的地前缀和一组属性,其中两个重要的属性是:
- AS-PATH:记录了路由信息经过的AS序列。
- NEXT-HOP:指示到达目的地下一跳的特定内部AS路由器。
- 策略决策:接收到路由信息的BGP路由器会根据其导入策略(import policy)来决定是否接受该路径。例如,一个AS可能决定不通过特定的AS来路由流量。
- 多路径路由:BGP路由器可能会收到到达同一目的地的多条路径。在这种情况下,它会根据一定的规则(如本地优先级、AS路径长度、下一跳路由器的距离等)来选择最佳路径。
- 传播可达性信息:一旦选择了最佳路径,BGP路由器会将这些可达性信息通过iBGP(内部BGP)传播给AS内的所有其他路由器。
BGP的类型
- eBGP(外部BGP):用于在不同AS之间的BGP对等体之间交换路由信息。
- iBGP(内部BGP):用于在同一个AS内部的BGP对等体之间交换路由信息。
BGP的特点
- 路径向量协议:BGP是一种路径向量协议,它不仅考虑路径的长度,还考虑路径经过的AS序列。
- 策略控制:BGP提供了丰富的策略控制功能,允许网络管理员根据业务需求和政策来控制路由选择。
- 稳定性和收敛速度:BGP设计上更注重稳定性而非快速收敛,因此在网络拓扑发生变化时,BGP可能需要较长时间来稳定下来。
BGP的应用场景
- 互联网骨干网:BGP是互联网骨干网中不同网络服务提供商之间交换路由信息的主要协议。
- 企业网络:大型企业网络可能会使用BGP来管理与多个服务提供商的连接,以优化流量路由和提高网络的可靠性。
总结
BGP是一种复杂的路由协议,它允许不同自治系统之间交换路由信息,并基于这些信息来决定跨AS的数据包路由。BGP通过路径向量机制提供了对路由选择的精细控制,但同时也带来了配置和管理上的复杂性。
•SDN体系结构的4个关键特征?
SDN即软件定义网络


•什么是ICMP?
ICMP(Internet Control Message Protocol,因特网控制报文协议)是一种网络层协议,用于在IP主机和路由器之间传递控制消息。ICMP消息被用来报告IP数据包传输过程中的错误情况以及进行网络诊断。
以下是ICMP的一些主要功能:
- 错误报告:当路由器或主机在处理IP数据包时遇到问题(如目的网络不可达、目的主机不可达、目的端口不可达等),它们会发送ICMP错误消息给发送方,报告遇到的问题。
- 网络诊断:ICMP提供了网络诊断工具,如ping和traceroute,它们分别用于测试网络连通性和跟踪数据包的路由路径。
- Ping:通过发送ICMP回显请求(echo request)消息给目标主机,并等待ICMP回显应答(echo reply)消息,来检测目标主机是否可达以及往返时间(RTT)。
- Traceroute:通过发送一系列TTL(Time to Live,生存时间)递增的UDP或ICMP数据包,来追踪数据包从源到目的地所经过的路由器路径。
ICMP消息通常封装在IP数据报中传输,它们有自己的类型和代码,用于指示具体的消息类型和错误原因。例如:
- 类型0和代码0表示“回显应答”(echo reply,即ping应答)。
- 类型3表示“目的不可达”(destination unreachable),后面跟随的代码进一步指明不可达的原因,如网络不可达、主机不可达等。
- 类型8表示“回显请求”(echo request,即ping请求)。
- 类型11表示“TTL超时”(TTL expired),用于traceroute诊断。
ICMP是IP协议的一个重要组成部分,它为网络设备提供了一种报告错误和进行网络诊断的手段,有助于维护网络的稳定性和可靠性。
•网络管理的关键组件?

网络管理的关键组件包括:
- 管理服务器(Managing Server):
- 这是网络管理的核心,通常是一个应用系统,可能需要网络管理员(人类)参与。
- 管理服务器负责处理网络管理任务,如配置、监控、故障排除和性能分析。
- 网络管理协议(Network Management Protocol):
- 这是管理服务器用来查询、配置和管理网络设备(如路由器、交换机等)的协议。
- 常见的网络管理协议包括SNMP(Simple Network Management Protocol)、NETCONF等。
-
被管设备(Managed Devices):
- 这些是网络中的硬件设备,如路由器、交换机、服务器等,它们具有可管理的、可配置的硬件和软件组件。
- 被管理设备能够响应管理服务器的指令,报告其状态和统计信息。
- 数据(Data):
- 这包括设备的状态、配置数据、操作数据和设备统计信息等。
- 数据是网络管理的基础,管理服务器通过分析这些数据来做出决策和采取行动。
-
网络管理代理(Network Management Agent):
- 代理是运行在被管理设备上的软件,负责收集设备的状态信息,并与网络管理服务器进行通信。
- 代理可以主动向管理服务器报告事件和警报,也可以响应管理服务器的查询请求。

这些组件共同构成了网络管理系统,使网络管理员能够监控、配置和管理整个网络,确保网络的稳定性、性能和安全性。通过有效的网络管理,可以提高网络资源的利用率,降低运营成本,并快速响应网络故障和安全威胁。
•什么是SNMP?
SNMP(Simple Network Management Protocol,简单网络管理协议)是一种用于网络管理的协议,它使网络管理员能够管理和监控网络设备。以下是SNMP的主要特点和功能:
- 网络设备监控:
- SNMP允许网络管理员监控网络设备(如路由器、交换机、服务器等)的状态和性能。
- 通过收集设备的性能数据和统计信息,SNMP可以帮助管理员了解网络的运行情况,及时发现和解决问题。
- 管理信息库(MIB):
- SNMP使用管理信息库(MIB)来组织和存储网络设备的管理信息。
- MIB是一个层次化的数据库,包含了网络设备的各种可管理对象,如CPU利用率、内存使用情况、接口状态等。
- SNMP消息类型:
- SNMP定义了几种主要的消息类型,用于在网络管理器和网络设备之间传递信息:
- GetRequest:从代理(Agent)请求特定的MIB信息。
- GetNextRequest:请求MIB中下一个对象的信息。
- GetBulkRequest:请求MIB中一组连续对象的信息,用于高效地收集大量数据。
- SetRequest:向代理发送命令,修改MIB中的对象值。
- Response:代理对请求的响应,包含请求的MIB信息或错误状态。
- Trap:代理主动向网络管理器发送通知,报告重要的事件或警报。
- SNMP定义了几种主要的消息类型,用于在网络管理器和网络设备之间传递信息:
- 工作模式:
- SNMP支持两种主要的工作模式:请求/响应模式和陷阱(Trap)模式。
- 在请求/响应模式中,网络管理器主动向代理发送请求,代理响应请求并提供所需的信息。
- 在陷阱模式中,代理可以在检测到重要事件时主动向网络管理器发送通知(Trap消息)。
- 版本:
- SNMP已经发展了几个版本,包括SNMPv1、SNMPv2c和SNMPv3。
- 这些版本在功能、性能和安全性方面有所不同,其中SNMPv3引入了更强的安全特性,如认证和加密。
- 网络管理操作:
- SNMP支持多种网络管理操作,包括:
- 监控:收集和分析网络设备的性能数据。
- 配置:远程配置网络设备。
- 故障排除:诊断和解决网络问题。
- 安全管理:监控和管理系统安全事件。
- SNMP支持多种网络管理操作,包括:
SNMP是一种广泛使用的网络管理协议,它为网络管理员提供了一种简单而有效的方式来管理和监控网络设备。通过SNMP,管理员可以更好地了解网络的运行状况,提高网络的可靠性和性能。
第六章-链路层和局域网
交换机和路由器的区别
交换机(Switch)和路由器(Router)都是网络设备,用于连接和管理网络中的设备,但它们在功能、工作层次、数据处理方式等方面存在显著差异。以下是它们的主要区别:
一、工作层次
(一)交换机
- 工作层次:交换机主要工作在OSI模型的第二层(数据链路层)。
- 功能:通过学习和记录MAC地址来转发数据帧。它根据数据帧的MAC地址将数据帧转发到正确的端口,从而实现局域网内的设备通信。
- 示例:在办公室网络中,交换机连接多台电脑、打印机等设备,确保这些设备之间的数据帧能够准确地传输。
(二)路由器
- 工作层次:路由器主要工作在OSI模型的第三层(网络层)。
- 功能:通过处理IP地址来转发数据包。它根据数据包的目的IP地址选择最佳路径,并将数据包转发到正确的网络或子网,从而实现不同网络之间的通信。
- 示例:在企业网络中,路由器连接不同的分支机构或数据中心,确保数据包能够在广域网(WAN)中正确地传输。
二、数据处理方式
(一)交换机
- 数据帧转发:交换机基于MAC地址表进行数据帧的转发。它检查数据帧的源MAC地址并记录到MAC地址表中,然后根据目的MAC地址查找表中的记录,将数据帧转发到正确的端口。
- 广播域:交换机将整个网络划分为多个广播域(通过VLAN实现),但默认情况下,交换机内部的所有端口属于同一个广播域。广播数据帧会在整个广播域内传播。
- 延迟:由于交换机工作在数据链路层,处理数据帧的速度较快,延迟较低。
(二)路由器
- 数据包转发:路由器基于路由表进行数据包的转发。它检查数据包的目的IP地址,根据路由表中的记录选择最佳路径,并将数据包转发到正确的接口。
- 广播域:路由器可以隔离广播域,不同接口连接的网络属于不同的广播域。广播数据包不会跨越路由器传播,从而减少了广播流量对网络的影响。
- 延迟:由于路由器工作在网络层,处理数据包的速度相对较慢,延迟较高。
三、地址类型
(一)交换机
- MAC地址:交换机使用MAC地址进行数据帧的转发。它通过学习和记录MAC地址表来确定数据帧的转发路径。
(二)路由器
- IP地址:路由器使用IP地址进行数据包的转发。它通过路由表中的IP地址信息来选择最佳路径。
四、应用场景
(一)交换机
- 局域网(LAN):交换机通常用于局域网内部,连接多个设备(如电脑、打印机、服务器等),实现设备之间的高速通信。
- 小型网络:适用于家庭、小型办公室等场景,用于连接少量设备并提供基本的网络功能。
(二)路由器
- 广域网(WAN):路由器通常用于连接不同的网络,如企业分支机构、数据中心、互联网等,实现不同网络之间的通信。
- 网络边界:路由器通常部署在网络的边界,用于连接内部网络和外部网络(如互联网),提供网络地址转换(NAT)和防火墙等安全功能。
五、配置和管理
(一)交换机
- 配置简单:交换机的配置相对简单,主要涉及端口配置(如VLAN分配、端口镜像等)。大多数交换机支持即插即用,无需复杂的配置即可工作。
- 管理功能:支持基本的网络管理功能,如MAC地址表管理、VLAN管理等。
(二)路由器
- 配置复杂:路由器的配置相对复杂,涉及路由协议(如OSPF、BGP等)、接口配置、安全策略等。需要专业的网络管理员进行配置和管理。
- 管理功能:支持高级的网络管理功能,如路由表管理、访问控制列表(ACL)、防火墙规则等。
六、性能和成本
(一)交换机
- 性能:交换机的性能通常较高,能够快速处理数据帧,适合高带宽的局域网环境。
- 成本:交换机的成本相对较低,特别是二层交换机。三层交换机的成本较高,但仍然低于路由器。
(二)路由器
- 性能:路由器的性能通常较低,处理数据包的速度相对较慢,但能够处理复杂的网络环境和多种协议。
- 成本:路由器的成本相对较高,特别是高端路由器,用于企业级和运营商级网络。
七、总结
- 交换机:工作在数据链路层,基于MAC地址转发数据帧,适用于局域网内部,配置简单,成本较低。
- 路由器:工作在网络层,基于IP地址转发数据包,适用于广域网和网络边界,配置复杂,成本较高。
在实际网络环境中,交换机和路由器通常配合使用。交换机用于连接局域网内的设备,提供高速通信;路由器用于连接不同的网络,实现网络之间的通信和安全控制。
•什么是节点、链路?
节点:运行链路层协议的任何设备均称为节点。包括主机、路由器、交换机和WiFi接入点。
链路:沿着通信路径连接相邻节点的通信信道称为链路。
•链路层提供的可能服务包括?链路层在何处实现?

在大多数情况下,链路层是在被称为网络适配器的芯片上实现的,有时也称为网络接口控制器。
•奇偶校验、检验和、循环冗余检测的基本原理?
奇偶校验:


检验和:

循环冗余检测:


•多路访问协议分为哪三种类型?每种类型的工作原理?
多路访问协议主要分为以下三种类型:信道划分协议、随机接入协议和轮流协议。每种类型的工作原理如下:
1.信道划分协议(Channel Partitioning Protocols)
信道划分协议通过将共享信道划分为更小的“片段”(如时间槽、频率带或码),并将这些片段分配给不同的节点以实现信道共享。常见的信道划分协议包括:
-
时分多址(TDMA):
- 工作原理:信道被划分为时间槽,每个节点在每个时间周期内获得一个固定长度的时间槽。节点只能在分配给自己的时间槽内发送数据,未使用的时隙将保持空闲。
- 优点:可以有效避免碰撞,适合高负载场景。
- 缺点:在低负载时,未使用的时隙会造成资源浪费,且需要严格的时钟同步。
- 频分多址(FDMA):
- 工作原理:信道的频谱被划分为多个频率带,每个节点被分配一个固定的频率带。节点只能在分配给自己的频率带内发送数据,未使用的频率带将保持空闲。
- 优点:可以有效避免碰撞,适合高负载场景。
- 缺点:在低负载时,未使用的频率带会造成资源浪费,且需要精确的频率分配和管理。
-
码分多址(CDMA)
工作原理
- 编码:CDMA通过为每个用户分配一个独特的编码序列(也称为扩频码)来实现信道共享。这些编码序列是正交的,即任意两个不同的编码序列之间的相关性为零。
- 扩频:发送方将要传输的数据与分配给它的编码序列进行逐位相乘,这个过程称为扩频。扩频后的信号在频域上被扩展到一个较宽的频带上。
- 传输:所有用户的扩频信号在同一频段上同时传输,但由于每个用户的编码序列是唯一的,这些信号在接收端可以被区分开来。
- 解码:接收方使用与发送方相同的编码序列对接收到的信号进行解码。解码过程实际上是将接收到的信号与编码序列逐位相乘,然后进行积分。由于编码序列的正交性,只有与发送方匹配的编码序列才能正确解码出原始数据,其他用户的信号在解码过程中会被视为噪声并被滤除。
优点
- 抗干扰能力强:由于每个用户的信号都被独特的编码序列扩频,即使在高噪声环境下,也能通过解码过程恢复原始信号。
- 高容量:多个用户可以在同一频段上同时传输数据,只要它们的编码序列是正交的,就不会相互干扰。
- 安全性高:由于每个用户的信号都被独特的编码序列扩频,即使被截获,没有正确的编码序列也无法解码出原始数据。
缺点
- 复杂度高:CDMA系统需要精确的同步和复杂的编码/解码算法,这增加了系统的复杂度和成本。
- 功率控制要求高:为了保证所有用户的信号在接收端具有相同的功率水平,CDMA系统需要精确的功率控制。如果某个用户的信号功率过高,可能会干扰其他用户的信号。
2.随机接入协议(Random Access Protocols)
随机访问协议允许节点在需要时立即发送数据,不进行预先协调。如果多个节点同时发送数据,可能会发生碰撞。常见的随机访问协议包括:
- ALOHA:
- 工作原理:节点在需要发送数据时立即发送,不进行任何协调。如果发生碰撞,节点会随机等待一段时间后重试。
- 优点:简单,无需时钟同步。
- 缺点:碰撞概率高,信道利用率低。
- 时隙ALOHA(Slotted ALOHA):
- 工作原理:时间被划分为等长的时间槽,节点只能在时间槽的开始处发送数据。如果发生碰撞,节点会在后续的时间槽中以一定概率重试。
- 优点:比ALOHA协议的信道利用率高,因为减少了碰撞的机会。
- 缺点:需要时钟同步,仍然存在碰撞的可能性。
- 载波监听多址(CSMA):
- 工作原理:节点在发送数据前先监听信道,如果信道空闲则发送数据。如果信道忙,则等待直到信道空闲。
- 优点:减少了碰撞的可能性,提高了信道利用率。
- 缺点:仍然可能发生碰撞,尤其是在高负载情况下。
- 载波监听多址/冲突检测(CSMA/CD):
- 工作原理:节点在发送数据时持续监听信道,如果检测到冲突,则立即停止发送,并发送一个干扰信号以通知其他节点。节点会在随机等待后重试。
- 优点:能够快速检测并解决冲突,进一步提高了信道利用率。
- 缺点:需要复杂的冲突检测机制,且在无线环境中难以实现。
3.轮流协议(Taking Turns Protocols)
轮流协议试图结合信道划分协议和随机访问协议的优点,通过轮流的方式让节点依次发送数据。常见的轮流协议包括:
- 轮询(Polling):
- 工作原理:一个中心控制器依次“邀请”其他节点发送数据。每个节点在被轮询到时发送数据,未被轮询到的节点等待。
- 优点:可以有效避免碰撞,适合高负载场景。
- 缺点:引入了轮询时延,需要中心控制器,存在单点故障风险,且轮询过程会引入额外的延迟。
- 令牌传递(Token Passing):
- 工作原理:一个控制令牌在节点之间依次传递,只有持有令牌的节点才能发送数据。节点发送完数据后将令牌传递给下一个节点。
- 优点:可以有效避免碰撞,适合高负载场景。
- 缺点:需要管理令牌的传递过程,存在单点故障风险(如令牌丢失或损坏),且令牌传递过程会引入额外的延迟。
- 信道划分协议:通过划分信道资源来避免碰撞,适合高负载场景,但在低负载时资源利用率低。
- 随机访问协议:允许节点随机发送数据,简单但容易发生碰撞,适合低负载场景。
- 轮流协议:通过轮流发送数据来避免碰撞,结合了信道划分和随机访问协议的优点,但需要额外的管理机制,适合高负载场景。
•什么是CSMA?什么是CSMA/CD?它们的工作原理和区别是什么?
CSMA(Carrier Sense Multiple Access,载波侦听多路访问) 和 CSMA/CD(Carrier Sense Multiple Access with Collision Detection,具有碰撞检测的载波侦听多路访问) 是两种常见的随机访问协议,用于解决多节点共享同一通信信道时的信道访问问题。它们的工作原理和区别如下:
1.CSMA(载波侦听多路访问)
工作原理
- 监听信道:在发送数据之前,节点会先监听信道,检查信道是否空闲。
- 发送数据:如果信道空闲,节点会立即发送数据;如果信道忙,则节点会等待,直到信道变为空闲。
- 处理碰撞:如果多个节点几乎同时开始发送数据,可能会发生碰撞。CSMA协议本身不提供碰撞检测机制,因此一旦发生碰撞,数据传输会失败,节点需要通过其他机制(如超时重传)来处理碰撞。
优点
- 简单:实现相对简单,不需要复杂的硬件支持。
- 减少碰撞:通过监听信道,减少了不必要的碰撞,提高了信道利用率。
缺点
- 仍有碰撞:即使在监听信道后,仍可能发生碰撞,尤其是在高负载情况下。
- 信道利用率有限:在低负载时,信道利用率可能较低,因为节点需要等待信道空闲。
2.CSMA/CD(载波侦听多路访问/冲突检测)
工作原理
- 监听信道:与CSMA类似,节点在发送数据之前会先监听信道,检查信道是否空闲。
- 发送数据:如果信道空闲,节点会立即发送数据;如果信道忙,则节点会等待,直到信道变为空闲。
- 冲突检测:在发送数据的过程中,节点会持续监听信道,检查是否发生冲突。如果检测到冲突,节点会立即停止发送数据,并发送一个干扰信号(jam signal),以通知其他节点信道上发生了冲突。
- 处理碰撞:发生冲突后,节点会等待一个随机时间(通常使用二进制指数退避算法)后重新尝试发送数据。
优点
- 快速检测冲突:能够在发送过程中快速检测到冲突,减少了因碰撞导致的信道浪费。
- 高信道利用率:通过快速检测和处理冲突,提高了信道的利用率,尤其是在高负载情况下。
- 减少重传:通过快速检测和处理冲突,减少了不必要的重传,提高了系统的整体性能。
缺点
- 复杂度高:需要实现冲突检测机制,增加了系统的复杂度。
- 适用范围有限:主要适用于有线网络,因为无线网络中难以实现冲突检测。
3.区别
- 冲突检测机制:
- CSMA:没有冲突检测机制,一旦发生碰撞,数据传输会失败,节点需要通过其他机制(如超时重传)来处理碰撞。
- CSMA/CD:在发送数据的过程中持续监听信道,能够快速检测到冲突,并立即停止发送数据,发送干扰信号通知其他节点,减少了因碰撞导致的信道浪费。
- 信道利用率:
- CSMA:在高负载情况下,信道利用率较低,因为碰撞的可能性较高。
- CSMA/CD:通过快速检测和处理冲突,提高了信道利用率,尤其是在高负载情况下。
- 适用范围:
- CSMA:适用于无线网络和有线网络。
- CSMA/CD:主要适用于有线网络,因为无线网络中难以实现冲突检测。
总结
- CSMA:通过监听信道来减少碰撞,但不提供冲突检测机制,适用于无线和有线网络。
- CSMA/CD:在CSMA的基础上增加了冲突检测机制,能够快速检测和处理冲突,提高了信道利用率,主要适用于有线网络。


•MAC地址的表示方式?
MAC地址即链路层地址,有多个名称:LAN地址、物理地址。
MAC地址的表示方式
- 长度:MAC地址通常是一个48位的二进制数。
- 表示形式:MAC地址通常以十六进制(base 16)的形式表示,每4位二进制数用一个十六进制数表示。因此,一个48位的MAC地址可以用12个十六进制数表示。
- 分段表示:为了便于阅读和书写,MAC地址通常被分为6组,每组2个十六进制数,组与组之间用冒号(:)或连字符(-)分隔。
示例
- 冒号分隔:
1A:2F:BB:76:09:AD - 连字符分隔:
1A-2F-BB-76-09-AD
MAC地址的特点
- 唯一性:每个网络接口卡(NIC)都有一个唯一的MAC地址,这个地址在生产时被烧录到NIC的ROM中,也可以通过软件进行设置。
- 本地性:MAC地址主要用于局域网内的通信,用于在物理链路上标识设备。它与IP地址不同,IP地址是网络层的地址,用于跨网络的通信。
- 可移植性:由于MAC地址是烧录在硬件中的,因此它与设备的物理位置无关。即使设备从一个网络移动到另一个网络,其MAC地址也不会改变。
MAC地址的作用
- 帧的封装:在以太网等局域网技术中,MAC地址用于封装数据帧,标识帧的源和目标设备。
- 局域网内的通信:MAC地址用于在局域网内进行设备之间的通信,确保数据帧能够正确地从源设备传输到目标设备。
- 地址解析协议(ARP):MAC地址在地址解析协议(ARP)中起关键作用,用于将IP地址解析为MAC地址,从而实现IP层和链路层之间的通信。
•地址解析协议的工作原理?
地址解析协议(Address Resolution Protocol,ARP) 的工作原理如下:
地址解析协议(ARP)的工作原理
ARP的主要功能是将网络层的IP地址解析为链路层的MAC地址。这个过程是动态的,即每个主机都会维护一个ARP表,该表记录了IP地址与MAC地址的映射关系。当需要发送数据帧时,如果目标设备的MAC地址未知,ARP协议将被用来查询目标设备的MAC地址。
1.查询目标设备的MAC地址
- 发送ARP请求:
- 当主机A需要向主机B发送数据帧,但不知道主机B的MAC地址时,主机A会发送一个ARP请求。
- ARP请求是一个广播帧,包含主机B的IP地址,请求目标设备返回其MAC地址。
- ARP请求帧的源MAC地址是主机A的MAC地址,目标MAC地址是广播地址(
FF:FF:FF:FF:FF:FF)。
2.接收并响应ARP请求
- 接收ARP请求:
- 所有在同一局域网内的设备都会接收到这个广播帧,但只有目标IP地址匹配的设备(主机B)会处理这个请求。
- 主机B收到ARP请求后,会检查请求中的目标IP地址是否与自己的IP地址匹配。
- 发送ARP响应:
- 如果匹配,主机B会发送一个ARP响应给主机A。
- ARP响应是一个单播帧,包含主机B的MAC地址。
- ARP响应帧的源MAC地址是主机B的MAC地址,目标MAC地址是主机A的MAC地址。
3.更新ARP表
- 更新ARP表:
- 主机A收到ARP响应后,会将主机B的IP地址和MAC地址的映射关系更新到自己的ARP表中。
- ARP表中的条目通常有一个生存时间(TTL),例如20分钟。如果在TTL时间内没有再次使用该条目,该条目将被删除,以确保ARP表的更新和准确性。
4.发送数据帧
- 发送数据帧:
- 一旦主机A获得了主机B的MAC地址,它就可以将数据帧封装好,设置目标MAC地址为主机B的MAC地址,然后发送数据帧。
- 数据帧通过局域网传输到主机B,主机B接收并处理数据帧。
示例
假设主机A的IP地址为192.168.1.1,MAC地址为00:11:22:33:44:55,主机B的IP地址为192.168.1.2,MAC地址为AA:BB:CC:DD:EE:FF。主机A需要向主机B发送数据帧,但不知道主机B的MAC地址。以下是ARP协议的工作过程:
- 主机A发送ARP请求:
- ARP请求帧:
- 源MAC地址:
00:11:22:33:44:55 - 目标MAC地址:
FF:FF:FF:FF:FF:FF(广播地址) - 源IP地址:
192.168.1.1 - 目标IP地址:
192.168.1.2
- 源MAC地址:
- ARP请求帧:
- 主机B接收并响应ARP请求:
- 主机B检查ARP请求中的目标IP地址
192.168.1.2,发现与自己的IP地址匹配。 - 主机B发送ARP响应:
- ARP响应帧:
- 源MAC地址:
AA:BB:CC:DD:EE:FF - 目标MAC地址:
00:11:22:33:44:55 - 源IP地址:
192.168.1.2 - 目标IP地址:
192.168.1.1
- 源MAC地址:
- ARP响应帧:
- 主机B检查ARP请求中的目标IP地址
- 主机A更新ARP表:
- 主机A收到ARP响应后,将主机B的IP地址和MAC地址的映射关系更新到ARP表中:
- IP地址:
192.168.1.2 - MAC地址:
AA:BB:CC:DD:EE:FF - TTL:20分钟
- IP地址:
- 主机A收到ARP响应后,将主机B的IP地址和MAC地址的映射关系更新到ARP表中:
- 主机A发送数据帧:
- 主机A将数据帧封装好,设置目标MAC地址为
AA:BB:CC:DD:EE:FF,然后发送数据帧。 - 数据帧通过局域网传输到主机B,主机B接收并处理数据帧。
- 主机A将数据帧封装好,设置目标MAC地址为
总结
- ARP请求:广播帧,请求目标设备返回其MAC地址。
- ARP响应:单播帧,包含目标设备的MAC地址。
- ARP表:每个主机维护一个ARP表,记录IP地址与MAC地址的映射关系。
- 动态更新:ARP表中的条目有生存时间(TTL),过期后会被删除,以确保表的更新和准确性。
通过ARP协议,主机能够在局域网内动态地解析目标设备的MAC地址,从而实现数据帧的正确传输。
•交换机和路由器的区别?
教材P324
路由器和链路层交换机(通常简称为交换机)是网络中两种常见的设备,它们在网络通信中扮演着不同的角色,具有各自的功能和特点。
路由器的功能
路由器是一种网络设备,用于连接多个网络或子网,并在它们之间转发数据包。它的主要功能包括:
-
路由选择:路由器可以根据网络的拓扑结构和当前的网络状态,选择最佳的路径来转发数据包。
-
网络分段:路由器可以将一个大的网络分割成多个小的子网,以减少网络的复杂性,提高网络的性能。
-
流量控制:路由器可以控制网络流量,防止网络拥塞。
-
数据包过滤:路由器可以根据数据包的源地址、目的地址、端口号等信息,对数据包进行过滤,以提高网络的安全性。
-
网络地址转换(NAT):路由器可以将私有IP地址转换为公共IP地址,使得多个设备可以共享一个公共IP地址访问互联网。
-
防火墙功能:一些路由器还具有防火墙功能,可以防止未经授权的访问和恶意攻击。
链路层交换机的功能
链路层交换机是一种网络设备,用于在同一网络或子网内连接多个设备,并在它们之间转发数据帧。它的主要功能包括:
-
数据帧转发:交换机可以根据数据帧的目的MAC地址,将数据帧转发到对应的端口。
-
MAC地址学习:交换机可以自动学习网络中设备的MAC地址,并将它们存储在MAC地址表中,以便于数据帧的转发。
-
冲突域分割:交换机可以将一个大的冲突域分割成多个小的冲突域,以减少网络冲突,提高网络的性能。
-
全双工通信:交换机支持全双工通信,即数据可以同时在两个方向上传输,提高网络的传输效率。
-
VLAN支持:一些交换机支持虚拟局域网(VLAN)功能,可以将一个大的网络分割成多个小的虚拟网络,以提高网络的安全性和管理性。
-
端口安全:交换机可以控制端口的访问权限,防止未经授权的设备接入网络。
总的来说,路由器主要用于连接不同的网络或子网,并在它们之间转发数据包,而交换机主要用于在同一网络或子网内连接多个设备,并在它们之间转发数据帧。两者共同工作,构成了网络通信的基础。
| 特性 | 交换机 | 路由器 |
|---|---|---|
| 工作层次 | 数据链路层(OSI模型的第2层) | 网络层(OSI模型的第3层) |
| 地址类型 | 使用MAC地址进行通信 | 使用IP地址进行通信 |
| 地址表 | MAC地址表,记录设备的MAC地址和端口的映射关系 | 路由表,记录网络的IP地址和下一跳路由器的映射关系 |
| 数据单位 | 数据帧(Frame) | 数据包(Packet) |
| 传输方式 | 基于MAC地址的点对点传输 | 基于IP地址的网络间传输 |
| 范围 | 局域网内 | 可以跨越多个网络,包括局域网和广域网 |
| 主要功能 | 交换数据帧,连接同一网络内的设备 | 路由数据包,连接不同的网络 |
| 功能扩展 | VLAN(虚拟局域网)划分、端口镜像等 | NAT(网络地址转换)、防火墙、VPN等 |
| 性能 | 通常处理速度较快,延迟低 | 处理速度相对较慢,但功能更强大 |
| 配置复杂度 | 配置相对简单,主要用于局域网内设备连接 | 配置复杂,需要设置路由协议、子网划分等 |
| 应用场景 | 局域网内的设备连接,如办公室、学校等 | 连接不同的网络,如家庭网络连接互联网、企业网络的分支连接等 |
•多协议标签交换技术?
多协议标签交换技术(MPLS)概述
多协议标签交换(Multiprotocol Label Switching,MPLS)是一种网络技术,旨在提高数据传输的效率和性能。它通过在数据包上添加标签来简化路由过程,从而实现快速、高效的数据转发。
技术原理
标签结构
MPLS标签是一个固定长度的短标识符,用于唯一标识一个分组所属的转发等价类(FEC)。标签由以下四个部分组成:
- Label(20比特):标签值字段,用于转发的指针。
- Exp(3比特):保留字段,通常用于QoS(服务质量)。
- S(1比特):栈底标识,用于支持多层标签。
- TTL(8比特):生存期字段,与IP报文中的TTL功能类似,用于防止环路。
工作过程
- 标签分配:MPLS网络中的路由器通过标签分发协议(LDP)或其他协议分配标签。
- 标签交换路径(LSP)建立:根据标签建立从源到目的地的路径。
- 数据转发:数据包进入MPLS网络时,边缘路由器(LER)为其分配标签,并将其封装为MPLS数据包。核心路由器(LSR)根据标签进行转发,无需解析IP头。
- 标签弹出:到达目的地边缘路由器时,标签被弹出,恢复为普通IP数据包。
应用场景
提高转发效率
MPLS最初是为了提高路由器的转发速度而提出的。与传统IP路由相比,它在数据转发时只在网络边缘分析IP报文头,而不用在每一跳都分析IP报文头,从而节约了处理时间。
虚拟专用网络(VPN)
MPLS支持不同分支间IP地址复用和不同VPN间互通,通过标签区分不同VPN的数据包,实现安全隔离。
服务质量(QoS)
MPLS可以为不同优先级的流量分配不同的标签,从而实现流量工程和QoS管理。
流量工程
MPLS允许网络管理员根据网络状态动态调整流量路径,优化网络资源利用。
总结
MPLS是一种强大的网络技术,通过标签交换机制提高了数据传输的效率和性能。它广泛应用于提高网络速度、优化流量管理、支持VPN和QoS等方面。
•数据中心网络的等级拓扑

第七章-无线网络和移动网络
•什么是无线主机、无线链路、基站?什么是基础设施模式、自组织网络?
无线主机:无线主机是运行应用程序的端系统设备,可以是智能手机、平板电脑或便携机或者物联网设备或任何其他与因特网连接的五花八门的设备。主机本身可能移动,也可能不移动。
无线链路:主机通过无线通信链路连接到一个基站或者到另一台无线主机。
基站:基站是无线网络基础设施中的一个关键部分。基站在有线网络中没有明确的对应设备,它负责向与之关联的无线主机发送数据(例如分组)并从主机接收那里数据,基站通常负责调与之相关联的多个无线主机的传输。蜂窝网络中的蜂窝塔和802.11无线局域网中的接入点都是基站的例子。
基础设施模式:与基站关联的主机通常被称为与基础设施模式运行,因为所有传统的网络服务(如地址分配和路由选择)都由网络向通过基站相连的主机提供。
自组织网络:在自组织网络中,无线主机没有这样的基础设施与之相连。在没有基础设施的情况下,主机本身必须提供诸如路由选择、地址分配以及类似与DNS的名字转换等服务。
SSID(Service Set Identifier,服务集标识符)是无线网络中的一个重要概念,用于标识无线网络的名称。SSID是一个由网络管理员设置的字符串,用于标识一个无线网络。它通常是一个用户可读的名称,例如“HomeWiFi”或“OfficeNetwork”。SSID的主要作用是让用户能够识别并选择要连接的无线网络。
•什么是多径传播、信噪比?隐藏终端问题?
多径传播:当电磁波的一部分受物体和地面反射,在发射方和接收方之间走了不同长度的路径时,则会出现多径传播。这使得接收方收到的信号变得模糊。位于发射方和接收方之间的移动物体可导致多路径传播随时间而改变。
信噪比:信噪比(SNR)是所收到的信号(如被传输的信息)和噪声强度的相对测量。SNR的度量单位通常是分贝(dB)。以dB度量的SNR,是接收到的信号振幅与噪声幅度比值的以10为底的对数的20倍。仅需知道较大的SNR使接收方更容易从背景噪声中提取传输的信号。
隐藏终端问题:隐藏终端问题是指在无线网络中,两个或多个节点同时向同一目标节点发送信息,但由于其中一个或多个节点未能检测到其他节点也在发送信息,导致信号冲突的现象。例如,假定有三个站点A、B、C, A、B之间有信号覆盖,可以相互感知,B、C之间也有信号覆盖,但A、C之间无信号覆盖,不能相互感知。若此时A、C同时向B发送数据,则在B处会出现冲突。
•CDMA的基本工作原理?
码分多址(Code Division Multiple Access,CDMA)是一种多址接入技术,它允许多个用户在同一时间、同一频段上进行通信,通过分配不同的编码序列来区分不同的用户。
以下是码分多址的基本工作原理:

•被动扫描、主动扫描?
被动扫描:扫描信道和监听信标帧的过程被称为被动扫描。
主动扫描:无线主机通过向位于无线主机范围内的所有AP广播探测帧完成主动扫描。
•CSMA/CA的工作原理?
一种随机接入协议:带碰撞避免的CSMA,简称为CSMA/CA。802.11无线局域网选择该协议协调传输。
工作原理:

•4GLTE架构的部件?
4GLTE指4G长期演化标准
部件:移动设备,基站,归属用户服务器(HSS,一个控制平面部件,是一个数据库,存储关于移动设备的信息),服务网关(S-GW)、PDN网关(P-GW)等其他网络路由器,移动性管理实体(MME,功能包括身份验证、路径设置、小区位置跟踪)。

•到移动设备的间接路由?到移动设备的直接路由?
- 归属网络:用户最初注册或使用的网络,例如用户使用的移动运营商网络或家庭网络。
- 被访网络:用户在归属网络覆盖范围之外,接入的其他网络。例如,用户在国外或在其他运营商覆盖区域接入的网络。
在间接路由方法中,通信者简单地将数据报定位到移动设备的永久地址中,并将数据报发送到网络中,不需要知道移动设备是在其归属网络中还是在被访网络中。
在直接路由方法中,通信者首先发现移动设备所在的被访网络,这是通过在移动设备的归属网络中查询HSS来完成的,然后通信者将数据报从其网络直接通过隧道发送到移动设备的被访网络的网关路由器。
•移动设备从源基站切换到目标基站的步骤?

第八章-计算机网络中的安全
•安全通信包括哪四个方面的性质?

•对称密钥系统与公开密钥系统的区别?
对称密钥系统和公钥系统的一个重要区别是对称密钥系统发送者和接收者必须知道相同的(秘密)密钥。
在公钥系统中,加密密钥是全世界都知道的(包括发送方),但是解密钥匙只有接收者知道。
•RSA算法的工作原理?
RSA算法是一种非对称加密算法,它基于一个简单的数论事实:将两个大质数相乘是容易的,但反过来分解它们的乘积(因数分解)却非常困难。以下是RSA算法的工作原理的详细解释:
- 密钥生成
RSA算法的密钥生成过程包括以下步骤:
- 选择两个大质数:
- 选择两个不同的大质数 p 和 q。这些质数通常有数百位长,以确保安全性。
- 假如取 p=5 和 q=7。
- 计算 n 和 ϕ(n):
- 计算 n=p×q。这个值将用于公钥和私钥。
- 计算欧拉函数 ϕ(n)=(p−1)×(q−1)。这个值用于确定加密和解密指数。
- 例如n=35 和 ϕ(n)=24。
- 选择公钥指数 e:
- 选择一个整数 e(1<e<ϕ(n)),使得 e 和 ϕ(n) 互质(即 gcd(e,ϕ(n))=1)。
- 例如,e=5。
- 计算私钥指数 d:
- 计算 d,使得 d×e≡1 (mod ϕ(n))。换句话说,d 是 e 在模 ϕ(n) 下的乘法逆元。
- 例如 d=29,因为 5×29≡1 (mod 24)。
- 公钥和私钥:
- 公钥是 (n,e),可以公开分发。
- 私钥是 (n,d),必须保密。
- 加密过程
加密过程包括以下步骤:
-
明文转换:
- 将明文消息 m 转换为一个整数,通常通过某种编码方式(如ASCII编码)。
- 例如 m=12。
-
加密公式:
-
使用公钥 (n,e) 对明文 m 进行加密,计算密文 c:
c=$m^e$mod n
-
例如c=$12^5$mod35=17。
-
-
解密过程
解密过程包括以下步骤:
-
密文接收:
- 接收方收到密文 c。
-
解密公式:
-
使用私钥 (n,d) 对密文 c 进行解密,恢复明文 m:
m=$c^d$mod n
-
例如, m=$17^{29}$mod 35=12。
-

原理:

•密码散列函数的性质?

•数字签名的基本原理?


•鉴别协议及其安全性?




•IPSec协议族中的两个重要协议?

•防火墙包括哪三类?这三类的主要区别?入侵检测系统与防火墙的主要区别?
防火墙的三个目标:
- 从外部到内部和从内部到外部的所有流量都经过防火墙
- 仅被授权的流量(由本地安全策略定义)允许通过
- 防火墙自身免于渗透

三类防火墙的区别:P440
| 特性 | 传统分组过滤器 | 状态过滤器 | 应用程序网关 |
|---|---|---|---|
| 工作层面 | 主要工作在网络层和传输层,检查数据包的IP地址、端口号等信息 | 同样工作在网络层和传输层,但会跟踪TCP连接的状态 | 工作在应用层,检查应用层数据内容 |
| 是否跟踪连接状态 | 不跟踪连接状态,每个数据包独立处理 | 跟踪每个TCP连接的建立、数据传输和关闭过程 | 不直接跟踪连接状态,但会检查应用层会话 |
| 安全性 | 较低,无法识别基于会话的攻击 | 较高,能有效识别和阻止基于会话的攻击 | 高,能提供细粒度的控制和应用层安全 |
| 性能影响 | 性能影响小,处理速度快 | 性能影响较大,需要维护连接状态信息 | 性能影响大,需要解析和处理应用层数据 |
| 配置复杂度 | 配置简单,基于简单的规则匹配 | 配置复杂度中等,需要设置连接状态跟踪规则 | 配置复杂度高,需要针对每种应用单独配置 |
| 应用场景 | 适用于对性能要求高、安全性要求相对较低的场景 | 适用于需要较高安全性和会话控制的场景 | 适用于需要对特定应用进行精细控制的场景 |
| 是否支持应用层检查 | 不支持,仅检查网络层和传输层信息 | 不支持,主要关注连接状态 | 支持,可以检查应用层数据内容 |
| 能否识别复杂攻击 | 不能识别复杂攻击,只能基于简单规则 | 能识别基于会话的复杂攻击 | 能识别应用层的复杂攻击,如SQL注入等 |
| 是否需要维护状态信息 | 不需要维护状态信息 | 需要维护每个连接的状态信息 | 不需要维护连接状态信息,但需要维护应用会话信息 |
| 是否支持动态规则 | 不支持动态规则,规则固定 | 支持动态规则,可以根据连接状态动态调整规则 | 支持动态规则,可以根据应用层数据动态调整规则 |
入侵检测系统与防火墙的主要区别
- 工作层面
- 防火墙:主要工作在网络层和传输层,对数据包的IP地址、端口号等信息进行检查和过滤。
- 入侵检测系统(IDS):工作在应用层,对数据包的内容进行深度检查,包括检查数据包中的字符字符串、协议格式等,以检测是否存在已知的攻击模式。
- 检测方式
- 防火墙:基于预设的规则和策略进行简单的匹配和过滤。它无法识别复杂的攻击模式,只能根据已知的规则来判断数据包是否合法。
- 入侵检测系统:通过分析数据包的内容和行为模式来检测潜在的入侵行为。它可以检测到一些未知的攻击模式,因为它不仅依赖于预设的规则,还会对数据包的行为进行分析。
- 功能侧重
- 防火墙:侧重于阻止非法访问和数据泄露,通过设置访问控制列表(ACL)等规则来控制数据包的进出。
- 入侵检测系统:侧重于检测和报警,当检测到潜在的入侵行为时,会发出警报并通知管理员,以便及时采取措施。
- 部署位置
- 防火墙:通常部署在网络的边界,如企业内部网络与互联网之间,用于保护内部网络免受外部攻击。
- 入侵检测系统:可以部署在网络的多个位置,如网络边界、内部网络的关键节点等,用于检测网络内部和外部的潜在入侵行为。