哈工大《计算机网络》期末复习(考前速成指南)

适用范围

本文适用于离考试时间 至少还有1天 的同学使用。

考试难度

结合2018-2021级的试卷来看,题量大,考察内容多而杂,整体难度大于考研408难度。

成绩整体情况

哈工大计网采用翻转课堂教学,课下听MOOC自学,课上让同学以小组为单位上台讲解,老师再进行补充。个人感觉效果不太好,20级未来技术学院计网期末90分以上仅有个位数。

一、计算机网络概述

1. 因特网是互连的,自治的计算机的集合,连接到因特网的设备称为主机(端系统),端系统分为客户端服务器,通过由通信链路分组交换机构成的网络核心连接,分组交换机包括路由器和链路层交换机

2. 因特网结构:网络边缘(端系统/应用)接入网络网络核心

接入网络的两个例子:

数字用户线(DSL),通过已有电话线接入,每个用户直接接到中心局。

电缆网络,多个用户共享一根电缆,例如混合光纤同轴电缆(HFC)

3. 协议定义通信过程的规则。协议三要素:语法(定义传输数据格式)语义(定义所要完成的动作,如控制信息和应答等)时序(定义各种操作的顺序)

4. 在网络核心中,每个因特网服务提供商(ISP)构成一个网络,ISP网络通过分层方式互联,使得因特网构成“网络之网络”。内容提供商网络通过非公开方式维护自己的服务。因特网交换结点(IXP)维护多个ISP的连接。

二、电路交换与分组交换(网络核心的数据交换方式)

1. 分组交换:端系统之间传输/交换报文(完整数据),完整的报文被切分为若干分组,网络对每个分组进行传输,分组交换机对分组采取存储-转发机制,即先从输入链路接收完分组的所有比特,再转发到输出链路上,每个输出链路都具有输出缓存(队列),分组在转发时需要排队(每个分组独占链路),因此可能有排队时延分组丢失(队列满时)

2. 电路交换:端系统间在通信会话期间在网络路径上预留资源,预先建立称之为电路的连接,可以以恒定速率传输数据。

频分复用(FDM):每条电路专用一个频段,可同时使用。

时分复用(TDM):时间划分为长度相等的,每个帧划分为长度相等的时隙,每条电路在每个帧中被分配时隙,相当于每条电路按一定周期轮流使用链路。

3. 电路交换预先分配链路,在空闲时还要占用资源,效率较低,但适合强实时性应用(例如电话);分组交换按需分配链路适合突发数据传输,效率相对更高。

三、分组交换的时间量分析

1. 分组传输总时延𝑑_𝑡𝑜𝑡𝑎𝑙为以下四种时延的总和:

结点处理时延 𝑑_𝑝𝑟𝑜𝑐:主机或路由器处理分组的时间(题目往往忽略不计)。

排队时延 𝑑_𝑞𝑢𝑒𝑢𝑒:分组在输出链路前排队等待输出的时间,取决于网络拥塞程度(题目往往忽略不计)。

传输时延 𝑑_𝑡𝑟𝑎𝑛𝑠:结点将分组逐比特送上输出链路的时间,𝑑_𝑡𝑟𝑎𝑛𝑠 = 𝐿÷𝑅,𝐿为每个分组的比特数,𝑅为链路带宽(bps)。(注意单位换算:𝟏𝐁 = 𝟖𝐛,𝟏𝐦𝐬 = 𝟏𝟎−𝟑 𝐬,𝟏𝛍𝐬 = 𝟏𝟎−𝟔 𝐬,𝟏𝐧𝐬 = 𝟏𝟎−𝟗 𝐬)。

传播时延 𝑑_𝑝𝑟𝑜𝑝:信号在物理链路上(以光速级别速度传播)的传播时间,亦即一个比特从送上链路开始到接收方收到的时间,取决于物理介质以及传输距离(若传输距离较短可忽略不计)。链路的时延带宽积为第一个比特到达接收方时链路上还有多少比特,等于𝑹 × 𝒅_𝒑𝒓𝒐𝒑。

2. 每个结点的流量强度 𝐿×𝑎÷𝑅 ,𝑅为输出链路带宽,分组以𝑎个每秒的速度到达队列(到达速度𝐿×𝑎比特每秒),流量强度必须小于1,趋近于1时排队时延变大,大于1时无限拥塞(“出不敷入”)。

3. 端到端的吞吐量为接收方接收数据的速率(bps),等于路径上最小链路带宽。(如果比这个大,那么最小带宽链路处的流量强度就会大于1,无限拥塞!)

4. 端到端的传输总时间为发送方开始发送第一个分组到接收方完整收到最后一个分组的时间,设 要发送𝑁个𝐿比特分组,路径上每条链路带宽为𝑅_0 ~ 𝑅_𝑛 bps,最小链路带宽(吞吐量)为𝑅_𝑚𝑖𝑛 bps,每条链路传播时延为𝐷𝑃_0 ~ 𝐷𝑃_𝑛秒,则总时间为:

\sum_{i=0}^{n}(\frac{L}{R_i}+DP_i)+\frac{(N-1)L}{R_{min}}

四、网络层次结构模型

1. 计算机网络体系结构是分层结构,上一层调用下一层的提供的服务。

2.  OSI参考模型(7层):

应用层:运行网络应用程序,互相传输报文(可视作完整数据)。

表示层:进行数据表示转换、压缩/解压缩、加密/解密等。

会话层:建立和维护对话,在数据流中插入同步点。

传输层:负责端到端(进程间)完整报文数据的传输,传输的分组称为报文段,具有分段重组、连接控制、流量控制、差错控制的功能,使用端口号对进程寻址。

网络层:负责源主机到目的主机的分组交付,传输的分组称为数据报,具有路由和分组转发的功能,使用逻辑寻址(IP地址)。

数据链路层:在相邻结点间进行分组传输,传输的分组称为,具有流量控制和差错控制的功能,使用物理寻址

物理层:在相邻结点间通过物理介质进行比特传输

3.  TCP/IP参考模型(4层)应用层传输层网际层网络接口层

