Welcome!

0 %
Yun Peng
Principal Engineer at Huawei HK Research Center
  • Chinese Name
    彭昀
  • Major
    Computer Science
  • City
    Hong Kong
  • Age
    24
  • Email
    normal@yunpeng.work
Research Interest
Software Engineering
Artificial Intelligence

计算机网络总结

April 16, 2021

CH1 引论

1、Internet的两种描述

①、按松散的层次结构组织、并且遵循TCP/IP协议的ISP集合

②、为分布式应用提供通信服务的基础设施

2、接入网

电缆因特网接入:

从住宅到电缆头端的接入网部分是共享的

3、物理媒体

导引型媒体:信号沿固体媒体传播

非导引型媒体:信号在空间自由传播

4、分组交换

原理:存储转发、动态路由、出错交由端系统处理

P个分组经过N条链路的总耗时为(P+N-1)L/R,忽略传播时延

网络核心的两个重要功能:选路、转发

5、电路交换

预留好通信需要的资源,发送方能够以恒定的速率想接收方传送数据

频分复用和时分复用,时分复用比频分复用实现更简单

传输时间与链路数量无关

传输数据前需要建立连接,传输完毕后需要拆除连接

6、分组交换与电路交换的对比

分组交换:

适合突发数据

简单,不需要建立电路

提供比电路交换更好的带宽共享

可能产生严重的拥塞、延迟、丢包,需要有保证可靠传输和拥塞控制的协议

电路交换:

发送方能够以恒定的速率想接收方传送数据

容易造成资源闲置

7、分组交换网中的时延

种类:

处理时延proc、排队时延queue、传输时延trans、传播时延prop

传输时延是路由器将分组推出所需要的时间,与两台路由器之间的距离无关

传播时延是一个比特从一台路由器向另一台路由器传播所需要的时间,它是两台路由器之间距离的函数,而与分组长度或链路传输速率无关

排队时延:

流量强度:La/R(a为分组到达速率)

随着流量强度接近于1,平均排队时延迅速增加

端到端时延:

若源主机到目的主机中间有N-1台路由器,忽略排队时延,端到端时延为N(处理时延+传输时延(L/R)+传播时延)

8、端到端吞吐量

端到端吞吐量受瓶颈链路速率限制

吞吐量的单位为bps,不是Bps

9、协议层次及服务模型

分层:将系统功能组织成一系列水平的层次,每层实现一个功能

每层通过下列方式实现服务:①、在这层中执行某些动作②、直接使用下层的服务

分层的缺点:①、一层可能冗余较低层的功能

②、某层的功能可能需要仅在其他某层才会出现的信息

分层的优点:①、显式的层次结构易于确定系统的各个部分及其相互关系

②、模块化简化了系统的维护和升级

Internet协议栈:

应用层:支持各种应用程序

传输层:进程与进程之间的分组传输

网络层:源主机与目的主机之间的分组传输

链路层:相邻网络设备之间的分组传输

物理层:物理媒体上的比特传输

OSI模型:

在应用层和传输层中间多了表示层和会话层

表示层的作用是使通信的应用程序能够解释交换数据的含义,包括数据压缩、数据解密、数据描述

会话层提供了数据交换定界和同步功能,包括建立检查点和恢复方案的方法

10、互联网+

利用信息通信技术以及互联网平台,让互联网与传统行业进行深度融合,创造新的发展生态

CH2 应用层

1、网络应用程序体系结构

客户-服务器体系结构:

服务器具有永久IP地址,客户机通常使用动态IP地址且不与其他客户机联系

对等体系结构:

没有总是运行的服务器,对等方间间断连接,使用动态IP地址,每个对等方可以请求服务,也可以提供服务

2、套接字

套接字是应用层与传输层之间的接口,也是应用程序与网络的接口

3、可供应用程序使用的服务

可靠数据传输、吞吐量、定时、安全性

4、TCP

面向连接(交换数据前握手,建立连接)、可靠数据传输、流量控制、拥塞控制

不提供及时性和最低带宽保证

5、UDP
不提供不必要服务,仅提供最小服务,无连接,不可靠传输

6、应用层协议定义

交换的报文类型、报文语法、报文各字段含义、进程何时发送或响应报文

7、HTTP

客户-服务器体系结构,端口:80,TCP协议

服务器不保存客户机的任何信息

非持续连接:(HTTP1.0)

一个TCP连接传输一个对象

获取每个对象需要2个RTT

缺点:需要建立大量的TCP连接,给服务器带来负担

每一个对象的请求需要经历2RTT的时延

持续连接:(HTTP1.1)

一个TCP连接传输多个对象

无流水线方式:连接建立用时1RTT+请求每个对象用时1RTT

流水线方式:(HTTP1.1)请求一个网页用时3RTT

表单输入:

①、使用POST方法,输入内容放在报文体重上传

②、使用GET方法,输入内容放在请求行的URL字段中上传

cookie:

组成部分:HTTP请求报文和响应报文中的cookie首部行、保存在用户主机中的cookie文件,服务器上的后端数据库

web缓存:

优点:可以大大减少对客户请求的响应时间

可以大大减少一个机构的接入链路到因特网的通信量

条件GET:

请求报文中包含If-modified-since

用于缓存服务器证实它的对象是最新的

8、FTP

客户-服务器体系结构,端口:21、20,TCP协议

使用两个并行的TCP连接:控制连接(端口21)、数据连接(端口20)

控制连接贯穿整个用户会话期间,而会话中的每一次文件传输都需要建立一个数据连接

需要对客户机状态进行追踪

将数据连接和控制链接分开的原因:

不混淆数据和控制指令,简化协议设计,实现在传输文件时可以同时进行其他的操作,便于控制传输过程

使用关闭数据连接的形式结束文件传输的原因:

允许动态创建文件而不必事先告知文件大小

9、电子邮件

组成部分:用户代理、邮件服务器、SMTP

邮件服务器包含:用户信箱、发送报文队列、报文传输代理(在邮件服务器之间传输邮件,将接收到的邮件放入用户信箱)

