- 计算机网络体系结构
- 物理层
- 数据链路层
- 网络层
- 传输层
- 应用层
- 各层设备
本笔记为博主2021计算机专业考研408科目的计算机网络个人笔记,仅供参考。
计算机网络体系结构
计算机网络概述
分布范围
- 广域网(WAN):因特网的核心部分,也称远程网。结点交换机的链路一般是高速链路,具有较大通信容量,提供长距离通信
- 城域网(MAN):大多采用以太网技术
- 局域网(LAN):传统上,局域网使用广播技术,广域网使用交换技术
- 无线个人局域网(WPAN)、个人局域网(PAN):将消费电子设备用无线技术连接起来的网络(如手机)
传输技术
- 广播式网络
- 使用路由选择机制。
- 局域网基本采用广播式通信技术,广域网的无线、卫星通信网络也采用广播式通信技术。
- 点对点网络
- 使用分组存储转发。
- 广域网基本属于点对点网络。
拓扑结构分类
- 总线形网络
- 优点:建网容易,增减结点方便、节省线路
- 缺点:重负载时通信效率不高
- 星型网络
- 优点:便于集中控制与管理,因为通信必须经过*设备
- 缺点:成本高,中心结点对故障敏感
- 环形网络
- 计算机接口设备连接成一个环,最典型例子是令牌环局域网
- 环可以是单环,也可以是双环,环中信号单向传输
- 网状形网络
- 优点:可靠性高,多用于互联网
- 缺点:控制复杂,线路成本高
计算机网络分层概念
- n层实体:第n层中的活动元素(硬件或软件)
- 对等实体:同一层的实体
- 服务数据单元(SDU):完成用户所要求功能而传送的数据
- 协议控制信息(PCI):控制协议操作的信息
- 协议数据单元(PDU):对等层次之间传送的数据单元(如物理层PDU为比特,链路层PDU为帧,网络层PDU为分组,传输层PDU为报文)
- 协议:对等实体进行通信的规则,是水平的;由语法、语义、同步三部分组成
- 服务:下层为上层提供的功能调用,是垂直的;在OSI中服务原语分为请求、指示、响应、证实共4类
ISO/OSI参考模型(物理、数据链路、网络、传输、会话、表示、应用)
物理层
- 传输单位:比特
- 任务:透明的传输比特流
- 功能:在物理媒体上为数据段设备透明的传输原始比特流
- 物理层接口标准:EIA RS-232-C、ADSL和SONET/SDH等
内容:
- 物理层规定了电路接口一些参数(如机械形状、尺寸、交换电路数量与排列等,如笔记本电脑上的网线接口)
- 物理层规定了通信链路传输的信号的意义和电气特征(如规定信号A代表0)
注意:传输信息所利用的一些物理媒体,如双绞线、光缆、无线信道等,并不在物理层协议之内,而在之下。因此物理媒体可以被视为第0层。
数据链路层
- 传输单位:帧
- 任务:将网络层传来的IP数据报组装成帧
- 功能:成帧、差错控制、流量控制和传输管理等
- 协议:SDLC、HDLC、PPP、STP和帧中继等
介质访问子层:专门处理如何控制对广播式网络里共享信道的访问。
网络层
- 传输单位:数据报
- 任务:网络层的协议数据单元(分组)从源端传送到目的端
- 功能:关键功能是对分组进行路由选择,并实现流量控制、拥塞控制、差错控制、网际互联等功能
- 支持面向连接/无连接两种服务:TCP/IP模型的传输层才支持面向连接/无连接服务
- 协议:IP(IPv4\IPv6)、IPX、ICMP、IGMP、ARP、RARP、OSPF等
OSI参考模型在网络层支持无连接、面向连接通信,但在传输层仅有面向连接的通信;TCP/IP模型在网际层则只有一种无连接通信模式,但传输层支持无连接、面向连接两种模式。
传输层
- 传输基本单位:报文段(TCP)或用户数据报(UDP)
- 任务:负责不同主机中两个进程(端到端)之间的通信
- 功能:只提供面向连接可靠传输服务(不提供无连接服务),流量控制、差错控制、服务质量、数据传输管理任务等
- 支持复用:多个应用层进程可同时使用下面传输层服务
- 支持分用:传输层把收到的信息分别交付给上面应用层中相应的进程
- 协议:传输控制协议(TCP)、用户数据报协议(UDP)
会话层
- 任务:会话层利用传输层提供的端到端的服务,允许不同主机上的各个进程之间进行会话(实际上是端到端服务的增值服务)
- 功能:负责管理主机间的会话进程(包括建立、管理及终止进程间会话)
- 会话(建立同步、SYN):主要为表示层实体或用户进程建立连接并在连接上有序地传输数据;会话层可使用校验点使通信会话从校验点继续恢复通信,实现数据同步
表示层
- 任务:处理在两个通信系统中交换信息的表示方式
- 功能:数据压缩、加密、解密
应用层
- 功能:用户与网络的界面
- 协议:虚拟终端协议(Telnet)、文件传输协议(FTP)、域名解析服务(DNS)、电子邮件协议(SMTP)和超文本传输协议(HTTP)
TCP/IP模型(网络接口、网际、传输、应用)
网络接口层
- 对应OSI中的物理层和数据链路层
- 任务:表示与物理网络的接口,从主机或结点接受IP分组,并把它们发送到指定的物理网络
- 物理网络:各种类型的局域网(如以太网、令牌环网、令牌总线网等),公共数据网(电话网、SDH、X.25\帧中继和ATM等)
网际层
- 对应OSI中的网络层
- 任务:将分组发往任何网络,并为之独立选择合适路由,但不保证各个分组有序到达
传输层
- 对应OSI中的传输层
- 任务:允许发送端和目的端主机上的对等实体进行会话
应用层
- 对应OSI中的会话层、表示层和应用层
电路交换、报文交换与分组交换
电路交换
通信前,两结点之间先建立一条专用(双方独占)的物理通信路径(可能经过许多中间结点),这一路径整个传输期间一直被独占,通信结束后才被释放。即三个阶段:连接建立、数据传输、连接释放。
- 优点:
- 通信时延小,有序传输,无冲突:通道专用,数据直达
- 适用范围广:既适用传输模拟信号,也适用传输数字信号
- 实时性强:物理通路一旦建立,双方随时可以通信
- 缺点:
- 建立连接时间长
- 线路独占,线路利用率低
- 灵活性差:通路中任何一点只要出现故障,必须重新拨号建立连接
- 难以规格化:不同类型、规格、速率的终端难以相互通信,也难以在通信过程中进行差错控制
报文交换
封装成数据报,每个报文以存储-转发方式传输。
- 优点:
- 无需建立连接,不存在连接时延
- 动态分配线路,提高线路利用率
- 提高线路可靠性:某条路径故障可选择另一条路
- 提供多目标服务:一个报文可以同时发给多个目的地址
- 缺点:
- 存在存储转发时延:需要经历存储、转发过程(包括接收时间、校验正确性、排队、发送时间)
- 需较大缓存空间:报文大小无限制
报文交换主要使用在早期电报通信网中,现在通常采用较先进的分组交换技术
分组交换
把数据报分成较短的固定长度的数据块,每个分组(报文的一部分)以存储-转发方式传输。
- 优点:
- 无需建立连接,不存在连接时延
- 动态分配线路,提高线路利用率
- 提高线路可靠性:某条路径故障可选择另一条路
- 简化存储管理(相对报文交换):分组长度固定
- 减少等待时间,加速传输:减少因缓冲区不足而等待发送的概率和时间
- 减少出错概率和重发数据量:分组较短,出错概率小,重发数据量也大大减少
- 缺点:
- 存在存储转发时延
- 需要传输额外信息量:每个分组要加上源地址、目的地址、分组编号等信息
- 分组交换采用数据报服务时,可能失序、丢失或重复分组(若用虚电路服务,虽无失序问题,但有虚电路建立、数据传输、虚电路释放三个阶段)
各交换方式区别:
- 电路交换适用于传送数据量很大且传送时间远大于呼叫时间
- 分组/报文交换比电路交换的信道利用率更高
- 分组/报文交换传送适用于由多段链路组成的端到端的通路
- 分组交换比报文交换时延小,更适合计算机的突发式数据通信
数据报与虚电路
数据报
要发送一个报文时,将报文拆成若干数据报分组(即网络层PDU)后以存储-转发方式传输。不同分组可以走不同路径,也可按不同顺序到达目的结点。
- 分组在交换结点存储转发时,需要排队处理,带来一定时延。通过交换节点通信量较大或网络发生拥塞时,这种时延会大大增加,交换节点还可根据情况丢弃部分分组。
- 收发双方不独占某一链路,资源利用率高
虚电路
分组发送之前,发送方和接收方建立一条逻辑上相连的虚电路,一旦建立,就固定了对应的物理路径;分为三个阶段:虚电路建立、数据传输、虚电路释放。
- 虚电路通信链路建立和拆除需要时间开销,对交互式应用和小量段分组显得很浪费,对长时间、频繁数据交换效率较高
虚电路是逻辑上的专用电路,物理上电路、结点可同时有多个虚电路。
连接建立 | 目的地址 | 路由选择 | 可靠性 | 对网络故障适应性 | 流量控制 | |
---|---|---|---|---|---|---|
数据报服务 | 无 | 每个分组有发送端和接受端的完整目的地址 | 每个分组独立进行路由选择和转发 | 不保证可靠、有序,只可由用户主机来保证 | 对障碍适应能力强,出故障的结点丢失分组,然后更新相应转发表,寻找另一条路径转发其他分组 | 由用户主机进行流量控制 |
虚电路服务 | 有 | 仅在建立连接阶段使用,之后每个分组使用长度较短的虚电路号 | 属于同一虚电路的分组按同一路由转发 | 保证可靠有序,包含差错控制 | 所有经过故障结点的虚电路不能正常工作,不适合出错率高的网络系统 | 可由分组交换网或用户主机负责 |
物理层
物理层功能
概念
- 数据:传送信息的实体
- 信号:数据的电气或电磁表现,是数据在传输过程中的存在形式
- 模拟数据(或模拟信号):连续变化的数据(或信号)
- 数字数据(或数字信号):取值仅允许为有限的几个离散数值的数据(或信号)
- 码元:一个固定时间(码元宽度)的信号波形,表示一位K进制数字,代表不同离散数值的基本波形,是数字通信中数字信号的计量单位
- 码元传输速率(码元速率、波形速率、符号速率):表示单位时间内数字通信系统传输的码元个数(脉冲个数、信号变化次数),单位是波特(Baud);码元速率与进制数无关
- 带宽:信号具有的频带宽度,单位是赫兹(Hz);也常用于表示“最高数据率”,单位是b/s
传输方式
- 基带信号:即数字信号,直接用不同的电压表示1和0,可在数字信道上传输
- 基带传输:计算机内部或相邻设备近距离传输(常用于局域网)时,不经过调制,直接进行传输
- 频带信号:将数字信号进行调制后形成模拟信号,可在模拟信道上传输
- 频带传输:远距离传输前,对数字信号进行调制,变成模拟信号后再进行传输
- 宽带信号:将基带信号进行调制、频分复用后形成模拟信号,可在模拟信道上去传输
- 宽带传输:使用频分复用技术将频带传输的链路容量分解为两个或多个信道,每个信道同时互不干扰地发送各自不同的信号,大大增加链路容量
同步、异步:
- 同步通信:双方先建立同步(时钟调到同一频率),然后不停的发送和接受连续的比特流。同步通信数据率较高,实现代价也较高。
- 异步通信:发送字符之间的时间间隔是任意的,但接收端必须做好接受准备;每个字符开始和结束的地方加上开始位和停止位,以便接收端正确将每个字符接受下来;异步通信可将帧作为发送的单位;通信设备简单、便宜,但传输效率较低,标志开销占用较大。
单工、半双工、全双工:
- 单工通信:只有一个方向的通信,无反方向交互,仅需要一条信道(如无线电广播、电视广播)
- 半双工通信:通信双方都可以发送或接受信息,任何一方不能同时发送和接受信息,需要两条信道
- 全双工通信:通信双方可以同时发送和接受信息,需要两条信道
物理层接口特性
- 机械特性:(物理规格)规定物理连接时所采用规格、引线数目、引脚数量和排列等。
- 电气特性:(规定限制)规定传输二进制位时,线路上的电压高低、阻抗匹配、传输速率和距离限制等。
- 功能特性:(指明含义、用途)指明某条线上出现的某一电平电压表示何种意义,各种信号线的用途。
- 规程特性:(时序关系)定义个物理线路工作的时序关系。
奈奎斯特定理和香农定理
奈奎斯特定理(理想低通、无噪声)
\(理想低通信道的极限数据传输率=2Wlog_{2}{V}\) (单位为b/s)
\(W\)是信道的带宽;\(V\)表示每个码元离散电平的数目(有多少种不同的码元 )
- 信道频带越宽(即通过的信号高频分量越多),就可用更高的速率进行码元的有效传输。
- 奈氏定理只给出了码元传输速率的限制,但未对信息传输速率给出限制,即未对一个码元可以对应多少个二进制位给出限制。
- 若传输速率超过此上限,会出现严重的码间串扰问题(在接收端收到的信号波失去了码元之间的清晰界限),使接收端不可能完全正确识别码元。
香农定理(高斯白噪声干扰)
\(信道的极限数据传输率=Wlog_{2}{(1+S/N)}\) (单位为b/s)
\(W\)是信道的带宽;\(S\)为信道传输信号平均功率;\(N\)为信道内部的高斯噪声功率;\(S/N\)为信噪比,即信号平均功率与噪声平均功率之比;信噪比常用单位 \(dB = 10log_{10}{N}\)
- 信道带宽/信噪比越大,极限传输速率越高
- 对于一定传输带宽和一定的信噪比,信息传输速率的上限是确定的
- 只要信息的传输速率不大于该信道极限速率,就能找到某种方法实现无差错传输
编码与调制
- 编码:数据(数字、模拟)=>数字信号
- 调制:数据(数字、模拟)=>模拟信号
数字数据编码为数字信号
-
归零编码(RZ):高电平代表1、低电平代表0,每个时钟周期的中间均跳变位低电平(归零)。
- 优点:自同步
- 缺点:归零需要占用一部分宽带,传输效率受一定影响
-
非归零编码(NRZ):高电平代表1、低电平代表0,不必归零。
- 优点:一个周期全用来传输数据
- 缺点:无法传递时钟信号,难以同步(想传输高速同步数据,需要带时钟线)
-
反向非归零编码(NRZI)(USB2.0通信采用):信号翻转为0、信号保持不变为1。
- 优点:反转的信号可以作为一种通知机制,又能尽量不损失系统带宽
-
曼切斯特编码(以太网采用):一个码元分成两个相等间隔,前半间隔为高而后半间隔为低则表示为1,前半间隔为低后半间隔为高则表示0;每个码元中间总是会发生一次电平跳转。
- 优点:自同步
- 缺点:占据频带宽带是原始基带宽度的两倍
码元中间的跳变既作为时钟信号,又作为数据信号,因此可自同步,差分曼彻斯特编码同样
-
差分曼切斯特编码:一个码元分成两个相等间隔,上个码元后半间隔与本码元前半间隔相同时则表示为1,不同时则表示为0;每个码元中间总是会发生一次电平跳转。
- 优点:自同步,抗干扰性强
- 缺点:占据频带宽带是原始基带宽度的两倍
-
4B/5B编码:数据流每4位作为一组,然后按4B/5B规则转换成相应5位码。其中16种组合表示16种不同的4位码,其他的16种作为控制码(帧的开始、结束、线路状态信息)或保留。
数字数据调制为模拟信号
- 幅移键控(ASK):改变载波信号的振幅来表示数字信号1和0
- 容易实现,但抗干扰能力差
- 频移键控(FSK):改变载波信号的频率来表示数字信号1和0
- 容易实现,抗干扰能力强,目前应用较为广泛
- 相移键控(PSK):改变载波信号的相位来表示数字信号1和0
- 正交振幅调制(QAM):频率相同的前提下,将ASK和PSK结合起来,形成叠加信号。
- QAM技术数据传输率 \(R=Blog_{2}{(mn)}\) (波特率为B,采用m个相位,每个相位有n种振幅)
模拟数据编码为数字信号
- 脉码调制(PCM):
- 采样:对模拟信号进行周期性扫描,时间上连续的信号变成离散的信号
- 量化:采样得到的电平幅值按一定分级转化为对应数字值并取整数,即转换成了离散数字量
- 编码:量化结果转换为对应二进制编码
根据采样定理(奈奎斯特定理):当采样的频率大于等于模拟数据的频带带宽(最高变化频率)的两倍时,离散信号可以无失真地表示被采样的模拟数据。
模拟数据调制为模拟信号
为实现传输有效性,模拟数据可能需较高频率。
- 可通过放大器调制器转换成模拟信号(放大信号)进行传输
- 可使用频分复用(FDM)技术,充分利用带宽资源
电话机和本地局交换机采用模拟信号传输模拟数据的编码方式;模拟的声音数据是加载到模拟的载波信号中传输的。
传输介质(双绞线、同轴光缆、光纤、无线传输介质)
双绞线
- 应用范围:局域网、传统电话网
- 最古老的传输介质,通信距离几千米到数十千米;双绞线宽度取决于铜线粗细和传输距离
- 支持模拟传输和数字传输
- 屏蔽双绞线:加上提高抗电磁干扰能力的由金属丝编织成的屏蔽层
- 非屏蔽双绞线:无屏蔽层
距离太远时,对模拟传输要用放大器放大衰减的信号,对于数字传输要用中继器将失真的信号整形。
同轴光缆
- 应用范围:有线电视系统
- 具有良好的抗干扰特性,广泛应用于传输较高速率的数据,传输距离更远
- 50Ω同轴电缆(基带同轴电缆):用于传送基带数字信号
- 75Ω同轴电缆(宽带同轴电缆):用于传送宽带信号
光纤
- 带宽范围极大
- 多模光纤:基于发光二极管,多次反射,容易失真,只适用于近距离传输。
- 单模光纤:基于激光二极管,向前传播,不会产生多次反射,制造成本高,适合远距离传输。
无线传输介质
-
无线电波:向所有方向散播信号
- 优点:较强穿透能力,可传输很长的距离,无需对准方向就可连接,大大简化通信连接。
- 例子:无线手机通信、电脑的无线局域网(WLAN)等
-
微波、红外线和激光:高带宽的无线通信主要使用的技术,要求视线通路,有很强方向性,沿直线传播。
- 红外通信、激光通信:转换为各自的格式再直接再空间中传播
- 微波:沿直线传播,长距离需要中继站接力;频率较高,频段范围宽,通信信道容量大
- 卫星通信:利用地球同步卫星作为中继站来转发微波信号,克服地面微波通信距离限制;通信信道容量大,距离远,覆盖广,但端到端传播时延较长
以太网传输介质
传输媒体 | 编码 | 拓扑结构 | 最大段长 | 最多结点数目 | |
---|---|---|---|---|---|
10BASE5 | 基带同轴电缆(粗缆) | 曼彻斯特编码 | 总线形 | 500m | 100 |
10BASE2 | 基带同轴电缆(细缆) | 曼彻斯特编码 | 总线形 | 185m | 30 |
10BASE-T | 非屏蔽双绞线 | 曼彻斯特编码 | 星形 | 100m | 2 |
10BASE-EL | 光纤对 | 曼彻斯特编码 | 点对点 | 2000m | 2 |
数据链路层
数据链路层功能
以帧为最小单位,将物理层提供的可能出错的物理连接改造为逻辑上无差错的数据链路,从而表现为一条无差错的链路。
为网络层提供服务
- 无确认的无连接服务:适合误码率较低或实时通信的通信信道,如以太网
- 有确认的无连接服务:适合误码率较高的通信信道,如无线通信
- 有确认的面向连接服务:适合通信要求(可靠性、实时性)较高的场合
链路管理
链路管理:数据链路层连接的建立、维持、释放
差错检测
- 位错:帧中某些位出现差错,通常使用循环冗余校验(CRC)进行校验差错,但不提供纠错。
计算
- 发送周期:发送方从开始发送数据到收到第一个确认帧为止,即帧传输时延+帧传播时延+确认帧传输时延+确认帧传播时延
- 信道效率(信道利用率) = (一个周期发送的比特数 /数据传输率)/发送周期
- 信道吞吐率 = 信道利用率 * 发送方的发送速率
组帧
帧格式
- 组帧时既要加首部,又要加尾部,才可分清比特流中帧的界限
- 帧校验序列(FCS):校验区包含地址、控制、协议和信息部分(对帧来说,需要校验几乎整个帧内容但不包括前导码,对IP数据报来说,只需校验报头)
- 控制字段(HDLC帧特有):
- 信息帧(0):传输信息或捎带技术对数据进行确认
- 监督帧(10):用于流量控制和差错控制,执行对信息帧的确认、 请求重发和请求暂停发送等功能
- 无编号帧(11):提供对链路的建立、拆除等控制功能
以太网的MAC帧格式
- 前导码(帧前8字节):第一个字段共7字节,是前同步码,用来实现接收端与发送端时钟同步;第二个字段是帧开始定界符,表示后面的信息就是MAC帧
- MAC帧:地址+类型+数据域(可能的填充)+校验码
- 802.3帧:用长度域代替了DIX的类型域,指出数据域的长度
帧长度
- 帧无需字段指明帧长度(因为有帧界限)
- 帧有最大传送单元(MTU)的限制:
- 以太网帧MTU为1500B
- 帧也可能有最小长度限制(由于采用CSMA/CD碰撞检测):
- 以太网帧(使用CSMA/CD):最短帧为64B(其中信息段最小46B)
- PPP帧(没采用):无最短帧限制(其中信息段最小0B)
PPP是点对点,不是总线形,无须采用CSMA/CD协议,自然就没有最短帧,所以信息端占01500而不是461500
透明传输
不管数据是什么样的比特组合,都应能在链路上传送
字符计数法:
- 帧头部使用一个计数字段表明帧内字节数。
- 如果计数字段出错,就失去了帧边界划分依据
字符填充的首尾定界符法:
- 用一些特定字符定界帧的开始(DLE STX)和结束(DLE ETX)
- 特殊字符前面需填充一个转义字符(DLE)来区分
零比特填充的首尾标志法:
- 使用一个特定标志(“01111110”)来标志一帧的开始和结束。
- 遇到5个连续“1”时需在后面插入“0”;接收方每收到5个“1”自动删除后面的“0”
- HDLC通信规程采用了 比特填充法
- 优点:容易用硬件实现,性能优于字符填充法
违规编码法:
- 如曼彻斯特编码方法里“高-高”“低-低”电平对在数据比特中是违规的,但可以借用此来界定帧的起始和终止
- 局域网 IEEE 802标准采用了 违规编码法
- 优点:不需要采用任何填充技术便实现透明传输,只适用于采用冗余编码的特殊编码环境
可靠传输机制、流量控制
可靠传输机制
- 确认帧(ACK):一种无数据的控制帧,可将确认捎带在一个回复帧中用于提高传输效率;通过交替使用0、1标识来让发送发检查确认帧是否被破坏。
- 自动重传请求(ARQ):计时器一定时间内没有得到发送数据帧的确认帧,则重新传送该数据帧,直到成功为止
单帧窗口与停止等待协议(停止-等待)
发送方每发送一帧,都要等待接收方应答信号,之后才能发送下一帧;接收方每接受一帧,都要反馈一个应答信号,表示可接受下一帧。
- 发送窗口大小 = 1,接收窗口大小 = 1
- 保证有序接受
- 信道利用率低
多帧滑动窗口与后退N帧协议(后退N帧ARQ)
发送了N个帧后,若发现该N个帧的前一个帧在计时器超时后仍未返回确认帧,则该帧被判定为出错或丢失,发送方不得不重传该帧及随后共N个帧。
- 发送窗口大小 > 1,接收窗口大小 = 1(\(发送窗口大小+接收窗口大小<=2^n\))
- 保证有序接受
- 若信道传输质量很差,导致误码率较大,后退N帧协议不一定优于停止-等待协议
多帧滑动窗口与选择重传协议(选择重传ARQ)
接收方受下序号不连续但仍在窗口序号内的帧,等所有帧收下后再送交主机。
一旦接收方怀疑帧出错,会立即发一个否定帧NAK给发送方,要求进行指定帧的重传
- 发送窗口大小 > 1,接收窗口大小 > 1(\(发送窗口大小+接收窗口大小<=2^n\))
- 需要设置相当容量缓冲区
- 不保证有序
- 信道利用率较高
后退N帧ARQ、选择重传ARQ都是滑动窗口技术与请求重发技术的结合,因此被称为连续ARQ协议:窗口尺寸开到足够大的时候,帧在线路上可以连续流动。
数据链路层滑动窗口协议中,窗口大小在传输过程中是固定的(这点与传输层滑动窗口协议不同)
信道划分介质访问控制(频分、时分、波分、码分多路复用)(静态划分型协议)
频分多路复用(FDM)
将多路基带信号调制到不同频率载波,再叠加形成一个复合信号。
- 子信道分配带宽可不相同,但总和不能超过信道总带宽
- 为防止子信道之间的干扰,需要在相邻信道之间加入“保护频带”
- 优点:充分利用传输介质带宽,系统效率较高;技术成熟,实现较容易
时分多路复用(TDM)
按时间分成若干固定时间片,轮流分配给若干个信号使用。
- 统计时分多路复用(STDM,又称异步时分多路复用):是TDM的一种改进,采用STDM帧,不固定分配时隙,而是按需动态分配时隙。
- 缺点:信道利用率不高
波分多路复用(WDM)
即光的频分多路复用,在光纤中传输多种波长(频率)的光信号。
码分多路复用(CDM)
采用不同编码来区分各路原始信号。与FDM和TDM不同,既可以共享信道频率,也共享时间。
码分多址:每比特时间分成若干个更短的时间槽位,成为码片。当两个或多个站点同时发送时,要求各个站点的序列互相正交,同时发送时在信道线性相加。
- 优点:频谱利用率高,抗干扰能力强、保密性强
- 应用:主要用于无线通信系统
随机访问介质访问控制(ALOHA、CSMA、CSMA/CD、CSMA/CA)(争用型协议)
不采用集中控制方式解决发送信息的次序问题,所有用户都能根据自己意愿发送信息,占用信道全部速率。
不共享时间和空间,将广播信道转化为点到点通信。
纯ALOHA、时隙ALOHA
纯ALOHA协议:
- 结点不进行任何检测,直接发送数据。
- 缺点:吞吐量很低,发生碰撞的概率大,信道带宽利用率18.4%
时隙ALOHA协议:
- 同步各结点的时间,划分等长时隙(使每个帧恰好一个时隙内发送完毕)。
- 每个时隙开始时结点才允许发送一个帧,避免发送数据的随意性,减少冲突发生可能性
- 优点:吞吐量是纯ALOHA的两倍
- 缺点:发生碰撞的概率仍然很大,信道带宽利用率36.8%
ALOHA协议一段时间未收到确认就认为传输过程发生了冲突(碰撞),发生碰撞时,等待一段随机时间再重发数据
1-坚持CSMA、非坚持CSMA、p-坚持CSMA
CSMA:结点要发送数据时,先侦听信道。
1-坚持CSMA(坚持听):
- 若空闲 => 发送数据
- 若忙 => 继续侦听直到空闲
非坚持CSMA(非坚持听):
- 若空闲 => 发送数据
- 若忙 => 等待一个随机时间后,继续侦听直到空闲
p-坚持CSMA(坚持听,但即使空闲要按一定概率发送):
- 若空闲 => 以概率p发送数据,以概率1-p推迟到下一个时隙
- 若忙 => 继续侦听直到空闲
CSMA协议一段时间未收到确认就认为传输过程发生了冲突(碰撞),发生碰撞时,等待一段随机时间再重发数据
CSMA/CD
- 先听后发:要发送数据时,先侦听信道。
- 若空闲=>发送数据;若忙=>继续侦听直到空闲
- 边听边发(区别于CSMA):冲突时一边发一边主动侦测碰撞(而非等待一段时间未收到确认)
- 冲突停发:发生碰撞时,立即停止传输帧,取而代之传输一个48比特的拥塞信号
- 随机重发:中止(传输拥塞信号)后,采用截断二进制指数退避算法等待一段随机时间再侦听
二进制指数退避(动态退避)算法:
- 确定基本退避时间:一般取争用期2τ
- 定义参数k(k不超过10):重传次数不超过10时,k等于重传次数;重传次数大于10时,k就不再增大而一直等于10
- 从离散的整数集合\([0,1,..,2^k{-1}]\)随机取一个数 \(r\):\(重传所需要的退避时间=2rτ\)
- 重传达16次仍不成功,则说明网络太拥挤,抛弃此帧并向高层报告出错
以太网规定:
- 争用期长度为51.2μs
- 最小短帧为64B
为了确保发送站在发送数据的同时能检测到可能存在的冲突,需在发送完帧之前就能收到自己发送出去的数据,因此CSMA/CD总线网中所有数据帧必须要大于一个\(最小帧长=总线传播时延*数据传输率*2\)
争用期(冲突窗口、碰撞窗口):端到端往返时间 2τ,若争用期内没有检测出冲突则确定这次不会发生冲突(一个帧在冲突窗口内没有发生冲突,那么该帧就不会发生冲突,如果有冲突,那么冲突一定发生在冲突窗口内)
CSMA/CA
- 发送帧时使用指数二进制指数退避算法,即信道从忙变为空闲时,任何一个站要发送帧时,不仅都需要等待一个时间间隔,还要进入争用窗口,计算随机退避时间以便再次试图接入信道。
- 由于无线网络的特性,CSMA/CA发送包的时候不检测信道冲突(区别于CSMA/CD的边听边发)
- 优点:发送时先通知其他结点使其一段时间内不要发送数据,从而尽可能避免发生碰撞
- 缺点:网络利用率相比CSMA/CD差一些
- 应用:无线局域网 802.11标准
CSMA/CA还使用额外三种碰撞避免机制:
-
预约信道:发送方在发送数据同时向其他站点通知自己传输数据需要的时间长度,以便让其他站点这段时间内不发送数据,从而避免碰撞
-
RTS/CTS帧:可选的预约信道机制,主要解决无线网“隐蔽站”问题
-
ACK帧:所有站点在正确接受到发给自己的数据帧(除广播帧和组播帧)后,都需要向发送方发回一个ACK帧,若接受失败,那么不采取任何行动。若规定时间未收到ACK帧,则认为发送失败,应该重发直到成功收到ACK帧或者达到规定重发次数
“隐蔽站”问题:在无线通信,并非所有站点都能听见对方
CSMA/CD与CSMA/CA主要区别:
- CSMA/CD可以检测冲突,但无法避免;CSMA/CA发送包的同时不能检测信道上有无冲突,本结点处没有冲突并不意味着在接收节点处没有冲突,只是尽量避免。
- 传输介质不同。CSMA/CD用于总线形以太网,CSMA/CA用于无线局域网802.11a/b/g/n等
- 检测方式不同。CSMA/CD通过电缆电压来检测,CSMA/CA采用能量检测、载波检测和能量载波混合检测三种检测信道空闲方式
- 本结点处有(无)冲突,并不意味着在接收节点处就有(无)冲突
局域网(LAN)(※以太网、令牌环网、无线局域网)
- 主要传输介质:双绞线
- 主要介质访问控制方法:CSMA/CD(适用于总线形)、令牌总线(适用于总线形)和令牌环(适用于环形)
- OSI层次:物理层、数据链路层(主要)
局域网类型:
- 以太网(目前使用范围最广的局域网):逻辑拓扑是总线型结构,物理拓扑是星形或拓展星形结构
- 令牌环(IEEE 802.5):逻辑拓扑是环形结构,物理拓扑是星型结构
- FDDI(光纤分布数字接口,IEEE 802.8):逻辑拓扑是环形结构,物理拓扑是双环结构
IEEE 802标准定义的局域网参考模型:
- 媒体介入控制(MAC)子层:与接入传输媒体有关内容都放在MAC子层,向上层屏蔽对物理层访问的各种差异,提供对物理层的统一访问接口,主要功能:组帧、拆卸帧、比特传输差错检测、透明传输
- 逻辑链路控制(LLC)子层:与传输媒体无关,向网络层提供无确认无连接、面向连接、带确认无连接、高速传送4种不同的连接服务
IEEE802协议中LLC子层作用已经不大,现在许多网卡仅装有MAC协议而无LLC协议
以太网与IEEE 802.3/DIX Ethernet V2(以太网V2标准)
- 以太网使用CSMA/CD方式
- 以太网争用期长度为51.2μs,最小短帧为64B
- 以太网逻辑上是总线形拓扑结构,信息以广播方式发送
- 以太网尽最大努力交付数据,提供不可靠服务
--
-
网络适配器(接口板、接口卡):网卡控制着主机对介质的访问,因此网卡也工作在物理层,因此它只关注比特,不关注任何地址信息和高层协议信息。
- MAC地址(物理地址):每个网卡出厂时都有唯一的介质访问控制(MAC)代码,数据链路层设备都使用各个网卡的MAC地址,一般用6个十六进制数表示
-
高速以太网:
- 100BASE-T 以太网:100Mb/s,星形拓扑结构以太网,双绞线,使用802.3协议帧格式,支持全双工(全双工模式无冲突发生,因此也不使用CSMA/CD协议)、半双工方式(使用CSMA/CD协议)
- 吉比特以太网(千兆以太网):1Gb/s,使用802.3协议帧格式,支持全双工(不用CSMA/CD协议)、半双工方式(使用CSMA/CD协议)
- 10吉比特以太网:10Gb/s,光纤,使用802.3协议帧格式,只工作在全双工方式(不用CSMA/CD协议)
以太网是可扩展的(从10Mb/s到10Gb/s)、灵活的(多种传输媒体、全/半双工、共享/交换),易于安装,稳健性好。
令牌环网与IEEE 802.5
物理上采用星形拓扑结构,逻辑上是环形拓扑结构,MAC介质控制采用令牌传递协议。不会发生碰撞,又满足各结点间通信需求,适合负载很高的广播信道。
每一站通过电缆和环接口干线耦合器(TCU)相连,数据总是从某个特定方向从上一个TCU到下一个TCU逐比特传送,每个TCU重新产生和传输每一比特。
-
环接口干线耦合器(TCU):传递所有经过的帧,为接入站发送、接受数据提供接口,拥有两个状态(收听状态和发送状态)
-
令牌(Token):一个特殊格式的MAC控制帧,不包含数据信息,仅控制信道。
传输过程:
- 空闲时,令牌在环形网游荡
- 当环上的一个站得到令牌,便可以修改令牌的一个标志位并附加数据(包含目的站地址和尾部的“响应比特”),从而编程一个数据帧
- 环上所有节点都应进行转发,目的地址和自己地址一致则复制该数据帧以进一步处理
- 转发直到该帧的始发站,始发站可通过检查“响应比特”位得知是否正确传输,若错则重传
- 始发站撤销数据帧,重新生成一个令牌,重复以上步骤
无线局域网与IEEE 802.11
MAC介质控制采用CSMA/CA协议。
无线局域网中即使发生了碰撞也要整个帧发送完毕,有线局域网中发生冲突结点立即停止发送数据
固定基础设施无线局域网:
- 基本服务集:一个基本服务集包括一个基站(接入点,作用和网桥相似)和若干移动站,所有站在本BSS内都可直接通信,与本BSS外站通信时要通过基站。
- 扩展服务集:基本服务集可以实孤立的也可以通过接入点(AP)连接到一个主干分配系统,然后再接入另一个基本服务器,构成扩展服务集;扩展服务集还可以通过门桥为无限用户提供到非无线局域网的接入(如有线连接因特网)。
无固定基础设施无线局域网自组织网络:
- 没有接入点(AP),由一些移动站互相通信组成的临时网络,各结点地位平等,有自己特定的路由选择协议,可不与因特网相连。
广域网(WAN)(PPP、HDLC)
- 广域网是因特网的核心部分
- 介质:高速链路(可以是几千千米的光缆,也可以是几万千米的点对点卫星链路)
- OSI层次:物理层、数据链路层、网络层(主要)
- 由结点交换机(不是路由器)构成连接
PPP协议(点对点协议)
- 面向字节
- 全双工通信
- 透明传输:在异步线路采用“字节填充法”,在同步线路(SONET/SDH等)采用硬件进行“0比特填充法”
- 只支持点对点链路通信,不支持多点通信(应用在直接连接两个结点的串行通信链路上)
- 支持异步线路、同步线路
- PPP两端可以运行不同网络层协议,且仍可使用同一个PPP进行通信
PPP协议最初设计目的是通过拨号或专线方式建立点对点连接发送数据
PPP协议三个组成部分:
- 链路控制协议(LCP):建立、配置、测试和管理数据链路
- 网络控制协议(NCP):为网络协议建立和配置逻辑连接
PPP协议过程:
- 线路处于静止状态时,不存在物理层连接
- 线路检测到载波信号,建立物理连接,线路变为建立状态
- LCP开始选项商定,商定成功后进入身份验证状态
- 双发身份验证通过后进入网络状态
- 采用NCP配置网络层,配置成功后进入打开状态,可以进行数据传输
- 数据传输完成后,线路转为终止状态,载波停止后回到静止状态
HDLC协议(高级数据链路控制协议)
- 面向比特
- 全双工通信
- 透明传输:硬件使用“0比特插入法”
- 提供可靠传输:对信息帧进行顺序编号(可防止漏发、重发)和确认机制
主站、从站、复合站:
- 主站:负责控制链路操作,发出的帧为命令帧
- 从站:受控于主站,按主站命令操作,发出的帧为响应帧
- 复合站:既有主站又有从站功能,可发出命令帧、相应帧
数据操作方式:
- 正常响应方式:非平衡配置,主站向从站传输数据,从站只有收到主站的许可后才能进行响应
- 异步响应方式:非平衡配置,从站未收到主站允许,也可进行传输
- 异步平衡方式:平衡配置,每个复合站都可以进行对另一方的数据传输
网络层
网络层功能
提供主机到主机的通信
复用分用
复用是指发送方不同协议的数据都可以封装成IP数据报发送出去,分用是指接收方的网络层在剥去首部后把数据交付给相应的协议。
拥塞控制
网络负载增加,若网络吞吐量反而下降=>网络可能进入拥塞状态
网络负载增加,若网络吞吐量降为0=>网络可能进入死锁状态
- 开环控制:静态预防方法,不考虑当前网络状态;开机便确定何时可接受新流量、丢弃分组等调度决策。
- 闭环控制:动态方法,基于反馈环路;检测网络系统区监视,即使检测哪里发生拥塞,将拥塞信息传到合适的地方,以便调整网络系统运行。
静态路由与动态路由
- 静态路由(非自适应路由算法):网络管理员手工配置。简便、可靠,负荷稳定、拓扑变化不大的网络中运行效果很好,广泛用于高度安全的军事系统和较小的商业系统。
- 动态路由(自适应路由算法):路由器之间交换信息,通过一定算法不断更新适应不断变化网络。
IPv4、IPv6、移动IP
IPv4分组
- 首部长度:通常是20B,占4位,单位为4字节(最大值为60B)
- 总长度:表示数据报(非分片)长度,占16位,单位为1字节(最大值为2^16-1字节)
- 标识:计数器,每产生一个数据报(非分片)加1
- 标志:MF=1表示后面还有分片,MF=0表示最后一个分片;DF=0时才允许分片
- 片偏移:分片在原分组的相对位置,偏移单位为8字节
- 首部校验和:IP数据报首部校验和只校验分组首部,不校验数据部分
- 生存时间(TTL):数据报在网络中可通过的路由器最大数,转发前需将TTL减1,若减为0则丢弃(确保分组不会永远在网络中循环)
- 协议:表示使用何种传输层协议(如TCP、UDP等)
- 源地址IP
- 目的地址IP
以太网帧最大传送单元(MTU)为1500B,原始IP数据报大小超过时需要分片,片在目的主机网络层被重新组装,通过标识、标志、片偏移来完成对片的重组
是否需要填充,看IP数据报的总⻓度,⽽不是看IP数据报的填充位,填充位为00不代表没有进⾏填充,⽽是采取了全零填充
IPv6分组
- 采用更大地址空间,扩大到128位(IPv4为32位),根本上解决IP地址耗尽问题
- 采用无类别编制CIDR
- 采用网络地址转换(NAT)以节省全球IP地址
- 增加了任播方式:目的站是一组计算机,但数据报交付时只交付其中一台计算机(通常是距离最近的一台)
- 增加身份验证和保密功能,提高安全性
- 简化了IP分组头,包含8个域(IPv4是12个域),可让路由器更快处理分组,改善吞吐率
- 只有在包的源结点才分片,是端到端的,传输路径中的路由器不能分片(一般来说,IPv6不允许分片)
- 支持即插即用(自动配置)、支持资源预分配
- 去掉了差错检测(IPv4有校验和)
- IPv6首部长度是8字节的整数倍(IPv4首部长度是4倍)
- IPv6和IPv4不兼容,但总体而言它和别的因特网协议兼容(包括TCP、UDP、ICMP、IGMP、OSPF、BGP、DNS)
IPv4向IPv6过渡:
- 双协议栈技术:一台设备同时装有IPv4,IPv6协议栈(双IP)
- 隧道技术:将IPv6数据报封装到IPv4数据报的数据部分,使得IPv6可以在IPv4网络的隧道中传输
移动IP
- 移动结点:具有永久IP地址的移动结点,设置有主地址和辅地址(转交地址),前者在本地网络使用,后者在外网临时使用(回本地网时被撤销)。
- 归属代理(本地代理):在归属网络中代表移动结点执行移动管理功能,能根据移动用户的转交地址,采用隧道技术转交移动节点的数据包
- 外部代理:在外部网络中帮助移动结点完成移动管理功能
通信过程:
- 移动结点在本地网,按传统TCP/IP方式进行通信(在本地网中有固有的地址)
- 移动结点漫游到一个外地网络,仍使用固定IP地址通信。移动结点需要向本地代理注册当前的位置地址,这个位置地址就是转交地址(可以是外部代理地址或是动态配置的一个地址)
- 本地代理接收来自转交地址的注册后,构建一条通向转交地址的隧道,将截获的发给移动结点的IP分组通过隧道送到转交地址处
- 在转交地址处解除隧道封装,恢复原始IP分组,最后送到移动结点
- 移动结点在外网通过外网的路由器或外部代理向通信对端发送IP数据包
- 移动结点来到另一个外网时,只需向本地代理更新注册的转交地址,就可以继续通信
- 移动结点回到本地网时,移动结点向本地代理注销转交地址,这时移动节点又将使用传统的TCP/IP方式进行通信
IPv4/IPv6地址、组播地址、NAT、子网划分&子网掩码&CIDR
IPv4地址
- A类:网络号{1位(0)+ 7位} + 主机号{24位}
- B类:网络号{2位(10)+ 14位} + 主机号{16位}
- C类:网络号{3位(110)+ 21位} + 主机号{8位}
- D类:4位(1110)+ 多播地址{28位}
- E类:4位(1111)+ 保留使用{28位}
特殊地址:
- 网络号为127时是环路自检地址,表示任意主机本身,目的地址为环回地址的IP数据报永远不会出现在任何网络上
- 网络号字段(即不包含分类前缀)全为0时是保留地址,表示本网络
- 主机号全为0表示本网络本身、全为1表示本网络的广播地址(直接广播地址)
- 32位全为0,即0.0.0.0表示本网络上的本主机
- 32位全为1,即255.255.255.255表示整个TCP/IP网络的广播地址(受限/本地广播地址);实际使用时,由于路由器对广播域的隔离,实际上等效为本网络的广播地址
IPv6地址
分级(IPv6采用多级体系使路由器更快查找路由):
- 第1级(*):全球都知道的公共拓扑
- 第2级(场点级):指明单个场点
- 第3级:指明单个网络接口
组播(多播)地址
- D类:4位(1110)+ 多播地址{28位},范围是224.0.0.0~239.255.255.255
- 组播地址只能用于目的地址,不能用于源地址
- 不是所有D类地址都可作为组播地址(部分按协议规定保留不使用)
- 组播数据报(与IGMP报文不同):基于UDP,不可靠交付
- 对组播数据不产生ICMP差错报文(因此PING命令键入组播地址永远不会得到响应)
IP组播分两种范围传播,首先在因特网范围的组播,最后阶段在本局域网上的硬件组播(需要映射成MAC地址):
- 以太网组播地址是01-00-5E-00-00-00~01-00-5E-7F-FF-FF(即只有后23位可用作组播)
- D类IP地址后23位和MAC地址后一一对应
如IP组播地址224.128.64.32(E0-80-40-20)=>01-00-5E-00-40-20
网络地址转换(NAT)
专用网络地址与公用地址的互相转换。
- 降低内部网络受攻击风险,对外隐藏内部管理的IP地址
- 大大节省了IP地址的消耗,整个专用网只需一个全球IP就可以与因特网连通
私有IP地址(只用于LAN,不用于WAN连接):
- A类:1个网段(24位范围),10.0.0.0~10.255.255.255
- B类:16个网段(20位范围),172.16.0.0~172.31.255.255
- C类:256个网段(16位范围),192.168.0.0~192.168.255.255
NAT路由器:
- 需要安装NAT软件,且至少有一个有效的外部全球地址
- 使用NAT转换表存放{本地IP地址:端口}到{全球IP地址:端口}的映射
- NAT转换表需要管理员维护,而不是自动添加表项
- 普通路由器转发IP数据报时不改变源IP地址和目的IP地址,而NAT路由器一定要更换其源IP地址或目的IP地址。路由器工作在网络层,而NAT路由器还需要查看传输层的端口号(工作在运输层)
子网划分&子网掩码&CIDR
子网划分:即三级IP地址,单位内部子网划分,对外仍然表现为没有划分子网
主机号不能全为0、1
无分类域间路由选择(CIDR):消除传统A、B、C类网络分类,灵活使用网络前缀长度,实现超网构造
- 大幅度提高IP地址空间利用率
- 减少路由表大小,提高路由转发能力
- 最长前缀匹配(最佳匹配),最常使用二叉线索实现
路由聚合(构成超网):网络前缀相同的连续IP地址组成“CIDR地址块”,路由表一个项目可以表示多个原来传统分类的路由,有利于减少路由器之间的路由选择信息时的交换,提高网络性能。
大题的路由聚合注意不要过度聚合
ARP、ICMP、IGMP、DHCP
地址解析协议(ARP)
解决同一个局域网上的主机或路由器的IP和硬件地址的映射问题。
- 工作层次:网络层
- ARP表:每台主机都有一个ARP高速缓存,用来存放本局域网上各主机和路由器的IP地址到MAC地址的映射表
主机A欲向主机B发送IP数据报:
- 先在ARP高速缓冲查找B的IP地址
- 若有,将其MAC地址写入MAC帧,通过局域网发送
- 若没有,通过目的MAC地址为FF-FF-FF-FF-FF-FF的帧来广播ARP请求分组(广播发送)
- 主机B若收到该ARP请求,则向主机A发出响应ARP分组(单播发送),分组包含主机B的IP和MAC地址的映射关系
- 主机A收到后将映射写入ARP缓存,并按该MAC地址发送MAC帧
若主机A和主机B不在同一个局域网:
- 需要通过ARP找到位于本局域网某个路由器的硬件地址,然后把分组发送给这个路由器
- 路由器把分组转发给下一个网络,剩下的工作是下一个网络来做。
网际控制报文协议(ICMP)
主机或路由器报告差错和异常情况。
- 工作层次:网络层
- ICMP报文:本质是IP层数据报
ICMP差错报告报文:
- 终点不可达(路由器或主机不能交付而丢弃数据报)
- 源点抑制(拥塞导致的丢弃数据报)
- 时间超过(TTL为0)
- 参数问题(数据报首部参数有错误而丢弃数据报时)
- 改变路由(重定向)
不应该发送ICMP差错报告报文:
- 对ICMP差错报告报文不再发送ICMP差错报告报文
- 对第一个分片的数据报片所有后续数据报片都不发送ICMP差错报告报文
- 对具有组播地址的数据报都不发送ICMP差错报告报文
- 对特殊地址的数据报(如127.0.0.0或0.0.0.0)不发送ICMP差错报告报文
ICMP询问报文:
- 回送请求和回答请求、时间戳请求和回答报文、掩码地址请求和回答报文、路由器询问和通告报文
常见应用:
- PING:分组网间测试连通性,使用ICMP回送请求和回答报文;工作在应用层,直接使用网络层的ICMP,而未使用传输层的TCP或UDP
- Traceroute/Tracert:跟踪分组经过路由,使用了ICMP时间超过报文;工作在网络层
因特网组管理协议(IGMP)
- 工作层次:网络层
- IGMP报文:本质是IP层数据报
注意IGMP报文时建立组播组相关,而组播报文是传输的组播内容,前者基于IP层,后者基于UDP
- 某台主机要加入新的组播组,向组播组的组播地址发送一个IGMP报文,声明自己要成为该组成员。
- 本地组播路由器收到IGMP报文后,将组成员关系转发给因特网的其他组播路由器。
- 本地组播路由器需要周期性探寻本地局域网上的主机,以便知道这些主机是否仍是组成员。
- 组播路由器探寻时,只要某个组有一台主机活跃,则组是活跃的;若某个组无一台主机响应,则不再将该组成员关系转发给其他组播路由器
组播路由器实际上就是要构造出以源主机为根节点的组播转发树,使组播转发树上的路由器不会收到重复的组播数据报。不同多播组对于不同的多播转发树;同一个多播组,对不同的源点也会有不同的多播转发树
因特网组播三种路由算法:
- 基于链路状态的路由选择
- 基于距离-向量的路由选择
- 可建立在任何路由协议之上的协议无关组播(PIM)
动态主机配置协议(DHCP)
给主机动态分配IP地址,提供即插即用联网的机制。
- 工作层次:应用层,基于UDP
- DHCP客户:主机(默认IP:0.0.0.0)启动时用广播方式(255.255.255.0)发送报文(发现报文)
- DHCP服务器:用广播方式(255.255.255.0)回答此报文(提供报文),查找该主机配置信息有则返回,无则从IP地址池取一个地址分配给该计算机
DHCP客户和服务器都需要通过广播方式交互,原因是DHCP执行期间,客户和服务端都没有标识自己的IP地址,不可以用单播方式交互,因此也只能用UDP的广播方式而不可使用TCP
路由协议(RIP、OSPF、BGP)
自治系统(AS)
单一技术管理下的一组路由器,因特网把整个互联网划分为许多自治系统(一个自治系统包含很多局域网),每个自治系统有权自主决定本系统内应采用何种路由选择协议。
- 内部网关协议(IGP):自治系统内路由选择,自治系统内部使用的路由协议,常用有RIP协议和OSPF协议等
- 外部网关协议(EGP):自治系统间路由选择,不同自治系统的路由器交换路由信息,常用有BGP-4协议等
路由信息协议(RIP)
- 工作层次:应用层,基于UDP
- 基于距离-向量算法(将距离定义为跳数)的分布式路由选择协议
- 规模限制:一条路径最多只能包含15个路由器(最多15跳),距离等于16时表示不可达
- 动态维护:RIP默认在任意两个使用RIP的路由器之间每30秒广播一次RIP路由更新信息,以便自动建立并维护路由表
- 不支持子网掩码的RIP广播,因此RIP每个网络的子网掩码必须相同(但在RIP2中支持变长子网掩码和CIDR)
所有结点定期把它们整个路由选择表(目的地,距离)传送给与之直接相邻的结点,所有结点都监听从其他结点传来的路由选择更新信息:
- 被告知的路由在本结点路由表中不存在,此时加入这条新路由
- 被告知的路由与当前使用路由相比有更短距离(最小代价)通路,此时替换旧路由
- 如果180秒内没收到相邻路由器的更新路由表,把此相邻路由器记为不可达路由器,距离设置为16
优点/缺点:
- 实现简单、开销小
- 传送的更新报文大小和路由器个数成正比,网络规模越大,开销也越大
- 网络出现故障时,会出现慢收敛现象(坏消息传得慢),容易导致“路由回路”问题
开放最短路径优先协议(OSPF)
- 工作层次:网络层
- 基于链路状态(将链路状态的度量定义为费用、距离、时延、带宽等)路由算法的分布式路由选择协议
- 多路径间的均衡负载:如果到一个目的网络有多个路径,可将通信量分配给这几条路径
- 路由结点使用同样的原始状态数据独立计算路径,而不依赖中间结点的计算
- 路由结点从其他结点接收到报文时,它可以在本地立即计算正确通路,保证一步汇聚
- 支持可变长度的子网划分和无分类编址CIDR
- 每个链路状态带上一个32位的序号,序号越大,状态越新
OSPF将一个自治系统再划分为若干区域:
- 每个路由器知道在本区域如何把分组路由到目的地的细节,但不用知道其他区域的内部结构
- 区域还有层次之分,处于上层的区域称为主干区域,负责连通其他下层的区域和其他自治域
- 减少了整个网络上的通信量,更适合用于规模很大的自治系统
OSPF的五种分组类型:
- 问候分组:用来发现和维持邻站的可达性
- 数据库描述分组:向邻站给出自己的链路状态数据库中所有链路状态项目的摘要信息
- 链路状态请求分组:向对方请求发送某些链路状态项目的详细信息
- 链路状态更新分组:用洪泛法对全网更新链路状态
- 链路状态确认分组:对链路更新分组的确认
OSPF流程:
- 确定可达性:每隔10秒,每两个相邻路由器要交换一次问候分组,以便知道那些站可达
- 全网数据库的同步:每个路由器使用数据库描述分组和相邻路由器交换本数据库已有链路状态摘要信息;路由器使用链路状态请求分组向对方请求发送自己所缺少的某些链路状态项目的详细信息。
- 状态变化下的同步:
- 路由器主动测试所有链路的状态
- 链路状态发生变化时,路由器才向本自治系统中所有其他结点(泛洪法)发送链路状态更新分组
- 链路状态数据库的同步:路由节点根据这些状态信息去更新自己的链路状态数据库
- Dijkstra计算路由:对更新的网络图利用Dijkstra算法从单一源出发计算到所有目的结点的最短路径(虽然可计算出完整最优路径,但路由表不会存储完整路径,而只存储“下一跳”)
- 更新完后发送链路状态确认分组对更新分组进行确认
为了确保全网状态与链路状态数据库一致,OSPF还规定每隔一段时间(如30分钟)刷新一次数据库中的链路状态
优点:
- 链路状态报文不加改变地传播,采用该算法易于查找故障
- 链路状态报文仅运载来自单个结点关于直接链路的信息,其大小与网络的路由结点数量无关
- 收敛速度快,不会出现RIP慢收敛导致的“路由回路”问题
- OSPF更适合规模大的网络(比RIP好很多)
边界网关协议(BGP)
- 工作层次:应用层,基于TCP
- BGP交换路由信息的节点数量是自治系统的数量级,比自治系统中网络数少很多
- 每个自治系统中BGP发言人(边界路由器)数目很少,路由选择不致于过分复杂
- BGP支持CIDR,因此BGP路由表也包括目的网络前缀、下一跳路由器,以及到达该目的网络要经过的各个自治系统序列
- BGP刚运行时,BGP的邻站交换整个BGP路由表,但以后只需要在发生改变时更新有变化的部分,节省网络带宽和处理开销
BSP流程:
- 每个自治系统管理员要选择至少一个路由器(可以有多个)作为该自治系统的BGP发言人
- BGP发言人要与其他自治系统中的BGP发言人交换路由信息,要先建立TCP连接,然后在此连接交换BGP报文以建立BGP会话,再利用BGP会话交换路由信息
- 所有BGP发言人都交换网络可达性信息(要达到某个网络所要经过的一系列AS)后,各BGP发言人就可以找出到达各个自治系统的较好路由
每个BGP发言人除必须运行BGP外,还必须运行该AS所用内部网关协议,如OSPF、RIP
BGP-4的四种报文:
- 打开报文:用来与相邻的另一个BGP发言人建立关系
- 更新报文:用来发送某一路由的信息,以及列出要撤销的多条路由
- 保活报文:用来确认打开保温并周期性地证实邻站关系
- 通知报文:用来发送检测地错误
类型 | 路由算法 | 传递协议 | 路径选择 | 交换结点 | 交换内容 | |
---|---|---|---|---|---|---|
RIP | 内部 | 距离-向量 | UDP | 跳数最少 | 和本结点相邻的路由器 | 当前本路由器知道的全部信息,即自己的路由表 |
OSPF | 内部 | 链路状态 | IP | 代价最低 | 网络中所有路由器 | 与本路由器相邻的所有路由器的链路状态 |
BGP | 外部 | 路径-向量 | TCP | 较好,非最佳 | 和本结点相邻的路由器 | 首次:整个路由表,非首次:变化的部分 |
传输层
传输层功能
提供端到端的通信
支持复用分用
复用指发送方不同应用进程可使用一个传输层协议传送数据;分用指接收方传输层剥去报文首部后能够将这些数据正确交付给目的应用进程。
差错检错
检查首部和数据部分(网络层只检查IP数据报首部)
同时提供两种协议
传输层提供无连接的UDP和面向连接的TCP,而网络层不可能同时存在这两种方式(即要么提供面向连接的服务(虚电路),要么只提供无连接服务(数据报))
端口号
IANA(互联网地址指派机构)规定:
- 熟知端口号:0~1023,分配给TCP/IP最重要的一些应用程序
- 登记端口号:1024~49151,提供没有熟知端口号的应用程序使用,但需在IANA登记
- 断站端口号(临时端口号):49152~65535,在客户进程运行时动态选择
套接字(Socket)
套接字 =(主机IP地址,端口号),唯一标识网络中一台主机上的一个应用进程
UDP
- UDP 是面向报文的,无需建立连接,因此不会引入建立连接的时延
- UDP 首部只有8字节
- UDP 使用尽最大努力交付,即不保证可靠交付
- UDP 不使用拥塞控制(从而低延迟)
- UDP 支持一对一、一对多、多对一和多对多的交互通信
- UDP 常用于一次性传输较少数据的网络应用(如DNS、SNMP)、适合多媒体通信的要求(IP电话、实时视频、流媒体)
UDP数据报首部
- 源端口、目的端口:各占2B
- 长度:占2B,UDP数据报长度(包含首部和数据),最小值是8B(基本单位是1B)
- 校验和:占2B,可选的(不想计算时可置为0)
若接收方发现目的端口不正确(即不存在对应于端口号的应用进程),就丢弃该报文,并由ICMP发送“端口不可达”差错报文给发送方
UDP校验
伪首部:计算校验和之前,需要增加12B的伪首部,这样校验和既可以检查了UDP数据报,又可以对IP地址和目的IP地址进行校验
校验方法:
- 发送方把校验内容分成许多16位的字(不为偶数个字节时补上全0字节,但是此字节不发送此),每个用二进制反码计算出这些16位字的和,并将此和的二进制反码写入校验和字段
- 接收方按二进制反码计算这些16位字的和(不为偶数个字节时补上全0字节),无差错时结果应全为1;如果UDP校验出是错误的,则可以丢弃。
TCP
- TCP 是面向连接的
- TCP 首部开销相对大点,有20字节
- TCP 提供可靠交付的服务
- TCP 面向字节流
- TCP 提供全双工通信。每一条 TCP 连接只能是点对点的(一对一)
TCP数据报首部结构
- 源端口、目的端口:各占2B
- 序号字段:占4B,本报文段所发送的数据的第一个字节的序号
- 确认号字段:占4B,期望收到对方下一个报文段数据的第一个字节的序号
- 数据偏移(首部长度):占4位,表示TCP报文首部长度,长度单位是4B
- 紧急位URG:URG=1时,表示紧急指针字段有效,用于告诉系统有紧急数据(高优先级数据)
- 确认位ACK:ACK=1时,确认号字段才有效(建立连接后所有传送报文段必须把ACK置1)
- 推送位PSH:PSH=1时,尽快交付给进程,而不再等到整个缓存填满后再交付
- 复位位RST:RST=1时,表示TCP连接出现严重差错(如主机崩溃),必须释放连接,然后再重新建立
- 同步位SYN:SYN=1、ACK=0时,是连接请求报文;SYN=1、ACK=1时,是连接响应报文
- 终止位FIN:FIN=1时,表示此报文段的发送方的数据已发送完毕,并要求释放传输连接
- 窗口字段:占2B,允许对方发送的窗口大小,单位为1B
- 校验和:占2B,校验内容=首部+数据+伪首部(与UDP伪首部类似,仅个别字段值不同)
- 紧急指针字段:占16位,第一个字节到紧急指针所指字节就是紧急数据
- 填充字段:使整个首部长度是4B的整数倍
TCP连接管理
TCP运输连接有三个阶段:
- 连接建立
- 数据传送
- 连接释放
连接建立(三次握手):
- A向B发出连接请求报文段(同步位SYN=1)
- B收到连接请求报文段后,如同意则发回确认(同步位SYN=1,确认位ACK=1)
- A收到此报文段后向B给出确认报文(确认位ACK=1);然后A的TCP通知上层应用进程,连接已经建立
- B收到A的确认后,也通知其上层应用进程:TCP连接已经建立
连接释放(四次挥手):
- A向B发出连接释放报文段(终止位FIN=1),并停止再发送数据,主动关闭TCP连接,等待B的确认
- B接收到连接释放报文后,发出确认报文(确认位ACK=1);从A到B这个方向的连接就释放了,TCP连接处于半关闭状态(但B若发送数据,A仍要接收)
- 若B已经没有要向A发送的数据,则也类似1步骤主动释放连接,发送连接释放报文(终止位FIN=1)
- A收到连接释放报文段后,必须发出确认报文(确认位ACK=1);TCP连接必须经过时间2MSL后才真正释放掉
通信的双方都可主动释放连接。
服务器结束TCP连接时间比客户机早一些,客户机最后要等2msl才可进入CLOSED状态
TCP可靠传输
序号机制:
- 序号建立在字节流之上,而不是报文段之上
- 序号字段:指本报文段所发送的数据的第一个字节的序号(如一报文段序号字段值是301,携带100B数据,那么下一个报文段数据序号应从401开始)
确认机制:
- 发送方使用连续ARQ协议(滑动窗口),维持一个发送窗口
- 接收方使用累计确认,收到几个分组后,对按序到达的最后一个分组发送确认(表示到这个分组为止的所有分组都已经正确接收到了)
重传机制:
- 超时重传:发送方每发送一个报文段就要对该报文段设置一次计时器,超时需要重传(TCP采用一种自适应算法,记录报文段的往返时间RTT并根据加权平均算法来设置超时重传时间)
- 冗余ACK(冗余确认):接收方每当比期望序号大的失序报文段到达时,就发送一个冗余ACK,指明下一个期望的序号,这样发送方收到冗余ACK后就只对期望序号执行重传。
TCP流量控制
目的:消除发送方使接收方缓冲区溢出的可能性(相当于一个速度匹配服务)
传输层流量控制的是端到端用户之间的流量控制,数据链路层控制的是两个相邻结点的流量控制。此外数据链路层滑动窗口协议不能动态变化,而传输层可以动态变化。
- 接收窗口(rwnd):接收方根据目前接受缓存大小所许诺的最新窗口值,反映接收方容量;由接收方根据其在TCP报文的首部的窗口字段通知对方。
- 拥塞窗口(cwnd):发送方根据自己估算的网络拥塞程度来确定的窗口值,反应网络的当前容量;
- 发送窗口:根据rwnd、cwnd来限制大小,发送窗口大小取 \(\min\{rwnd,cwnd\}\)
TCP拥塞控制
目的:防止发送方过多的数据字节注入网络,保证网络不会拥塞。
慢开始门限(ssthresh):无论在哪个阶段,只要发送方判断网络中出现拥塞(没有按时收到确认),就要把慢开始门限ssthresh置为出现拥塞时发送窗口的一半,然后将cwnd置1,重新执行慢开始算法。
拥塞控制考虑的是网络的全局性过程,涉及途径网络的主机、路由器等;流量控制关注地是点对点的通信量控制。
慢开始、拥塞避免:
- 慢开始算法:初始拥塞窗口cwnd置为1;每经过一个传输轮次(往返时延RTT),cwnd 加倍
- 拥塞避免算法:每经过一个传输轮次(往返时延RTT),cwnd 加1
拥塞控制流程:
- 当cwnd < ssthresh时,使用上述的慢开始算法
- 当cwnd > ssthresh时,停止使用慢开始算法而改用拥塞避免算法
- 当cwnd = ssthresh时,既可以使用慢开始算法,也可使用拥塞避免算法(通常做法)。
- 在开始的时候将拥塞窗口cwnd置为1,慢开始门限的初始值ssthresh设置为16。
- 在执行慢开始算法时,cwnd随着传输轮次按指数增长,超过ssthresh时(cwnd>=ssthresh=16),开始执行拥塞避免算法,cwnd按照线性规律增长。
- 假设cwnd增长到24时,网路出现超时,很可能拥塞,所以ssthresh值变为原来的一半(ssthresh=12),cwnd置1,并执行慢开始算法,当cwnd再次达到门限值时,改为拥塞避免算法。
快重传、快恢复:
- 快重传算法:使用冗余ACK来检测包的丢失,同样冗余ACK也用于网络拥塞的检测(丢包也可能意味着网络出现拥塞)发送方连续收到三个重复的ACK报文时,直接重传对方尚未收到的报文段,而不必等待对应的重传计时器超时。
- 快恢复算法:发送端收到连续三个冗余ACK(即重复确认)时,把初始拥塞窗口cwnd置为ssthresh的大小,然后开始执行拥塞避免算法。
应用层
常见应用层端口
协议 | 端口 | |
---|---|---|
FTP数据连接 | TCP | 20 |
FTP控制连接 | TCP | 21 |
TELENT | TCP | 23 |
SMTP | TCP | 25 |
DNS | UDP | 53 |
TFTP | UDP | 69 |
HTTP | TCP | 80 |
POP3 | TCP | 110 |
SNMP | UDP | 161 |
客户/服务器(C/S)模型
- 常见应用:Web、文件传输协议(FTP)、远程登陆、电子邮件
- 地位不对等、扩展性不强、客户机不直接通信
P2P模型
- 常见应用:PPlive、Bittorrent、电驴
- 减轻对某个特定服务器的依赖和压力、提高网络系统效率、多机直接共享文档、可扩展性强、健壮性强
域名系统(DNS)
- 基于UDP,端口53
- C/S模型
根、*、授权、本地域名服务器
- 根 域名服务器:最高层次的域名服务器(无论哪个本地域名服务器都可知),管辖*域(如.com)
- * 域名服务器:管理二级域名(如hao123)
- 授权 域名服务器(权限 域名服务器):总能将其管辖的主机转换为该主机的IP地址(实际上许多域名服务器同时充当授权+本地域名服务器)
- 本地 域名服务器:负责接受本地主机的DNS查询请求
域名解析过程
- 递归查询:本地查询根、根查询*;*查询授权;递归返回结果
- 迭代查询:本地查询根,根返还*;本地查询*,*返还授权;本地查询授权,授权返还结果
各级域名服务器还可以采用高速缓存技术,提高DNS查询效率,减少DNS查询报文数量。
DNS高速缓存
文件传输协议(FTP)
- 基于TCP,端口21(服务端控制连接)、端口20(服务端数据连接)
- C/S模型
- 适合异构网络中任意计算机之间传送文件
控制连接(带外传送)
- 服务器控制连接进程监听21号端口,整个会话一直保持打开状态,等待客户连接(客户自定义端口)
- 收到客户传输请求后,创建数据连接进程
- 用来传输控制信息(如连接请求、传送请求),均以7位ASCII格式传送
数据连接
- 服务器数据连接进程通过20号端口传输数据,一次数据传输完毕后就关闭
电子邮件(SMTP、POP3)
推送协议:简单邮件传输协议(SMTP)
- 基于TCP,端口25
- C/S模型
- 不使用中间邮件服务器,TCP连接总是直接建立在发送方和接收方之间。
多用途网际邮件扩充(MIME)
STMP只支持传送7位ASCII码,而MIME则是沿用目前格式但扩充编码规则用于传送其他二进制对象
拉取协议:邮局协议(POP3)
- 基于TCP,端口110
- C/S模型
拉取协议:因特网报文存取协议(IMAP)
- 比POP复杂得多,额外提供创建文件夹、在不同文件夹移动邮件、在远程文件夹中查询邮件的命令,也允许用户代理只获取报文的部分内容(适合大邮件、低宽带)
万维网(WWW)
HTTP
- 基于TCP,端口80
- C/S模型
- HTTP报文面向文本(ASCII码串),不定长度
HTTP协议本身是无状态的,每次网页访问都提出单独的一次HTTP请求(建立一次TCP连接)。
两种连接方式:
- 非持久连接:每个网页元素(如JPEG图形、Flash)单独建立一个TCP连接
- 持久连接:万维网服务器发送响应后仍保持连接,从而可持续传送后续HTTP请求和响应报文
- 非流水线(HTTP/1.0):收到前一个响应后才能发出下一个请求,每个引用必须有1个RTT延迟
- 流水线(HTTP/1.1):每有一个对象引用就立即发出一个请求,从而可逐个连续发出各个引用对象的请求,所有引用对象共经历1个RTT延迟
非持久连接下,请求一个万维网文档所需的时间是该文档的传输时间+两倍往返RTT(一个RTT用于TCP连接,另一个RTT请求和接收文件)
HTTP报文
- GET:请求读取由URL标识的信息(对象)
- HEAD:请求读取由URL标识的信息的首部
- POST:给服务器添加信息(不获取任何响应报文,例如添加注释)
- CONNECT:用于代理服务器(close为非持续连接,keep alive为持续连接)
各层设备
物理层设备(放大器、中继器、集线器)
放大器
- 功能:将信号直接放大
中继器(转发器)
- 功能:一个端口接受到数据信号后,将信号整形并放大(再生)再立即转发到另一个端口。
- 作用域:物理层,仅作用于信号的电气部分
- 处理对象:信号
- 不支持存储转发:因而不能连接两个速率不同的网段,不支持不同协议(上层协议除外)
特点:
- 用中继器连接的几个网段仍然是一个局域网
- 扩大网络规模最简单、最廉价的互联设备
采用粗同轴电缆的10BASE5以太网规范中,串联的中继器个数不能超过4个,且相连的5段通信介质只有3段可以挂接计算机,其余两段只能用作扩展通信范围的链路段,即“5-4-3规则”
集线器(Hub)
本质上是多端口的中继器
- 功能:一个端口接受到数据信号后,对该信号进行整形放大(再生)到发送时的状态,紧接着转发到其他所有处于工作状态的端口。
- 作用域:物理层,仅作用于信号的电气部分
- 处理对象:信号
- 不支持存储转发:因而不能连接两个速率不同的网段,不支持不同协议(上层协议除外)
如果同时有两个或多个端口输入,输出时会发生冲突,致使这些数据都无效。
特点:
- Hub每个端口连接的网络部分是同一个网络的不同网段
- 不具备信号定向传送能力,是一个标准的共享式设备
- 使用双绞线组建共享网络
- 由Hub组成的网络是共享网络,但逻辑上是一个总线网,只能半双工状态下工作。
集线器在一个时钟周期中只能传输一组信息,如果一台集线器连接及其数目较多,且经常需要同时通信,会导致信息碰撞,工作效率会很差。
数据链路层设备(网桥、局域网交换机)
网桥(桥接器)
- 工作层次:数据链路层(MAC子层)
- 处理对象:帧
- 具备寻址和路径选择能力,确定帧的传输方向
- 采用存储转发
- 不同协议:支持不同物理层协议、数据链路层协议
优点:
- 隔离碰撞域,过滤通信量:使连接的各个网段相对独立,一个网段的故障不会影响到另一个网段
- 互联不同物理层、不同MAC子层、不同速率、不同类型的局域网
缺点:
- 任一时刻通常只能执行一个帧的转发操作
- MAC子层没有流量控制功能(流量控制所需的编号机制实现在LLC子层)
- 不同MAC子层的网段桥接在一起时需要进行帧格式转换
- 网桥适合用户不多通信量不大的局域网,否则因传播过多广播信息产生网络拥塞(广播风暴)
透明网桥(选择的不是最佳路由):
- 透明网桥每收到一个帧,记录其源地址和进入网桥的端口,作为转发表的一项
- 如果源LAN和目的LAN相同,丢弃该帧;如果源LAN和目的LAN不同,转发该帧
- 如果目的LAN未知,扩散该帧
- 路由选择由途径的各个网桥负责
- 即插即用设备(自学习)
透明网桥使用无环生成树算法以确保源到每个目的地只有唯一路径(避免转发帧在网络中不停兜圈子),生成树使整个扩展局域网逻辑上形成树形结构,但生成树一般不是最佳路由。
源路由网桥(选择的是最佳路由):
- 未知路径前,源站以广播方式向目的站发送一个发现帧作为探测之用
- 途中网桥转发此帧,最终可能发现帧从多个途径到达目的站
- 目的站也将一一发送应答帧,原路返回时经过的网桥把自己标志记录在应答帧里
- 源站选择一个最优路由(发送帧往返时间最短)并记录该路由信息
- 路由选择由源站负责
- 非即插即用设备(需要先探查位置路径)
- 源路由可使通信量负载较平均地分配给并联两个以太网的每个源路由网桥
- 发现帧的数量级增长,可能会使网络严重拥塞
- 发现帧可以帮助源站确定整个网络可以通过的帧的最大长度
局域网交换机(以太网交换机)
本质上说,以太网交换机是一个多端口的网桥
- 工作层次:数据链路层
- 处理对象:帧
- 即插即用设备(自学习)
- 一般工作在全双工方式(注意半双工方式计算总带宽除半,但各端口速率仍占满)
- 以太网交换机的每个端口都直接与单台主机相连(普通网桥的端口往往连接到以太网的一个网段)
- 不同协议:支持不同物理层协议、数据链路层协议
- 不支持连接异构网络
优点:
- 具备寻址和路径选择能力
- 隔离碰撞域,过滤通信量
- 可实现虚拟局域网(VLAN)技术:隔离冲突域+隔离广播域
- 交换机可同时连通多对端口,使每对相互通信的主机都能无碰撞地并行传输数据
- 有专用交换结构芯片,转发速度比网桥快
转发过程:
- 检查以太端口来的数据帧的源MAC地址和目的地MAC地址
- (自学习)若数据帧源MAC地址不在查找表中,该MAC地址+对应的端口加入查找表
- 若数据帧目的MAC不在查找表中,以广播的形式扩散(但不转发给源端口)
- 若数据帧目的MAC在查找表中,则发送给相应的目的端口
两种交换方式:
- 直通交换:只检查帧目的地址(即接受6B),接收后几乎能马上传出去。速度快但缺乏安全性,也无法支持不同速率的端口的交换。
- 存储转发:先将接收到的帧缓冲到高速缓冲器,并检查数据是否正确,确认无误后通过查找表转换成输出端口将该帧发送出去,若发现帧有错则丢失。可靠性高,能支持不同速率端口转换,但延迟较大。
网络层设备(路由器)
路由器
- 工作层次:网络层
- 处理对象:数据报
- 不同协议:面向协议,同时提供多种协议支持,包括OSI、TCP/IP、IPX协议
- 支持连接异构网络
- 默认地址IP地址和子网掩码都应设置为0.0.0.0
路由选择:涉及多个路由器,路由器按照一定路由算法根据得到的网络拓扑变化情况,动态改变路由,由此构造整个路由表。
转发:涉及单个路由器,转发表通过路由表得出,路由器根据转发表将收到的IP数据报从合适的端口转发出去(实际上就是IP地址到MAC地址的映射)
IP地址与硬件地址
- IP分组通过多次路由转发到达目标网络后,改为在目标局域网中通过数据链路层的MAC地址以广播方式寻址
- 路由器只根据目的IP地址的网络号进行路由选择
- IP数据报被转发时,数据链路层封装所使用的MAC地址是不断改变的
- IP分组被转发时,在每个网络中都被路由器解封装和重新封装
- 路由器互联多个网络,因此不仅有多个IP地址(且网段不同)也有多个硬件地址
得到下一跳路由器IP地址应转换为MAC地址并放到MAC帧首部,从而根据这个MAC地址找到下一跳路由器。不同网络传输时,MAC帧的源地址和目的地址都要发生变化,而网桥在转发帧时不改变帧的源地址。
直接交付不用写出下一跳IP,间接交付才需要