计算机网络体系结构

计算机网络概述

1.计算机网络:
计算机网络是将众多分散的自治的计算机系统,通过通信设备与**线路连接起来,由功能完善的软件**实现资源共享信息传递的系统。
【自治:一台设备坏掉,并不会影响另外设备的运行】

2.计算机网络、互连网、互联网区别
计算机网络:由若干个结点和连接这些结点的链路组成。【集线器、交换机】
互连网:由若干网络通过路由器互连形成互连网。【内网】
互联网/因特网:由各大ISP和国际机构组建的,覆盖全球范围的互连网【可称为网络的网络】

​ 【结点:可以是计算机、集线器、交换机、路由器等】 【链路:可以是有线链路、无线链路】
​ 【集线器Hub:可以把多个结点连接起来,组成一个计算机网络(会发生数据冲突)】
​ 【交换机Switch:可以把多个结点连接起来,组成一个计算机网络(不会发生数据冲突)】
​ 【路由器Router:可以把两个或多个计算机网络相互连接起来,形成规模更大的计算机网络,称“互连网”】

​ 【家用路由器=路由器+交换机(家中内网)+其他功能】

​ 【互联网必须使用TCP/IP协议通信,互连网可使用任意协议通信】

因特网已发展为基于ISP的多层次结构的互连网络

计算机网络的组成

1.从组成部分看
硬件:
主机,即端系统【电脑、手机、物联网设备】
主机内部安装网络适配器(网卡)【网卡:①将主机数据发到网络上②接受来自网络的数据】
通信设备【集线器、交换机、路由器】
通信链路【网线、光纤、同轴电缆】
软件:
方便用户使用,实现资源共享【Email客户端、聊天软件、网盘软件】
路由器中也会安装软件,其目的是为了网络通信
协议:
规定计算机网络中的通信规则
由硬件、软件共同实现【网络适配器+软件 实现网络通信协议】

2.从工作方式看
边缘部分:
工作方式:直接为用户服务(通信、资源共享)
主要由连接到互连网上的主机及其软件组成
核心部分:
工作方式:为边缘部分提供服务(连通性、交换服务)
由大量网络和连接这些网络的路由器组成

3.从逻辑功能看
资源子网:
计算机网络中运行应用程序,向用户提供可共享的硬件、软件和信息资源的部分
主要由连接到互联网上的主机组成
资源子网的主体:网络资源设备
通信子网:
计算机网络中复杂计算机间信息传输的部分。把计算机和其他用户装置互连在一起的所有通信设备和介质的总称
主要由 通信链路+通信设备+协议 构成
注:主机内部实现信息传输的网络适配器、底层协议 属于通信子网的范畴

​ 资源子网:应用层、表示层、会话层
​ 通信子网:物理层、数据链路层、网络层、传输层

计算机网络功能

1.数据通信
实现计算机之间数据传输。是最基本、最重要的功能。
2.资源共享
硬件、软件、数据资源【智能音箱请求服务器处理,应用商店,分享视频】
3.分布式处理
将某个复杂任务分配给网络中多台计算机处理。【大矩阵运算、MapReduce】
4.提高可靠性
网络中各台计算机互为替代机。【某网盘服务器集群网络,数据冗余备份】
5.负载均衡
网络中各台计算机共同分担繁重工作。【某游戏用多台服务器均衡处理玩家请求】
6.其他
满足社会需求、生活需求【远程办公、远程教育、娱乐等】

三种交换方式

电路交换

电路交换——用于电话网络
电路交换:通过物理线路的连接,动态地分配传输线路资源

电路交换过程:
①建立连接(尝试占用通信资源)
②通信(一直占用通信资源)
③释放连接(归还通信资源)

通信前从用户A到用户B建立一条专用的物理通路,在通信的全部时间内,两个用户始终占用端到端的线路资源

**优点:**数据直送,传输速率高
**缺点:**建立/释放连接,需要额外的时间开销
线路被通信双方独占,利用率低
线路分配的灵活性差
交换节点不支持“差错控制”(无法实现传输过程中的发生的数据错误)

**电路交换更适用于:**低频次、大量地交换数据

报文交换

报文交换——用于电报网络【不能用于实时通信
报文交换:在转发报文时,需要先将报文存储到报文交换机中

报文message由控制信息用户数据两部分组成

存储转发的思想:把传送的数据单元先存储进中间结点,再根据目的地址转发至下一节点

**优点:**通信前无需建立连接
数据以报文为单位被交换节点间“存储转发”,通信线路可以灵活分配
在通信时间内,两个用户无需独占一整条物理线路。相比于电路交换,线路利用率高
交换结点支持“差错控制”(通过校验技术)
缺点: 报文不定长,不方便存储转发管理
长报文的存储转发时间开销大、缓存开销大
长报文容易出错,重传代价高

分组交换

分组交换——用于现代计算机网络

报文段(不定长)——>分组定长

每一个分组都有首部和数据。首部即分组的控制信息,包含:源地址、目的地址、分组号等

接受到的数据分组不一定需要顺序,可以到目的用户处重新排序。
分组走的线路不一定相同。

**优点:**通信前无需建立连接
数据以分组为单位被交换节点间“存储转发”,通信线路可以灵活分配
在通信时间内,两个用户无需独占一整条物理线路。相比于电路交换,线路利用率高
交换结点支持“差错控制”(通过校验技术)

相比于报文交换,分组交换改进了如下问题
①分组定长,方便存储转发管理
②分组的存储转发时间开销小、缓存开销小
③分组不易出错,重传代价低

**缺点:**相比于报文交换,控制信息占比增加。
相比于电路交换,依然存在存储转发时延。
报文被拆分为多个分组,传输过程中可能出现失序,丢失等问题,增加处理的复杂度

虚电路交换技术

虚电路交换技术,基于分组交换
分组交换:数据报和虚电路。

虚电路由永久性的也有临时性的。

虚电路交换的过程:
①建立连接(虚拟电路)
②通信(分组按序、按已建立好的既定线路发送,通信双方不独占线路)
③释放连接

可靠、有序
OSI模型的网络层为虚电路。TCP/IP模型的网络层为IP
因此,OSI的网络层是有连接、可靠的
TCP/IP的网络层是无连接、不可靠的

三种交换方式的性能分析

电路交换

连接建立:传播时延+建立+传播时延+建立+传播时延+3传播时延【3 * 传播时延是因为连接已建立好了,不需要再连接】
数据传送:4kb报文耗时8ms+3
传播时延
连接释放:连接释放可以紧挨着数据传送。【传播时延+释放+传播时延+释放+传播时延】

报文交换

分组交换