邮件发送过程:发送方用户代理->发送方邮件服务器->接收方邮件服务器->接收方邮件代理

SMTP:

客户-服务器体系结构,端口:25,TCP协议

SMTP一般不使用中间服务器,发送服务器与接收服务器之间直接传输邮件

报文只能包含7位ASCII码

使用持久连接,可以双向传输,使用“.”标识报文结束

将非ASCII码转化为ASCII码:

Base64编码:

每24bit数据划分成4个6bit的单元,每个单元编码成一个ASCII字符

quoted-printable编码:

ASCII码字符不变,对于非ASCII码字符,将该字符的十六进制用两个ASCII字符标记,前面加上特殊字符‘=’

邮件访问协议:

不能用SMTP从邮件服务器上获取邮件,因为SMTP是push协议

POP3:

工作的三个阶段:认证、事物处理、更新

不会携带状态信息

IMAP:

允许用户将邮件组织在文件夹中并在文件夹之间移动邮件,携带状态信息

允许获取报文的一部分

HTTP:

使用HTTP将邮件发送到发送方服务器或者从接收方服务器获取接收方邮件,发送方服务器和接收方服务器之间的邮件传输还是使用SMTP

SMTP将邮件从发送方用户代理发送到发送方服务器或从发送方服务器发送到接收方服务器

邮件访问协议将邮件从接收方服务器传送到接收方用户代理

10、SMTP与HTTP的对比

①、SMTP中的TCP链接由想发送文件的机器发起而HTTP中的TCP链接由想接收文件的机器发起

②、SMTP要求报文使用7位ASCII码形式而HTTP报文不受这种限制

③、HTTP将每个对象封装到HTTP响应报文中而SMTP把所有报文对象放在一个报文中

④、SMTP报文使用‘’.‘’作为结束标志而HTTP报文在首部记录长度

11、DNS

DNS是一个由分层的DNS服务器实现的分布式数据库,一个使得主机能够查询分布式数据库的应用层协议

客户-服务器体系结构,端口:53,UDP协议

DNS提供的服务:

主机名到IP地址的转换、主机别名、邮件服务器别名、负载分配

不使用集中式DNS的原因:

①、单点故障

②、通信容量,单个服务器需要处理全部查询

③、响应时间长,距离限制

④、需要维护庞大的数据库

查询原理:

递归查询:

主机将查询报文发送给本地DNS服务器,本地DNS服务器以自己的名义向其他DNS服务器发起查询

迭代查询:

本地DNS服务器依次向根服务器、顶级域名服务器、权威域名服务器等发起查询,所有查询报文对应的响应报文的接收者都是本地DNS服务器

从请求主机到本地DNS服务器的查询是递归的,其他查询都是迭代的

DNS缓存:

每接收到一个响应报文,将报文中的映射信息存储到本地

首先使用缓存中的信息响应请求

缓存中的映射在一定时间后被丢弃

本地DNS服务器通常会缓存顶级域名服务器的地址从而绕过根服务器

DNS资源记录:

(Name,Value,Type,TTL)

Type为A,Name为主机名,Value为IP地址

Type为NS,Name为域名,Value为知道如何获取该域中主机IP地址的权威DNS服务器的主机名

Type为CNAME,Value为别名为Name的主机对应的规范主机名

Type为MX,Value为别名为Name的邮件服务器对应的规范主机名

DNS报文封装:

响应报文长度小于512字节,使用UDP,否则使用TCP,事先不知道时先使用UDP

12、P2P

Bittorrent:

文件被划分成256KB的块

对等方加入洪流时没有数据块,但随着时间的推移逐步积累

对等方在下载数据块的同时,也向其他的对等方上传数据块

在任何给定时刻,不同的对等方拥有不同的数据块子集

最稀罕优先:优先请求在邻居中副本数量最少的数据块

13、面向连接服务能提供的服务

可靠传输、有序传输、资源预置

14、无连接服务的优缺点

优点:无需知道网络的状态或只需要知道局部网络状态

缺点:具有不确定性(能否完成服务不确定,是否有能满足服务需求的网络资源不确定)

CH3 传输层

1、传输层与网络层的关系:

传输层协议在端系统中实现而不是在路由器中实现

传输层协议能够提供的服务类型常常受制于网络层服务

网络层服务:尽力而为的服务,不提供任何保证

传输层提供的服务:保证可靠、按序的交付(TCP)或者不保证可靠、按序的交付(UDP)

传输层不能提供延迟保证和带宽保证

最低限度的传输层服务(UDP唯一能提供的服务):进程到进程的数据交付和差错检查

2、多路复用与多路分解

多路复用:从多个套接字中收集数据,交给网络层发送

多路分解:将收到的报文段交付给正确的套接字

UDP套接字:二元组(IP地址,端口号)

TCP套接字:四元组(源IP地址,源端口号,目的IP地址,目的端口号)

UDP套接字与TCP套接字的区别:

源IP地址和源端口号不同而目的IP地址和目的端口号相同的两个UDP报文被定位到相同的UDP套接字

源IP地址和源端口号不同而目的IP地址和目的端口号相同的两个TCP报文被定位到不同的TCP套接字,除非TCP报文携带了建立TCP连接的请求

3、UDP

UDP提供的服务:多路复用和多路分解,检测报文错误

选择UDP的原因:

①、关于何时、发送什么数据的应用层控制更为精细

TCP会有拥塞控制从而延迟发送

②、不需要建立连接

不引入连接建立时延

③、无连接状态

不需要维护连接状态

④、分组首部开销小

UDP报文段首部8字节,TCP报文段首部20字节

UDP很可能会带来高丢包率并且挤挎TCP会话

检验和的计算:

将报文段看成16bit的片段,将这些片段相加,如果有溢出,结果加1,最后取结果的反码

检验:将报文段的16bit片段和检验和相加,结果全为1则没有错误

UDP不提供差错恢复

4、可靠数据传输原理

①、rdt1.0

经完全可靠信道传输,无比特错误,无丢包

发送方和接收方均只有一个状态