4. 5层参考模型应用层传输层网络层数据链路层物理层。(会话层和表示层功能直接由应用程序实现)

五、应用层概述

1.  两种网络应用程序体系结构:

客户-服务器体系结构(C/S):依赖具有周知地址的专用服务器,客户之间不能互相通信。

端到端体系结构(P2P):应用程序在间断连接的主机对(对等方)之间直接通信,不依赖专用服务器。

2.  在应用层通信场景中,发起通信的进程被标识为客户,在会话开始时等待联系的进程被标识为 服务器无论是C/S还是P2P

3.  应用进程通过套接字调用传输层协议收发报文,可以选择TCPUDP协议。

4.  使用 IP地址 : 端口号 对运行在某主机上的进程进行标识寻址。

5. 不同的应用对于吞吐量、时延和可靠性有着不同的需求,据此选择不同的传输层协议:

六、HTTP协议

1.  一个Web页面由基本HTML文件+若干引用对象构成,每个Web对象由URL寻址,表示为服务器主机名 +路径名。HTTP协议用于传输Web对象,采取C/S模式,客户端向服务器发送请求报文,服务器返回 (带有对象的)响应报文。使用TCP协议,工作在80端口。

2.  HTTP可以使用如下的连接模式:

非持续连接:每次请求 / 响应单独使用一个TCP连接,响应结束后即关闭连接。( HTTP1.0只能非持续连接)

持续连接:多次请求/响应都使用相同的TCP连接,响应结束后不会立即关闭连接,减少连接建立开销。

带流水线的持续连接:连续多个请求可以逐个连续发送而不必等待回答,理想情况下这样只需1个RTT即可获得多个对象。(HTTP1.1默认带流水线持续连接)

3.  HTTP的请求报文由请求行、首部行和实体主体(一般不用到)构成:

请求行中包含请求方法、URL以及协议版本,请求方法包括GET(请求对象)POST(将实体主体中的表单数据提交给服务器)以及HEAD(和GET一样但服务器仅响应但不返回对象)

首部行中包含一些带有名称的字段,Host字段表示主机名,Connection表示连接是否可持续,为close则使得服务器响应后关闭TCP连接。

4.  HTTP响应报文中包含响应状态码,例如200(正常返回对象)、400(请求错误)、404(对象不存在)。

5.  HTTP本身是无状态协议,原则上服务器不会保存关于客户端的任何信息。若服务器想要对客户会话 进行追踪需要使用Cookie标识客户。客户第一次请求服务器时,服务器会生成一个Cookie值,保存在后端数据库中,并在响应报文中以Set-Cookie字段告知客户端,客户端会将其保存在本地 Cookie文件中,以后对服务器的每次请求报文都会在首部添加Cookie字段。

6.  代理服务器(Web缓存器)部署在本地区域ISP上,具有缓存Web对象的功能。客户端可以将http请求 直接发送给本地的代理服务器,若代理服务器缓存了客户端请求的Web对象,可以将其直接发送给 客户端,而不需要远程网站主机的发送,缩短了访问时间,降低网络流量。HTTP协议为代理服务器提供了证实缓存对象是最新的机制:条件GET方法

7. 条件GET方法:代理服务器向网站主机发送一个该缓存对象的GET方法,并在首部添加If-Modified-Since 字段,表示询问该对象自从上次缓存时间以来是否被修改过,若未被修改则网站仅返回一个不带实体的 304 Not Modified响应报文,代理服务器可以直接使用缓存对象,否则网站返回新对象(正常响应报文)。

七、FTP协议

1.  FTP协议用于文件传输,用户向服务器提供用户标识和口令,在得到服务器授权的情况 下,可以在客户端本地文件系统和服务器远程文件系统之间进行文件移动。

2.  FTP维护两个并行TCP连接:

控制连接(使用端口21)持续整个用户会话,传送控制信息(用户发送的命令和服务器回复 的应答码),由于和有效数据分开(和HTTP不同),因此FTP的控制信息被称为带外传送的。(带外控制有利于在文件传输过程中进行控制,例如突然中止等)

数据连接(使用端口20),传送文件数据,非持续连接,会话期间每次文件传输都要建立新的 数据连接。

3.  FTP是有状态协议(和HTTP不同),服务器需要追踪每个用户当前所在文件夹位置等信息。

八、电子邮件协议

1.  电子邮件系统由用户代理(客户端程序)邮件服务器组成,当发送方发送邮件时:

• ①发送方用户代理通过SMTP协议HTTP协议(基于web的电子邮件)将邮件发送到发送方 邮件服务器的报文队列中。

• ②发送方邮件服务器通过SMTP协议将邮件发送到接收方邮件服务器的对应用户的邮箱中。

• ③当接收方用户在未来某个方便时间想查看邮件时,接收方用户代理通过POP3协议IMAP协议HTTP协议(基于web的电子邮件)访问并读取邮件服务器中的邮件。

2.  SMTP协议是推式协议,用于主动发送邮件,使用25号端口,原则上只能传输7位 ASCII码,对于更一般的二进制数据(其它语言文本或图像等)需要用MIME将二进制 数据编码成7位ASCII码进行传输。

3.  POP3协议是拉式协议,用于(简单的)邮件访问,使用110号端口

九、DNS协议

1.  域名系统DNS使用分层的DNS服务器实现了记录主机名与主机IP地址映射关系的分布式数据库, 基于UDP协议工作,使用53号端口。DNS基于C/S模式工作,客户端向DNS服务器发送带有主机 名的请求报文,收到IP地址等的回答。DNS还提供了其它3种服务:

主机别名:一个主机可以有不同的别名,DNS可将别名映射到真正的规范主机名

邮件服务器别名:将邮件服务器的别名映射到规范主机名,一个组织机构的邮件服务器可以与web服 务器使用相同的别名,例如hit.edu.cn,但真正的规范主机名是不同的。

负载分配:一个主机名可以对应多个主机IP地址集合,DNS可将请求分配到不同主机。