电路交换 报文交换 分组交换
完成传输所需时间 最少(排除建立/释放连接耗时) 最多 较少
存储转发时延 较高 较低
通信前是否需要建立连接
缓存开销
是否支持差错控制 不支持 支持 支持
报文数据是否有序到达
是否需要额外的控制信息 是(控制信息占比最大
线路分配灵活性 不灵活 灵活 非常灵活
线路利用率 非常高

计算机网络分类

按分布范围分类

广域网WAN:跨省、跨国
城域网MAN:一个或几个相邻的城市【通信技术:以太网技术。因此常并入局域网范畴探讨】
局域网LAN:学校、企业、家庭【通信技术:以太网技术
个人网PAN:通常使用无线技术将个人设备连接起来的网络,因此常称为无线个域网【蓝牙】

如今的局域网几乎都采用以太网技术实现,因此“以太网”几乎成了“局域网”的代名词

局域网使用广播技术,而广域网使用交换技术

按传输技术分类

广播式网络:当一台计算机发送数据分组时,广播范围内所有计算机都会收到该分组。
并通过检查分组的目的地址决定是否接受该分组。
点对点网络:数据只会“点对点”发到接收方,精准送达。

**PS:**①是否釆用分组存储转发与路由选择机制是点对点式网络与广播式网络的重要区别
②广播式网络可以不要网络层,因此也就不存在路由选择问题。但是需要服务访问点。

按拓扑结构分类

总线形结构:数据**“广播式”传输;存在”总线争用”问题;【集线器连接的设备】
环形结构:数据
“广播式”传输;通过“令牌”解决总线争用问题,令牌顺环依次传递,有令牌者可使用总线【令牌环网】
星形结构:由中央设备实现数据的
“点对点**”传输;不存在“总线争用”问题【以太网交换机连接的设备】
网状结构:数据通过各中间节点逐一存储转发;属于**“点对点”**传输【由众多路由器构建的广域网

【总线性结构、环形结构、星形结构常用于局域网】

按使用者分类

公用网:向公众开放的网络【办宽带、交手机话费即可使用的互联网】
专用网:仅供某个组织内部使用的网络【政府、军队、电力、银行的内部网络】

按传输介质分类

有线网络:网线、光纤
无线网络:5G、WiFi、卫星

计算机网络的性能指标

信道:表示向某一方向传送信息的通道(信道≠通信线路)。
一条通信线路在逻辑上往往对应一条发送信道和一条接受信道

速率
连接在计算机网络上的主机在数字信道上传送比特的速率【比特率/数据率】
ps:当kb、Mb、Gb在表达速率的时候,为10的次方

带宽
表示网络中的通信线路所能传送数据的能力
网络带宽表示在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”【单位:b/s】

​ 结点间通信实际可以到达的最高速率,由带宽、结点性能共同限制。

若频率范围为3.5~3.9MHz——>带宽=3.9-3.5=0.4M

吞吐量
在单位时间内通过某个网络(或信道、接口)的数据量【接受信道+发送信道】

PS:吞吐量受网络带宽或额定速率的限制

时延
发送时延 = 传播时延 = 处理时延 排队时延

​ 发送时延:即传输时延,结点将数据推向信道所花的时间
​ 传播时延:电磁波在信道中传播一定的距离所花的时间
​ 处理时延:被路由器处理所花的时间【如:分析首部、查找存储转发表】
​ 排队时延:数据排队进入、排队发出路由器所花的时间

​ PS:每经过一次信道就会产生一次 发送时延和传播时延
​ 每经过一次中间结点就会产生一次 处理时延和排队时延

时延带宽积
时延带宽积 = 传播时延 * 带宽【链路的时延带宽积又称为以比特为单位的链路长度

​ 若发送端连续发送比特,则在所发送的第一个比特即将到达终点时,发送端就已经发送了时延带宽积个比特

往返时间RTT **
从发送方
发送完数据**,到发送方接收到来自接收方的确认的时间

利用率
信道利用率:某信道有百分之多少的时间是被利用的
网络利用率:全网络的信道利用率的加权平均

​ 根据排队论,当信道利用率增大时,该信道引起的时延也会增加
​ 因此,信道利用率并不是越高越好

D0表示网络空闲的时延,D表示网络当前的时延,U表示利用率
​ PS:当U达到50%时,时延就会加倍。当U大于50%时,时延急剧增加。因此一般不会让U超过50%

​ 信道利用率也不能太低,这会使通信资源被白白浪费。
​ 应该使用一些机制,可以根据情况动态调整输入到网络中的通信量,使网络利用率保持在一个合理的范围内。

若其中一台主机给另一台主机连续发送n比特信息,当主机接收完该信息时共耗费多长时间?
n个发送时延+1个传播时延

若N个分组,在M个链路上进行传送。(N+M-1) 发送时延 + M * 传播时延*

计算机网络体系结构

常见计算机网络体系结构

物联网叔会使用
接网叔用

网络的体系结构是计算机网络各层及其协议的集合,是这个计算机网络及其构件所应完成的功能的精确定义(不涉及实现)
实现 是遵循这种体系结构的前提下,用何种硬件或软件完成这些功能的问题。

体系结构抽象的,实现具体的。

实体:在计算机网络分层结构中,第n层中的软件+硬件。
对等层:不同机器上的同一层。
对等实体:同一层的实体。

协议/网络协议:是控制对等实体之间进行通信的规则的集合,是水平的
接口/服务访问点:同一节点内相邻两层的实体交换信息的逻辑接口
服务下层为紧邻的上层提供的功能调用,是垂直的

实体可以看见服务,但是看不见协议

协议数据单元PDU:对等层次之间传送的数据包称为该层的协议数据单元
服务数据单元SDU:同一系统内,层与层之间交换的数据包称为服务数据单元
协议控制信息PCI:控制协议操作的信息。第n层的PCI记为n-PCI
【多个SDU可合成一个PDU;一个SDU可以划分为多个PDU】

协议三要素:
①语法:定义数据与控制信息的格式
②语义:定义收发双方所要完成的操作
③同步:定义各种操作的条件、时序关系,即事件实现顺序的详细说明。

服务访问点:在同一系统中相邻两层的实体交换信息的逻辑接口,用于区分不同的服务类型
数据链路层的服务访问点为的“类型”字段。
网络层的服务访问点为IP数据报首部中的“协议字段”
运输层的服务访问点为**“端口号”
应用层的服务访问点为
“用户接口”**。

分层

​ 主机:17 集线器:1
​ 交换机:1
2 路由器:1~3

TCP/IP协议:
在TCP/IP中没有表示层和会话层,如果某些应用需要数据格式转换和会话管理功能,交给应用层的特定协议完成
网络接口层任务:实现相邻节点间的数据传输。但具体怎么传输不作规定。
TCP/IP的网络层的传输不可靠。【因为删除了功能:差错控制、流量控制、连接管理、可靠传输管理】


为网络层实体提供数据发送和接受功能及过程的是数据链路层
会话层通过设置检验点,使通信双方在通信失效时可以从检验点恢复通信
③在IOS/OSI网络层可同时提供无连接服务和面向连接服务
在TCP中网络层仅有无连接的通信,传输层可同时提供无连接服务和面向连接服务
物理层不参与数据封装

物理层

基本概念

物理层功能
物理层为数据链路层屏蔽了各种传输媒体的差异,使数据链路层只需要考虑如何完成本层的协议和服务,而不必考虑网络具体的传输媒体是什么

信源:信号的来源(即信号的发送发)
信宿:信号的归宿(即数据的接收方)
信号:数据的载体【可分为数字信号(信号值是离散的)和模拟信号(信号值是连续的)】
信道:信号的通道【一条物理线路通常会包含两条信道,发送信道接收信道

码元:每一个信号就是一个码元【把信号周期称为码元宽度】
若一个码元(即一个信号)可能有4种状态,那么可以称其为4进制码元(一个码元携带2bit数据)
如果一个周期内可能出现K种信号,则:1码元 = log2K bit
波特率:每秒传输多少个码元【每秒可能发生的信号变化次数

信道的极限容量

1.失真的因素
码元传输速率高,传输距离远,噪声干扰,传输媒体质量差

2.限制码元在信道上传输的速率的因素
奈氏准则: 码元传输速率=2*带宽 (理想信道:不考虑噪声影响、带宽有限) 【单位为 码元】【采样定理
PS:①如果波特率太高,会导致“码间串扰”,即接收方无法识别码元
②带宽越大,信道传输码元的能力越强
③奈氏准则并未对一个码元最多携带多少比特做出解释

​ 信噪比: 信号平均功率与噪声平均功率之比,记作:S/N,无单位
​ 信噪比(dB) = 10 * log10(S/N) 单位:分贝(dB)
​ 香农公式: 信道的极限信息传输速率C=单位为bit
​ PS:①提高信道带宽、加强信号功率、降低噪声功率,都可以提高信道的极限比特率
​ ②结合奈氏准则,可知:在带宽、信噪比确定的信道上,一个码元可以携带的比特数是有上限的。

​ 在信道带宽一定的情况下,根据奈氏准则和香农公式,要想提高信息的传输速率就必须采用多元制(更好的调制方法)和努力提高信道中的信噪比

编码和调制

1.基本概念
编码:将二进制数据转换为数字信号(离散)
解码:将数字信号转换为二进制数据
调制:将二进制数据转换为模拟信号(连续)
解调:将模拟信号转换为二进制数据

2.常用的编码方式

自同步能力:信源和信宿可以根据信号完成“节奏同步”,无需时钟信号。

以太网默认曼彻斯特码方式。【因为其同步能力】【对于曼彻斯特编码而言,2Baud=1bit

3.常用的调制方式

基带信号:来自信源的数字信号,需调制后才能在某些模拟信道上传输。
模拟信号可以在真空环境,且抗干扰能力强。因此常把数字信号转换为模拟信号再去传输。

QAM调制方式:若设计种幅值、n种相位,则将AM、PM信号两两“复合”,可调制出 mn 种信号
1码元= log2 mn bit
QAM-16:即调制16种信号,1码元携带log216=4bit的数据

频率和相位是相关的,因此一次只能调制频率和相位两个中的一个

采样速率≥数据传输率

传输介质

导向型传输媒体

​ 导向型传输媒体:信号朝固定方向传播

1.双绞线
主要构成:两根导线相互绞合而成【有屏蔽层=屏蔽双绞线(STP)】【无屏蔽层=非屏蔽双绞线(UTP)】
抗干扰能力:较好。【绞合、屏蔽层可以提升抗电磁干扰能力】
代表应用:近年局域网、早期电话线

2.同轴电缆
主要构成:内导体(用于传输信号)+外导体屏蔽层(用于抗电磁干扰)【内导体越粗,电阻越低,传输距离越长】
抗干扰能力:好。【屏蔽层带来较好的抗干扰性】
代表应用:早期局域网、早期有线电视

3.光纤
主要构成:纤芯(高折射率)+包层(低折射率)【利用光的全反射特性,在纤芯内传输光脉冲信号】
分类:单模光纤(只有一条光线在一根光纤中传输,信号损耗小,适合长距离传输)
多模光纤(多条光线在一根光纤中传输,信号损耗高,适合近距离传输,远距离传输信号时容易失真)
抗干扰能力:非常好。【光信号对电磁干扰不敏感】
其他优点:信号损耗小,长距离传输时中继器少。

以太网对有线传输介质的命名规则
10Base5——10Mbps,同轴电缆,最远传输距离500m
10BaseF* ——10Mbps,光纤
10BaseT* ——10Mbps,双绞线

非导向型传输介质

非导向型传输介质/无线传输介质

**1.无线电波 **
特点:穿透能力强,传输距离长,信号指向性弱。【长波通信】
代表:手机信号、WiFi

2.微波通信
特波:频率带宽高、信号指向性强、保密性差(容易被窃听)【短波通信】
代表:卫星通信(卫星作为信号中继器,传播时延较大)

3.其他
红外通信、激光通信——信号指向性强

本质上都是电磁波。电磁波公式:C=入f,C为光速,入为波长,f为频率
电磁波频率、波长呈反比关系
频率越高,数据传输能力越强
波长越短,信号指向性越强,信号越趋于直线传播
波长越长,绕射性越好,即穿墙性越好

长波更适合长距离、非直线通信。
短波更适合短距离、高速通信、指向性强。若用于长距离通信,需要建立中继站。

物理层接口特性

机械特性:指明接口所用接线器的形状和尺寸、引脚数目和排列、固定和锁定装置等
电气特性:指明在接口电缆的各条线上出现的电压的范围传输速率、距离限制等
功能特性:指明某条线上出现的某一电平的电压的意义
过程特性(规程特性):指明对于不同功能的各种可能事件的出现顺序

物理层设备

1.中继器
①中继器只有两个端口。通过一个端口接收信号,将失真信号整形再生,并转发至另一端口(信号再生会产生一些时延)
②仅支持半双工通信(两端连接的结点不可同时发送数据,会导致“冲突”)
③中继器两个端口对应两个“网段”
④中继器可以连接不同介质的局域网。【不能连接不同速率和不同数据链路层协议的

2.集线器
①本质上是多端口中继器。集线器将其中一个端口接收到的信号整形再生后**,转发到所有其他端口**
②各端口连接的结点不可同时发送数据,会导致“冲突
③集线器的N个端口对应N个“网段”,各网段属于同一个“冲突域

冲突域/碰撞域:如果两台主机同时发送数据会导致“冲突”,则这两台主机处于同一个“冲突域”。
处于同一冲突域的主机在发送数据前需要进行“信道争用

集线器不能隔离冲突域,但是以太网交换机可以隔离冲突域

3.集线器和中继器的一些特性
①集线器、中继器不能“无限串联”
【10Base5的5-4-3原则:
集线器/中继器连接10Base5网段时,最多只能串联5个网段,使用4台集线器(或中继器),只有3个网段可以挂接计算机】
②集线器连接的网络,物理上是星形拓扑逻辑上是总线型拓扑【数据“广播式”传输,存在“信道争用”问题】
③集线器连接的各网段“共享带宽
④集线器可以连接不同的传输介质,因此两个网段的物理层接口特性可以不同
【集线器连接的网段,“物理层协议”可以不同】
⑤集线器如果连接了速率不同的网段,会导致所有网段“速率向下兼容”。【以最低速率为标准】

当物理层互连时,如果各种网络的数据传输速率不同,则会
①发送发速率>接收方速率,接收方来不及接受导致溢出,数据丢失
②接收方速率>发送发速率,不会数据丢失,但是效率低
因此,速率必须相同。

​ 物理层互连成功,只表明这两个网段之间可以互相发送物理层信息,但物理层设备只能转发物理信号,不能识别数据链路层协议,所以不能保证可以互相传送数据链路层的帧。因此,数据链路层协议可以不同。要达到在数据链路层互联互通的目的,就要求速率和数据链路层协议都相同。

数据链路层

数据链路层的功能

数据链路层 使用 物理层 提供的“比特传输”服务
数据链路层为网络层提供服务,将网络层的IP数据报(分组)封装成传输给下一个相邻结点。

物理链路:传输介质(0层)+物理层(1层)实现了相邻结点之间的“物理链路”
逻辑链路:数据链路层需要基于“物理链路”,实现相邻结点之间逻辑上无差错的“数据链路(逻辑链路)”
【数据链路以为单位进行传输和数据处理】

数据链路层的功能:
1.封装成帧/组帧:将网络层的IP数据报封装成帧。
帧定界——如何让接收方能够确认帧的界限
透明传输——接收方链路层要能从收到的帧内恢复原始SDU,让网络层感受不到将分组封装成帧的过程
2.差错控制:发现并解决一个帧内部的“位错
解决方案:检错编码——接收方发现比特错后丢弃帧,发送方重传帧(奇偶校验码、ORC校验码)
解决方案二:纠错编码——由接收方发现并纠正比特错误(海明校验码)
3.可靠传输:发现并解决三种帧错【帧丢失、帧重复、帧丢失】
4.流量控制:控制发送方发送帧的速率别太快,让接收方来得及接收。
5.介质访问控制:
广播信道“需要实现此功能。广播信道在逻辑上是总线型拓扑,多个结点需争抢传输介质的使用权。
点对点信道“通常不需要实现此功能。点对点信道通常意味着两个结点之间有专属的传输介质,不用抢

组帧

组帧要解决的问题——帧定界、透明传输
四种组帧方法——字符计数法、字节填充法、零比特填充法、违规编码法

1.字符计数法
原理:在每个帧开头,用一个定长计数字段表示帧长【帧长=计数字段长度+帧的数据部分长度】【以字节为单位】
缺点:任何一个计数字段出错,都会导致后续所有帧无法定界

2.字节填充法
原理:使用控制字符SOHEOT来表示一个字符的开始和结束
为了防止在帧的数据部分也含有控制字符让系统误判,会在误判的数据部分之前加入转义字符ESC。
若数据部分含有转义字符,则会在数据部分的转义字符之前再加入一个转义字符用来判断。

3.零比特填充法
原理:使用特殊字符来表示字符的开始和结束,为避免数据部分的重复,采用以下方法
发送方需要对帧的数据部分进行处理,每当遇到连续5个1,就填充一个0
接受方需要对帧的数据部分进行逆处理,每当遇到连续5个1,就删掉后面的0

​ HDLC和PPP协议使用零比特填充法。

4.违规编码法
使用“违规信号”,表示帧的开头、结尾(这种方法需要物理层配合)
如:采用曼彻斯特编码时,使用“中间不跳变”作为“违规信号”,标记帧的开头、结尾

差错控制

目标:发现并解决一个帧内部的“位错”

检错编码

接收方发现比特错后丢弃帧,并通知发送方重传帧

1.奇偶校验码
信息位(有效数据):指帧的”数据部分
校验位(冗余位):即为了给帧的”数据部分”检错/纠错 而附加的一些冗余比特

​ 奇校验码:整个校验码(有效信息位和校验位)中“1”的个数为奇数。
​ 偶校验码:整个校验码(有效信息位和校验位)中“1”的个数为偶数。

​ 偶校验的硬件实现:各信息进行异或(模2加)运算,得到的结果即为偶校验位【结果为1说明出错

​ 缺点:奇偶校验码仅能检测出奇数位错误,无纠错能力

**2.循环冗余校验码ORC校验码 **
基本思想:数据发送、接受方约定一个“除数”。
K个信息位+R个校验位 作为“被除数”,添加校验位后需保证除法的余数为0。
收到数据后,进行除法检查余数是否为0。若余数非0说明出错,则进行重传或纠错。

​ 常使用生成多项式的来给出除法:设生成多项式为G(x)=x^3^+x^2^+1,除数为1101
​ 校验位R的位数=生成多项式的最高位

K个信息位,R个校验位,若生成多项式选择得当,且2K+R+1,则CRC码可纠正1位错

理论上可以证明循环冗余校验码的检错能力有以下特点:
1)可检测出所有奇数个错误;
2)可检测出所有双比特的错误:
3)可检测出所有小于等于校验位长度的连续错误