②、rdt2.0:停等协议

经具有比特差错信道的可靠数据传输

使用的新机制:差错检测、接收方反馈、重传

发送方两个状态:构造分组(不加序号),等待反馈(收到ACK,转移状态;收到NAK,重传)

接收方一个状态:收到出错分组,发送NAK;收到正确分组,发送ACK

发送方当且仅当接收到ACK后才传输下一个分组

致命缺陷:没有考虑ACK、NAK报文受损的情况

③、rdt2.1

经具有比特差错信道的可靠数据传输

使用的新机制:增加分组序号(1个bit)

发送方4个状态:构造分组(加入序号),等待反馈(收到NAK或者出错的反馈,重传;收到ACK,转移状态)

接收方2个状态:收到出错的分组,发送NAK;收到冗余分组,发送ACK,不交付数据,不转移状态;收到新分组,发送ACK,转移状态

④、rdt2.2

经具有比特差错信道的可靠数据传输

使用的新机制:使用对上次是正确接受的分组的ACK取代当前分组的NAK,ACK中显式携带确认的分组序号

发送方4个状态:收到期待序号的ACK,转移状态;收到出错分组或者非期待序号的ACK,重传

接收方2个状态:收到期待序号的分组,发送ACK;收到出错分组或者非期待序号的分组,重发上一分组的ACK,不转移状态

⑤、rdt3.0:比特交替协议

经具有比特差错的丢包信道的可靠数据传输

使用的新机制:倒计数定时器,每发送一个分组便启动一个定时器

发送方4个状态:发送分组后启动定时器;收到期待序号的ACK,终止定时器,转移状态;收到非期待序号的ACK,不作处理;定时器超时,重发分组

接收方2个状态:与rdt2.2接收方一致

发送方只有超时才重传分组,接收到冗余ACK不重传

⑥、GBN:回退N步

流水线传输协议

需要增加序号范围

发送方响应的事件:

上层的调用:检查发送窗口是否已满,未满才能发送,原来发送窗口为空时启动一个定时器

收到正确的ACK:累积确认,ACK序号及其以前的分组全部正确接收,更新定时器

收到错误的ACK:不处理

超时:重传所有已发送但是还没有得到确认的分组

发送方只使用一个定时器

接受方丢弃所有失序分组,接受方不需要缓存任何失序分组

⑦、SR:选择重传

流水线传输协议

需要增加序号范围且发送方需要缓存失序分组

仅让发送方重传它认为出错的分组,每一个分组都需要一个定时器

接收方需单独确认每一个收到的分组

发送方响应的事件:

上层的调用:与GBN协议一致

收到发送窗口内的ACK:标记分组已接收,移动发送窗口到最小的未确认的序号

超时:重传超时的分组

接收方响应的事件:

收到接受窗口内的分组:发送ACK,若分组失序则缓存分组,若分组序号等于基序号,交付从基序号开始的连续分组

收到接受窗口左侧长度为N的区间内的分组:发送ACK 这一步非常重要,否则发送方窗口不能移动

收到其他分组:不处理

发送方和接收方窗口大小一般一样且不能大于序号空间的一半

GBN协议和SR协议发送方窗口与接收方窗口的比较:

发送方窗口:

GBN:已确认和未确认的序号不相交

SR:已确认和未确认的序号可能相交

接收方窗口:

GBN:只包含当前期待的分组序号

SR:包含期待但未收到的序号、失序且已确认的序号、可以接受的序号

5、TCP

点到点通信、全双工、面向连接、可靠有序、流水线、流量控制、拥塞控制

最大报文段长度+TCP/IP报文首部(40字节) < 最大传输单元

TCP报文结构:

标志字段:

RST、SYN、FIN用于连接建立与拆除

PSH指示应该立即将报文交给上层

URG表示存在紧急数据

TCP发送紧急数据:

URG置为1,紧急数据指针指向紧急数据的最后一个字节,紧急数据位于有效载荷前部

序号:报文段第一个数据字节的序号(从0开始)

确认号:主机A填入报文段中的确认号是希望从对方接收到的下一个字节的序号

TCP没有规定接收方如何处理失序到达的分组

对收到分组真正的确认是被装在有效载荷中的

TCP往返时间的估计和超时值的设定:

仅为已发送但未确认的报文段计算sampleRTT,不为重传的报文段计算sampleRTT(原因:ACK只针对数据而不是分组,具有二义性)

$EstimatedRTT = (1 – \alpha)EstimatedRTT + \alpha \cdot SampleRTT$

典型的$\alpha = 0.125$

$DevRTT = (1- \beta)DevRTT + \beta \cdot |SampleRTT-EstimatedRTT|$

典型的$\beta = 0.25$

$TimeoutInterval = EstimatedRTT+4 \cdot DevRTT$

推荐的初始值为1s,出现超时后翻倍,更新$EstimatedRTT$后同样更新$TimeoutInterval$

可靠数据传输:

发送方使用流水线发送分组

接收方使用累积确认

发送方采用重传来恢复丢失的分组

只使用一个定时器

发送方:

流水线形式发送分组

仅对最早未确认的分组使用定时器(GBN)

超时后仅重传最早未确认的分组(SR),每一次超时后超时间隔加倍,提供一个形式受限的拥塞控制

收到ACK后更新发送窗口

收到三个冗余ACK,立即重传

接收方:

发送ACK的规则:

具有所期望的序号的分组到达,以前的序号都已确认;延迟发送ACK,最多等待500ms,每相隔一个分组使用正常确认方式

具有所期望的序号的分组到达,前一个序号延迟确认;立即发送ACK

收到失序的分组;立即发送冗余ACK

收到部分或全部填充间隙的分组;立即发送ACK

延迟确认的优点:减少通信量

延迟确认的缺点:延迟太大时会导致不必要的重传;延迟确认会导致RTT估计不准确

TCP协议减少重传的措施:

①、利用流水线发送和累计确认,避免重发默写丢失了ACK的分组

②、只使用一个定时器,避免超时间隔过小时大量分组重发