2.  3种DNS服务器组成了自上而下的层次结构:根DNS服务器顶级域(TLD)DNS服务器 (.com、.org等)权威DNS服务器(xxx.com、xxx.org等)

3.  此外,在区域ISP或者局域网中会部署本地DNS服务器,客户端的DNS查询请求会直接发送给本 地DNS服务器。本地DNS服务器可以缓存查询得到的DNS记录。

4.  DNS查询可以选用递归查询迭代查询,(在未缓存的情况下)自上而下查询根、顶级域和权威DNS 服务器,从上层服务器处得知下层服务器的位置。

5.  DNS服务器中维护的DNS资源记录表示为四元组(Name,Value,Type,TTL),其中TTL为记录有效 时间,Type为记录类型,有以下4种:

        • A:描述主机名与IP地址的映射,例如(relay1.bar.foo.com,145.3.3.3,A)

        • NS:描述域名与权威DNS服务器主机名映射,例如(foo.com,dns.foo.com,NS)

        • CNAME:描述主机别名与规范主机名的映射,例如(foo.com,relay1.bar.foo.com,CNAME)

        • MX:描述邮件服务器与规范主机名的映射,例如(foo.com,mail.bar.foo.com,MX)

6.  当申请xxx.com的新域名时,需要准备自己的权威DNS服务器dns.xxx.com,向对应的顶级域DNS 服务器插入(xxx.com,dns.xxx.com,NS)(dns.xxx.com,[IP地址],A)

十、 P2P文件分发

例:文件分发问题:服务器有个大小 为𝐹 bits 的文件,要将它们分发到 𝑁 台客户主机上, 使得每台主机都得到一个副本,服务器上传速率𝑢𝑠,每台主机上传速率𝑢𝑖,下载速 率𝑑𝑖,假设网络核心带宽足够大,并且数据无法使用广播方式发送。

解答:

十一、传输层概述

1.  传输层进程提供逻辑通信,将从应用进程接受的报文转换为报文段进行端到端传输,传输层 的TCP/UDP协议都使用网络层提供的IP协议(不可靠的尽力而为交付)。

2.  进程通过1个或多个套接字使用传输层服务进行数据传输。传输层从不同的套接字中接收报文, 加上标识套接字的首部信息,生成报文段交付给网络层,这是传输层的多路复用。传输层还需 要将从网络层接收的报文段数据通过其首部信息交付给正确的套接字,这是传输层的多路分解

3.  端口号(16位,0~65535)用于对套接字进行标识,0~1023为周知端口号,不能随便使用。报文段首部记录了源和目的的IP地址+端口号。TCP协议和UDP协议的端口号以及套接字是独立的:

UDP是无连接协议,套接字用二元组(目的IP,目的端口号)标识,来自不同的源的数据可以被送到同一个目的套接字,接收方本来不知道源,收到数据后可以顺便得知报文段首部记录的源IP+源端口号。

TCP是有连接协议,套接字用四元组(源IP,源端口号,目的IP,目的端口号)标识,来自不同的源的数 据只能通过各自的TCP连接被送到不同的目的套接字,而这些套接字可使用相同端口号,例如Web服务 器可并行维护多个TCP连接,它们都使用80端口,报文段通过源地址来决定被送到哪个套接字。

十二、UDP协议

1.  UDP协议无连接无状态,传输不可靠,仅提供基本的复用 / 分用和少量差错检测, 报文段首部开销少(基本就是对IP数据报的简单封装),无拥塞控制,应用可以更 精细地控制发送时间和速率。

2.  UDP报文段首部8字节,4个16位字段:

源端口号目的端口号实现了基本的多路分解。

长度字段表示整个UDP报文段的字节数,包括首部+数据载荷,最小值为8。

检验和字段的计算:先在末尾补0使得报文长度为偶数字节,将检验和字段初始化为0, 每两个字节(16位)进行16位累加,若中间有进位则将其重新加到最低位(回卷),将最终的结果按位取反即得到检验和。接收方以同样方式对报文段进行求和,应该得到全1的结果即视为正确。若检验和错误,UDP无法对其进行恢复,只能丢弃或警告。( 注意, IP数据报首部中的源IP地址和目的IP地址也要被算入检验和!)

十三、停等协议(rdt 3.0)

1. 停等协议实现了低效率的可靠数据传输,所有分组都以0/1交替编号,发送方每发送一个分组都 要等待接收方的确认,若超时则重发分组。在数据传输过程中会出现比特差错或分组丢失。

2. 发送方行为:从上层接收数据,创建编号为 i 的分组,将其发送并设置定时器。若收到ACK(i)则 说明分组接收成功,发送下一个分组。若超时则重新发送并重置定时器。

3. 接收方行为:一直等待接收分组i,若正确接收到分组i则交付上层并回复ACK(i),若收到的分组有差错,则回复一个ACK(!i),若分组i是上一个接收的分组(冗余分组)则也要回复ACK(i)

4. 信道利用率为一个发送周期内发送方真正用于数据传输的时间的占比,理想状况下停等协议的发 送周期为:分组传输时延+单向传播时延+ACK传输时延+单向传播时延。数据传输时间用带宽算。

2023.12.11 未完待续……

2024.6.25 更新

十四、GBN协议

1. GBN协议增大分组的编号范围,对发送方设置一个大小为N滑动窗口,可以连续发送分组,而不是低效率的停等