纠错编码

​ 接收方发现比特错后丢弃帧,可以自行纠正

海明校验码
基本思路:将信息位分组进行偶校验 ->多个校验位一>多个校验位标注出错位置

​ 1.确定海明码的位数:信息位+校验位
​ 需要多少校验位? 2^k^≥n+k+1 (n+k种出错情况+1种正确状态)
​ 2.确定校验位的分布
​ 校验位Pi放在海明位号为2^i-1^的位置上
​ 信息位按顺序放到其余位置
​ 3.求校验位的值
​ 先将信息位所在的位置用二进制表示出来
​ P1=二进制第一位为1的信息位的异或
​ P2=二进制第二位为1的信息位的异或
​ 4.纠错
​ 对每个分组进行异或,若结果为0则没有错误,若结果为1则出现错误

为了区分1位错和2位错,还需添加“全校验位”对整体进行偶校验

海明码有1位纠错能力,2位检错能力

流量控制与可靠传输机制

滑动窗口机制

1.滑动窗口机制
发送窗口WT:发送方当前允许发送的帧
接收窗口WR:接收方当前允许接收的帧

2.确认机制
确认帧:ACK_i——若接收方收到i号帧,且没有检测出“差错”,需要给发送方返回确认帧 ACK_i
否认帧:NAK_i——若接收方收到i号帧,但检测出i号帧有“差错”,需要丢弃该帧,并给发送方返回否认帧 NAK_i

​ 由接收方通过“确认机制”控制发送方的窗口向前滑动,从而实现“流量控制

3.重传机制
超时重传——若发送方超时未收到ACK_i,则重传i号帧
请求重传——若发送方收到NAK_i,则重传i号帧

4.帧编号
为了支持以上机制正确运行,至少需要用n bit 给帧“编号”
要求:WT+WR≤2^n^

停止等待协议S-W

​ 滑动窗口机制:发送窗口WT=1,接收窗口WR=1
​ 确认机制:确认帧:ACK_i【若接收方收到i号帧,且没有检测出“差错”,需要给发送方返回确认帧 ACK_i】
​ 重传机制:超时重传【若发送方超时未收到ACK_i,则重传i号帧】【发送方内有计时器】
​ 帧编号:仅需 1bit 给帧“编号”
​ 要求:WT+WR≤2

不存在数据帧失序问题

​ 当数据帧丢失时:
​ 发送方不会得到ACK,发送方内置计时器超时,重新发送数据帧。
​ 当确认帧丢失时/当接收方收到重复数据帧时:
​ ①接收方会丢弃重复帧
​ ②返回重复帧的ACK
​ 当数据帧有差错时:
​ 接收方收到数据帧,但检测出差错,将此帧丢弃,且不会返回ACK

后退N帧协议GBN

滑动窗口机制:发送窗口WT>1,接收窗口WR=1
确认机制:确认帧:ACK_i【若接收方收到i号帧,且没有检测出“差错”,需要给发送方返回确认帧 ACK_i】
重传机制:超时重传【若发送方超时未收到ACKi,则重传i号帧】【发送方内有计时器】
帧编号:为了支持以上机制正确运行,至少需要用n bit给帧编号
要求:WT+WR≤2^n^
GBN的特殊机制
①关于确认帧:接收方可以累计确认。即连续收到多个数据帧时,可以仅返回最后一个帧的ACK
【ACK_i表示已收到i号帧及其之前的所有帧】
②关于超时重传:若发送方超时未收到ACK_i,则重传i号帧,及其之后的所有帧

当数据帧丢失/差错时:
因为序号不同,直接丢弃。
当收到接收窗口之外的帧时,返回目前已正确接收的最后一个帧的ACK
当确认帧丢失时:
由于发送方会超时,因此发送发会重新发送已经发送过的帧。
发送方发送的帧全都落于窗口外,接收方收到一个非法帧时,返回目前已接收的最后一个正确帧的ACK。
如果不满足WT+WR≤2^n^:
在重传时,数据帧序号落在“接受窗口”之内,会被错误接收

因此,对于窗口大小为n的滑动窗口,最多可有n-1帧已发送但没有确认

缺点:
若接收方接收帧的速度慢,或在信道误码率很高的情况下,可能导致发送方的发送进度经常需要“后退”,传输效率低

选择重传协议SR

滑动窗口机制:发送窗口WT>1,接收窗口WR>1
确认机制:确认帧:ACK_i【若接收方收到i号帧,且没有检测出“差错”,需要给发送方返回确认帧 ACK_i】
重传机制:超时重传【若发送方超时未收到ACKi,则重传i号帧】【发送方内有计时器】
帧编号:为了支持以上机制正确运行,至少需要用n bit给帧编号
要求:WT+WR≤2^n^

SR的特殊规则
①否认帧:NAK_i若接收方收到i号帧,但检测出i号帧有差错,需要丢弃此帧,并给发送方发送否认帧NAK_i
②请求重传:若发送方收到NAK_i,则重传i号帧
要求:WR≤WT,即接收窗口不能大于发送窗口

因为WR+Wt≤2^n^ 并且 WR≤WT 所以:WR ≤2^n-1^

三种协议的信道利用率

S-W信道利用率

GBN、SR信道利用率

PS:①若信道利用率大于1,则取1
②滑动窗口协议——GBN、SR
ARQ协议——S-W、GBN、SR
连续ARQ协议——GBN、SR
③GBN协议WR=1,SR协议WR>1。
因此,同样用n bit给帧编号,GBN的发送窗口WT更大,因此GBN的信道利用率会更高

介质访问控制

介质访问控制:多个节点共享一个“总线型”广播信道时,可能发生“信号冲突”。
采取措施控制各节点对传输介质的访问,才能减少冲突,甚至避免冲突。

信道划分

时分复用TDM
将时间分为等长的“TDM帧”,每个TDM帧又分为等长的m个“时隙”,将m个“时隙”分配给用户(节点)使用

​ 缺点:①每个节点最多只能分配到信道总带宽的1/m
​ ②如果某节点暂不发送数据,会导致被分配的“时隙”闲置,信道利用率低

统计时分复用STDM
统计时分复用,又称 异步时分复用,在TDM的基础上,动态按需分配时隙

​ 优点:①如果需要时,一个节点可以在一段时间内获得所有的信道带宽资源
​ ②如果某节点暂不发送数据,可以不分配“时隙”,信道利用率更高

频分复用FDM
将信道的总频带划分为多个子频带,每个子频带作为一个子信道,每对用户使用一个子信道进行通信。
【两个子频带中间有隔离频带(防止子信道间相互干扰)】

​ 复用器:将各节点发出的信号“复合”后传输到共享信道上
​ 分用器:将各个子频带信号“分离”出来

​ 优点:各节点可同时发送信号。充分利用了信道带宽(Hz)。
​ 缺点:FDM技术只能用于模拟信号的传输

波分复用WDM
波分复用,又称 光的频分复用。类似与频分复用技术

​ 复用器:将各节点发出的不同波长的光信号“复合”后传输到光纤上
​ 分用器:将不同波长的光信号“分离”出来

码分复用CDM
①给各节点分配专属“码片序列”。【码片序列包含m个码片,可看作m维向量(m维向量的分量常去1或-1)】
要求:各节点的码片序列要相互正交
②节点发出m个信号值与”码片序列”相同,表示比特1。
节点发出m个信号值与”码片序列”相反,表示比特0。
③让叠加的码片序列与原先的序列作内积,看正负,正为1,负为0

随机访问

ALOHA协议

1.纯ALOHA协议
如果准备好数据帧,就立刻发送

2.时隙ALOHA协议

优点:时隙ALOHA避免了用户发送数据的随意性,降低了冲突概率,提高了信道的利用率

CSMA协议

CSMA协议——载波监听多路访问协议

CSMA协议是在ALOHA协议基础上改进的:在发送数据之前,先监听信道是否空闲,只有信道空闲时,才会尝试发送

1-坚持CSMA协议

优点:信道利用率高,信道一旦空闲,就可以被下一个节点使用。
缺点:当多个节点都已准备好数据时,一旦信道空闲,会有多个节点同时发送数据,冲突概率大。

非坚持CSMA

优点:当多个节点都已准备好数据时,如果信道不空闲,则各节点会随机推迟一段时间再尝试监听,
从而使各节点“错开”发送数据,降低冲突概率
缺点:信道刚恢复空闲时,可能不会被立即利用,导致信道利用率降低

P-坚持CSMA

优点:属于1-坚持CSMA、非坚持CSMA的折中方案,降低冲突概率的同时,提升信道利用率

CSMA CD协议

适用范围:用于早期的有线以太网

协议要点:先听后发,边听边发,冲突停发,随机重发【会停发,但是已发送仍然会发送到目标】

如何实现随机重发?
截断二进制指数退避算法
随机等待一段时间 = r倍争用期(r为正整数)
①如果k≤10,在[0,2^k^-1]区间随机取一个整数r
②如果k>10,在[0,2^10^-1]区间随机取一个整数r

PS:①第10次冲突,是“随机重发”的分水岭
②第16次冲突,直接躺平,放弃传帧,报告上级(网络层)
③随机等待时间越长,数据帧重传时再次发生冲突的概论越大。

争用期=2 * 最大单向传播时延
①若争用期内未发生冲突,就不可能再发送冲突
②CSMA CD没有ACK协议,若发送过程中未检测到冲突,就认为帧发送成功

最短帧长=2 * 最大单向传播时延 * 信道带宽【若收到的帧小于最短帧长,视为无效帧
【若小于最短帧长,发送方会误以为发送过程中没有发送冲突,但实际已经发生冲突了】
如果实际要发送的数据很少,可“填充”到合法长度后再发送
冲突停发可能会导致无效帧

最长帧长:规定最长帧长可防止某些节点一直占用信道

以太网规定:最短帧长——64B,最长帧长——1518B 【其中1500B为有效字节】

CSMA CA协议

适用范围:用于IEEE 802.11无线局域网WiFi