TCP差错恢复机制是GBN和SR的混合体

流量控制:

使发送方的发送速率与接收方的接受速率相匹配

接收窗口=$RcvBuffer – [LastByteRcvd – LastByteRead]$

发送方保证已发送而未确认的数据大小不能超过接收窗口

当接收窗口为0时,发送方继续发送只有1个字节的报文段(启动一个定时器定期发送)以便接收方通知接收窗口已增大

触发TCP传输的三种情况:应用程序调用、超时、收到数据

单向传输的接收方只有收到数据时才能触发TCP传输

糊涂窗口综合征:发送方不断发送微小分组,浪费大量带宽

解决方案:

接收方:

接收方当接收窗口大小显著增加(达到缓存的一半或者一个MSS)时才发送新的窗口通告,当收到窗口探测分组而当前接收窗口不满足上述条件时,推迟发送窗口通告(与延迟确认规则一致)

发送方:

新建TCP连接上,应用数据一旦到来立即发送

收到确认之前,后续到达的数据放在发送缓存之中,当数据量达到一个MSS或者上一个ACK到来时发送缓存中的全部数据

连接管理:

建立TCP连接:

①、客户端向服务器发送一个不包含应用层数据的SYN报文段(SYN置1),随机选择一个初始序号

②、服务器接收到SYN报文段之后,为该TCP连接分配资源,反馈SYNACK报文段(SYN、ACK置1),确认号字段置为SYN报文中初始序号加1,SYNACK报文初始序号由服务器随机选择

③、客户收到SYNACK报文段之后,为该TCP连接分配资源,发送一个报文对SYNACK报文段进行确认(SYN置0),该报文可以携带数据

拆除TCP连接:

①、客户端发送一个FIN报文段(FIN置1)

②、服务器接收到FIN报文段后,发送一个ACK,然后再发送一个自己的FIN报文段

③、客户端收到服务器的FIN报文段,发送ACK,等待一段时间后关闭TCP连接

端口扫描:

向目标端口发送SYN报文段,(也可以发送FIN报文段)

收到SYNACK报文段说明目标端口有服务运行

收到RST报文段说明目标端口无服务运行

什么也没收到说明路径上有防火墙

拥塞控制:

限制发送速率使其不超过网络处理能力

原理:

分组的到达速率接近链路容量时,分组会经历巨大时延

发送方必须重传因为缓存溢出而丢失的分组从而降低吞吐量

发送方在遇到大时延时进行的不必要重传会浪费带宽、降低吞吐量

一个分组被路由器丢弃时,每个上游路由器转发这一分组的带宽被浪费从而降低吞吐量

拥塞控制方法:

端到端:网络层不为拥塞控制提供显式支持,端系统需要观察网络行为来判断拥塞的发生

网络辅助:路由器向端系统提供拥塞反馈

TCP拥塞控制:

使用端到端拥塞控制机制

使用拥塞窗口来限制发送方发送量

发送方已发送未确认的数据量小于min{拥塞窗口,接收窗口}

发送方感知拥塞:超时、收到3个冗余ACK

TCP拥塞控制算法:

加性增,乘性减

①、慢启动(指数增长)

一条TCP连接建立时,拥塞窗口设置为一个MSS,每当传输的报文段被首次确认就增加一个MSS

慢启动的结束:出现超时,将拥塞窗口设为1,重新开始慢启动,并将慢启动阈值置为拥塞窗口的一半

检测到拥塞窗口大小等于慢启动阈值时,进入拥塞避免状态

如果检测到3个冗余ACK,将慢启动阈值置为拥塞窗口的一半,执行快速重传并进入快速恢复状态

②、拥塞避免

拥塞窗口每个RTT增大一个MSS

出现超时:将拥塞窗口设为1,重新开始慢启动,并将慢启动阈值置为拥塞窗口的一半

出现3个冗余ACK:拥塞窗口降为一半,慢启动阈值置为拥塞窗口的一半,执行快速重传并进入快速恢复状态

③、快速恢复

对收到的每个冗余ACK,拥塞窗口增加一个MSS

丢失分组的第一个ACK到达时,进入拥塞避免状态

出现超时:将拥塞窗口设为1,重新开始慢启动,并将慢启动阈值置为拥塞窗口的一半

TCP连接的平均吞吐量(忽略慢启动):

吞吐量=0.75W/RTT,W为丢包时的拥塞窗口大小

经高带宽路径的TCP连接的平均吞吐量:

吞吐量=$1.22MSS/(RTT \sqrt{L})$,L为丢包率

理想状况下TCP连接趋向于使每一个用户获得平均的带宽(公平性),现实情况下具有较小RTT的连接享受更高的吞吐量

6、TCP协议中ACK的作用

建立、拆除连接、差错控制、流量控制、拥塞控制

7、实现TCP连接目标的主要机制

通过端口号进行进程间通信、通过确认机制实现可靠传输、通过接收方缓存实现按序传输、流量控制、拥塞控制、连接的建立和拆除机制

8、TCP提供一定程度的端口鉴别

CH4 网络层

1、网络层的重要功能

转发:将分组从路由器的输入端口转移到合适的输出端口

路由选择:确定分组从源路由器到目的路由器的路径

连接建立:在传输分组之前,两个段系统之间要建立连接(与传输层连接不一样,传输层连接状态信息保存在端系统中,网络层连接状态信息保存在源主机、目的主机已经中间路由器上)

下一跳方法:

路由器表中只保留下一跳地址,各个路由器的路由表需保持一致

优点:无须给出完整的路径

缺点:要求下一跳路由器知道的剩余路径信息与网络中所有路由器知道的保持一致

2、网络服务模型

能对单个分组提供的服务:保证交付、具有时延上界的保证交付

能对分组流提供的服务:有序交付、保证最小带宽、保证最大时延抖动、安全性服务(机密性、数据完整性和源鉴别)

3、基本网络类型

数据报网络:无连接网络

虚电路网络:面向连接网络

网络层不能同时提供两种服务(面向连接和无连接),传输层可以