2. 接收方行为:一直等待接收下一个分组,如果收到的分组不是期望的那个(失序或出错)则直接扔掉。接收方应答采取累积确认方式,无论如何都要回复ACK(i)表示上个正确接收编号是i。 (累积确认可以降低ACK丢失的影响,即便一个ACK丢失,只要后面的ACK收到,仍无影响

3.发送方行为:发送方不断从上层接收分组将其发送并缓存在窗口里,直至窗口满为止,窗口内缓存的都是已发送未确认的分组(限制不超过N),设窗口内第一个编号为base,为这个最早发送的未确认分组设置1定时器,若超时则重发所有已发送未确认分组(Go Back至多N)若收到一个编号在窗口内的ACK(x),说明base~x都已被正确接收,将窗口起点推移到x+1此时一般可以发送新的分组。

4.在现实中编号空间是有限的,一般是𝟐^k循环使用的(0, 1,  … , 2^𝑘 − 1, 0, 1, 2 …)。无论是哪种滑动窗口协议,接收方窗口(对于GBN来说大小为1)起始位置一定不可能在发送方窗口前面(发送方窗口前面的分组都已被确认)。为保证任何情况下两个窗口内编号不冲突,必须有𝑵𝒔 + 𝑵𝒓 ≤ 𝟐 𝒌对于GBN协议来说就是𝑵 ≤ 𝟐^𝒌 − 𝟏,这是上界。

5.理想情况下GBN的发送周期为开始连续发送N个分组的时间到开始连续发送下N个分组的时间(收到第一个分组的ACK),这个发送周期和停等协议一样,仍为分组传输时延+单向传播时延+ACK传输时延+单向传播时延,但在这个周期里传输了N个分组,因此信道利用率高。

十五、SR协议

1. SR 协议 令接收方也设置一个 𝑁 𝑟 大小窗口缓存失序分组并 逐个确认 ,分组可以乱序到达,但对上层的交付是按序的

2.接收方行为:设窗口左端点为base,收到一个编号为 i 的正确分组,若 i 在窗口内(𝑖 ∈[𝑏𝑎𝑠𝑒, 𝑏𝑎𝑠𝑒 + 𝑁𝑟 − 1]),则将分组缓存并回复ACK(i)。若i在窗口之前并且距离不超过N(𝑖 ∈[𝑏𝑎𝑠𝑒 − 𝑁𝑠 , 𝑏𝑎𝑠𝑒 − 1]),说明这是发送方因ACK丢失而重发的冗余分组,丢弃分组但也要回复ACK(i)。其余情况下(分组损坏或编号无效)直接丢弃,也不回复ACK。若base分组被缓存,那么接收方会推移窗口,将窗口左端点被缓存的分组交付上层,直到左端点未被缓存为止。

3.发送方行为:发送方仍在窗口内缓存已发送未确认的分组,但允许窗口内有一些分组已经得到确认(当收到这个分组的ACK)。若窗口左端点得到确认,往后推移窗口直到窗口左端点未确认为止。对每一个未确认分组都要设置定时器,当某个分组超时仅重发它即可。

4.SR协议的窗口大小事实上应当满足𝑵𝒔 = 𝑵𝒓 = 𝑁,由𝑁𝑠 + 𝑁𝑟 ≤ 2 𝑘,得到上界𝑵 ≤ 𝟐 𝒌−𝟏。(发送方窗口更大则发的某些分组无法被接收,接收方窗口更大则没有意义

十六、TCP协议

1.TCP协议是面向连接的,连接状态保持在端系统中,支持全双工点对点传输,每个报文段最多能携带MSS字节(最大报文段长度)的有效数据,ACK可被捎带在数据报文段中。

2.TCP报文的首部一般为20字节,包括源/目的端口号,32位序号,32ACK号,16位检验和,16位接收窗口大小(流量控制)以及标志位(确认号字段有效标志ACK,连接建立标志SYN,连接结束标志FIN)

3.TCP的序号建立在字节流上,是最后一个被成功发送的字节序号+1(即该报文有效数据首字节序号)ACK号采取累积确认,表示接收方期望接收的下一个字节的序号。即接收窗口内第一个未收到分组,这和GBN稍有不同。

4.TCP发送方仅为窗口内第一个已发送未确认分组设置单一计时器,超时后仅重传该分组,收到ACK后可以往后推移窗口。接收方可以在窗口内缓存失序分组。发送方采取快速重传机制,当接收到对窗口前一个分组的3个冗余ACK(即实际上收到4)后不等超时发生就直接重传第一个分组。

5.TCP连接建立需要三次握手(这是为了防止网络中来自原先连接的残存报文段的干扰,客户先随机选择初始编号client_isn,向服务器发送不带有效数据的SYN=1报文段,服务器收到后为连接分配缓存,随机选择初始编号server_isn,向客户应答SYN=1SYNACK报文段(应答号为client_isn+1,因为前两次握手的报文段被规定消耗一个序号),客户收到后为连接分配缓存,向服务器发送SYN=0的可以携带数据的报文段。

6.TCP连接关闭需要四次握手,当A单方面希望关闭连接时,发送FIN=1报文段,B被动接收到时,会回复一个普通ACK,并进行关闭前的一些准备工作(例如通知应用进程以及向A发送一些数据)。当B准备好关闭连接时,会向A发送FIN=1报文段,A收到后会回复普通ACK,等待一段时间后若无重发的FIN报文段则A正式关闭连接。B在收到ACK后正式关闭连接。

7.TCP在传输过程中对分组的实际往返时间RTT进行记录采样,称为SampleRTT,通过采样值使指数加权移动平均得出RTT的估计值EstimatedRTT以及RTT的波动程度DevRTT,有:

8.TCP发送方的窗口大小同时受到流量控制和拥塞控制的限制,对于流量控制,令rwnd为接收方缓存剩余空间,发送方的窗口大小(已发送未确认字节数)不得超过rwndrwnd通过TCP报文段首部字段传递给发送方。这样发送方就不至于发送数据过快使得接收方缓存溢出。(注意:TCP中窗口大小都是字节数示,而不是分组数!

9.对于拥塞控制,发送方维护“拥塞窗口”变量cwnd,则最终的发送窗口大小 = min{𝑟𝑤𝑛𝑑, 𝑐𝑤𝑛𝑑}

10.发送方具有3个状态:慢启动拥塞避免快速恢复。发送方对于拥塞的判断由超时收到3个冗余ACK两种重传事件引起。发送方还维护一个慢启动阈值ssthresh,无论如何,只要出现任一重传事件,就令𝑠𝑠𝑡ℎ𝑟𝑒𝑠ℎ = 𝑐𝑤𝑛𝑑/2,只要出现超时事件,就要令𝑐𝑤𝑛𝑑 = 1𝑀𝑆𝑆并进入慢启动状态。(非快速恢复时)只要出现冗余ACK就要进入快速恢复状态。(实际解题时应考虑cwnd随时间(RTT)的变化,最好别想随分组个数的变化

十七、网络层概述

1.网络层负责在主机之间传输数据报,不是端到端层(中间系统参与),以路由器作为核心设备,具有转发和路由选择两大功能:

转发:分组从一个路由器的一个输入链路转发到一个输出链路上。IP,ICMP,NAT

路由选择:在网络范围内选择一条较优传输路径,涉及网络内所有路由器。路由算法,RIP,OSPF,BGP

2. 数据报网络:仅在网络层提供无连接服务,如Internet。(分组交换

3. 虚电路网络:仅在网络层提供有连接服务(中间经过的路由器需要维护连接状态),如ATM电路交换

十八、IPv4数据报

1.  IPv4数据报首部一般20字节,包括版本(IPv4/v6),首部长度,数据报长度(16bits,包括首部)寿命TTL,上层协议(TCP/UDP,为了交付传输层时多路分解)首部检验和(16bits, 仅检验首部),源和目的IP,标识,DF/MF标志位片偏移等。

2. 数据报每经过一个路由器就要令TTL--,然后重新计算首部检验和(此时除TTL之外也可能还有别的字段改变),若TTL减到0就丢弃。(因此TTL表示该数据报最多能经过的跳数

3.路由器连接的不同输出链路可能采取不同链路层协议,它们可能具有不同的MTU(链路层帧能承载的最大数据报长度,以太网的MTU=1500B最为常见),可能需要令IP数据报在路由器处进行分片(仅当DF=0时允许分片)有效数据拆成若干块,每块加上一个20字节IP首部作为分片,它们具有相同的标识,非最后一片的MF=1,最后一片的MF=0。分片在目的主机才进行重组。(为降低中间系统复杂度,路由器只分片不重组

4.片偏移字段(13bits)指示有效数据的第一个字节在原有效数据中的偏移地址/8,因此非最后一片的有效数据长度必为8的倍数,原则上应取不超过MTU-20的最大的8倍数

十九、IP地址划分 

1.Internet使用CIDR技术进行子网划分,CIDR将每个32IP地址视作网络前缀+主机号的二进制结构,每个子网(地址块)表示为a.b.c.d/x的结构,高x位是网络前缀,这个结构由x位全1子网掩码来定义。若一个IP地址和子网掩码作按位与后(说白了就是取高x)a.b.c.d的高x位,则可认为在这个子网内。(注意两点:子网内还可以再划分子网;对于这种结构,a.b.c.d一般仅表示网络号(32-x位为0),但CIDR允许这是一般的主机IP地址,表示它所在的具有x位网络前缀的子网

2.一个子网内,主机号全0表示子网本身,主机号全1表示广播地址,因此共有 2^(32−𝑥)IP地址,可分配2^(32−𝑥)− 2IP地址(除了特殊的全01)

二十、路由表

1.每个路由器都维护一个路由表,路由表的每一项是二元组(CIDR地址块,下一跳接口)。每当收到一个IP数据报,路由器在路由表中判断目的IP应该属于哪个CIDR地址块(子网),转发到对应的接口上去。这些CIDR地址块之间可能有重叠,路由器采取最长前缀匹配的原则,选择能够匹配目的IP(通过和子网掩码按位与判断是否匹配)的网络前缀长度最长的表项。

2.路由表内通常具有0.0.0.0/0,能够匹配任何IP地址(但长度为0),作为默认路由(用于无法匹配其它表项的IP)。对于一个路由器来说,多个在它同一侧(使用同一个接口)的子网可以采取路由聚合合并为路由表中的一个CIDR地址块表项,这样可以减小路由表规模。

二十一、DHCPNAT:本地网络配置服务

1.当一个主机新加入本地网络时,什么都不知道,包括自己的IP地址。DHCP(动态主机配置协)能够即插即用地自动给主机分配IP地址,以及子网掩码、默认网关(第一跳路由器地址)和本地DNS服务器地址等信息。DHCP是应用层协议(典型客户端/服务器模式),使用UDP67/68号端口。

2.网络地址转换(NAT)将本地专用网络地址转换为公用IP地址,这样的话本地网络地址可以对外隐藏,不同本地网络内可以使用相同地址,减少IPv4地址消耗.本地网络需要一台NAT路由器连接公用Internet网络(般作为主机们的默认网关,注意,在局域网中通信不需要路由器),维护一个NAT转换表,在内网向外网发送报文时,检查IP源端口号,将其替换为公用IP地址和新的端口号。当外网回复报文时,需要查表将IP目的端口号替换掉。(因此NAT后面的主机一般只能作客户端,难以作为服务器

二十二、ICMP协议

1. ICMP(因特网控制报文协议)被主机和路由器用来在网络层沟通控制信息,ICMP文被IP数据报承载,内容包括[类型,编码,引起事件的IP首部],经常用来进行差错报告。

2. 几种ICMP:目的主机不可达,TTL过期,IP首部损坏,源抑制,回显请求/回答。

3.不发ICMP差错报告的IP数据报:ICMP报文本身,非第一个分片(仅对第一个分片),具有组播地址的IP数据报。

二十三、路由选择

1.链路状态算法(LS):每个结点都知道整个网络的结构(通过向所有结点广播链路状态),直接在图上使用时间复杂度𝑂(𝑛^2)Dijkstra算法求出到每个结点的单源最短路径。

2.距离向量算法(DV):分布式算法,每个结点𝑖维护距离向量(到其它结点的最短距离𝐷𝑖𝑗)相邻结点不断交换距离向量,通过Dij=\min (c(i,v)+Dvj)更新自身距离向量。

3.整个Internet划分为若干个自治系统(AS),每个AS内有若干处于相同管理的路由器,连接其AS的路由器为网关路由器。先进行AS内部的路由选择,再进行AS间的路由选择。

4.RIP协议AS路由选择协议,运行在应用层(基于UDP),使用距离向量算法AS内相邻路由器不断交换RIP通告报文以更新距离向量(AS内所有结点最小距离)RIP协议使用跳数作为距离,只能工作在直径至多15AS上,当距离=16时认为无法到达。

5.OSPF协议AS路由选择协议,基于IP数据报传输报文,使用链路状态算法,可灵活定义链路权值(例如带宽),可将AS构造为层次区域,在每个区域中广播链路状态并运行LS算法。

6.BGP协议AS路由选择协议,运行在应用层(基于TCP),使用路径向量算法(求出具体路径而非距离,且不一定最优),可求出到达一个子网(CIDR地址块)需要经过哪些AS

二十四、IPv6

1.IPv6使用128位地址,表示为816位数(16进制表示,用“:”连接,中间连续多个0段可以用“::”压缩表示,但显然只能压缩一段)

2.IPv6在首部取消了校验和字段,取消了选项字段(首部长度固定),并禁止在中间路由器分片。

3.IPv6地址可以支持单播多播任意播(向地址组中的随便一个发送)

4.在传输IPv6数据报时,可能由于兼容性问题到达只支持IPv4的网络,可以将IPv6数据报封装到IPv4中进行传输(隧道)。

二十五、链路层概述

1.运行链路层协议的结点设备:主机、路由器、交换机、Wifi接入点,它们之间由直接连接。不同链路/局域网可以具有不同的链路层协议。

2.链路层协议负责在相邻结点间传输链路层帧,提供组帧链路接入(协调多个结点共享链路)可靠交付(即超时重传,光纤等低差错率链路可不提供)差错检测与纠正流量控制(限制发送方发送速度)的服务。

3.链路层在硬件层面的网络接口卡(适配器)实现,每个网络接口卡具有唯一的48MAC地址(物理地址),一般在出厂后永久固定不变。广播MAC地址全1。一台主机一般具有一个IP地址(可随网络位置改变,与接入的子网有关,考虑DHCP)和一个MAC地址(一般不可改变)。当网络接口接收到帧时,检测其目的地址是否正确,若不正确则丢弃。(因为很多情况下发往某接口的帧不得不广播到所有接口

二十六、差错控制与CRC

1. 编码的汉明距离dn位编码中任意两个码字至少有d位不同。

2. 检错编码具有r位检错能力的必要条件:汉明距离>=r+1

3. 纠错编码具有r位纠错能力的必要条件:汉明距离>=2r+1

4.CRC可以在n位有效数据D后加上rCRC比特R,使得不超过r连续错误(突发长度<=r)都能被检测出来。双方需要先协商一个r+12多项式G,发送方在D后补r0,在模2意义下和G作多项式除法,得出的余数为R。接收方将n+r位的(D,R)G作除法,能被整除说明正确。

(𝑹=𝑫∗𝟐𝒓 𝐦𝐨𝐝 𝑮)

二十七、介质访问控制(MAC)协议

1.广播链路的多路访问问题:如何协调多个发送和接收结点对一个广播链路(介质)的共享,若多个结点同时发送帧会导致信号冲突。

2. 信道划分协议:通过多路复用共享链路,不会引起冲突,例如TDMA(时分),FDMA(频分),CDMA(码分,用于无线),WDMA(波分,用于光纤)

3.随机访问协议:以最大速率发送帧,若发生冲突则等待随机时间再重发:

ALOHA 协议:有新帧则立刻发送,若失败则以 1-p 概率等待发送一帧的时间,直到重传成功。
时隙ALOHA 协议:按照发送一帧的时间划分时隙,有新帧则在下个时隙发送,若失败则下个时隙以p 概率重传, 1-p 概率继续等待,直到重传成功。效率比无时隙 ALOHA 协议高。
CSMA 协议:发送帧之前监听链路,若空闲则发送,若链路忙则推迟发送。

CSMA/CD协议:在CSMA基础上引入碰撞检测,在传输过程中监听是否有来自其它结点的能量,若监听到说明有冲突,发送失败。需要保证帧长至少为2×单向传播时延×带宽。(必须保证在帧还没传完的情况下,能够监听到在距离自己最远的地方发生冲突后传回来的信号,因此传播时间要算往返两遍。这导致帧不能特别短,结点距离不能特别远

4.轮转访问协议:轮询:设置一个主节点,轮询每个结点是否要发送,交付链路占用权。令牌传递:在环形链路上传递“令牌”,得到令牌的结点可以发送适合负载重的网络,无论如何都不会发生冲突)

二十八、ARP协议

1.地址解析协议ARP用于转换IP地址和MAC地址。每个主机和路由器的接口都维护一个ARP表,记录本子网内其它接口的IP地址与MAC地址的映射关系。

2.当主机或路由器的这个接口(适配器)要向某个目的IP地址(由于跨路由器的原因,这里的“目的IP地址”并非IP数据报的目的IP地址,可能是下一跳路由器接口的IP地址 )发送/转发IP数据报时,在自己的ARP表中查询得到对应的MAC地址,将其作为链路层帧的目的MAC地址。

3.ARP表中没有目的IP地址,则需要在子网内广播目的MAC地址为ff-ff-ff-ff-ff-ffARP分组(封装在链路层帧中),当目的适配器接收到记录有自己IP地址的ARP分组后,会回ARP响应报文(此时不需要再广播,直接向ARP分组的源MAC地址发送即可),源适配器就可以更新自己ARP表,进行数据报发送了。

4.在涉及到跨子网传输数据报时,数据报应当(在未到达目的子网前)发向下一跳路由器接口,这是每一步ARP中的“目的IP地址”和链路层帧中的“目的MAC地址”。(一定要注意链路层帧只负责交付到相邻接口

二十九、以太网

1.以太网是最主要的有线局域网技术,提供无连接服务,可使用基于同轴电缆的总线型结构(广播链路,需要CSMA/CD)或基于交换机的星型结构。

2.在广播链路上工作的以太网的CSMA/CD使用二进制指数退避算法,当传输时监测到冲突,则开始退避,第m次连续冲突时从0~2^(min(𝑚,10))− 1中随机选择K,等待K*512bit的传输时间。

3.以太网帧前需要有8字节前同步码,为了使接收方速率与发送方同步。有效数据长度为46~1500B,具有48位源和目的MAC地址,16位类型字段(复用多种上层协议,IPARP)末尾有32CRC校验码。除去前同步码,以太网帧需要附加18字节,因此最小帧长度为64B

三十、链路层交换机

1.链路层交换机对于子网中主机和路由器是透明的,能够根据MAC地址存储-转发链路层帧。交换机的每个接口都连接一个链路,能够消除局域网中的碰撞冲突,隔离不同链路。

2.交换机维护一个交换机表(类似路由表),记录所有目的MAC地址对应的接口。当要转发一个从接口x传来的帧时,在表中查询目的MAC地址对应的接口,从对应的接口上转发出去,若对应接口x则直接丢弃,若不存在则需要向x之外的所有接口广播该帧。(主机收到帧后必须看一下MAC是真的是发给自己的,若不是就扔了

3.交换机采取自学习方式维护。当交换机从接口x收到帧时,会将其MAC地址与x更新到交换机表中(表示这个地址对应接口x)。因此交换机是即插即用设备。

4.物理层的集线器仅将链路(介质)简单连接,无脑转发信号,无法隔离冲突域(可将集线器连接的链路简单视为一整坨金属介质)。

5.只有网络层设备(路由器)才可隔离广播域,一般来说一个局域网(子网)就是一个广播域,可在其中通过全1IP地址/MAC地址广播。

三十一、虚拟局域网

1.虚拟局域网(VLAN)支持多个局域网共享同一台交换机,在交换机上以软件方式配置接口与VLAN的映射表,使得交换机接口被分配到不同的VLAN上,来自一个接口的广播流量只能到达同一个VLAN的其它接口上(每个VLAN都是一个广播域),实现了流量隔离的作用。

2.若要实现不同VLAN的信息交换,则需要使用路由器连接不同VLAN的接口。(交换机是链路层设备,原则上不能沟通两个局域网

3.若要跨越多个交换机实现同一个VLAN,需要使用额外的中继(Trunk)接口连接交换机,使用干线链路连接,同一个VLAN的跨交换机的以太网帧在干线链路上使用802.1Q格式(在标准以太网帧基础上附加了VLAN)

三十二、PPP协议

1.PPP协议用来控制点对点链路,仅一个发送端和一个接收端,不可能有冲突,也不需MAC寻址和介质多路访问。PPP协议不具有差错纠正、流量控制、多点链路支持。

2.PPP帧以标志字节01111110开始和结束。若有效数据中存在01111110则需要对其转义。在0111111001111101前填充转义字节01111101,实现比特透明传输(有效数据能承载任何字节)

3.PPP帧中具有地址、控制、上层协议、CRC校验的字段,双方可以在传输之前进行协(设置链路层信息和网络层信息)地址和控制字段可以丢弃(毕竟点对点链路不需要MAC地址),协议字段可以省1字节,校验字段可以省2个字节,总共可以协商省略5个字节。

三十三、CDMA

码分多路复用CDMA被广泛用于无线链路的无冲突复用,每个比特被视作1-1(0-1),每个发送方都具有一个长度M的由±1构成的向量𝐴显然𝐴 ∙𝐴 = 𝑀,时间被划分为时隙,每个时隙可以传输M比特。发送方在每个时隙内将要发送的比特b(为±1)与𝐴乘积得到一个长M的码片序列𝑏𝐴 ,发送出去。

三十四、IEEE802.11

1.IEEE802.11无线局域网(WiFi)的构成:每个无线设备称为站点(主机),每个主机需要与一接入点AP(基站)相关联,一个AP构成一个基本服务集(BSS),多个通过有线链路相连的AP构成一个局域网。

2. IEEE802.11定义了11个不同频段信道,每个AP需要分配一个信道,各自有一个名称(SSID)

3. 主机可以以被动或主动的两种方式与AP进行关联:

被动:①多个 AP 在信道中不断发送 信标帧 ( 包含 SSID MAC 地址 ) ,②主机扫描信道,通过信标帧
选择一个 AP( 一般为信号强度最大的 ) ,向该 AP 发送 关联请求帧 ,③ AP 向主机发送 关联响应帧
主动:①主机主动在信道中广播 探测请求帧 ,②多个 AP 同时发送 探测响应帧 ,③主机向选择的 AP
发送 关联请求帧 ,④ AP 向主机发送 关联响应帧

4.IEEE802.11使用CSMA/CA协议对信道进行访问控制。发送方在发送帧前先监听信道DIFS间,若信道一直空闲,则直接发送整个帧(在发送过程中并不检测冲突,这和CSMA/CD不同)接收方正确接收到帧后,会延迟较短的SIFS时间后发送ACK进行确认。

5.为避免冲突可以选择性地使用信道预约机制:主机先向AP发送RTS,若AP正确接收则向所有主机广播CTS帧,这会让其它主机推迟一段时间再发送。

6.IEEE802.11帧中需要3个地址字段,在发送帧时涉及到(局域网中的)主机、AP和路由器。

①主机向 AP 发送帧:地址 1( 直接目的 )为AP MAC 地址,地址 2( 直接源 )为主机MAC 地址,地址 3( 间接目的 )为路由器MAC 地址。
AP 向路由器发送以太网帧:目的地址为路由器 MAC 地址,源地址为 AP MAC 地址。

三十五、移动IP

1.在移动网络中,移动主机可以在物理上随意从一个网络移动到另一个网络(揣着手机到处走)但为了保证用户的移动性对网络应用透明,需要保证移动主机的IP地址固定不变。移动主机本身始终使用这个IP地址对外通信。

2.移动主机需要被固定的本地归属网络中的归属代理(本地代理)进行永久管理,当移动主机移动到外部网络时,外部网络的外部代理会为其分配转交地址(COA),移动主机需要告知其归属代理其现在的转交地址(称之为“注册”)

3.当其它外网主机通过移动主机的IP地址向移动主机发送IP数据报时,会先被本地归属代理收到,然后通过隧道封装IP数据报,通过被告知的转交地址发往移动主机所在的外部网络,最终被移动主机接收。

4.注意移动主机具有的2个地址:

IP 地址 :永久固定,在“逻辑”上被用来与其它主机通信,位于本地归属网络的子网中,其它主机需要知道。
转交地址 :随主机移动动态可变,反映移动主机现在的真实位置,位于外部网络的子网中,其它主机不需要知道,但本地归属代理需要知道。

三十六、考试题中出现的名词缩写

三十七、考试题中出现的各种“协议”

HTTP协议 :应用层,用于 Web 对象 ( 网页 ) 传输,基于 TCP
FTP 协议 :应用层,用于远程文件传输,基于 TCP
SMTP 协议 :应用层,用于电子邮件的推送,基于 TCP
POP3 协议 :应用层,用于客户端对邮箱中的邮件访问 ( 简单 ) ,基于 TCP
IMAP 协议 :应用层,用于客户端对邮箱中的邮件访问 ( 复杂 ) ,基于 TCP
DNS 协议 :应用层,用于主机名 / 域名到 IP 地址的转换,基于 UDP
UDP 协议 :传输层,用于报文段的简单无连接不可靠传输,基于 IP
rdt3.0 停等协议 :理想模型,实现低效率可靠传输。
GBN 协议 :理想模型,通过滑动窗口实现高效率可靠传输。
SR 协议 :理想模型,通过滑动窗口实现高效率可靠传输。
TCP 协议 :传输层,用于报文段的有连接可靠传输,基于 IP 数据报。
IP 协议 :网络层,实现数据报在主机之间的尽力而为不可靠传输,基于链路层帧。
DHCP 协议 :网络层 ( 实际工作在应用层 ) ,实现子网内 IP 地址动态分配,基于 UDP
NAT 协议 :网络层,实现内网地址到公网地址的带端口号转换。
ICMP 协议 :网络层,用于在网络层结点之间传递控制信息,基于 IP 数据报。
RIP 协议 :网络层 ( 实际工作在应用层 ) ,用于 ( 小规模 )AS 内的路由选择,使用距离向量算法,基于 UDP
OSPF 协议 :网络层,用于 AS 内的路由选择,使用链路状态算法,基于 IP 数据报。
BGP 协议 :网络层 ( 实际工作在应用层 ) ,用于 AS 间的路由选择,使用路径向量算法,基于 TCP
信道划分协议 :链路层, MAC 协议的一类,通过多路复用共享链路,不会引起冲突。
随机访问协议 :链路层, MAC 协议的一类,发生冲突后随机等待时间然后重发。
轮转访问协议 :链路层, MAC 协议的一类,轮流赋予结点以链路使用权。
ALOHA 协议 :链路层,属于随机访问协议。
时隙 ALOHA 协议 :链路层,属于随机访问协议。
CSMA 协议 :链路层,属于随机访问协议,能够监听链路是否忙。
CSMA/CD 协议 :链路层,属于随机访问协议,能够监听链路并在传输时检测冲突,用于有线链路。
CSMA/CA 协议 :链路层,属于随机访问协议,能够监听链路并规避冲突,用于无线链路。
ARP 协议 :链路层与网络层之间,用于在本地子网内转换 IP 地址与 MAC 地址,基于链路层帧。
以太网协议 :链路层,用于有线局域网的链路层帧传输,使用二进制退避的 CSMA/CD
PPP 协议 :链路层,用于点对点的链路层帧传输。
WiFi 协议 (IEEE802.11) :链路层,用于无线局域网的链路层帧传输。

三十八、考点小结

各种算法与典型计算问题:
分组交换的时间计算 ( 多链路总传输时间 )
文件分发时间计算 (C/S P2P)
信道利用率计算 (GBN 为主 )
滑动窗口的编号比特数计算 (GBN SR)
TCP 的流量控制与拥塞控制算法
IP 数据报分片计算
IP 地址 (CIDR 地址块 ) 的各种基于按位的计算
链路状态算法与距离向量算法 ( 以后者为主 )
CRC 的计算
以太网 CSMA/CD 协议采取的二进制指数退避算法
CSMA/CD 协议的最小帧长 / 最大距离 / 最大传播时延计算
CDMA 码片序列的计算
各种需要维护的“表”:
DNS 资源记录表 ,在 DNS 服务器上,维护主机名和 IP 地址之间的映射关系等。
路由表 ,在路由器上,维护目的子网 (CIDR 地址块 ) 与路由器接口的对应关系。
NAT 转换表 ,在 NAT 路由器上,维护内网 IP+ 端口号与公网 IP+ 端口号的对应关系。
距离向量表 ,在路由器等结点上,维护邻居 ( 和自己 ) AS 内每个结点的最短距离,用于
RIP 协议的距离向量算法,通过 RIP 通告报文更新。
ARP ,在每个网络接口上,维护本地子网内其它接口的 IP 地址与 MAC 地址的对应关系,
通过 ARP 分组与响应更新。
交换机表 ,在交换机上,维护 MAC 地址与交换机接口的对应关系,通过自学习更新。
VLAN 映射表 ,在交换机上,维护 VLAN 与交换机接口的对应 ( 分配 ) 关系。
各种值得分析的“过程”:
HTTP 的请求 / 响应过程 ( 包括并行连接、持续连接、流水线 )
电子邮件的发送和访问过程
DNS 的查询过程
停等协议的发送和接收过程
滑动窗口协议的发送和接受过程
TCP 的可靠传输过程
TCP 的连接建立与关闭过程 (3 次握手 /4 次握手 )
TCP 的拥塞控制状态转移过程
DHCP 的交互过程
ARP 协议的查询过程
交换机的转发过程
无线主机与 AP 的关联过程
CSMA/CA 协议的传输与信道预约过程
各种数据分组格式:
HTTP 报文
UDP 报文段
TCP 报文段
IPv4 数据报
IPv6 数据报
以太网帧
PPP
2024.06.25  哈工大计网期末复习之知识点部分 完结
后续还会更新期末复习题部分
  • 23
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值