CSMA CA协议——冲突避免【发送过程中不用检测冲突,发送前想办法尽量避免冲突(但无法完全避免)】

AP
AP——接入点【也就是无线WiFi热点】【家用路由器=路由器+交换机+AP】【校园网=路由器 + n个交换机 + n*m个AP】
所有移动站点都需要和固定站点AP进行通信

为什么不采用 CSMA/CD协议?
①硬件上很难实现“边听边发,冲突检测”
因为接收信号的强度往往远小于发送信号的强度,在无线介质上信号强度的动态变化范围很大。
②存在“隐蔽站”问题
在无线通信中,并非所有站点都能够听见对方。发送结点处没有冲突并不意味着在接收结点处就没有冲突。

协议要点

​ ①发送方:先听后发,忙则退避
​ 若信道空闲,间隔DIFS后,再发送帧(一口气发完,发送过程中不用检测冲突
​ 若信道不空闲,则进行“随机退避”
​ ②“随机退避”原理
​ 用二进制指数退避算法确定一段随机退避时间(倒计时)
​ 发送方会保持监听信道,只有信道空闲时才“扣除倒计时”倒计时结束后立即发送帧(此时信道“听起来”一定空闲)
​ ③接收方:停止等待协议
​ 每收到一个正确数据帧都返回ACK;若发送方超时未收到ACK,则进行“随机退避”后重传

帧间间隔IFS:
DIFS(分布式协调IFS):最长的帧间间隔。【每次“帧事务”开始之前需要等待的时间】
SIFS(短IFS):最短的帧间间隔。【收到一个帧后需要预留的一段处理时间(如完成差错控制等)】
中等长度的IFS:考研可不关注PIFS

信道预约机制

信道预约机制——先预约、再发送【可选机制】

①发送方广播RTS控制帧(先听后发,忙则退避)
【RTS控制帧(请求发送):它包括源地址、目的地址和这次通信所需的持续时间】
②)AP广播CTS控制帧
【CTS控制帧(允许发送):它包括源地址、目的地址和这次通信所需的持续时间】
③其他无关节点收到CTS后自觉”禁言”一段时间(即:虚拟载波监听机制);发送方收到 CTS后,就可以发送数据帧
④AP收到数据帧后,进行CRC校验,若无差错就返回ACK帧

信道预约机制可以解决隐藏站问题

PS:①如果超时未收到CTS,说明预约失败,则“随机退避”后再次RTS预约
“先预约,再发送”这种模式可以启用、也可以不启用

轮循访问

令牌传递协议

令牌环网技术:星形拓扑结构,各节点“轮询访问信”道,不会发生信道冲突。

协议要点:
令牌帧:①需要指明当前获得令牌的节点编号
②只有获得令牌的节点才能往信道上发送数据帧
③如果获得令牌的节点没有数据要发送,就将令牌传递下一个节点

​ 数据帧:①需指明数据帧的源地址/目的地址,是否已被接收、获得令牌的节点编号
​ ②数据帧从源结点发出,”传递一圈”后回到源节点
​ ③数据帧“传递一圈”的过程中,会被目的节点复制一份数据,并将数据帧标记为”已接收
​ ④数据帧回到源结点后,如果发现异常状况,就尝试重发;若无异常就将令牌传递下一个节点

发送数据时,令牌帧会转换为数据帧

PS:①无论是令牌帧、还是数据帧,都只能沿单向传递。
②获得令牌的节点,每次只能发一帧,发完就释放令牌。
③需要用专门的网络设备(MAU)实现集中控制
④令牌传递协议很适用于负载高的网络(不会发生冲突,效率高)

局域网

802.3——以太网技术(局域网)

802.11——WiFi技术

局域网基本概念和体系结构

局域网特点:
①覆盖较小的地理范围
②较低的时延和误码率
③局域网内的各节点之间以“帧”为单位进行传输
④支持单播、广播、多播

分类:
有线局域网——以太网/802.3、令牌环网
无线局域网——WiFi/802.11

关注三要素:
①拓扑结构 ②传输介质 ③介质访问控制方式【只支持半双工通信,CSMA/CD。支持全双工NULL】

有线局域网

1.令牌环网:
①环形 ②同轴电缆或双绞线 ③令牌传递协议

2.以太网: 物理层采用曼彻斯特编码
同轴电缆以太网(早期) 【10Base5】:
①总线形
②同轴电缆(可用中继器连接多个同轴电缆网段)
③CSMA/CD协议【只支持半双工通信】

​ 光纤以太网(用于扩大以太网覆盖范围)【10BaseF】:
​ ①点对点(用于中继器/集线器/交换机之间的传输,也就是说通常不会直接连接终端节点)
​ ②光纤
​ ③没有信道争用问题(用两条光纤实现全双工通信)

​ 双绞线以太网【10BaseT】
​ 用集线器连接:
​ ①物理上星形,逻辑上总线形【半双工通信】
​ ②双绞线(用集线器连接)
​ ③CSMA/CD协议

​ 用交换机连接:
​ ①物理上、逻辑上都是星形
​ ②双绞线(用交换机连接)
​ ③CSMA/CD协议 或 NULL
​ 【半双工模式下,采用 CSMA/CD 争抢信道。全双工模式下,不用争抢信道,也就不需要使用CSMA/CD协议】
​ 【4对双绞线支持全双工通信,1对双绞线只支持半双工通信】

无线局域网WLAN

​ WiFi/802.11
​ ①IEEE 802.11 定义为星形(1个AP+N台移动设备)
​ ②无线(Wireless)
​ ③CSMA/CA 协议

局域网硬件结构

一台主机至少有一个网络适配器(网线插口背后的芯片),因此主机至少有一个MAC地址
MAC地址为48bit

以太网与IEEE802.3

LLC子层主要功能:建立和释放数据链路层的逻辑连接、提供与高层的接口、差错控制、给帧加序号与传输媒体无关。
向网络层提供服务,LLC报头告诉数据链路层一旦帧被接收到时,应对数据包做何处理。
MAC子层主要功能:组帧和拆帧、比特差错检测、寻址、竞争处理与传输媒体有关。

IEEE802.3推出的以太网标准(物理层)

同轴电缆只能使用半双工通信
双绞线 若速率<2.5Gbps可支持半双工or全双工节点连接时协商
若速率≥2.5Gbps仅支持全双工通信
光纤只支持全双工通信

双绞线若连接集线器,只能工作在半双工模式下
若连接交换机,默认工作在全双工模式下

**PS:**①不同的网段可以采用不同的标准。同轴电缆网段仅支持半双工。
②做题时默认交换机连接的终端节点都可以全双工
集线器连接的节点,仅支持半双工模式。
以太网的MAC协议提供的是无连接的不可靠的服务

两种常见的以太网MAC层标准
1.DIX Ethernet V2标准 【6 6 2 N 4,收发协数验】【N的范围:46~1500】

2.IEEE 802.3标准 【6 6 2 N 4,收发长数验】【N的范围:46~1500】

单播帧、广播帧如何传播?

PS:①MAC地址是数据链路层的概念。路由器、交换机都有MAC地址,而集线器没有MAC地址。
②路由器R收到广播帧后,不会再转发至其他网络只有同一个局域网内的各节点才属于同一个“广播域”
若同一局域网内的两个设备有相同的MAC地址,则这两个设备都无法正确通信

以太网交换机隔离冲突域,但不隔离广播域
路由器既隔离冲突域,也隔离广播域
集线器不隔离冲突域,也不隔离广播域

虚拟局域网VLAN

大型局域网的问题:
①局域网内任何一个节点发出的广播帧,都会被广播至所有节点。可能出现“广播风暴”
②不安全。局域网内可能会有一些敏感节点

可以将一个大型局域网分割为若干个较小的VLAN,每个VLAN是一个广播域。
划分VLAN,需要使用支持VLAN功能的以太网交换机来实现
每个VLAN对应一个VID

交换机与交换机之间使用干线链路连接(干线链路为更快速的网线)

VLA划分方式

1.基于接口

2.基于MAC地址

3.基于IP地址

PS:这种方式可以让VLAN范围跨越路由器让多个局域网的主机组成一个VLAN(需要网络层功能支持)

虚拟局域网是通过软件方式实现的
虚拟局域网建立在交换技术的基础上
广播会降低整个网络性能原因:网络中的每台计算机必须处理每个传播信息

802.1Q 帧的作用

主机与交换机之间,传输标准以太网帧
交换机与交换机之间,传输802.1Q帧。【干线链路】

6642N4 收发V协数验

最前面2B是固定的。用来表明这是802.1 Q帧

无线局域网IEEE 802.11

无线局域网分类

有固定基础设施无线局域网【如 802.11无线局域网Wifi】
无固定基础设施移动自组织网络(了解即可)【如 苹果的隔空投送】

IEEE 802.11无线局域网

802.11无线局域网是星形拓扑,中心称为接入点(AP),也可称为无线接入点(WAP)【你连接的WiFi热点】
基本服务集 BSS:1个基站(AP)+多个移动站【1个WiFi热点连了很多台手机电脑】
服务集标识代SSI:也就是无线局域网的名字,不超过32字节【WiFi名字】
基本服务区BSA:指一个基本服务集能够覆盖的地理范围
门户(Portal):可将802.11无线局域网接入802.3有线以太网
扩展服务集(ESS):将多个AP连接到同一个分配系统,组成一个更大服务集【全屋WiF】
漫游:一个移动站从一个基本服务集切换到另一个基本服务集,仍然可以保持通信【丝滑切换WiF热点】

802.11无线局域网使用CSMA/CA协议实现介质访问控制

802.11帧的分类

①数据帧
②控制帧:如ACK、RTS、CTS
③管理帧:如 探测请求/探测响应帧

30 N 4 首数验,首部3+1地址【N的范围0~2312】
9 10比特表去来,帧的中转靠AP
去往AP中起止,来自AP止中起【中起止、止中起 描述的是地址123的含义】(中是AP的MAC地址)


PS:①在802.11无线局域网内,两个移动站之间不能直接通信必须通过基站(AP)转发
②802.11帧用于无线链路传输,通常是AP与移动站之间的传输
③在有线链路上通常使用太网帧格式,AP与AP之间、AP与路由器之间、AP与以太网交换机之间使用有线链路

AP通常具备帧格式转换功能。可以将在无线链路上传输的802.11帧格式,与有线链路上传输的以太网帧格式相互转换

广域网

​ 广域网的通信子网主要使用分组交换技术。
​ 广域网的通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网,它将分布在不同地区的局域网或计算机系统互连起来,达到资源共享的目的。【如因特网(Internet)是世界范围内最大的广域网】

​ 广域网常是点对点 。是存储转发

PPP协议

点对点协议PPP是目前使用最广泛的数据链路层协议,用户使用拨号电话接入因特网时一般都使用PPP协议。

PPP协议应满足的要求:
①简单(对于链路层的帧,无需纠错,无需序号,无需流量控制)
②封装成帧(帧定界符)
③透明传输(与帧定界符一样比特组合的数据应该如何处理:异步线路用字节填充,同步线路用比特填充)
④多种网络层协议(封装的IP数据报可以采用多种协议)
⑤多种类型链路(串行/并行,同步/异步,电/光)
⑥差错检测(错就丢弃)
⑦检测连接状态(链路是否正常工作)
⑧最大传送单元(数据部分最大长度MTU,默认不超过1500B)
⑨网络层地址协商(知道通信双方的网络层地址)
⑩数据压缩协商

PPP协议无需满足的要求:
①纠错
②流量控制
③序号
④不支持多点线路

PPP协议的三个组成部分:
1.一个将IP数据报封装到串行链路(同步串行/异步串行)的方法
2.链路控制协议LCP:建立并维护数据链路连接。【身份验证】
3.网络控制协议NCP:PPP可支持多种网络层协议,每个不同的网络层协议都要一个相应的NCP来配置,为网络层协议建立和配置逻辑连接。

PPP协议的帧格式