虚电路网络:

组成部分:源主机和目的主机之间的路径、VC号、沿路径上的每台路由器中的转发表项

一个分组在每条链路上不保持相同VC号的原因:减小VC号长度、简化虚电路建立

Internet(数据报网络)与ATM(虚电路网络)的对比:

Internet没有严格的时序要求和可靠性要求而ATM有

Internet终端具有智能而ATM没有

Internet只提供最小服务,可以运行在各种链路之上,增加新服务只涉及终端

虚电路网络中转发表更新速度大于数据报网络

4、路由器工作原理

路由器组成部分:

输入端口:将物理输入链路与路由器连接、查表、排队、与数据链路层交互、转发

交换结构:经内存交换、经总线交换、经互联网络交换(可并行)

输出端口:组装、排队、调度

路由选择处理器:执行路由选择协议、维护路由选择表、网络管理

路由器转发平面由硬件实现,路由器控制平面由软件实现

输入端口排队:当交换速率是输入端口速率的n倍时不会出现排队(n为输入端口数)

输出端口排队:当多个输入端口同时向一个输出端口转发时出现排队,输出端口排队是不可避免的

分组丢弃策略:

①、弃尾:队列满的时候丢弃到达的分组

②、主动队列管理:在队列满之前开始丢弃分组

RED:维护每个端口的平均队列长度,当平均队列长度到达第一个阈值时,以概率p丢弃到达的分组,当平均队列产地股到达第二个阈值时,丢弃到达分组

5、IP协议

Internet网络层组件:IP协议、路由选择、差错报告和控制

数据报格式:

首部长度:20字节 单位:4字节!!!!

检验和:每个路由器都需要对分组重新进行计算,因为TTL会改变,只对IP首部进行计算(TCP检验和对整个TCP报文段计算)

重复计算检验和的原因:

①、计算的部分不一样

②、网络层报文不一定交付给TCP或者UDP

分片:

每个分片与源数据报具有相同的源地址、目的地址和标识号

最后一个分片的标志位为0,其余为1,偏移值的单位为8字节

分片仅在端系统上重组

IPv4编址:

一个IP地址与一个接口相关联而不是与一个主机或者路由器相关联

单播地址:网络号+主机号

特殊地址:

网络号有效,主机号全0:保留给网络本身

网络号有效,主机号全1:在网络号指定的网络中广播

32位全1:在发送结点的网络中广播

32位全0:指示本机

网络号全0,主机号有效:指示本网中的主机

形如127.xxx.yyy.xxx:保留作为回路测试,发送到这个地址的分组不输出到链路上

一个网络地址可提供的接口地址数为主机号容量减2

子网:主机号可以进一步划分为子网号和主机号

转发类型:

直接交付:目的路由器将分组直接转发给主机,分组目的地址与路由器某一端口地址在同一子网中

间接交付:中间路由器将分组转发给下一个路由器,分组目的地址不与路由器中的任意端口地址在同一子网中

转发表中的下一跳必须与输出端口在同一子网中

DHCP:

步骤:

①、DHCP服务器发现,目的地址255.255.255.255,源地址0.0.0.0

②、DHCP服务器提供,目的地址255.255.255.255

③、DHCP请求,目的地址255.255.255.255,源地址0.0.0.0

④、DHCP ACK,目的地址255.255.255.255

DHCP服务器使用UDP端口67,客户使用UDP端口68

优点:避免手工配置、地址复用

NAT使用具有争议:

①、路由器应当只处理三层以下的分组

②、违反端到端原则

ICMP:

ICMP报文是作为IP报文的有效载荷的

功能:差错报告、查询

不产生ICMP报文的情况:

对于携带ICMP报文的数据报

对于不是第一个分片的数据报

对于具有多播地址的数据报

具有特殊地址(如127.0.0.0或0.0.0.0)的数据报

报告错误的ICMP报文包含引起该错误的IP报文的首部和前8个字节

ICMP报文检验和针对整个报文计算

IPv6:

IPv6与IPv4不兼容,但与其他的Internet协议都兼容

IPv6地址:128位,每16位以16进制写成一组,以冒号为间隔,连续的多组0压缩为一对冒号

IPv6数据报格式:

40字节的定长首部

流量类型:优先级

流标签(流是具有相同传输特性的、并要求相同处理的一系列数据报)

下一个首部:标识数据应该交给哪一个传输层协议

不再存在的部分:

分片,直接丢弃过大的分组

首部检验和,冗余

选项,可能出现在下一个首部指向的位置

改变的部分:

总长度变为有效载荷长度

IPv4和IPv6过渡方案:

双栈:支持IPv6的主机和路由器同时运行IPv4和IPv6,IPv4和IPv6报文的相互转换会丢失一些信息

隧道:IPv6发送方将整个IPv6报文放在IPv4报文的有效载荷部分,可以保留原始报文段的所有信息

6、路由选择算法

分类:(全局,分散)、(静态,动态)、(负载敏感,负载迟钝)

①、链路状态路由选择算法(LS)

全局

基础:Dijsktra算法

每个节点利用可靠方法获得全网拓普信息,抽象成一个带权拓扑图,计算到各个节点的最短路径

步骤:发现邻居、探测到每个邻居的代价、将以上信息构成链路状态分组、向所有节点发送链路状态分组、利用收到的链路状态分组构造网络拓扑,计算到其他节点的最短路径

可能出现拥塞敏感的震荡

②、距离向量路由选择算法(DV)

分散式

每个节点周期性的将它的距离向量发送给邻居,当一个节点从邻居收到距离向量后,使用B-F方程更新自己的距离向量

每个节点需要维护的信息:

与节点邻居之间的链路代价、节点自己的距离向量、节点邻居的距离向量

好消息传播快,坏消息传播慢

环路导致的无穷计数问题的解决方案:增加毒性逆转,如果z通过y到达x,就通告z到x的距离是无穷大的,即使事实并非如此,只要z经y到达x,就持续这个谎言。该解决方案并没有解决一般的无穷计数问题,涉及到3个或更多结点的环路无法检测