PPP协议特点:
①PPP协议只支持全双工
②可以实现透明传输
③可以差错检测,但不会纠错
④面向字节
⑤没有序号的确认机制【有连接的不可靠的服务

以太网交换机及其工作原理

交换机=多端口网桥
集线器:共享带宽
交换机:独占带宽 ——>总容量=带宽*N接口数【若是半双工则端口带宽不变,若为全双工需要乘2】

交换机工作在数据链路层,可以根据目的MAC地址转发帧

自学功能(支持即插即用)

交换表初始为空,记录【MAC地址,端口号】的对应关系
每收到一个帧,就将”发送方“的【MAC地址,端口号】更新到交换表
①若不知道”接收方”在哪,就把帧广播到除入口外的其他端口【若是不同的交换表,则会更新进入为交换机的端口号】
②若知道”接收方”在哪里,就把帧精准转发至某个端口
交换表中每个表项都有“有效时间”过期表项自动作废以防某些节点拔线跑路

接收并不会更新对应端口的交换表,只有发送会更新对应端口的交换表

两种交换方式

1.直通交换 2.存储转发交换

交换机比集线器可以提供更好的网络性能是因为:交换机支持多对用户同时通信
交换机 多个端口同时输入产生冲突
交换机的多个端口可以并行传输
交换机在进行转发决策时使用的PDU地址是目的物理地址

网络层

网络层的功能

网络层为传输层提供服务,将传输层的数据封装成“IP数据报”。
网络中的路由器根据IP数据包首部中的源IP地址目的IP地址进行“分组转发”。因此网络层实现了“主机到主机”的传输。

数据链路层为网络层提供服务,将网络层的IP数据报(分组)封装成帧,传输给下一个相邻节点

IP地址用32bit表示。常以8bit为1组,记为10进制数。【因此每个部分的合法范围0~255】

1.异构网络互联

异构:每个网络的拓扑结构不同、物理层和数据链路层的实现不同、主机类型不同。
网络互联:两个以上的计算机网络,通过一定的方法,用一些中继系统相互连接起来,以构成更大的网络系统。

中继系统:
物理层中继系统:转发器、集线器
数据链路层中继系统:网桥、交换机
网络层中继系统:路由器
网络层以上的中继系统:网关

路由器也称为网关。【网络适配器称为网卡】

2.路由与转发

路由选择:各个路由器之间相互配合,规划IP数据报(分组)的最佳转发路径
【每个路由器需要运转“路由协议”,最终生成各自的“路由表”】
分组转发:一台路由器,根据自己的转发表,将收到的IP数据报从合适的接口转发出去
【转发表=精简版路由表。更精简的数据结构有助于快速检索】

接入网络的每台主机至少拥有一个IP地址
通常,路由器的每个接口都需要分配一个IP地址(最新技术标准已取消)
路由器与主机之间必须有IP地址,路由器与路由器之间可以没有IP地址

一个路由器有多个转发接口,每个接口背后都是一个网络适配器,因此路由器有多个MAC地址

3.拥塞控制

拥塞原因:网络上产生了过量分组,超负荷,引起网络性能下降
拥塞现象:网络上的分组数增加,但吞吐量减少
拥塞类似:节假日路上的车辆增多到一定程度时,收费站的吞吐量反而降低

拥塞控制方法:
①开环控制(静态方法)
在部署网络时,就提前设计好预防拥塞的方法。一旦网络系统开始运行,就不再修改
②闭环控制(动态方法)
动态监视网络状态,及时发现哪里发送阻塞,并将阻塞信息传递给相关路由器
相关路由器即使调整“路由表”

IPV4

各种协议之间的服务关系

IP协议是互连网的核心
ARP协议用于查询同一网络中的 <主机IP地址,MAC地址> 之间的映射关系
ICMP协议用于网络层实体之间相互通知“异常事件”
IGMP协议用于实现IP组播

ICMP差错报告报文:
①终点不可达:当路由器或主机不能交付数据报时。
②时间超过:Tracerout跟踪分组经过的路由,TTL.
③参数问题
④改变路由(重定向)
⑤源点抑制:因拥塞而丢弃
ICMP询问报文:
①回送请求或回送回答【Ping】
②时间戳请求或时间戳回答
③掩码地址请求报文
④路由器询问和通告报文
不发送ICMP报文的情况:
①对ICMP差错报告报文不再发送ICMP差错报告报文。
②对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文
③对具有组播地址的数据报都不发送ICMP差错报告报文。
④对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文。

IPV4分组

IP数据报(IP分组)的格式

418,首总偏

**协议:**用于区分网络层使用的IP协议版本(v4、v6)
**首部长度:*表示首部的长度【以 4B为单位】
区分服务:(一般用不到)
**总长度:*总长度包含了首部、数据部分【以 1B为单位】
**标识:**由IP数据报的“源主机”生成,通常是自增序列
**标志:**最低位MF,次低位DF,最高位不用管
【MF=1,表示后面还有分片。MF=0,表示这是最后一个分片】
【DF=1,表示不允许被分片。DF=0,表示允许被分片】
【若DF=1,且数据报>MTU,则路由器直接丢弃,并给源主机发送ICMP报文】
**片偏移:**表示数据部分在“被分片前的位置”【以 *8B 为单位】
**生存时间TTL:**数据报在网络中通过的路由器的最大值
【TTL的初始值由源主机设置。每经过一个路由器就减1,如果TTL=0,直接丢弃该分组,并向源主机发送ICMP报文】
**协议:**如果为TCP协议服务,设为6.
如果为UDP协议服务,设为17.
**首部校验和:**每个路由器仅校验首部,而不校验数据部分。
如果该字段设为全0,表示不用校验。
校验和的计算方法和UDP相同。
源地址:发送方IP地址
目的地址:接收方地址

PS:在真题中会给出IP数据报的首部,不会记忆每个字节的位置和比特。但是需要记忆每个字段的含义

IP数据报分片

数据部分理论长度>数据部分实际长度
【实际传输过程中,“数据部分”的长度受下一段链路的最短/最长帧长限制(46~1500)】【首部+数据部分≤MTU

最大传送单元MTU:一个链路层数据帧能承载的最大数据量【以太网的MTU=1500B】
如果一个IP数据报的总长度超出了下一段链路的MTU,就需要分片。到目的网络层再进行分片重组。

PS:①每个分片都是一个可以被单独转发的IP数据报,都包含首部
②IP数据报的“分片”可能在源主机、或任何一个路由器中发生
③只有目的主机才会对分片进行“重组
④各分片有可能乱序到达目的主机
⑤由于首部的“片偏移”字段是以*8B为单位。除了最后一个分片外,其他每个分片的数据部分必须是8B的整数倍

IPv4地址

最初的IP地址分类方案

32bit IP地址的两级结构 = <网络号>,<主机号>
网络号不定长,可根据前几个比特判断类别,从而推测出网络号占多少位

PS:①在那个年代,要求每台主机、每个路由器接口被分配的IP地址都是全球唯一的
路由器和路由器连接的接口可以不分配IP地址,但路由器和其他节点连接的接口必须分配IP地址
③从属于同一个网络的所有主机、路由器接口的IP地址“网络号”都相同
④当一台新主机接入网络时,需要给它分配一个IP地址、并配置“默认网关”

默认网关:接入路由器的IP地址

在一个主机上允许有两个IP地址,但这两个IP地址属于两个网络

IP分组转发:
①先检查目的IP地址和自己的IP地址的网络号,检查是否同属于同一个网络。
②若属于同一个网络,根据ARP协议找到目的地址MAC地址。
③找到以后,封装成帧。将其目的MAC地址修改。然后转发【数据链路层】

​ ①先检查目的IP地址和自己的IP地址的网络号,检查是否同属于同一个网络。
​ ②若不属于同一个网络,先将数据报交给默认网关【根据ARP协议,找到同一网络中IP对应的MAC地址】
​ ③将目的IP地址的网络号与转发表中的网络号相对比。
​ ④找到以后,封装成帧。将其目的MAC地址修改。然后转发【数据链路层】

特殊IP地址:

PS:以上这些特殊地址不能指派给网路中的任何一台主机或路由器“私用
全1 全1只在本网络广播(各路由器均不转发,直接丢弃

重要结论:前两行说明,如果一个网络中,主机号占 N bit,那么这个网络中,最多支持2^N^-2台主机&路由器

子网划分与子网掩码

子网划分

子网划分作用:提高IP地址利用率

原理:假设原本主机号占n bit,那么可以将前k bit作为子网号,用剩余的 n-k bit作为主机号
这样就能划分出 2^k^个子网(每个子网包含的IP地址块大小相等)

子网划分前,IP地址为两级结构=<网络号,主机号>
子网划分后,IP地址为三级结构=<网络号,子网号,主机号>

PS:每个子网地址中,主机号不能分配为全0/全1【全0表示子网本身,全1为子网广播地址】

子网掩码

为什么引入子网掩码:
由于引入了子网,使得无法正确判断源IP地址和目的IP地址是否处于同一网络中【ABC类网络】

子网掩码作用:
①用子网掩码、IP地址”逐位与”,算出<网络号,子网号>(可合称为“网络前缀”)
②只有网络前缀相同的IP地址,才归属于同一个网络(或子网)

子网验码需要配置,其前n位为1,其余为0【n为网络号位数+子网号位数】

PS:
①若一个网络内部进行子网划分,则这个网络中的每台主机、每个路由器接口都需要配置IP地址、默认网关、子网掩码
②如果一台路由器支持子网划分技术,那么在它的转发表中,需要包含<目的网络号,子网掩码,转发接口>

主机转发IP数据报过程:
一、判断目的主机和本机是否属于同一个网络
①检查本机IP地址和目的IP地址的网络前缀是否相同(需要用本机配置的子网掩码“逐位与”)
②若网络前缀相同,说明目的主机和本机属于同一个网络;若网络前缀不同,说明不属于同一网络
二、将IP数据报封装成MAC帧并发送到链路上
①如果目的主机与本机属于同一个网络
就通过ARP协议找到目的主机的MAC地址,再将IP数据报封装成帧,并将帧发送给目的主机
②如果目的主机与本机不属于同一个网络
就通过ARP协议找到默认网关的MAC地址,再将IP数据报封装成帧,并将帧发送给默认网关.

路由器转发IP数据报过程:
一、路由器的某个接口收到一个IP数据报
二、对IP数据报首部进行校验,并从中找到目的IP地址
三、查“转发表”
①转发表的表项包含<目的网络号,子网掩码,转发接口>
②检查目的IP地址与每个表项能否匹配(将目的IP地址、子网掩码“逐位与”,匹配表项中的目的网络号)
③注:至少“默认路由”表项一定是可以匹配成功的
四、转发
①根据查转发表的结果,将IP数据报从匹配的接口转发出去
②注:如果匹配的“转发接口”和该IP数据报的入口相同,就不用再把IP数据报转发回去,直接丢弃

默认子网掩码:若一个传统网络(A/B/C类)内没有进行子网划分,则可以将对应此网络的转发表项设置为“默认子网掩码”
A类默认 255.0.0.0
B类默认 255.255.0.0
C类默认 255.255.255.0

默认路由:目的网络号全0,子网掩码全0。【可以使得目的IP与子网掩码作与运算后 可以与目的网络号相匹配】
【在路由器转发表中,如果所有表项都不匹配。那么将从默认路由”转发出去】

无分类编码CIDR

传统的IP地址分配方案缺陷:IP地址资源分配不灵活,利用率低,有限的IP地址资源将很快耗尽

CIDR中的32 bit IP地址<网络前缀><主机号>【网络前缀可变长】
CIDR记法:128.14.32.0/21 【21代表网络前缀位数】

子网划分

一个单位获得CIDR地址块后,可以把它划分为多个子网

1.定长子网划分 【与传统的子网划分技术同理】
在一个CIDR地址块中,把主机号前k bit抠出来作为定长子网号。
这样就能划分出2^k^个子网(每个子网包含的IP地址块大小相等)【最多划分多少子网,留出2位

缺点:每个子网都一样大,不够灵活,IP地址利用率低,浪费有限的IP地址资源

2.变长子网划分 【更灵活】
在一个CIDR地址块中,划分子网时,子网号长度不固定(每个子网包含的IP地址块大小不同)

CIDR地址块的划分技巧:可以利用类似于“从到叶构造二叉哈夫曼树”
原始CIDR地址块作为根节点(假设可以自由分配的主机号占h bit)
每个分支节点必须同时拥有左右孩子,左0,右1
每个叶子节点对应一个子网,根据根节点到达叶子节 点的路径来分析子网对应的IP地址块范围
整棵树的高度不超过h-1(因为即使最小的子网也至少要保留2 bit主机号)【主机号全0、主机号全1的无法使用】

每个可分配的地址个数=N-2

路由聚合

路由聚合/构成超网:
对于一个路由转发表,若几条路由表项的转发接口相同部分网络前缀也相同,则可以将这几条路由表项聚合为一条。

**优点:**可以减少路由表的大小,加快查询速度,减少转发时延。
缺点:可能会引入额外的无效地址(冗余地址)。

最长前缀匹配原则 找G3

网络地址转换NAT

网络层实现了“主机到主机”的通信。网络层在IP数据报的首部,指明源地址、目的IP地址
传输层实现了“端到端(进程到进程)的通信。传输层在TCP(或UDP)报文段的首部,指明源端口、目的端口

传输层“端口号”概念:主机会把端口分配给某一个进程。【IP地址+端口号 就可以实现进程之间的通信】
【IP地址+端口号——>一个特定的进程】

私有IP地址(内网IP)
10.0.0.010.255.255.255
172.16.0.0
172.31.255.255
192.168.0.0~192.168.255.255
只允许分配给局域网内部的节点,不允许分配给互联网上的节点。
每个局域网内部都可以自行分配这些私有地址。
私有地址是可复用的,只要求局域网内唯一,不要求全球唯一

全球IP地址(外网IP)
通常由ISP提供,全球唯一
外网IP是一个局域网与外界通信时所需使用的IP地址

NAT路由器:NAT表、转发表
NAT表中记录了外网和内网的映射关系 【内网IP:端口号 <——> 外网IP:端口号】

NAT路由器包含传输层的功能(因为端口号是传输层的概念)

​ 一个IP数据报。从内网转发到外网,会更改源IP地址、源端口号
​ 从外网转发到内网,会更改目的IP地址、目的端口号

当手机1向手机2发送报文的时候,目的端口号为4096【外网端口号】
目的IP地址为66.211.88.55

①先发给默认网关(NAT路由器)
②查NAT表。将源IP端口号和端口号进行转换。
③经过层层转发。来到目的NAT路由器。查目的NAT路由器的NAT表,将其目的IP和端口号进行转换。
在NAT路由器要转换对IP地址和端口号进行转换

地址解析协议ARP

ARP分组和IP分组在以太网MAC帧中的类型不同,从而区分。

**ARP作用:**ARP协议用于查询在一个局域网内部,<IP地址,MAC地址>之间的映射关系

ARP表 :(存储在ARP缓存中)
①记录了<IP地址、MAC地址>之间的映射关系
②一个数据结构(每台主机、每台路由器都有自己的ARP表
③需要定期更新ARP表项

ARP工作过程:
①ARP请求分组
ARP请求分组内容:我的IP地址、我的MAC地址。我想找的IP地址。
ARP请求分组封装进MAC帧(帧目的地址=全1,源地址=Y)【广播帧】
②ARP响应分组
ARP响应分组内容:我的IP地址、我的MAC地址 【响应的同时也会更改ARP表】
ARP响应分组封装进入MAC帧(帧目的地址=Y,源地址=V)【单播帧】
源ARP、目的ARP请求收到响应后会修改ARP表
路由器收到请求也会修改ARP表,然后再转发

ARP存放的是本局域网上的各主机和路由器的IP地址和MAC地址

动态主机解析协议DHCP

DHCP协议作用:给刚接入网络的主机动态分配IP地址、配置默认网关、子网掩码

DHCP使用客户/服务器模型(C/S)
DHCP客户:就是新接入网络的主机(希望获得IP地址等配置)
DHCP服务器:就是负责分配IP地址的那台主机,管理一系列IP地址池
【在家庭网络中,通常由家庭路由器兼职“DHCP服务器】
【在一个大型网络内可以有多台DHCP服务器】

DHCP是应用层协议,基于UDP。客户UDP端口号=68、服务器UDP端口号=67

IPv6

考频1

“流”:互联网络上从特定源点到特定终点的一系列数据报。所有属于同一个流的数据报都具有同样的流标签
有效载荷长度:扩展首部+数据部分
下一个首部:标识下一个扩展首部或上层协议首部
跳数限制:类似于TTL

IPv4和IPv6的区别

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

【主要记红色字体,其余了解】

IPv6地址表示形式

一般形式——冒号十六进制记法:4BF5:AA12:0216:FEBC:BA5F:039A:BE9A:2170
压缩形式——4BF5:0000:0000:0000:BA5F:039A:000A:2176 【每个区域开头0可省略、结尾0不可省略】
变为4BF5:0:0:0:BA5F:39A:A:2176
零压缩——一连串连续的0可以被一对冒号取代。
FF05:0:0:0:0:0:0:B3 变为 FF05::B3 【双冒号表示法在一个地址中仅可出现一次

IPv6基本地址类型

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

IPv6向IPv4的过渡策略

双栈协议:在一台设备上**同时启用IPv4协议栈和IPv6协议栈**
隧道技术:
使用隧道传递的数据/负载可以是不同协议的数据帧/包。隧道协议将其它协议的数据帧/包重新封装然后通过隧道发送。

路由算法与路由协议

基本概念

路由选择协议的核心是路由算法,即需要何种算法来获得路由表中的各个项目。
路由选择——即“转发路径的选择”
作用:让路由器之间“相互配合”,交换各自掌握的信息,最终让每个路由器都知道应该如何转发分组。

互联网采用的路由选择协议主要是自适应地、分布式路由选择协议(分布式:结点可以连网,共同完成同一个任务)

按照路由算法能否随网络的通信量或拓扑自适应地进行调整变化来划分
静态路由选择策略(非自适应路由选择)
动态路由选择策略(自适应路由选择)【如:距离-向量路由算法、链路状态路由算法】

RIP——UDP、应用层
OSPF——IP数据报、网络层
BGP——TCP、应用层

自治系统AS

互联网采用分层次的路由选择协议:
互联网的规模非常大。如果让所有的路由器知道所有的网络应怎样到达,则这种路由表将非常大,处理起来也太花时间
许多单位希望不透露路由选择协议,但同时还希望连接到互联网上。

为此,可以把整个互联网划分成为许多较小的自治系统,一般记为AS

互联网把路由选择协议划分为两大类:
内部网关协议IGP(在一个自治系统内部使用的路由选择协议)——域内路由选择【RIP、OSPF】
外部网关协议EGP(在不同自治系统之间使用的路由选择协议)——域间路由选择【BGP】

RIP

核心原理:Bellman-Ford算法【距离向量算法】【类似于图的广度优先】
**重点:**将“路由器条数视为距离”。
【路由器直达网络,距离为1】
【每经过一个路由器,距离+1】
【距离=16时,表示不可达】

路由表项 <目的网络、距离、下一条路由器地址>

工作过程:
Who——每个路由器仅告诉邻居“距离向量”
How——告诉邻居们,从本路由器到达每一个目的网络的距离
When——自治系统刚启动时,定期交换
收敛后:定期交换+距离向量有更新就交换

特点:
①RIP仅和相邻路由器交换信息
②路由器交换的信息是当前本路由器所知道的全部信息,即自己现在的路由表
交换的信息是:“我到本自治系统中所有网络的最短距离,以及到每个网络应经过的下一跳路由器”。
③按固定时间间隔交换路由信息,然后路由器根据收到的路由信息更新路由表
当网络拓扑发生变化时,路由器也及时向相邻路由器通告拓扑变化后的路由信息。
网络中的主机虽然也运行协议RIP,但只被动地接收路由器发来的路由信息。
④RIP只适用于小型互联网。

​ 路由器在刚刚开始工作时,它的路由表是空的。然后路由器就得出到直接相连的几个网络的距离(这些距离定义为1)。接着,每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。但经过若干次的更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址。【先修改自身,再发出通告】

在一般情况下,协议RIP可以收敛,并且过程也较快。
“收敛”:在自治系统中所有的节点都得到正确的路由选择信息的过程。

每个路由器除了自身的路由表以外,还有邻居的路由向量

距离向量算法

当3分钟还没有收到相邻路由器的更新数据表, 则把此相邻路由器记为不可达的路由器,即把距离设置为16

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

OSPF

开放最短路径优先

**核心原理:**基于数据结构的“图”,迪杰斯特拉算法。【链路状态路由算法
【每台路由器都要构造整个自治系统的网络拓扑结构】【路由器、某个网络作为图的顶点】
重点:“距离”可以由网路管理员自己定义(如:以链路TTL作为距离)
按照迪杰斯特拉算法求最短路径

工作过程:
Who——每个路由器告诉自治系统内的所有路由器“本路由器相邻的所有路由器的链路状态”
How——洪泛法,通知本自治系统的所有路由器
When——新结点刚加入时,找邻居抄作业
收敛后:定期交换+相邻节点、路径信息有变化时

​ 洪泛法:路由器通过所有输出端口向所有相邻的路由器发送信息。
​ 而每一个相邻路由器又再将此信息发往其所有的相邻路由器
​ (但不再发送给刚刚发来信息的那个路由器)

​ 链路状态:说明本路由器都和哪些路由器相邻,以及该链路的“度量”(度量用来表示费用、距离、时延、带宽)

1
2
由于各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库,这个数据库实际上就是全网的拓扑结构图。这个拓扑结构图在全网范围内是一致的(这称为链路状态数据库的同步)。
协议RIP的每一个路由器虽然知道到所有的网络的距离以及下一跳路由器,但却不知道全网的拓扑结构(只有到了下一跳路由器,才能知道再下一跳应当怎样走)

​ 区域:OSPF将一个自治系统再划分为若干个更小的范围。
​ 好处:把利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,减少了整个网络上的通信量

​ 注意:①边的权值由系统自己设置,与TTL没有关系
​ ②OSPF更新收敛的很快

BGP

边界网关协议

​ 在一个AS中有两个不同功能的路由器,边界路由器内部路由器
​ 在边界路由器与边界路由器之间建立的是eBGP连接
​ 在内部路由器与内部路由器之间建立的是iBGP连接

BGP采用 路径向量路由选择协议

BGP的AS路径选择——优先AS最少,在AS相同的情况下选最快出本AS的路径

BGP交换的网络可达性信息:到达某个网络所经过的路径

IP组播

考频0

1.IP数据报的三种传输方式
单播:单播用于发送数据包到单个目的地。每发送一份单播报文使用一个单播IP地址作为目的地址。点对点传输方式。
广播:广播是指发送数据包到同一广播域或子网内的所有设备的一种数据传输方式,是一种点对多点传输方式。
多播(组播):当网络中的某些用户需要特定数据时,组播数据发送者仅发送一次数据,借助组播路由协议为组播数据包建立组播分发树,被传递的数据到达距离用户端尽可能近的节点后才开始复制和分发,是一种点对多点传输方式。

优点:①组播提高了数据传送效率。
②减少了主干网出现拥塞的可能性。
③组播组中的主机可以是在同一个物理网络,也可以来自不同的物理网络(如果有组播路由器的支持)

2.IP组播地址
IP组播地址让源设备能够将分组发送给一组设备。
属于多播组的设备将被分配一个组播组IP地址(一群共同需求主机的相同标识)。

​ 组播地址范围为224.0.0.0~239.255.255.255(D类地址),一个D类地址表示一个组播组。
​ 只能用作分组的目标地址。源地址总是为单播地址。

后23位用于组播 前01-00-5E固定

​ ①组播数据报也是“尽最大努力交付”,不提供可靠交付,应用于UDP
​ ②对组播数据报不产生ICMP差错报文
​ ③并非所有D类地址都可以作为组播地址

3.硬件组播
同单播地址一样,组播IP地址也需要相应的组播MAC地址在本地网络中实际传送帧。
组播MAC地址以十六进制值01-00-5E打头,余下的6个十六进制位是根据IP组播组地址的最后23位转换得到的。

4.IGMP协议与组播路由选择协议
IGMP协议:让路由器知道本局域网上是否有主机(的进程)参加或退出了某个组播组
组播路由选择协议:组播路由协议目的是找出以源主机为根节点的组播转发树。构造树可以避免在路由器之间兜圈子

​ 组播路由器知道的成员关系只是所连接的局域网中有无组播组的成员

5.组播路由选择协议常使用的三种算法:
基于链路状态的路由选择
基于距离-向量的路由选择
协议无关的组播(稀疏/密集)

移动IP

考频0

移动IP技术:移动结点(计算机/服务器等)以固定的网络IP地址,实现跨越不同网段的漫游功能,
并保证了基于网络IP的网络权限在漫游过程中不发生任何改变。

移动结点:具有永久IP地址的移动设备
归属代理(本地代理):一个移动结点的永久“居所”称为归属网络,在归属网络中代表移动节点执行移动管理功能的实体叫做归属代理。
永久地址(归属地址/主地址):移动站点在归属网络中的原始地址。
外部代理(外地代理):在外部网络中帮助移动节点完成移动管理功能的实体称为外部代理。
转交地址(辅地址):可以是外部代理的地址或动态配置的一个地址。

A进入外部网络,A获得外部代理的转交地址,A将永久地址和转交地址发给归属代理,归属代理将二者绑定。

若A回到了归属网络:A向本地代理注销转交地址

网络层设备

路由器的组成和功能

​ 路由器是一种具有多个输入/输出端口的专用计算机,其任务是连接不同的网络(连接异构网络)并完成分组转发。
​ 在多个逻辑网络(即多个广播域)互连时必须使用路由器。

从结构上看,路由器由路由选择【网络层】和分组转发【物理层+数据链路层】两部分构成。

路由选择处理机用来计算 路由信息

直接交付:在同一个网络中,可以不通过路由器
间接交付:不在同一个网络中,需要经过路由器

路由器:可以互联两个不同网络层协议的网段。
网桥:可以互联两个物理层和链路层不同的网段。
集线器:不能互联两个物理层不同的网段,

路由表与分组转发

路由表是根据路由选择算法得出的,主要用途是路由选择,总用软件实现。

转发表——<目的IP地址、MAC地址>
路由表总是用软件来实现的转发表可以用软件来实现,甚至也可以用特殊的硬件来实现

转发和路由选择的区别:
“转发”是路由器根据转发表把收到的IP 数据报从合适的端口转发出去,它仅涉及一个路由器。
“路由选择”则涉及很多路由器,路由表是许多路由器协同工作的结果。这些路由器按照复杂的路由算法,根据从各相邻路由器得到的关于网络拓扑的变化情况,动态地改变所选择的路由,并由此构造出整个路由表。

路由表不等于转发表,分组的实际转发是靠直接查找转发表,而不是查找路由表

传输层

传输层提供的功能

1.端口的作用
①通过“端口号”标识本主机的一个特定进程。
每台主机的端口号是相互独立的。【端口号为主机内部的资源,只要一台主机内部不重复就可】
TCP、UDP两种协议的端口号是相互独立的。【一台主机的,TCP和UDP可能会使用同一个端口号】
②TCP或UDP协议,通过Socket套接字={IP地址 : 端口号},唯一地标识网络中的一台主机上的一个应用进程。
③端口号的分类【只是一种建议标准,并非强制执行】
服务器使用的端口号——熟知端口 号01023(通常用于被熟知的重要应用程序)
登记端口号1024
49151
客户端使用的端口号——短暂端口号49152~65535

2.传输层的功能
①实现端到端的通信
②复用和分用
复用(从上到下):在发送数据的时候,同一台主机上的多个进程可以使用同一个传输层协议
分用(从下到上):在接收数据的时候,传输层可以把数据正确交付到目的进程
③差错检测
TCP检查出错后就丢弃数据,并通知发送方重传
UDP检查出错后直接丢弃数据,不通知发送方重传
④向应用层提供两种服务
面向连接的、可靠的端到端传输服务(TCP)——确保数据正确/完整,但开销大、实时性较差
无连接的、不可靠的端到端的服务(UDP)——数据可能出错/丢失,但是速度快、开销小

面向连接:传输前先打招呼,先确认对方已经准备好接收数据。传输结束也要通知对方已结束
无连接:不打招呼,直接把数据传给对方。
可靠传输:接收方使用“确认机制”。
不可靠传输:接收方无论何种情况都不会给发送方反馈。

UDP

UDP数据报

TCP和UDP区别
UDP协议不支持报文拆分、重装,因此应用层的报文长度不能超过UDP协议上限。
TCP协议支持报文拆分、重装,因此应用层的报文较长也是可以的。
②UDP首部的很小,只占8B。
TCP首部更大,20~60B。
③UDP是无连接的、不可靠的、也不支持流量控制和拥塞控制【可靠性可以交给应用层处理
TCP是有连接的,可靠的、支持流量控制和拥塞控制
④UDP支持一对一(封装成单播IP数据报)、一对多传输(封装成广播/多播IP数据报)
TCP仅支持一对一传输(因为通信双方的传输层必须先建立连接)
⑤UDP是面向报文
TCP是面向字节流

UDP校验

UDP校验——发送方
①传输层的UDP协议在计算检验和之前,先添加伪首部
②把伪首部、首部、数据部分以16bit为一组,每组进行二进制加法(最高位产生的进位需要回卷)
③将最终的加法结果逐位取反,就得到16bit检验和,将其填入UDP首部
④去掉伪首部,并将UDP数据报交给网络层,封装成IP数据报
UDP校验——接收方
①网络层向传输层递交UDP数据报
②传输层在UDP数据报之前,添加伪首部
③把伪首部、UDP首部、数据部分以16bit为一组,进行二进制加法(最高位产生的进位需要回卷)
④如果加法结果为全1,说明没有比特错误,于是接收该UDP数据报,并根据目的端口号,向应用层递交报文。
如果加法结果不是全1,说明有差错,于是丢弃该UDP数据报。

UDP校验和校验内容为:伪首部、UDP首部、用户数据
伪首部包括IP分组报头的一部分

TCP

TCP报文段

源端口:发送方进程端口
目的端口:接收方进程端口
序号seq:用于标记TCP数据部分第一个字节在原始字节流的位置,每个字节对应一个序号
起始序号是发送方自己设置的,不一定从0开始
确认号ack_seq:用于反馈,表示序号在该确认号之前的所有字节都已正确收到,希望收到下一个的seq。
数据偏移:标识TCP报文首部长度,以*4为单位
保留:暂时没有,通常全部设为0。
紧急位URG:URG=1时,紧急指针有效。表示这是紧急数据,应尽快插队发送。
确认位ACK:当ACK=0时,ack_seq无效。 当ACK=1时,ack_seq有效。
推送位PSH:PSH=1时,表示接收方尽快回复。(用于交互式通信)
复位位RST:RST=1时,表示出现严重差错(如 主机崩溃),必须释放连接。也可用于拒绝一个非法报文段(如 黑客攻击)
同步位SYN:SYN=1时,表示这是一个连接请求或连接接收报文
终止位FIN:FIN=1时,此报文段的发送方的数据已发送完毕,要求释放传输连接
窗口rwnd:表示接收窗口的大小。即从报文段首部中的ack_seq算起,接收方还能接受多少数据(以字节为单位
校验和:原理和UDP雷同。只需伪首部中的协议改为6,UDP长度改为TCP长度。
紧急指针:紧急数据专用序号,原理和序号seq相同。
选项:可以为0,可以非空。【在TCP建立连接时,在握手1、握手2选项中协商MSS】【常基于MSS大小设置接收缓冲区】

若SYN=1,可称此报文段为SYN段。【只有握手1、握手2的SYN=1,其余都为0
若FIN=1,可称此报文段为FIN段。 【只有挥手1、挥手3的FIN=1,其余都为0
若ACK=1,可称此报文段为ACK段。【只有握手1的ACK=0,其余都为1

TCP连接管理

建立连接,必须是客户端先进行握手。
释放连接,可以是客户端也可以是服务器先进行挥手。

最大段长MSS:TCP可传输的最大有效数据长度。【通常MSS不会设置太大,以免在IP层被分片】

每次建立TCP连接,可以传输多个报文(双向)
TCP是面向字节流的。无论传输多少报文,在TCP看来都是一连串字节流。

建立连接

耗时分析:
从发出握手1,到客户端进程可以发送数据,至少需要多久? 1RTT
从发出握手1,到服务器进程可以发送数据,至少需要多久? 1.5RTT

释放连接

​ 最长报文段寿命MSL:是由TCP协议规定的一个固定时间长度

​ 客户进程收到挥手③后,立即进入TIME-WAIT状态,并启动“TIME-WAIT计时器 ”,倒计时2MSL后才能进入CLOSE状态 (如果等待期间重复收到挥手③就重置计时器)【防止挥手4没有发到服务器,引起了挥手③的重发】

释放连接耗时:
从客户发出挥手①,到客户端进程进入CLOSE状态,至少需要多久? 1RTT+2MSL
从客户发出握手①,到服务器进程进入CLOSE状态,至少需要多久? 1.5RTT
如果服务器进程收到挥手①时,已经没有待传送数据,那么可以连续发出挥手②、挥手③

TCP可靠传输

当发送方收到ACK段后,将发送缓冲区中的数据左移(溢出即删除),然后把剩余位置放入待发送的数据。

一个端口可以建立多个TCP连接

发送端会根据服务器返回的rwnd,实时调整发送窗口

按序:必须从接收缓冲区的开头就有,然后按序

超时重传机制: 每发出一个报文段,就设置超时重传计时器

快重传

拥塞控制

流量控制:控制端到端的数据发送量,是“局部的
拥塞控制:控制整个网络中每台主机的数据发送量,降低路由器负载,是“全局的

如何判断网络拥塞?
发出的每个报文段,都能顺利地收到ACK确认——不拥塞
发出的报文段未能按时收到ACK,引发超时重传——严重拥塞
收到冗余ACK,引发快重传——有点拥塞

如果检测到网络拥塞怎么办?
迅速减少发送的数据量
严重拥塞迅速缩小拥塞窗口【拥塞窗口即cwnd】
有点拥塞适当缩小拥塞窗口

发送窗口的上限值=min[rwnd,cwnd]
cwnd=2【cwnd=2*MSS】

拥塞控制考题特点:
1.常与“流量控制”综合考察,此时需要考虑接收窗口大小
2.通常只涉及单向传输(TCP连接双方只有一方发送数据)
3.通常默认每个TCP报文段都以最大段长MSS满载数据
4.拥塞窗口的大小常以“MSS的倍数”作为单位
5.接收方收到一个报文段,会“立即确认”,而不是“推迟确认”【会导致冗余ACK,快重传】

慢开始算法与拥塞避免算法

慢开始算法:cwnd 值从1开始,每收到一个ACK,就让 cwnd+1 【翻倍也不会超过ssthresh】
【当cwnd<ssthress 时适用】【当严重拥塞的时候,迅速降低cwnd】
拥塞避免算法:在一个RTT内,即使收到多个ACK,也只能让 cwnd+1
【当cwnd≥ssthress 时适用】【在不拥塞时,调大cwnd】

若发生超时重传(说明严重拥塞)
ssthresh = 超时时的cwnd / 2 【ssthresh不能小于2】
cwnd =1

超时重传时,默认是第0个RTT,此时cwnd=1

快恢复算法【快重传机制(冗余ACK)】

当有点拥塞的时候,适当降低cwnd

快重传:当发送方收到三个确认号相同的冗余ACK时,立即重传对应报文段
快恢复算法:一旦发生快重传,就将阀值、cwnd 都设为当前 cwnd 的一半然后切换到为“拥塞避免算法”

为保证数据传输的可靠性,TCP采用了对报文段确认的机制
TCP中滑动窗口的值设置过大,对主机的影响:由于传送的数据过多而使路由器变得拥挤、主机可能丢失分组
主机1的x端口与主机2的y端口已经建立了一个TCP连接,若想在这两个端口之间建立一个TCP连接,
则会建立失败,不影响先建立连接的传输

应用层

应用层对应用程序的通信提供服务。

应用层功能:
文件传输、访问和管理【FTP,TFTP】
电子邮件 【SMTP、POP3】
虚拟终端 【HTTP】
查询服务和远程作业登录【DNS】

网络应用模型

客户/服务器模型(C/S)

服务器:提供计算服务的设备。【永久提供服务、永久性访问地址/域名】
客户机::求计算服务的主机。
【与服务器通信,使用服务器提供的服务、间歇性接入网络、可能使用动态IP地址、不与其他客户机直接通信】

应用:Web,文件传输FTP,远程登录,电子邮件

特点:①客户、服务器地位不平等
②客户之间不直接通信
③如果服务器损坏,影响全局
④服务器负载较大

P2P模型

特点:①不存在永远在线的服务器【主机之间地位平等】
②每个主机既可以提供服务,也可以请求服务
③任意端系统/节点之间可以直接通讯
④节点间歇性接入网络
⑤节点可能改变IP地址
⑥可扩展性好
⑦网络健壮性强,单个节点损坏不影响全局
⑧各节点可以分摊负载

应用:BT种子下载

域名系统DNS

**作用:**实现域名——>IP地址的转换

域名

顶级域名
国家顶级域名cn,us,uk
通用顶级域名 com,net,org,gov,int,aero,museum,travel
基础结构域名/反向域名 arpa
二级域名
类别域名 ac,com,edu,gov,mil,net,org
行政区域名 用于我国各省 、自治区、直辖市bj,js
也可以自己注册
三级域名
www、mail

域名服务器
①根域名服务器:知道所有顶级域名服务器的 域名、IP地址
②顶级域名服务器:管理该顶级域名服务器注册的所有二级域名
③权限域名服务器:负责一个区的域名服务器
④本地域名服务器:本地域名服务器缓存近期被查询过的 域名→IP
当一个主机发出DNS查询请求时,这个查询请求报文就发给本地域名服务器。

域名解析过程

主机查询本地域名服务器,递归查询方式
本地域名服务器向其他域名服务器采用递归查询或迭代查询

递归查询:若主机所询问的本地域名服务器不知道被查询域名的IP 地址,则本地域名服务器就以 DNS 客户的身份,向根域名服务器继续发出查询请求报文(即替该主机继续查询),而不是让该主机自己进行下一步的查询。
给根域名服务器造成的负载过大
迭代查询:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要査询的IP地址,要么告诉本地域名服务器:“你下一步应当向哪个顶级域名服务器进行查询”。然后让本地域名服务器进行后续的查询(而不替本地域名服务器进行后续的査询)。同样,顶级域名服务器收到查询报文后,要么给出所要查询的IP 地址,要么告诉本地域名服务器下一步应当向哪个权限域名服务器查询。最后,知道了所要解析的域名的IP地址后,把这个结果返回给发起查询的主机。

高速缓存:为提高 DNS 的查询效率,并减少因特网上的 DNS 查询报文数量,在域名服务器中使用高速缓存,用来缓存最近查询过的域名的相关映射信息。这样,当另一个相同的域名查询到达该 DNS 服务器时,该服务器就能直接提供所要求的IP 地址。【主机高速缓存、域名服务器高速缓存
因为主机名和IP 地址之间的映射不是永久的,所以 DNS服务器将在一段时间后丢弃高速缓存中的信息。
在主机中同样也很需要高速缓存,许多主机在启动时从本地域名服务器下载域名和地址的全部数据库,维护存放自己最近使用的域名的高速缓存,并且只在从缓存中找不到域名时才使用域名服务器的高速缓存。

主机如何知道本地域名服务器的IP地址?
DHCP协议,在主机动态分配的时候,会配置主机的默认网关、IP地址、子网掩码。
并会告诉主机默认DNS服务器的IP地址。

一个以太网卡 对应 一个IP地址
拥有多个以太网卡的主机,有多个IP地址
一个主机 可对应 多个域名
单个域名 可对应 多个IP地址/mac地址
单个域名 可对应 多个主机
多个域名 可指向 同一个主机IP地址
Internet上提供客户访问的主机一定要有IP地址,域名随意
授权域名服务器:将其管辖的主机名——>IP地址

文件传输协议FTP

1.FTP概述

​ 作用:提供不同种类主机系统之间的文件传输能力(软、硬件体系都可以不同)

​ FTP提供**交互式**的访问,允许客户指明文件的类型和格式,并允许文件具有存取权限。

基于TCP的FTP和基于UDP的简单文件传送协议TFTP,特点:
​ 如果要存取一个文件,就必须先获得一个本地的文件副本【即 复制整个文件
​ 如果要修改文件,只能对文件的副本进行修改,然后再将修改后的文件副本传回到原节点

FTP屏蔽了各计算机系统的细节,因而适合在异构网络中任意计算机之间传送文件

​ FTP是基于客户/服务器(C/S)的协议
​ 用于通过一个客户机程序连接至在远程计算机上运行的服务器程序。
​ 依照FTP协议提供服务,进行文件传送的计算机就是FTP服务器
​ 连接FTP服务器,遵循FTP协议与服务器传送文件的电脑是FTP客户端一个FTP服务器可同时为多个客户提供服务

FTP的服务器进程由两大部分组成:一个主进程(负责接收新的请求),另有n个从属进程(负责单个请求)

2.主进程工作步骤:
①打开熟知端口(21),使客户端能够连接上
②等待客户进程发出连接请求
启动从属进程处理客户进程发来的请求
④回到等待状态,继续接收其他客户进程发来的请求

登录
需要输入 ftp地址、用户名&密码
也可以进行匿名登陆(不需要输入 用户名&密码)
【“匿名FTP服务器”,该服务器主要提供文件拷贝功能,不要求用户登记注册也不用取得FTP服务器的授权

3.工作原理

在进行文件传输时,FTP的客户服务器之间要建立两个并行的TCP连接控制连接数据连接
控制连接在整个会话期间一直打开,FTP客户所发出的传送请求,通过控制连接发送给服务器端的控制进程。
数据连接用来传输文件。

是否使用TCP 20端口建立数据连接与传输模式有关
主动方式使用TCP 20端口
被动方式由服务器和客户端自行协商决定(端口>1024)

4.TFP传输模式:
文本模式:ASCI模式,以文本序列传输数据;
二进制模式:Binary模式,以二进制序列传输数据。

5.简单文件传输协议TFTP:容易实现,面向小文件。【适用于UDP环境】

电子邮件

电子邮件的信息格式:信封(abc@163) 内容(首部、主体)

邮件服务器既可以当SMTP客户也可以当SMTP服务器

SMTP

SMTP规定了在两个相互通信的SMTP进程之间应如何交换信息。
负责发送邮件的SMTP进程就是SMTP客户,负责接收邮件的进程就是SMTP服务器

SMTP使用TCP连接,C/S模式,端口号 25

SMTP通信的三个阶段

缺点:
①SMTP不能传送可执行文件或者其他二进制对象。
②SMTP仅限于传送7位ASCI码,不能传送其他非英语国家的文字。
③SMTP服务器会拒绝超过一定长度的邮件。

通用因特网邮件扩充MIME:

POP3协议

POP3使用TCP连接,C/S模式,端口号 110

工作方式:①下载并保留(在服务器) ②下载并删除

网际报文存取协议IMAP
IMAP协议比POP协议复杂。
当用户PC上的IMAP客户程序打开IMAP服务器的邮箱时,用户可以看到邮箱的首部,若用户需要打开某个邮件,该邮件才上传到用户的计算机上。
IMAP可以让用户在不同的地方使用不同的计算机随时上网阅读处理邮件,还允许只读取邮件中的某一个部分
【先看正文,有WiFi的时候再下载附件】

万维网WWW

万维网是一个全球范围的、分布式、联机式的信息存储空间,各种“资源”通过HTTP协议传送给用户。

万维网组成:
统一资源定位符URL:URL=<协议>://<主机>:<端口>/<路径>【指向万维网上的某个特定资源】
【端口、路径可以省去,因为有默认值,如:Web服务器默认80端口默认首页index.html
超文本传输协议HTTP:应用层,基于TCP。HTTP协议定义了“HTTP请求报文”、“HTTP响应报文”
超文本标记语言HTML:一种文档结构的标记语言,使用一些约定的标记对页面上的各种信息、格式进行描述

浏览器访问一个网页的过程:
①用户输入网址(域名)
②浏览器通过DNS服务器查询域名对应的IP地址**(浏览器会将查询结果“域名——>IP地址”缓存在本地)**
【DNS请求报文、DNS响应报文】
③浏览器与<Web服务器IP地址 : 80端口>建立TCP连接
④浏览器会在握手3,携带HTTP请求报文**(指明要访问哪个html网页)**
⑤服务器返回HTTP响应报文(携带html报文)
⑥html引用了其他n个元素,还需要n组HTTP请求&响应**(持续连接、非持续连接工作方式有所区别)**

非持续连接:每建立一次TCP连接,仅完成一组HTTP请求&响应

HTTP请求报文通常很小,因此通常不考虑TCP报文段传输时延。
HTTP响应报文通常较大,因此通常要考虑TCP报文段传输时延。

HTTP/1.0默认非持续连接 【close】
HTTP/1.1默认持续方式连接(除非在HTTP请求报文中设置参数) 【keep-alive】

HTTP报文格式

HEAD:可以用于询问是否有资源
账号密码:POST

Cookie作用
当客户端访问服务器时,服务器生成Cookie识别码,并存储在服务器。相当于一个临时身份证。
在HTTP请求和HTTP响应报文中都有Cookie

Cookie产生于服务器,存储于客户主机

计算
非持续连接:请求一个文件时间=2RTT+文件传输T
持续+流水:请求一个页面时间=2RTT+nt
持续+非流水:请求一个页面时间=1RTT+nRTT+nt【建立TCP、每个对象的延迟】

汇总

1.熟知端口号与协议

FTP控制连接 FTP数据连接 TELNET SMTP DNS DHCP服务 dhcp客户 TFTP HTTP POP3 SNMP
21 20 23 25 53 67 68 69 80 110 161
TCp UDP Ipv6 OSPF
6 17 41 89

2.报文格式

V2 以太网
【6 6 2 N 4,收发协数验】【N的范围:461500】 因此,以太网帧范围641518

IEEE 802.3 以太网
【6 6 2 N 4,收发长数验】【N的范围:461500】 【因此,以太网帧范围641518】

802.1Q 交换机
【6642N4 收发V协数验】 VLan,用于交换机与交换机之间的通信

IEEE 802.11 无线
【30 N 4 首数验,首部3+1地址 N的范围0~2312】 【9 10比特表去来,帧的中转靠AP】
【去往AP中起止,来自AP止中起 】(中起止、止中起 描述的是地址123的含义)(中是AP的MAC地址)

PPP帧 广播

IPv4
418首总偏

UDP 17

TCP 6

IP数据报:461500
以太网帧:64
1518