③、LS算法和DV算法的比较

LS:全局、结点传播的信息可靠、错误不扩散

DV:分散、结点传播的信息可能不正确、错误会扩散

④、层次路由选择

自治系统:处在同一管理域下的网络和路由器组成的集合

自治系统内部路由选择协议(intra-AS):在一个自治系统内部运行的路由选择算法

自治系统间路由选择协议(inter-AS):从相邻自治系统获取可达性信息和向该AS中所有路由器传播可达性信息的协议

不同的AS中的路由器可以运行不同的intra-AS协议但是必须运行相同的inter-AS协议

7、Internet中的路由选择

Intra-AS协议:

①、RIP

采用距离向量路由选择算法,应用层协议(UDP端口520)

使用跳数作为代价,一条路径的最大代价不能超过15跳

RIP通告:每个报文携带最多25个目的子网和到目的子网的最短距离

每隔30s交换一次RIP通告报文,超过180s没有发送通告即认为该路由器不可达,令通过该邻居的路径失效并发送RIP通告

采用毒性逆转解决无穷级数问题

缺点:更新周期太短、未进行区域划分

②、OSPF

采用链路状态路由选择算法,直接由IP承载,协议号89

核心:使用洪泛链路状态信息的链路状态协议和dijkstra的最短距离算法

链路代价由管理员配置

路由器向AS内所有路由器广播选择信息,一条链路代价发生变化时也广播,至少每隔30分钟要广播一次

优点:安全、当存在多条相同费用的最短路径时,无需使用单一的路径来承载所有流量、对单播和多播路由选择的综合支持、支持在单个路由选择域内的层次结构(将一个AS分成很多区域,其中一个为主干,主干负责区域间路由,每个区域运行自己的OSPF协议)

缺点:开销大

inter-AS协议:

BGP:

应用层协议(TCP端口179)

只试图找到能够到达目的网络的路由,不试图找到最佳路由

AS-PATH:包含前缀通告已经通过的AS,防止出现循环,当自己的AS已经出现在AS-PATH中时,拒绝该通告

NEXT-HOP:开始某AS-PASTH的路由器接口

当存在多条路径时的路由选择:

首先根据本地偏好值,然后根据最短AS-PATH,然后根据最靠近NEXT-HOP路由器的路由,最后使用BGP标识符

桩网络:所有进入该网络的流量的目的地址必定在该网络,所有离开该网络的流量的源地址必定在该网络

8、广播路由选择

①、N次单播:

优点:实现简单,无需新的协议

缺点:效率低,分组可能重复传输(可采用网络复制稍微改善)、无法获知所有接收方、广播为计算单播路由的基础

②、无控制洪泛

结点收到广播分组后,向其所有邻居发送该分组拷贝

缺点:在有环的网络可能产生广播风暴

③、受控洪泛

两种方法:

序号控制洪泛:记录之前已经转发过的分组ID,不重复转发分组

反向路径转发(RPF):利用结点内部的单播路由表,结点仅转发从本节点到源节点最短路径的法相路径上到达的分组

优点:算法合理、易于实现且开销不大

缺点:产生一些不必要的分组拷贝,用于组播可能导致分组被发往不存在活跃成员的链路上

④、生成树

生成树的构造:基于中心的方法

选择一个节点作为中心,其他节点想中心节点发送单播报文,单播报文经过的路径加入生成树

9、多播路由选择

多播分组使用间接地址来标识

Internet组管理协议(IGMP):承载在IP报文中,使用的IP协议号为2

加入一个组:进程向主机发送请求,若这是一个新组,主机向路由器发送请求。路由器某个接口出现一个新组时,向其他接口广播加入新组的报文

推出一个组:主机发现某个组为空时,从表中清除该组,向路由器发送退出报文,路由器收到退出报文后,向其他网络接口发送查询报文,若其他接口也没有成员在该组,则在其他接口发送退出报文

路由选择目标:

每个成员都能到达且只收到一个分组,非成员不能收到分组、源节点到成员的路径必须是最佳的

路由选择算法:

①、基于源的树

源节点建立一棵到所有成员的最短路径树

路由器中必须有每一棵最短路径树的信息

优点:多播分组总是使用最短路径转发

缺点:路由器需要维护大量的多播树

MOSPF:扩展OSPF协议,路由器将每条直连链路上对应的多播组集合作为链路状态在网上广播,当路由器第一次遇到某个多播分组时,计算从源节点到多播组的最短路径树

DVMRP:扩展RIP协议,RPF广播+剪枝

②、组共享树:

每个多播组使用一棵树,该树的根是多播组的核心

源节点先将分组发送给核心,再由核心转发(将多播分组封装到一个单播分组中,单播分组的目的地址为多播组核心的地址)

优点:路由器只需要维护一棵多播树

缺点:转发路径可能不是最佳的

Internet的多播路由选择协议:

PIM

两种工作模式:

稠密模式:许多路由器涉及多播路由选择过程,使用广播+剪枝

稀疏模式:很少路由器涉及多播路由选择过程,使用组共享树的方法,当源节点流量很高的时候切换为基于源的树

多播分组穿越单播网络:建立隧道

CH5 链路层

1、链路层功能

将数据报从一个节点传输到相邻的下一个节点

链路层与网络层的关系:

网络层选定从源节点到目的节点的路径,路径由一系列路由器组成,路径上的链路可能不同

链路层协议在相邻节点间执行,负责在一条独立的链路上传输数据报

链路层可以提供的服务:

组帧、链路接入、可靠交付、差错检测和纠正、全双工和半双工、流量控制

2、差错检测与纠正技术

前向纠错:接收方检错并纠错

后向纠错:接收方检错并请求重传

①、奇偶校验

一维只具有检错能力,二维具有纠错能力

②、检验和

③、循环冗余码(CRC)

所有加减均使用异或,不进位,不借位

对于r+1位的生成多项式,在数据后面添加r个0,然后除以生成多项式所得的余数替换生成多项式后面加的0

性质:

生成多项式多于一项,能检测所有的单个错误

能被(1+x)除尽的多项式具有偶数项,具有偶数项的生成多项式能检测所有奇数个错误

码长小于等于生成多项式g(x)的指数e(e是能使g(x)除尽$x^e+1$的最小正整数),能检测所有单个和两个错误

码长小于等于g(x)的指数e,则由生成多项式(x+1)g(x)生成的CRC能检测所有单个、两个和三个错误

n-m次生成多项式产生的CRC能检测所有长度不超过n-m的突发错误

长度大于m的突发错误中,若长度为n-m+1,则不能检测的部分占$2^{-(m-1)}$,若长度大于m,则不能检测的部分占$2^{-m}$

3、多路访问链路及协议(MAC)

①、信道划分协议

将信道划分成若干个子信道,不会产生冲突

时分多路复用(TDM)

优点:消除碰撞、公平

缺点:结点传输速率被限制为R/N、结点必须等待轮次

频分多路复用(FDM)

优点:消除碰撞、公平

缺点:限制带宽

码分多址(CDMA)

优点:允许所有结点同时使用整个信道

②、随机接入协议

所有数据以信道的全部速率发送,发送前不协调

时隙ALOHA(slotted ALOHA)

所有帧长度相同,结点只在时隙开始时发送,时隙结束时检测冲突,若检测到冲突,在之后的时隙中以概率p重传

优点:简单、高度分散、单个活跃结点可以利用整个信道带宽

缺点:发生冲突的时隙被浪费、有些时隙被闲置、需要时钟同步、效率较低

ALOHA

不用等待时隙,直接发送,监听信道,若发生冲突,则立即以概率p重传,以概率1-p在另一个帧时间等待

比时隙ALOHA效率低一半,但是不需要时钟同步

载波侦听多路访问(CSMA)

发送前侦听:信道空闲则发送,否则等待

仍然有冲突,结点在发送时不一定能检测到其他节点也在发送,一旦发生冲突,整个帧的时间被浪费

具有碰撞检测的载波侦听多路访问(CSMA/CD)

检测到碰撞后立即停止传输

以太网使用CSMA/CD协议,采用二进制指数后退算法(大于10后不再递增,选出来的数要乘以512比特时间)

效率:$\frac{1}{1+5t_{prop}/t_{trans}}$,传播时延趋于0,传输时延趋于无穷时效率趋于1

③、轮流协议

轮询

主节点轮流邀请结点发送

缺点:引入了轮询延迟和单点失效

令牌传递

网络中有一个令牌,按照预定的顺序在节点中传递,获得令牌的节点可以发送

缺点:引入令牌传递延迟和单点失效

三种MAC协议的比较:

信道划分协议重负载时效率高,轻负载时效率低;随机接入协议相反

轮流协议试图权衡两者,按需使用信道,消除竞争

4、交换局域网

主机和路由器接口具有唯一的MAC地址,交换机不具有MAC地址

地址解析(ARP)

获取与IP地址对应的MAC地址

只为在同一个子网中的主机或路由器解析

查询ARP报文是广播发送的,响应ARP报文是在一个标准帧中发送的

结点在启动时自动广播自己的MAC地址,在目的IP地址上也填写自己的IP地址,如果收到ARP响应报文,则报告地址重复错误

以太网

以太网帧数据的最大长度为1500字节,最小为46字节

以太网帧=数据+目的地址(6B)+源地址(6B)+类型字段(2B)+CRC(4B)+前同步码(8B)

无连接、不可靠(接收方不会发送确认)

有最小帧长要求的原因:

确保结点在发送结束前能够检测冲突

802.3z:1000mbps

链路层交换机

功能:过滤、转发

对转发表中没有目的MAC地址的帧,广播该帧

转发表中MAC地址对应的端口与输入端口一致,丢弃该帧

转发表中MAC地址对应的端口与输入端口不一致,转发该帧

自主学习:自动记录到达交换机的帧的源地址和输入端口、时间

性质:消除碰撞、异质的链路(不同的能够以不同的速率运行)、易于管理

交换机与路由器的对比

交换机:

优点:即插即用,高分组过滤和转发速率

缺点:对广播风暴不提供保护措施,大型交换网络ARP流量大,交换网络的活跃拓扑为一棵树,不能连接MAC协议不同的链路

路由器:

优点:分组不会被限制在一棵树上,可以使用最佳路径、可以连接不同协议的链路、提供广播风暴保护措施

缺点:不是即插即用的、转发速率慢

虚拟局域网

每个VLAN是一个独立的广播域,不同VLAN之间的通信要通过路由器

PPP协议

组成:在串行通信线路上的组帧方式,用于建立、配置、测试和拆除数据链路的链路控制协议(LCP)、网络控制协议(NCP)

CH6 无线和移动网络

1、无线网络的运行模式

基础设施模式:主机与基站关联

自组织模式:主机没有与基站相连,必须自己提供路由选择等服务

无线网络的分类:

单跳有基础设施:WIFI,3G

单跳无基础设施:蓝牙

多跳有基础设施:无线网状网络

多跳无基础设施:车载自组织网络

2、无限链路和网络特征

无线链路的特征:

信号衰减、易受干扰、多径传播

CSMA不适合多跳无线网络:

发送结点只能知道它的周围有没有结点正在发送,但其实影响通信的是接收结点附近有没有结点正在发送

隐藏结点问题:发送结点听不到,但是影响接收结点接收

暴露结点问题:发送结点能听到,但实际上不影响接收结点接收

3、802.11无线局域网

基本服务集(BBS):若干无线终端+一个无线接入点(AP)

主机与AP关联:

被动扫描:主机监听AP发送的信标帧,选择一个AP发送关联请求帧,AP向主机发送关联响应帧

主动扫描:主机广播发送探测请求帧,AP发送探测响应帧,主机选择一个AP发送关联请求帧,AP发送关联响应帧

MAC协议:

CSMA/CA:

步骤:(无信道预约)

①、监听到信道空闲时,在等待一个DIFS后发送帧

②、若信道忙,则选择一个随机回退值并且在信道空闲的时候递减该值,信道忙的时候计数值不变

③、计数值减为0时立即发送帧并等待确认

④、收到确认,开始发新的帧,否则重传

有信道预约:

发送方在发送前(等待一个DIFS)先发送一个RTS帧请求发送并给出发送的时间,AP(等待一个SIFS 后)返回一个CTS帧表示许可同时指示其余站点在预约期内不要发送,发送方收到CTS后(等待一个SIFS)发送数据

若RTS帧冲突,则不成功的发送方等待一段时间后再发送

802.11不实现碰撞检测的原因:

①、检测碰撞要求站点同时具有发送和接收的能力,在802.11站点上,接收信号的强度远远小于发送信号的强度,制造能够检测碰撞的硬件代价较大

②、隐藏结点问题和信号衰减问题导致无法检测到所有碰撞

802.11使用确认重传机制而不是纠错机制

PCF:只适用于有基础设施的无线网络,基站控制所有通信,由基站向各个站点轮询

DCF:所有节点使用CSMA/CA协议竞争信道

帧间距机制:

SIFS < PIFS < DIFS < EIFS

SIFS允许正处于会话中的节点优先发送,PCF模式的节点第二优先,PIFS后没有基站发送则节点可以竞争信道,如果以上间隔内都没有节点发送,则EIFS后收到错误帧的节点可以发送错误报告帧

CSMA/CA与CSMA/CD的对比:

根本不同:CSMA/CA发送过程中不检测冲突,CSMA/CD检测

CSMA/CD中节点监听到信道空闲后立即发送而CSMA/CA中节点监测到信道空闲不一定立即发送,可能回退

802.11先进功能:

速率适应、功率管理

4、移动管理原理

移动节点注册:移动节点进入外部网络后,想外部代理注册,外部代理向归属代理注册节点

间接路由选择:

移动性对发送方透明

发送方->归属代理->外部代理->移动节点->发送方

正在进行的通信可以保持

三角选路问题:当发送方和移动节点在同一网络中很低效

直接路由选择:

发送方向归属代理请求移动节点的转交地址,发送方使用转交地址发送给外部代理,外部代理转发给移动节点

移动性对发送方不透明,移动节点移动时需要新的支持(锚外部代理)

5、移动IP

移动IP标准组成:代理发现、向归属代理注册、间接路由选择

代理发现:

外部代理和归属代理定期发送代理通告,移动结点接收代理通告并分析

移动结点也能主动发送代理请求

移动结点注册:

移动结点向外部代理发送注册请求,外部代理向归属代理(UDP端口:434)转发请求,归属代理处理后返回注册响应,外部代理接收到注册响应给移动结点返回注册响应

移动结点回到归属网络时,要向归属网络注销

发送方不在归属网络内,则报文首先到达归属代理;若发送方位于归属网络内,则归属代理用自己的MAC地址响应发送方的ARP请求

归属代理向外部代理转交数据包时是使用隧道的机制

移动结点发送数据报:向外部代理发送,外部代理正常转发

算法改进:归属代理向外部代理转交第一个数据报后,告知发送方移动结点的转交地址,此后发送方直接用转交地址发送

6、无线和移动对上层协议的影响

逻辑上无影响

性能上影响很大:

无线网络传输出错和移动切换可能导致丢包,链路层重传延迟很大

TCP会将这些丢包解释为拥塞,不必要的减小拥塞窗口导致吞吐率下降

CH8 网络安全

1、网络安全的特征

机密性:报文内容的机密性,通信活动的机密性

报文完整性:报文来自真实的源且传输过程中未被修改

端点鉴别:发送方和接收方能够验证对方的身份

运行安全性:网络不受攻击,服务可用

2、网络攻击的类型

被动攻击:从系统中获取信息但不对系统造成影响

偷听、流量分析

主动攻击:试图影响系统

伪装、重放、报文修改、拒绝服务

3、密码学原则

加密算法分类:

对称加密算法:加密秘钥和解密秘钥相同

非对称加密算法:加密秘钥与解密秘钥不同

块密码:每次处理一个明文块,生成一个密文块

流密码:处理连续的明文流,输出连续的密文流

计算安全的加密算法需要满足下列条件之一:

①、破译密文的代价超过信息本身的价值

②、破译密文需要的时间超过信息的有效生命期

密码的安全性是通过加密算法的复杂性和密钥的长度来保证的

针对加密系统的攻击:唯密文攻击、已知明文攻击、选择明文攻击

DES加密算法:

块加密算法,每次输入64比特的明文块,输出64比特的密文块,迭代16次,使用56比特的主密钥,每一轮迭代使用的子密钥由主密钥产生

AES加密算法:

每次处理128比特的块

块密码连接:

加入一个随机数防止相同的明文块产生相同的密文块

对称加密算法存在密钥分发的问题

RSA算法:

生成密钥:

选择两个大素数$p,q$

计算$n=pq$

选择一个与$(p-1)(q-1)$互质的小奇数$e$

对模$(p-1)(q-1)$,计算$e$的乘法逆元$d$

公钥为$(e,n)$,私钥为$(d,n)$

加密:$P(M)=M^e mod n$

解密:$S(C) = C^d mod n$

优点:安全性高、使用方便(免除了传递密钥的麻烦)

缺点:计算开销大,速度慢

一般用来加密少量数据,用于鉴别、数字签名或发送一次性会话密钥

4、报文完整性

报文摘要:将一个hash函数作用在报文上,得到一个散列值

报文鉴别码:在报文中加入一个密钥与报文一起计算得到的hash值

数字签名:发送方首先计算报文摘要,然后用自己的私钥加密报文摘要形成数字签名,数字签名附加在报文后面一起发送

公钥认证:CA使用自己的私钥签名公钥证书

端点鉴别:鉴别者提供一个随机不重数,访问者使用自己的私钥来加密不重数,然后发送给鉴别者,鉴别者用公钥解密比较不重数

Posted in TechnologyTags:
Write a comment
© 2024 All Rights Reserved.