计算机网络
一、基本知识
1.1.计算机网络的概念
使一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递。是互联的、自治计算机集合
1.2.计算机网络的功能
- 数据通信
Data Communicaions
– 连通性- 资源共享
Resource Sharing
– 硬件、软件、数据- 分布式处理 – 多台计算机各自承担同一工作任务的不同部分
- 提高可靠性
- 负载均衡
1.3.计算机网络的组成
1.3.1 - 组成部分
- 硬件
Hardware
、软件Software
、协议Protocol
1.3.2 - 工作方式
- 边缘部分 – 用户直接使用
C/S
方式
P2P
方式- 核心部分 – 为边缘部分服务
1.3.3 - 功能组成
- 通信子网
Communication Subnet
– 实现数据通信- 应用层、表示层、会话层
- 资源子网
Resource Subnet
– 实现资源共享/数据处理- 网络层、数据链路层、物理层
1.4.计算机网络的分类
1.4.1 - 按分布范围分
- 广域网
WAN
- 城域网
MAN
- 局域网
LAN
- 个人局域网
PAN
1.4.2 - 按使用者分
- 专用网
- 公用网
1.4.3 - 按交换技术分
- 电路交换
- 报文交换
- 分组交换
1.4.4 - 按拓扑结构
- 总线型
- 星型
- 环型
- 网状型
1.4.5 - 按传输技术分
- 广播式网络 – 共享公共通信信道
- 点对点网络 – 使用分组存储转发和路由选择机制
1.5.计算机网络的性能指标
1.5.1 - 速率
即数据率或数据传输率或比特率
1.5.2 - 带宽
原本指某个信号具有的频带宽度,即最高频率与最低频率之差,单位是赫兹 Hz,在计算机网络中,用来表示网络的通信线路传送数据的能力,通常是指单位时间内从网络中的某一点到另一点所能通过的最高数据率。单位是比特每秒,
b/s
,kb/s
,Mb/s
,Gb/s
1.5.3 - 吞吐量
表示在单位时间内通过某个网络(或信道/接口)的数据量,受网络的带宽和网络的额定速率的限制
1.5.4 - 时延
指数据(报文/分组/比特流)从网络的一端传送到另一端所需的时间。也叫延迟或迟延,单位是
s
发送时延
从主机上将数据全部放在信道上所需的时间
传播时延
- 是数据在信道中传输所需的时间
排队时延
在路由器转发中所等待的时间
处理时延
- 路由器在对数据进行检错等处理时所需的时间
1.5.5 - 时延带宽积
又称比特为单位的链路长度,某段链路现在有多少比特。– 时延带宽积(
bit
) = 传播时延(s
) × 带宽(b/s
)
1.5.6 - 往返时延RTT
从发送方发送数据开始,到发送方收到接收方的确认(接收方收到数据后立刻发送确认),总经历的时延,RTT越大,在收到确认之前可以发送的数据越多
- 往返传播时延 = 传播时延 × 2
- 末端处理时间
1.5.7 - 利用率
- 信道利用率
- 网络利用率
二、分层结构
发送文件前要完成的工作
- 发起通信的计算机必须将数据通信的通路进行激活
- 要告诉网络如何识别目的主机
- 发起通信的计算机要查明目的主机是否开机,并且与网络连接正常
- 发起通信的计算机要弄清楚,对方计算机中的文件管理程序是否已经做好准备工作
- 确保差错和意外可以解决
2.1.为什么要分层?
从发送文件前要完成的工作中可以感受到,任务比较多、杂,所以就有了分层的概念
2.2.分层的基本原则
- 各层之间相互独立,每层只实现一种相对独立的功能
- 每层之间界限自然清晰,易于理解,相互交流尽可能少
- 结构上可以分隔开,每层都采用最合适的技术来实现
- 保持下层对上层的独立性,下层向上层提供服务,上层使用下层所提供的服务
- 整个分层结构应该能促进标准化工作
2.3.分层的专用术语
2.3.1 - 实体
第n层中的活动元素称为n层实体,同一层的实体叫对等实体
2.3.2 - 协议
为进行网络中的对等实体数据交换而建立的规则、标准或规定成为网络协议
- 语法 – 规定传输数据的格式
- 语义 – 规定所要完成的功能
- 同步 – 规定各种操作的顺序
上层使用下层服务的入口
2.3.3 - 服务
下层为相邻上层提供的功能调用
2.3.4 - 协议数据单元 PDU
对等层之间传送的数据单元
PDU
=PCI
+SDU
- 服务数据单元
SDU
:为完成用户所要求的功能而应传送的数据- 协议控制信息
PCI
:控制协议操作的信息
2.4.OSI参考模型
目的:支持异构网络系统的互联互通
国际标准化组织(
ISO
)于1984年提出开放系统互连(OSI
)参考模型
2.4.1- 应用层Application Layer
所有能和用户交互产生网络流量的程序
典型的服务:
- 文件传输 –
FTP
- 电子邮件 –
SMTP
- 万维网 –
HTTP
2.4.2 - 表示层Presentation Layer
用于处理在两个通信系统中交换信息的表示方式(语法和语义)
功能:
- 数据格式变换
- 数据加密解密
- 数据压缩恢复
2.4.3 - 会话层Session Layer
向表示层实体/用户进程提供建立连接并在连接上有序地传输数据,这是会话,也是建立同步(
SYN
)功能:
- 建立、管理、终止会话
- 使用校验点可使会话在通信失效时从校验点/同步点继续恢复通信,实现数据同步
主要协议:
ADSP
ASP
2.4.4 - 传输层Transport Layer
负责主机中两个进程的通信,即端到端的通信。传输单位是报文段或用户数据报
功能:
- 可靠传输、不可靠传输
- 差错控制
- 流量控制
- 复用分用
- 复用 – 多个应用进程可同时使用下面传输层的服务
- 分用 – 运输层把收到的信息分别交付给上面的应用层中相应的进程
主要协议:
- TCP
- UDP
2.4.5 - 网络层Network Layer
主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。网络层传输单位是数据报
功能:
- 路由选择
- 流量控制
- 差错控制
- 拥塞控制
主要协议
- IP
- IPX
- ICMP
- IGMP
- ARP
- RARP
- OSPF
2.4.6 - 数据链路层Datalink Layer
主要任务是把网络层传下来的数据报组装成帧。
功能:
- 成帧(定义帧的开始和结束)
- 差错控制
- 流量控制
- 访问控制 – 控制对信道的访问
主要协议:
- SDLC
- HDLC
- PPP
- STP
2.4.7 - 物理层Physical Layer
主要任务就是在物理媒体上实现比特流的透明传输(不管所传的是什么样的比特组合,都应当能够在链路上传送),传输单位是bit
功能:
- 定义接口特性
- 定义传输模式
- 单工
- 半双工
- 双工
- 定义传输速率
- 比特同步
- 比特编码
主要协议:
- RJ45
- 802.3
2.5.TCP/IP模型
与OSI参考模型的相同点
- 都分层
- 基于独立的协议栈的概念
- 可以实现异构网络的互联
与OSI参考模型的不同点
OSI
定义了三点:服务、协议、接口
OSI
先出现,参考模型先于协议出现,不偏向特定协议
TCP/IP
设计之初就考虑到异构互联网的问题,将IP
作为重要层次
OSI TCP/IP 网络层 无连接+面向连接 无连接 传输层 面向连接 无连接+面向连接
2.5.1 - 应用层Application Layer
应用层对应用程序的通信提供服务
应用层协议定义:
- 应用进程交换的报文类型,请求还是响应
- 各种报文类型的语法,如报文中的各个字段及其详细描述
- 字段的语义,即包含在字段中的信息的含义
- 进程何时,如何发送报文,以及对报文进行响应的规则
主要功能:
- 文件传输、访问和管理
- 电子邮件
- 虚拟终端
- 查询服务和远程作业登录
2.5.2 - 传输层Transport Layer
为应用层提供通信服务,使用网络层的服务
主要功能:
- 传输层提供进程和进程之间的逻辑通信
- 复用和分用
- 对收到的报文进行差错检测
- 传输层的两种协议
2.5.3 - 网络层Network Layer
主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。
传输单位:数据报
功能:
- 路由选择与分组转发
- 异构网络互联
- 拥塞控制
- 开环控制
- 闭环控制
2.5.4 - 数据链路层 Datalink Layer
负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据报
再物理层提供服务的基础上,向网络层提供服务,其最基本的服务是将源自于网络层来的数据可靠地传输到相邻结点地目的网络层。其主要作用是加强物理层传输原始比特流地功能,将物理层提供地可能出错地物理连接改造成为逻辑上无差错地数据链路,使之对网络层表现为一条无差错地链路
2.5.5 - 物理层Physical Layer
解决如何在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。
主要任务:
- 确定与传输媒体接口有关的一些特性
- 机械特性:定义物理连接的特性,规定物理连接时所采用的规格、接口形状、引线数目、引脚数量和排列情况
- 电器特性:规定传输二进制位时,线路上信号的电压范围、阻抗匹配、传输速率和距离限制等
- 功能特性:指明某条线上出现的某一电平表示的含义,接口不见的信号线的用途
- 规程特性:(过程)定义各条物理线路的工作规程和时序关系
三、物理层
3.1.数据通信的基础知识
通信的目的是传送消息
3.1.1 - 专用名词
3.1.1.1.数据
传送信息的实体,通常是有意义的符号序列
3.1.1.2.信号
数据的电气/电磁的表现,是数据在传输过程中的存在形式
- 数字信号:代表消息的参数取值是离散的
- 模拟信号:代表消息的参数取值是连续的
3.1.1.3.信源
产生和发送数据的源头
3.1.1.4.信宿
接收数据的终点
3.1.1.5.信道
信号的传输媒介。一般用来表示向某一个方向传送信息的介质,因此一条通信线路往往包含一条发送信道和一条接收信道
- 传输信号 – 模拟信道、数字信道
- 传输介质 – 无线信道、有线信道
3.1.2 - 三种通信方式
3.1.2.1.单工通信
只有一个方向的通信,而没有反方向的交互,只需要一条信道
3.1.2.2.半双工通信
通信的双方都可以发送或接收信息,但任何一方都不能同时发送和接收,需要两条信道
3.1.2.3.全双工通信
通信双方可以同时发送和接收信息,也需要两条信道
3.1.3 - 两种数据传输方式
3.1.3.1.串行传输
8个比特排好队,一个一个的到达接收端
- 速度慢,费用低,适合远距离,只需1条线
3.1.3.2.并行传输
8个比特可以同时到达接收端
- 速度快,费用高,适合近距离,需要8条线
3.2.码元、波特、速率、带宽
3.2.1 - 码元
码元指一个固定时长的信号波形(数字脉冲),代表不同离散数值的基本波形,是数字通信中数字信号的计量单位,这个时长内的信号称为k进制码元,而该时长成为码元宽度。当码元的离散状态有M个时(M大于2),此时码元为M进制码元。
- M进制码元:一般为二进制码元,每个码元代表1
bit
。高电平表示1,低电平表示0。也有更高进制的码元,比如四进制码元,每个码元代表2bit
。00是电平最低的,01稍微高一点,10再高一点,11是电平最高的时候
3.2.2 - 速率
也叫数据率,是指数据的传输速率,表示单位时间内传输的数据量,可以用码元传输速率和信息传输速率表示
- 码元传输速率:
- 别名码元速率/波形速率/调制速率/符号速率,他表示单位时间内数字通信系统所传输的码元个数(也可以称脉冲个数或信号变化的次数)。简单来说就是1s内可以传输多少个码元
- 单位是波特
Baud
(1Baud
=1码元/s),1波特表示数字通信系统每秒传输一个码元。- 这里的码元可以是多进制的,也可以是二进制的,但码元速率与进制无关,就是说,码元就是一个电平嘛,一个电平代表1
bit
也是那么久,代表2bit
也是那么久- 信息传输速率:
- 别名信息速率/比特率,表示单位时间内数字通信系统传输的二进制码元个数(比特数),简单来说就是1s可以传输多少个比特
- 单位是比特/秒
bit/s
- 两者关系:
- 当1
Baud
携带1bit
的数据时,则5Baud
的码元传输速率所对应的信息传输速率为 5×1=5bit/s
- 当1
Baud
携带2bit
的数据时,则5Baud
的码元传输速率所对应的信息传输速率为 5×2=10bit/s
3.2.3 - 带宽
表示再单位时间内从网络中的某一点到另一点所能通过的最高数据率,常用来表示网络的通信线路所能传输数据的能力。单位是
b/s
3.2.4 - 练习
某一数字通信系统传输的是四进制码元,4s传输了8000个码元,求系统的码元传输速率是多少?信息传输速率是多少?若另一通信系统传输的是十六进制码元,6s传输了7200个码元,求他的码元传输速率是多少?信息传输速率是多少?并指出哪个系统传输速率快?
- 码元传输速率:8000/4=2000
Baud
- 信息传输速率:2000*2=4000
b/s
- 码元传输速率:7200/6=1200
Baud
- 信息传输速率:1200*4=4800
b/s
3.3.奈氏准则和香农定理
失真:影响失真程度的因素:码元传输速率、信号传输距离、噪声干扰和传输媒介质量
码间串扰:接收端收到的信号波形失去了码元之间清晰界限的现象
3.3.1 - 奈氏准则(奈奎斯特定理)
在理想低通(无噪声、带宽受限)条件下,为了避免码间串扰,极限码元传输速率为2W
Baud
,W是信道带宽,单位是赫兹Hz
理想低通信道下的极限数据传输率 = 2Wlog2 V (
b/s
)V – 几种/几进制码元
- 在任何信道中,码元传输速率是有上限的。若传输速率超过此上线,就会出现严重的码间串扰问题,使接收端对码元的完全识别成为不可能的。
- 信道的频带越宽(即能够通过的信号高频分量越多),就可以用更高的速率进行码元的有效传输
- 奈氏准则给出了码元传输速率的限制,但并没有对信息传输速率给出限制
- 由于码元的传输速率受奈氏准则的制约,所以要提高数据的传输速率,就必须设法使每个码元能携带更多的比特信息量,这就需要采用多元制的调制方法。
练习
在无噪声的情况下,若某通信链路的带宽为3kHz,采用4个相位,每个相位具有4种振幅的QAM调制技术,则该通信链路的最大数据传输率是多少?
信号有 4种振幅 × 4个相位 = 16进制
1
Baud
携带的 4bit
的数据则最大数据传输率 = 2 * 4000 * 4 = 24000
b/s
3.3.2 - 香农定理
噪声存在于所有的电子设备和通信信道中。由于噪声随机产生,他的瞬时值有时会很大,因此噪声会使接收端对码元的判断产生错误。但是噪声的影响是相对的,若信号较强,那么噪声影响相对较小。因此,信噪比就很重要。
信噪比 = 信号的平均功率/噪声的平均功率,常记为
S/N
,并用dB
作为度量单位信噪比 = 10log10(
S/N
)香农定理就是在带宽受限且有噪声的信道中,为了不产生误差,信息传输速率有上限值
- 信道中的极限数据传输速率 = Wlog2(1+
S/N
)(b/s
)
- W – 带宽
- S/N – 信噪比
- 信道中的带宽或信道中的信噪比越大,信息的极限传输速率就越高
- 对一定的传输带宽和一定的信噪比,信息传输速率的上限就确定了
- 只要信息的传输速率低于信道的极限传输速率,就一定能找到某种方法来实现无差错传输
- 香农定理得出的极限信息传输速率,实际信道能达到的传输速率比它低不少
- 从香农定理中可以看出,若信道带宽
W
或信噪比S/N
没有上限(不可能),那么信道的极限信息传输速率也就没有上限
练习
电话系统的典型参数是信道带宽为3000Hz ,信噪比为30dB,则该系统最大据传输速率是多少?
30
dB
= 10log10(S/N
)则
S/N
= 1000信息的极限数据传输速率=Wlog2(1+
S/N
) = 3000 × log2(1+1000)= 30000b/s
奈氏准则 香农定理 带宽受限无噪声条件下,为了避免码间串扰,码元传输速率上限为 2 Baud
带宽首受限有噪声条件下的信息传输速率 理想低通信道下的极限数据传输率 = 2Wlog2V 信道的极限数据传输率 = Wlog2(1+ S/N
)要想提高数据率,就要提高带宽/采用更好的编码技术 要想提高数据率,就要提高带宽/信噪比
练习
二进制信号在信噪比为127:1的4kHz信道上传输,最大的数据传输速率可达到多少?
奈奎斯特:2 × 4000 × log2 2 = 8000
b/s
香农定理:4000 × *log2(1+127) = 28000
b/s
选较小的即 8000
b/s
3.4.编码与调制
信道:信号传输的媒介。一般用来表示向某一个方向传送信息的介质,因此一条通信线路往往包含一条发送信道和一条接收信道
- 传输信号
- 模拟信道
- 数字信道
- 传输介质
- 有线信道
- 无线信道
- 基带信号 – 是来自信源的信号,直接表达了要传输的信息的信号。将数字信号1和0直接用两种不同的电压表示,再送到数字信道上传输。(基带传输)
- 宽带信号 – 是把基带信号经过载波调制后,把信号的频率范围搬移到较高的频段,以便在信道中传输。将基带信号进行调制后形成的频分复用模拟信号,再传送到模拟信道上去(宽带传输)
在传输距离较近时,计算机网络采用基带传输,近距离衰减小,从而信号内容不易发生变化。反之则采用宽带传输
数字数据 – 数字信号 (编码,数字发送器)
数字数据 – 模拟型号 (调制,调制器)
模拟数据 – 数字信号 (编码,
PCM
编码器)模拟数据 – 模拟信号 (调制,放大器调制器)
3.4.1 - 数字 To 数字
3.4.1.1.非归零编码NRZ
高电平为 1 ,低电平为 0
编码容易实现,但是没有检错功能,且无法判断一个码元的开始和结束,以至于收发双方难以保持同步
3.4.1.2.归零编码RZ
信号电平在一个码元之内都要恢复到 0 的编码方式
3.4.1.3.反向不归零编码NRZI
信号电平翻转表示 1 ,信号电平不变表示 1
3.4.1.4.曼彻斯特编码
- 将一个码元分成两个相等的间隔
- 前一个间隔为低电平,后一个间隔为高电平表示 1,码元 0 则正好相反
- 也可以采用相反的规定
- 特点是在每一个码元的中间出现电平跳变,位于中间的跳变记作时钟信号(可用于同步),又作数据信号
- 所占的频带宽度是原始几代宽度的两倍
3.4.1.5.差分曼彻斯特编码
- 常用于局域网传输
- 若码元为 1,则前半个码元的电平与上一个码元的后半个码元相同,若为 0,则相反。
- 特点是在每个码元的中间都有一次电平的跳转,可以实现子同步,且抗干扰性强于曼彻斯特编码
3.4.1.6.4B/5B编码
比特流中插入额外的比特来打破一连串的 0 或 1,就是用 5 个比特来编码 4 个比特的数据,之后再传给接收方,因此称为 4B/5B。编码效率为 80%
3.4.2 - 数字 To 模拟
数字数据调制技术在发送端将数字信号装换位模拟信号。在接收端将模拟信号还原成数字信号,分别对应于调制解调器的调制和解调
3.4.2.1.调幅ASK
有波动表示 1,无波动表示 0
3.4.2.2.调频FSK
波峰密集表示 1,稀疏表示 1
3.4.2.3.调相PSK
1 和 0 分别对应余弦或正弦
3.4.2.4.调幅+调相QAM
练习
某通信链路的波特率是 1200
Baud
,采用 4 个相位,每个相位 4 种振幅的QAM
调制技术,则该链路的信息传输速率为多少4 个相位 × 4 种振幅 = 16 进制
1200 × 4 = 4800
b/s
3.4.3 - 模拟 To 数字
计算机内部处理的是二进制数据,处理的都是数字音频,所以需要将模拟音频通过采样、量化转换成有限个数字表示的离散序列
最典型的例子就是对音频信号进行编码的脉码调制(
PCM
),在计算机应用中,能够达到最高保真水平的就是PCM
编码,被广泛用于素材保存及音乐欣赏,CD
,DVD
以及我们常见的WAV
文件中均有应用。主要包括抽样、量化、编码
3.4.3.1.抽样
对模拟型号周期性扫描,把时间上连续的信号变成时间上离散的信号。为了使所得的离散信号能无失真地代表被抽样地模拟数据,要使用定理进行采样
- f采样频率 大于等于 f信号最高频率
3.4.3.2.量化
把抽样取得地电平幅值按照一定的分级标度转化为对应的数字值,并取整数,这就是把连续的电平幅值转换为离散的数字量
3.4.3.3.编码
把量化的结果转换为与之对应的二进制编码
3.4.4 - 模拟 To 模拟
为了实现传输的有效性,有可能需要较高的频率。这种调制方式还可以使用频分复用技术,充分利用带宽资源。在电话机和本地交换机所传输的信号是采用模拟信号传输模拟数据的方式,模拟的声音数据是加载到模拟的载波信号中传输的
3.5.传输介质及分类
传输介质也称传输媒体/传输媒介,它就是数据传输系统中在发送设备和接收设备这几件的物理通路。传输媒体并不是物理层。
传输媒体在物理层的下面,因为物理层体系结构的第一层,因此有时称传输媒体为 0 层。在传输媒体中传输的是信号,但传输媒体并不知道所传输的信号代表什么意思。但物理层规定了电气特性,因此能够识别所传送的比特流。
3.5.1 - 传输介质
3.5.1.1.导向性传输介质
电磁波被导向沿着固体媒介(铜线/光纤)传播
3.5.1.1.1.双绞线
是最古老、又最常用的传输介质,由两根采用一定规则并排绞合、相互绝缘的铜导线组成,在局域网和传统电话网中普遍使用。模拟传输的数字传输都可以使用双绞线,其通信距离一般为几十到数十公里。距离太远时,对于模拟传输,要用放大器放大衰减的信号,对于数字传输要用中继器将失真的信号整形
- 非屏蔽双绞线
UTP
– 保护层、绝缘层、铜线- 屏蔽双绞线
STP
– 保护层、屏蔽层、绝缘层、铜线
3.5.1.1.2.同轴电缆
由导体铜质芯线、绝缘层、网状编织屏蔽层、塑料外层构成。按特性阻抗数值的不同,通常将同轴电缆分为两类:
- 50Ω同轴电缆 – 主要用于传送基带数字信号,又称为基带同轴电缆,应用于局域网
- 75Ω同轴电缆 – 主要用于传送宽带信号,又称为宽带同轴电缆,应用于有线电视系统
3.5.1.1.3.光纤
就是利用光导纤维(简称光纤)传递光脉冲来进行通信。有光脉冲表示 1,无光脉冲表示。而可见光的频率大约是108 MHz,因此光纤通信系统的宽带远远大于目前其他各种传输媒体的带宽。
在发送端有光源,可以采用发光二极管或半导体激光器,它们在电脉冲作用下能产生出光脉冲,在接收端用广电二极管做成光检测器,在检测到光脉冲时可还原出电脉冲
主要由实心的纤芯和包层构成,光波通过纤芯进行传到,包层较纤芯有较低的折射率。当光纤从高折射率的介质射向低折射率的介质时,其折射角将大于入射角。因此,如果入射角足够大,就会出现全反射,即光线碰到包层的时候会折射回纤芯,这个过程不断重复,光也就沿着光纤传输下去
- 多模光纤,可以同时传输多个光信号,但是容易受各种因素印象·影响导致输出与输入有差异,所以适合近距离传输。采用发光二极管做光源。
- 单模光纤,一次只能传输一个光信号,以近乎直线传播的方式今昔那个传输,损耗较小,输出和输入差异非常小,适合远距离传输。采用定向性很好的激光做光源。
- 特点:
- 传输损耗小,中继距离长,对远距离传输特别经济。
- 抗雷电和电磁干扰性能好
- 无串音干扰,保密性好,也不易被窃听或截取数据
- 体积小,中来那个·重量轻
3.5.1.2.非导向性传输介质
自由空间,介质可以是空气、真空、海水等
3.5.1.2.1.无线电波
- 信号会向所有方向传播
- 较强的穿透能力,可传远距离,广泛用于通信领域
3.5.1.2.2.微波
- 信号沿着固定方向传播
- 微波通信频率较高、频段范围宽,因此数据率很高
- 应用于
- 地面微博接力通信
- 卫星通信
- 优:
- 通信容量大
- 距离远
- 覆盖广
- 广播通信和多址通信
- 缺:
- 传播时延长
- 受气候影响大
- 误码率较高
- 成本高
3.5.1.2.3.红外线、激光
- 信号沿着固定方向传播
- 把要传输的信号分别转换为各自的信号格式,即红外光信号和激光信号,再在空间中传播
3.6.物理层设备
3.6.1 - 中继器
诞生原因:由于存在损耗,在线路上传输的信号功率会逐渐衰减,衰减到一定程度时将造成信号失真,因此会导致接收错误
功能:对数字信号进行再生和还原,对衰减的信号进行放大,保持与原数据相同,以增加信号传输的距离,延长网络的长度
两端的网络部分是网段,而不是子网,适用于完全相同的两类网络的互联,且两个网段速率要相同
中继器只将任何电缆段上的数据发送到另一段电缆上,仅作用于信号的电气部分,并不管数据中是否有错误数据或不适于网段的数据
两端可以连相同媒体,也可以连不同媒体
两端的网段一定是要同一个协议
5 - 4 - 3 原则:最多只能有5个网段,最多只能有4个中继器,最多只能有3个网段连计算机
3.6.2 - 集线器
- 对信号进行再生放大转发,对衰减的信号进行放大,接着转发到其他所有(除输入端口)处于工作状态的端口上,以增加信号传输的距离,延长网络的长度。不具备信号的定向传送功能,是一个共享式设备
- 不能分割冲突域,在同一时间只能传输一组信息。如果碰撞需等待一个随机时间再发送
四、数据链路层
4.1.基本概念
4.1.1 - 专用名词
4.1.1.1.结点
主机、路由器
4.1.1.2.链路
网络中两个结点之间的物理通道,链路的传输介质主要有双绞线、光纤和微波。
- 有线链路
- 无线链路
4.1.1.3.数据链路
网络中两个节点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路。
4.1.1.4.帧
链路层的协议数据单元,封装网络层数据报
4.1.2 - 功能
- 为网络层提供服务
- 无确认,无连接服务
- 有确认,无连接服务
- 有确认,面向连接服务
- 链路管理,即连接地建立、维持、释放(用于面向连接的服务)
- 组帧
- 流量控制
- 差错控制(帧错/位错)
4.2.数据封帧
4.2.1 - 封装成帧
一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束
首部和尾部包含许多的控制信息,他们的一个重要作用:帧定界(确定帧的界限)。
4.2.2 - 帧同步
接收方应当能从接收到的二进制比特流中区分出帧的起始和终止
4.2.3 - 透明传输
不管所传的数据是什么样的比特组合,都应当能够在链路上传送。因此链路层就“看不见”有什么妨碍数据传输的东西
当所传递的数据中的比特组合恰巧与某一个控制信息完全一样就必须采取适当的措施,使收方不会将这样的数据误认为使某种控制信息。这样才能保证数据链路层的传输是透明的
4.2.4 - 组帧的四种方法
由于字节计数法中的
count
字段的脆弱性及字符填充法实现上的复杂性和不兼容性,目前使用最普遍的是零比特填充法和违规编码法
4.2.4.1.字符计数法
帧首部使用一个计数字段来表名帧内字符数,如
521354245
这样的话第一个是5
,那么就往后读取5
个数据,读出21354
,再往后遇到2
,就继续往后读2
个数据,读出45
,但是一旦计数字段出现问题,就会导致全部错误。
4.2.4.2.字符填充法
当要传输的信息与控制字符发生冲突时,在要传输的数据前加上一个转义字符,如
EOT
表示结尾,当要传输的数据中也有EOT
时,就在要传输的EOT
前加上一个ESC
,当要传输的数据就是ESC
本身时,也要在ESC
前加一个ESC
- 当传送帧是由文本文件组成时(文本文件的字符都是从键盘上输入的,都是
ASCII
码)不管从键盘上输入什么字符都可以放在帧里传功去,即透明传输- 当传送帧是由非
ASCII
码的文本文件组成时(二进制代码的程序或图像)。就要采用字符填充方法实现透明传输
4.2.4.3.零比特填充法
若开始标志为
01111110
,传输的数据中也有01111110
时采取的一种方式
- 发送端将要传输的数据,每5个1后面加1个0。
- 接收端在接收到之后逆序删除0
4.2.4.4.违规编码法
比如曼彻斯特编码方式,每个码元会有两个波段,要么前高后低,要么前低后高。绝对不会出现两个波段同时高,或者同时低的情况,就可以故意传输错误的编码方式,来代表终止或结束
4.3.差错检测
- 全局性:由于线路本身电气特征所产生的随机噪声(热噪声),是信道固有的,随机存在的。
- 解决方法 – 提高信噪比来减少避免干扰
- 局部性:外界特定的短暂原因所造成的冲击噪声,是产生差错的主要原因。
- 解决办法 – 通常利用编码技术来解决
- 位错 – 比特位出错 1变成 0,0变成1
- 帧错
- 丢失 – 丢帧
- 重复 – 发送重复帧
- 失序 – 顺序错乱
- 检错编码 – 奇偶校验码/循环冗余码
CRC
- 纠错编码 – 海明码
数据链路层编码和物理层编码的数据编码与调制不同。
- 物理层编码 – 针对的是单个比特,解决传输过程中比特的同步等问题
- 数据链路层编码 – 针对的是一组比特,它通过冗余码的技术实现一组二进制比特串在传输过程中是否出现了差错
冗余编码
在数据发送之前,先按某种关系附加上一定的冗余位,构成一个符合某一规则的码字后再发送。当要发送的有效数据变化时,相应的冗余位也随之变化,使码字遵从不变的规则。接收端根据收到的码字是否仍符合原规则,从而判断是否出错
4.3.1 - 奇偶校验码
n-1位信息元,1位校验元
- 奇校验码 – 1的个数为奇数
- 偶校验码 – 1的个数为偶数
比如
1100101
,若要采用奇校验码,就要保证1的个数为奇数,现在已有4个1,为偶数,那我们就要加一个1,使之成为11100101
,这样1的个数就是奇数了,若采用偶校验码,就要保证1的个数为偶数,那我们就应该加一个0,使之成为01100101
如果采用奇校验码,发送的时候1的个数为奇数,接收的时候为偶数,那么就检测到出错
- 检错率为50%**,只能检查出奇数个比特**错误
- 若采用奇校验码,发送端发送
11100101
,接收端收到的数据变化了奇数个比特
- 如
11100100
,此时最后一位比特错了,1的个数为4,是偶数,则能检错。- 如
11100010
,此时最后三位比特错了,1的个数为4,是偶数,则能检错- 若采用奇校验码,发送端发送
11100101
,接收端收到的数据变化了偶数个比特
- 如
11100110
,此时最后两个比特错了,1的个数为5,是奇数,则不能检错。- 如
11101010
,此时最后四个比特错了,1的个数为5,是奇数,则不能检错。
4.3.2 - 循环冗余码
将要传输的数据除以一个数(生成多项式),得到一个余数(
FCS
帧检验序列/冗余码),将要传输的数据加上冗余码,进行传递。接收端接收到之后,用接收到的数据除以生成多项式,如果余数为零,则表示没有问题
FCS
的生成以及接收端CRC
检验都是由硬件实现,处理很迅速,因此不会延误数据的传输
4.4.差错纠错
4.4.1 - 海明码
4.5.流量控制与可靠传输机制
较高的发送速度和较低的接收能力不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作
- 链路层的流量控制是点到点的,对方收不下就不回复确认
- 传输层的流量控制是端到端的,接收端给发送端一个窗口公告
- 停止-等待协议 – 发送窗口大小 = 1,接收窗口大小 = 1
- 后退N帧协议(GBN) – 发送窗口大小 > 1,接收窗口 = 1
- 选择重传协议(SR) – 发送窗口大小 > 1,接收窗口大小 > 1
4.5.1 - 可靠传输
发送端发啥,接收端收啥
4.5.2 - 流量控制
控制发送速率,使接收方有足够的缓存空间来接收每一个帧
4.5.3 - 滑动窗口
- 解决流量控制 – 收不下就不给确认,想发也发不了
- 解决可靠传输 – 发送方自动重传
4.5.4 - 停止-等待协议
每发完一个帧就停止发送,等待对方的确认,在收到确认后再发送下一个帧
为什么要有停止等待协议
除了比特出差错,底层信道还会出现丢包问题
研究停止-等待协议的前提
虽然现在常用全双工通信方式,但为了讨论问题方便,仅考虑乙方发送数据,乙方接收数据
因为是在讨论可靠传输的原理,所以并不考虑数据是在哪一个层次上传输的
“停止-等待”就是每发送完一个分组就停止发送,等待对方确认,在收到确认后再发送下一个分组
停止-等待协议有几种应用情况
无差错情况&有差错情况
4.5.4.1.数据帧丢失或检测到帧出错
- 发完一个帧后,必须保留它的副本
- 数据帧和确认必须编号
- 每发送一个帧就启动一个计时器
- 超时计时器设置的重传时间应当比帧传输的平均
RTT
更长一些- 如果超过了超时计时器设置的时间,则会进行重传
4.5.4.2.ACK
丢失
当接收方发送的确认帧丢失
- 发送方仍然会在超时之后重传
- 接收方在收到重传的帧之后,将该帧丢弃,并补发确认帧
4.5.4.3.ACK
迟到
当接收方发送的确认帧丢失
- 发送方仍然重传
- 接收方接收到重传的帧之后,将该帧丢弃,并补发确认帧
- 此时不论发送方先收到哪一个确认帧,都会丢弃重复的确认帧
4.5.4.4.信道利用率
发送方在一个发送周期内,有效地发送数据所需地时间占整个发送周期地比率
信道利用率 = (
L
/C
)/T
T
,发送周期,从开始发送数据,到收到第一个确认帧为止
L
,T
内发送L
比特数据
C
,发送方数据传输率信道吞吐量 = 信道利用率 * 发送方的发送速率
练习
一个信道的数据传输率为4kb/s ,单向传播时延为30ms ,如果使停止-等待协议的信道最大利用率达到80% ,要求的数据帧长度至少为多少
80% = (
L
/4)/((L
/2)+ 2 × 30 ms)
L
=960bit
4.5.5 - 后退N帧协议 – GBN
属于流水线技术
- 发送窗口 – 发送方维持一组连续的允许发送的帧的序号
- 接收窗口 – 接收方维持一组连续的允许接收帧的序号
4.5.5.1.GBN
发送方必须响应的三件事
- 上层的调用 – 上层要发送数据时,发送方会先检查自己的窗口是否已满
- 如果未满,则产生一个帧并继续发送。
- 如果窗口已满,发送方只需将数据返回给上层,暗示上层窗口已满。上层等一会儿再发送 – 实际中,发送方可以缓存这些数据,窗口不满时再发送帧
- 收到了一个
ACK
GBN
协议中,对n号帧的确认采用累计确认的方式,表明接收方已经收到n号帧和它之前的全部帧- 超时事件
- 协议的名字为后退/回退n帧,来源于出现丢失和时延过长帧时发送方的行为。就像在停止-等待协议中一样,定时器将再次用于恢复数据帧或确认帧的丢失。**如果出现超时,发送方重传所有以发送但未被确认的帧。
4.5.5.2.GBN
接收方要做的事
如果正确收到n号帧,并且按序,那么接收方为n帧发送一个
ACK
,并将该帧中的数据部分交给上层其余情况都丢弃帧,并为最近按序接收的帧重新发送
ACK
。接收方无需缓存任何失序帧,只需要维护一个信息:expectedseqnum
– 下一个按序接收的帧序号
4.5.5.3.滑动窗口长度
如果采用n个比特对帧编号,那么发送窗口的尺寸WT应满足:1 小于等于 WT 小于等于 2n -1.应为发送窗口尺寸过大,就会使得接收方无法区别新帧和旧帧
4.5.5.4.GBN
协议重点总结
累计确认
接收方只按顺序接收帧,不按序则无情丢弃
确认序列号最大的、按序到达的帧
发送窗口最大为 2n -1,接收窗口大小为1
4.5.5.5.GBN
协议性能分析
- 因连续发送数据帧而提高了信道利用率
- 在重传时必须把原来已经正确传送的数据帧重传,使传送效率降低
4.5.6 - 选择重传协议 – SR
4.5.6.1.SR
发送方要做的事
- 上层的调用 – 从上层收到的数据后,
SR
发送方检查下一个可用于该帧的序号
- 如果序号位于发送窗口内,则发送数据帧
- 否则像
GBN
一样,要么缓存数据,要么将数据返回给上层- 收到了一个
ACK
- 如果收到
ACK
,加入该帧序号在窗口内,则SR
发送方将那个被确认的帧标记为已接收。如果该帧序号是窗口的下届,则窗口向前移动到具有最小序号的未确认帧出。如果窗口移动了,并且有序号在窗口内的未发送帧,则发送这些帧- 超时事件
- 每个帧都有自己的定时器,一个超时事件发生后只重传一个帧
4.5.6.2.SR
接收方要做的事
SR
接收方将确认一个正确接收的帧而不管其是否按顺序。失序的帧将被缓存,并返回给发送方一个该帧的确认帧【收到谁确认谁】,知道所有帧(即序号更小的帧)都被收到位置,这时才可以将一批帧按序交付给上层,然后向前移动滑动窗口
4.5.6.3.滑动窗口的长度
- 发送窗口最好等于接收窗口
- WTmax = WRmax = 2(n-1)
4.5.6.4.SR
协议重点总结
- 对数据帧逐一确认,收一个,确认一个
- 只重传出错帧
- 接收方有缓存
- WTmax = WRmax = 2(n-1)
4.6.信道划分/介质访问控制
4.6.1 - 传输数据使用的两种链路
点对点链路
两个相邻结点通过一个链路相连,没有第三者。
应用:
- PPP协议
- 常用于广域网
广播式链路
所有主机共享通信介质
应用:
- 早期的总线以太网
- 无线局域网
- 常用于局域网
典型的拓扑结构:
- 总线型
- 星型(逻辑总线型)
4.6.2 - 介质访问控制
MAC -- Multiple Access Contorl
采取一定的措施,使得两对结点之间的通信不会发生互相干扰的情况
4.6.2.1.静态划分信道
信道划分介质访问控制
基于多路复用技术划分资源
- 网络负载重 – 共享信道效率高,且公平
- 网络负载轻 – 共享信道效率低
常用技术:
- 频分多路复用
FDM
- 时分多路复用
TDM
- 波分多路复用
WDM
- 码分多路复用
CDM
4.6.2.2.动态分配信道
- 轮询访问介质访问控制//轮流协议 – 令牌传输协议,既要不产生冲突,又要发送时占全部带宽
- 随机访问介质访问控制 – 用户根据意愿随机发送信息,发送信息时可独占信道带宽
- 网络负载重 – 产生冲突开销
- 网络负载轻 – 共享信道率高,单个结点可利用信道全部带宽
- 分类:
ALOHA
协议CSMA
协议CSMA/CD
协议CSMA/CA
协议
4.6.3 - 信道划分介质访问控制
将使用介质的每个设备与来自同一信道上的其他设备的通信隔离开,把时域和频域资源合理地分配给网络上的设备
多路复用技术
把多个信号组合在一条物理信道上进行传输,使得多个计算机或终端设备共享信道资源,提高信道利用率
把一条广播信道,逻辑上分成几条用于两个结点之间通信地,互不干扰地子信道,实际就是把广播信道转变为点对点信道
4.6.3.1.频分多路复用FDM
用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。频分复用的所有用户在同样时间占用不同的带宽(频率带宽)资源
- 充分利用传输介质带宽,系统效率较高,由于技术比较成熟,实现起来也就比较容易
4.6.3.2.时分多路复用TDM
将时间划分为一段段等长的时分复用帧。每一个时分复用的用户在每一个
TDM
帧中占用固定序号的时隙,所有用户轮流占用信道
- 频分复用 – 并行
- 时分复用 – 并发
改进的时分复用 – 统计时分复用
STDM
- 每一个
STDM
帧中的时隙数小于连接在集中器上的用户数。各用户有了数据就随时发往集中器的输入缓存,然后集中器按顺序一次扫描输入缓存,把缓存中的输入数据放入STDM
帧中,一个STDM
帧满了就发出**STDM
帧不是固定分配时隙,二十按需动态分配时隙**
4.6.3.3.波分多路复用WDM
就是光的频分多路复用,在一根光纤中传输多种不同波长(频率)的光信号,由于波长(频率)不同,所以各路光信号互不干扰,最后再用波长分解复用器将各路波长分解出来。
4.6.3.4.码分多路复用CDM
码分多址
CDMA
是码分复用的一种方式
1 个比特分为多个码片/芯片,每一个站点被指定一个唯一的 m 位的芯片序列
- 比如 1 对应的是 ( +1,-1,-1,+1,+1,+1,+1,-1 ),则 0 所对应的就是各个位取反,即取反码
- 如何使多个站点发送数据时不会相互干扰 – 要求各个站点芯片序列相互正交(对应位相乘,然后再相加,最后除以芯片序列的位数)
- 如何合并 – 各个数据再信道中被线性相加(即各个位对应相加)
- 如何分离 – 合并的数据和源站(芯片序列)规格化内积(对应位相乘,然后再相加,最后除以芯片序列的位数)
4.6.4 - 随机访问介质访问控制
4.6.4.1 ALOHA
协议
纯
ALOHA
协议不监听信道,不按时间槽发送,随即重发 。想发就发
- 如何检测冲突 – 如果发生冲突,接收方就在检测出错,然后不予确认,发送方再一定时间内收不到确认就判断发生冲突
- 冲突r如何解决 – 超时后等一随机时间再重传
时隙
ALOHA
协议把时间分成若干个相同的时间片,所有用户在时间片开始时刻同步接入网络信道,若发生冲突,则必须等到下一个时间片开始时刻再发送,控制想发就发的随意性
- 纯
ALOHA
协议比时隙ALOHA
吞吐量更低,效率更低。- 纯
ALOHA
协议想发就发,时隙ALOHA
只有在时间片的开始才能发
4.6.4.2 - CSMA
协议
载波侦听多路访问协议(
carrier sense multiple access
)
CS
:载波侦听,每一个站在发送数据前要检测一下总线上是否有其他计算机在发送数据
- 当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(相互叠加)。当一个站检测到的信号电压摆动值超过一定门限值时,就认为总线上至少有两个站同时在发送数据,表明发生了碰撞,即发生了冲突。
MA
:多点接入,表示许多计算机以多点接入的方式连接在一根总线上
协议思想
发送帧之前,监听信道
监听结果:
- 信道空闲 – 发送完整帧
- 信道忙 – 推迟发送
1 - 坚持
CSMA
1-坚持指的是对于监听信道忙之后的坚持
- 如果一个主机要发送消息,那么它先监听信道
- 空闲则直接传输,不必等待
- 信道忙则一直监听,直到空闲,马上传输
- 如果有冲突,则等待一个随机长的时间再监听,重复上述过程。
优点 – 只要媒体空闲,站点马上就能发送,避免了媒体利用率的损失
缺点 – 假如有两个或两个以上的站点有数据要发送,冲突就不可避免
CSMA
非坚持非坚持指的是对于监听信道忙之后就不再继续监听
- 如果一个主机要发送消息,那么它先监听信道
- 空闲则直接传输,不必等待
- 忙则等待一个随机的时间之后再进行监听
优点 – 采取随机的重发延迟时间可以减少冲突发生的可能性
缺点 – 可能存在大家都在延迟等待过程中,使得媒体仍可能处于空闲状态,媒体使用率降低
CSMA P
-坚持
P
-坚持指的是对于监听信道空闲的处理
- 如果一个主机要发送消息,那么它先监听信道
- 空闲则以
P
概率直接传输,不必等待,概率 1 -P
等待到下一个时间槽再传输- 忙则等待一个随机的时间之后再进行监听
优点 – 技能想非坚持算法那样减少冲突,又能像坚持算法那样减少媒体空闲时间的这种方案
缺点 – 发送冲突后还是要坚持把数据帧发送完,造成了浪费
4.6.4.3 - CSMA/CD
载波监听多点接入/碰撞检测(
carrier sense multiple access with collision detection
)
CS
– 载波侦听,每一个站在发送数据之前以及发送数据时都要检测一下总线上是否有其他计算机在发送数据
MA
– 多点接入,表示许多计算机以多点接入的方式连接在一根总线上 – 说明该协议应用于总线型
CD
– 碰撞检测,边发送边监听,适配器边发送数据,边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据 – 说明该协议应用于半双工网络
如何确定基本退避时间
- 确定基本退避时间为争用期 2t
- 定义参数
k
,它等于重传次数,但k
不超过10。最多为10,重传次数超过10,k
也是10- 从离散的整数集合 [ 0, 1, ···, 2k - 1 ] 中随机取出一个数
r
,重传所需退避时间就是r 倍的基本退避时间,即2rt- 当重传达16次仍不能成功,则说明网络太拥挤,认为此帧永远无法正确发出,抛弃此帧冰箱高层报告出错
最小帧长
因为
CSMA/CD
的诞生就是为了在发送中,出现碰撞能及时叫停,所以如果帧太短,在发完之后才检测到碰撞就会出问题,所以就有了最小帧长的概念
- 帧的传输时延至少要两倍于信号在总线中的传播时延
- (帧长)/数据传输速率 >= 2t
- 最小帧长 = 总线传播时延 × 数据传输速率 × 2 = 2t × 数据传输速率
- 另有 – 以太网规定,最短帧长为 64B ,凡是长度小于这个值的都是由于冲突而异常终止的无效帧
4.6.4.4 - CSMA/CA
载波侦听多点接入/碰撞避免(
carrier sense multiple access with collision avoidance
)
- 应用于无线局域网
工作原理
- 发送之前先检测信道是否空闲
- 空闲则发出
RTS
(request to end
),RTS
包括发射端的地址、接收端的地址、下一份数据将持续发送的时间等信息,信道忙则等待- 接收端接收到
RTS
后将相应响应CTS
(clear to send
)。- 发送方收到
CTS
后,开始发送数据帧(同时预约信道,发送方告诉其他站点,自己要传多久数据)- 接收端收到数据帧后,将采用
CRC
来检验数据是否正确,正确则响应ACK- 发送方收到
ACK
就可以进行下一个数据帧的发送,若没有则一直重传至规定重发次数为止(采用二进制指数规避算法来确定随机的推迟时间)
CSMA/CD
VSCSMA/CA
相同点:都从属于
CSMA
思路,核心是先听再发,都会进行有限的重传不同点:
- 传输介质不同
CD
用于总线式以太网CA
用于无线局域网- 载波检测方式不同
CD
通过电缆中电压的变化来检测,当数据发生碰撞时,电缆中的电压就会随着发生变化CA
采用能量检测(ED
)、载波检测(CS
)和能量载波混合检测,三种检测信道空闲的方式- 解决方式不同
CD
是检测冲突CA
是避免冲突
4.6.5 - 轮询访问介质访问控制
4.6.5.1.轮询协议
主节点会轮流邀请从属结点发送数据
缺点:
- 轮询开销
- 等待延迟
- 单点故障
4.6.5.2.令牌传输协议
令牌 – 一个特殊格式的
MAC
控制帧,不包含任何信息。
可以控制信道的使用,确保同一时刻只有一个结点独占信道,不会发生碰撞。
每个节点都可以在一定时间内获得发送数据的权利,并不是无限制的持有令牌
应用于令牌环网 – 物理上星型,逻辑上环型
常用于负载较重、通信量较大的网络
缺点:
- 令牌开销
- 等待延迟
- 单点故障
4.7.局域网的基本概念和体系结构
Local Area Network
简称LAN
,是指在某一区域内有多台计算机互联成的计算机组,使用广播信道决定居于要的主要要素 – 拓扑结构、传输介质、介质访问控制方法
4.7.1 - 特点
- 覆盖范围小,只在一个相对独立的局部范围内互联,如一座或集中的建筑群
- 使用专门铺设的传输介质(双绞线、同轴电缆)进行联网,数据传输率高(10
Mb/s
~ 10Gb/s
)- 通信延迟时间短,误码率低,可靠性高
- 各个站点之间平等关系,共享传输信道
- 多采用分布式控制和广播式通信,能进行广播和组播
4.7.2 - 局域网拓扑结构
4.7.2.1.星型拓扑
- 中心结点是控制中心任意两个结点间的通信最多只需要两步
- 传输速度快
- 并且网络构形简单、建网容易、便于控制和管理
- 但这种网络系统,网络可靠性低,网络共享能力差,有单点故障的问题
4.7.2.2.总线型拓扑
- 网络可靠性高
- 网络节点间响应速度快
- 共享资源能力强
- 设备投入量少、成本低、安装使用方便
- 当某个站点出现问题对整个网络系统影响小
4.7.2.3.环形拓扑
- 系统中通信设备和线路比较节省
- 有单点故障问题
- 由于环路是封闭的,所以不便于扩充
- 系统响应延时长
- 信息传输效率相对较低
4.7.2.4.树形结构
- 易于拓展
- 易于隔离故障
- 也容易有单点故障
4.7.3 - 局域网的传输介质
4.7.3.1.有线局域网
常用介质 :
- 双绞线
- 同轴电缆
- 光纤
4.7.3.2.无线局域网
常用介质:
- 电磁波
4.7.4 - 局域网的介质访问控制方法
4.7.4.1.CSMA/CD
常用于总线型局域网,也用于树形网络
4.7.4.2.令牌总线
常用于总线型局域网,也用于树形网络
- 它是把总线型或树形网络中的各个工作站,按着一定的顺序形成一个逻辑环。只有令牌持有者才能控制总线,才有发送信息的权力
4.7.4.3.令牌环
用于环型局域网,如令牌环网
4.7.5 - 局域网的分类
4.7.5.1.以太网
以太网是应用最为广泛的局域网,都符合
IEEE 802.3
系列标准规范。逻辑拓扑是总线型,物理拓扑是星型或拓展星型,使用CSMA/CD
包括:
- 标准以太网(10Mbps)
- 快速以太网(100Mbps)
- 千兆以太网(1000Mbps)
- 10G 以太网
4.7.5.2.令牌环网
物理上采用星型拓扑结构,逻辑上采用环型拓扑结构
4.7.5.3.FDDI
网
(
Fiber Distributed Data Interface
)物理上采用双环拓扑结构,逻辑上是环型拓扑结构
4.7.5.4.ATM
网
(
Asynchronous Transfer Mode
)较新型的单元交换技术,使用53字节固定长度的单元进行交换
4.7.5.5.无线局域网
(
Wireless Local Area Network
)采用
IEEE 802.11
标准
4.7.6 - IEEE802
标准
是
IEEE 802 LAN/MAN
标准委员会制定的局域网,城域网技术标准。其中最广泛的有以太网、令牌环网、无线局域网等,这一系列标准中的每一个子标准都由委员会中的一个专门工作组负责
IEEE802.3
– 以太网介质访问控制协议(CSMA/CD
)及物理层技术规范IEEE802.5
– 令牌环网(Token-Ring
)的介质访问控制协议及物理层技术规范IEEE802.8
– 光线技术资讯组,提供有关光纤联网的技术咨询 – 对应FDDI
IEEE802.11
– 无线局域网的介质访问控制协议及物理层技术规范
4.7.7 - MAC
子层和LLC
子层
IEEE802
标准所描述的局域网参考模型只对应OSI
参考模型的数据链路层和物理层,它将数据链路层划分为逻辑链路子层LLC
和介质访问控制子层MAC
4.7.7.1.LLC
子层
LLC
负责识别网络层协议,然后对它们进行封装。LLC
报头高数数据链路层,一旦帧被接收到时,应当对数据包如何处理。为网络层提供服务
- 无确认、无连接
- 面向连接
- 带确认、无连接
- 告诉传送
4.7.7.2.MAC
子层
MAC
子层的存在屏蔽了不同物理链路种类的差异性主要功能:
- 数据帧的封装/卸装
- 帧的寻址和识别
- 帧的接收与发送
- 链路的管理
- 帧的差错控制
4.8.以太网
Ethernet
时由Xerox、Intel和DEC公司联合开发的基带总线局域网规范,是当今现有局域网采用的最通用的通信协议标准。以太网使用CSMA/CD
(载波侦听多路访问/冲突检测)技术
4.8.1 - 优势
- 造假低
- 是应用最广泛的局域网技术
- 比令牌环网、
ATM
网便宜,简单- 满足网络速率的要求 – 10Mbps ~ 10Gbps
4.8.2 - 两种标准
DIX Ethernet V2
:第一个局域网产品(以太网)规约
IEEE802.3
:IEEE802
委员会802.3
工作组指定的第一个IEEE
的以太网标准 – 帧格式有一点点改动
4.8.3 - 以太网提供的两种服务
- 无连接 – 发送方和接收方之间无”握手环节“
- 不可靠 – 不对发送方的数据帧编号,接收方不向发送方进行确认,差错帧直接丢弃,差错纠正由高层负责。
以太网只实现无差错接收,不实现可靠传输
4.8.4 - 以太网传输介质与拓扑结构的发展
从上往下
- 传输介质
- 粗同轴电缆
- 细同轴电缆
- 双绞线 + 集线器
- 物理拓扑
- 总线型
- 星型
- 逻辑拓扑 – 星型
4.8.5 - 10BASE-T
10BASE-T
是传送基带信号的双绞线以太网,T
表示采用双绞线,现10BASE-T
(UTP
),传输速率10Mbps
- 物理上采用星型拓扑,逻辑上总线型,每段双绞线最长为100m
- 采用曼彻斯特编码
- 采用
CSMA/CD
介质访问控制
4.8.6 - 适配器与MAC
地址
计算机与外界有局域网的连接是通过通信适配器
- 网络接口板
- 网络接口卡
NIC
(network interface card
)- 适配器上装有处理器和存储器(包括
RAM
和ROM
)ROM
上有计算机硬件地址MAC地址
在局域网中,硬件地址又称物理地址,或
MAC
地址
MAC
– 每个适配器有一个全球唯一的48
位二进制地址,前24
位代表厂家(由IEEE
规定),后24
位由厂家自己指定。
4.8.7 - 以太网MAC
帧
最常用的
MAC
帧是以太网V2
的格式
若
IP
层给MAC
层传了一个IP
数据报 [ 46~1500 字节之间 ]
MAC
就会在数据报上添加一些东西。在前面添加6
位表示目的地址,6
位表示源地址,2
位表示类型[ 指明网络层使用的什么协议 ]。在末尾添加4
位表示FCS
[CRC
循环冗余校验 ]。包装完的数据叫做以太网MAC
帧,然后将该信息传给物理层物理层又会在最前面加上
8
字节前导码,其中前7
字节叫前同步码,由1010···10
组成,用于作为起始时的测试,第8
字节为帧开始定界符最后两位为11
,标志下面正式开始传输数据没有结尾定界符,因为采用曼彻斯特编码,每个码元中间肯定都有变化,当一个数据传输完,在下一个数据到达前会有一段时间没有数据传输,此时电平是没有变化的,以此划分界限
与
IEEE802.3
的区别
- 802.3 中第三个字段是长度/类型
- 802.3 中当长度/类型字段值小于
0x0600
时,数据字段必须装入LLC
子层
4.8.8 - 高速以太网
速率 >= 100Mbps的以太网成为高速以太网
4.8.8.1.100BASE-T
以太网
在双绞线上传送100Mb/s基带信号的星型拓扑以太网,仍使用
IEEE802.3
的CSMA/CD
协议。支持全双工和半双工,可在全双工方式下无冲突工作
4.8.8.2.吉比特以太网
在光纤或双绞线上传送
1Gb/s
信号支持全双工和半双工,可在全双工方式下无冲突工作
4.8.8.3.10吉比特以太网
10吉比特以太网在光纤上传送
10Gb/s
信号只支持全双工,无争用问题
4.9.无线局域网
IEEE802.11
是无线局域网通用的标准,它是由IEEE
所定义的无线网络通信的标准
IEEE802.11
– 1997,原始标准(2Mb/s,工作在2.4GHz)IEEE802.11a
– 1999,物理层扩充(54Mb/s,工作在5.2Ghz)IEEE802.11b
– 1999,物理层扩充(11Mb/s,工作在2.4Ghz)IEEE802.11c
– 符合801.D的媒体介入控制层桥接(MAC Layer Bridging
)IEEE802.11d
– 根据各国无线电规定做的调整IEEE802.11e
– 对服务器等级(Quality of Service QoS
)的支持IEEE802.11f
– 基站的互联星(Inter-Access Point Protocol
),2006年2月被IEEE
批准撤销IEEE802.11g
– 2003,物理层扩充(54Mb/s,工作在2.4GHz)IEEE802.11h
– 2004,无线覆盖半径的调整,室内和室外信道(5.2GHz频段)
WiFi
由IEEE802.11b
和IEEE802.11e
所定义标准
4.9.1 - 帧头格式
- 2位帧控制
- 2位生命周期ID
- 6位接收端
RA
– 要接收的基站的MAC
地址- 6位发送端
TA
– 要发送的基站的MAC
地址- 6位目的地址
DA
- 2位序列控制
- 6位源地址
SA
功能 To DS From DS Address1 Address2 Address3 Address4 IBSS 0 0 DA SA BSSID 未使用 To AP 1 0 BSSID SA DA 未使用 From AP 0 1 DA BSSID SA 未使用 WDS 1 1 RA TA DA SA
4.9.2 - 无线局域网的分类
4.9.2.1.有固定基础设施的无线局域网
- 有固定接入基站
AP
- 当用户传输距离过长,
AP
还是会通过有线传到接收方的AP
,再由那边的AP
传信号
4.9.2.2.无固定基础设施的无线局域网的自组织网络
- 没有任何转发器,路由器,基站
- 每个主机都可以充当主机和路由器的功能
4.10.广域网
广域网(
Wide Area Network
),通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,可形成国际性的远程网络
- 通信子网主要使用分组交换技术。
- 通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网。
- 将分布在不同地区的局域网或计算机系统互连起来,达到资源共享的目的。
4.10.1 - PPP
协议
Point-to-Point Protocol
,是目前使用最广泛的数据链路层协议,用户使用拨号电话接入因特网时,一般都使用PPP
协议。只支持全双工链路
4.10.1.1.应满足的要求
- 简单 – 对于链路层的帧,无需纠错,无需序号,无需流量控制
- 封装成帧 – 添加帧定界符
- 透明传输 – 与帧定界符一样比特组合的数据应该如何处理
- 异步线路 – 用字节填充
- 同步线路 – 用比特填充
- 多种网络层协议 – 封装的
IP
数据报可以采用多种协议- 多种类型链路 – 串行/并行,同步/异步,电/光
- 差错检测 – 通过
CRC
循环冗余实现,错误的丢弃- 检测连接状态 – 链路是否正常工作
- 最大传送单元 – 数据部分最大长度
MTU
- 网络层地址协商 – 知道通信双方的网络层地址
- 数据压缩协商
4.10.1.2.无需满足的要求
- 纠错
- 流量控制
- 序号
- 不支持多点线路
4.10.2 - PPP
协议的三个组成部分/功能
- 一个
IP
数据报封装到串行链路(同步串行/异步串行)的方法- 链路控制协议
LCP
– 建立并维护数据链路连接 [ 身份验证 ]- 网络控制协议
NCP
–PPP
可支持多种网络层协议,每个不同的网络层协议都要一个相应的NCP
来配置,为网络层协议建立和配置逻辑连接。
4.10.3 - PPP
协议帧格式
是一种面向字节的协议
- 开头和结尾都有一个字节的帧界定符,一般为
7E
- 如果在要传输的数据之中也有
7E
,那么为了实习透明传输,我们会在数据7E
的前面插入7D
- 如果要传输的的数据之中也有
7D
,也会再在前面插入一个7D
- 有一字节地址字段,但到目前为止还没有派上用处,暂且用两个
FF
表示- 有一字节控制字段,也是还没有排上作用
- 有两个字节表示协议 – 标识信息部分是什么
IP
数据报LCP
的数据- 网络层控制数据
- 信息部分不超过
1500B
- 有两个字节的
FCS
用来实现CRC
循环冗余校验
4.10.4 - HDLC
协议
高举数据链路控制(
Hihg-Level Data Link Control
)是一个在同步网上传输数据、面向比特的数据链路层协议,是由国际标准化组织(
ISO
)根据IBM
公司的SDLC
(SynchronousData Link Control
)协议扩展开发而成的数据报文可以透明传输,用于实现透明的0 比特插入法易于硬件实现
所有帧采用CRC,对信息帧进行顺序编号,可防止漏收或重份,传输可靠性高
4.10.5 - HDLC
的站
主站
主要功能是发送数据(包括数据信息)帧、接收响应帧,并负责对整个链路的控制系统的初启、流程的控制、差错检测或恢复等
从站
主要功能是接收由主站发来的命令帧,向主站发送响应帧,并配合主站参与差错恢复等链路控制
复合站
主要功能是技能发送,又能接收命令帧和响应帧,并且负责整个链路的控制
三种数据操作方式
- 正常响应方式 – 从站要发送数据,要得到主站的允许
- 异步响应方式 – 从站不需要得到主站的允许就能发送数据
- 异步平衡方式 – 各个站点地位平等,比较混乱
4.10.6 - HDLC
的帧格式
- 开头和结尾都有8位的帧界定符,一般为
7E
- 采用的透明传输手段是0比特填充法
- 有8位的地址
- 正常/异步响应方式 – 填充从站的地址
- 异步平衡方式 – 填充应答站的地址
- 有8位的控制
- 信息帧(
I
),0开头,用来传输数据信息,或使用捎带技术对数据进行确认。- 监督真(
S
),10开头,用于流量控制和差错控制,执行对信息帧的确认、请求重发和暂停发送等功能- 无编号帧(
U
),11开头,用于提供对链路的建立、拆除等多种控制功能- 有16位帧检验序列
FCS
PPP
VSHDLC
相同
- 都只支持全双工链路
- 都可以实现透明传输
- 都可以实现差错检测,但不纠正差错
不同
PPP
- 面向字节,HDLC
- 面向比特PPP
-2B
协议字段,HDLC
- 没有PPP
- 无序号和确认机制,HDLC
- 有编号和确认机制PPP
- 不可靠,HDLC
- 可靠
4.11.链路层设备
4.11.1 - 网桥
网桥根据
MAC
帧的目的地址对帧进行转发和过滤。当网桥收到一个帧时,并不向所有接口转发,二十检查目的MAC
地址,然后再确定该帧转发到哪一个接口,或者是把它丢弃(过滤)
4.11.1.1.优点
- 过滤通信量打,增大吞吐量
- 扩大了物理范围
- 提高了可靠性
- 可以互联不同物理层、不同
MAC
子层和不同速率的以太网
4.11.1.2.透明网桥
“透明”指以太网上的站点并不知道所发送的帧经过哪几个网桥,是一种即插即用设备
自学习:
- 收到信息后,先将看看自己的转发表有没有源地址
- 如果没有,则记上源地址,并记上从哪个接口接入,方便下次收到要发往该地址时可以直接转发
- 再在转发表中查找目的地址
- 如果表中有对应的地址-接口记录,则直接转发,且当记录中的接口就是接收到该信息的接口,则说明不用转发,可以直接丢弃
- 如果没有对应地址-接口记录,则从其他几个接口广播出去
4.11.1.3.源路由网桥
在发送帧时,把详细的最佳路由信息(路由最少/时间最短)放在帧的首部
- 通过发送试探帧来获取所有可以到达目的端的路径
网段
一般指一个计算机网络中使用同一物理层设备(传输介质,中继器,集线器等)能够直接通讯的那一部分
4.11.2 - 以太网交换机
是多端口的网桥,基本原理都和网桥是一样的
- 独占传输媒体带宽
4.11.2.1.直通式交换机
查看完目的地址(
6B
)就立刻转发
- 延迟小
- 可靠性低
- 无法支持具有不同速率的端口的交换
4.11.2.2.存储转发式交换机
将帧放入告诉缓存,并检查是否正确,正确则转发,错误则丢弃
- 延迟大
- 可靠性高
- 可以支持具有不同速率的端口的交换
4.11.3 - 冲突域
在同一个冲突域中的每一个结点都能收到所有被发送的帧。简单来说就是同一时间内只能有一台设备发送信息的范围
4.11.4 - 广播域
网络中能接收任一设备发出的广播帧的所有设备的集合。简单地说,如果站点发出一个广播信号,所有能收大这个信号的范围称为一个广播域
能够隔离冲突域 | 能否隔离广播域 | |
---|---|---|
中继器、集线器 | 不能 | 不能 |
网桥、交换机 | 能 | 不能 |
路由器 | 能 | 能 |
五、网络层
5.1.数据交换方式
5.1.1 - 电路交换
- 建立连接
- 通信
- 释放连接
只要建立好,就会有一条固定的路径
- 独占资源
优点:
- 通信时延小
- 有序传输
- 没有冲突
- 实时性强
缺点:
- 建立连接时间长
- 线路独占、使用效率低
- 灵活性差
- 无差错控制能力
5.1.2 - 报文交换
报文:源应用发送的信息整体
优点:
- 无需建立连接
- 存储转发,动态分配线路
- 线路可靠性较高
- 线路利用率较高
- 多目标服务
缺点:
- 有存储转发时延
- 报文大小不定,需要网络节点有较大的缓存空间
5.1.3 - 分组交换
分组 – 把大的数据块分割成小的数据块
优点:
- 无需建立连接
- 存储转发,动态分配线路
- 线路可靠性较高
- 线路利用率较高
- 相对报文交换,存储管理更容易
缺点:
- 有存储转发时延
- 需要传输额外的信息量
- 乱序到目的主机时,要对分组排序重组
- 报文交换和分组交换都采用存储转发
- 传送数据量大,且传送时间远大于呼叫时,选择电路交换。电路交换传输时延最小
- 从信道利用率上看,报文交换和分组交换由于电路交换,其中分组交换时延更小
5.1.3.1.数据报交换
为网络层提供无连接服务
- 无连接服务 – 不事先为分组的传输确定传输路径,每个分组独立确定传输路径,不同分组传输路径可能不同
- 每个分组携带源和目的地址
- 路由器根据分组的目的地址转发分组:基于路由协议/算法构建转发表,检索转发表,每个分组独立选路
5.1.3.2.虚电路交换
为网络层提供连接服务
- 连接服务 – 首先为分组的传输确定传输路径(建立连接),然后沿该路径(连接)传输系列分组,系列分组传输路径相同,传输结束后
是将数据报交换和电路交换结合,以发挥两者优点
- 虚电路 – 一条源主机到目的主机类似于电路的路径(逻辑连接)路径上所有节点都要维持这条虚电路的建立,都维持一张虚电路表,每一项记录了一个打开的虚电路信息
- 建立连接(虚电路建立) – 每个分组携带虚电路号,而非目的地址。源主机发送呼叫请求分组并受到呼叫应答分组后才算建立连接
- 数据传输 – 全双工通信
- 释放连接(虚电路释放) – 源主机发送释放请求分组以拆除虚电路
数据报服务 | 虚电路 | |
---|---|---|
建立连接 | 不要 | 必须有 |
目的地址 | 每个分组都有完整的目的地址 | 尽在建立连接阶段使用,之后每个分组使用长度较短的虚电路号 |
路由选择 | 每个分组独立地进行路由选择和转发 | 属于同一条虚电路的分组按照同一路由转发 |
分组顺序 | 不保证分组的有序到达 | 保证分组的有序到达 |
可靠性 | 不保证可靠通信,可靠性由用户主机来保证 | 可靠性由网络保证 |
对网络故障的适应性 | 出故障的结点丢失分组,其他分组路径选择发生变化,可正常传输 | 所有经过故障节点的虚电路均不能正常工作 |
差错处理和流量控制 | 有用户主机进行流量控制,不保证数据报的可靠性 | 可由分组交换网负责,也可由用户主机负责 |
5.1.4 - 传输名词
- 应用层的是报文
- 传输层将应用层大的报文分成报文段
- 网络层将报文/报文段封装成
IP
数据报,分组- 数据链路层将
IP
数据报/分组封装成帧- 物理层将帧转成比特流
5.2.IP
数据报格式
总长度不超过1420B
首部
- 固定部分 – 20B
- 1-4B
- 0-3b –
IP
版本- 4-7b – 首部长度,将其转为十进制,乘上单位4B,得到的多少字节,就是首部的长度,如
0101
,是5,最后算出来的20B就是首部长度,并且最小是5- 8-15b – 指期望获得哪种类型的服务,优先级啥的
- 16-31b – 首部加上数据部分的总长度,换算方法和首部长度是一样的,只不过单位就是1B
- 5-8B
- 0-15b – 标识 – 同一数据报的分片使用同一个标识
- 16-18b – 标志 – 只有两位有意义,
- 第1位目前做保留
- 第2位叫
DF,Don't Fragment
DF
= 1,禁止分片DF
= 2,允许分片- 第3位叫
MF,More Fragment
MF
= 1,后面还有分片MF
= 0,代表最后一片/后面没有分片- 19-31b – 片偏移 – 指出较长分组 分片后,某片在原分组中的相对位置,单位是8B
- 9-12B
- 0-7b – 生存时间
TTL
:IP
分组的保质期。经过一个路由器-1,变成 0 则丢弃- 8-15b – 协议,指数据部分使用的传输层的哪个协议
ICMP
- 1IGMP
- 2TCP
- 6EGP
- 8IGP
- 9UDP
- 17IPv6
- 41ESP
- 50OSPF
- 89- 16-31b – 首部检验和,只检验首部
- 13-16B
- 0-31b – 源地址
- 17-20B
- 0-31b – 目的地址
- 可变部分
- 可选字段,0~40B,可有可无,用来支持排错、测量以及安全等措施
- 填充字段,全0,把首部4B的整数倍
数据部分 –
TCP
、UDP
5.3.IPv4
地址
5.3.1 - 特殊IP
地址
NetID | HostID | 作为IP 分组源地址 |
作为IP 分组目的地址 |
用途 |
---|---|---|---|---|
全 0 | 全 0 | 可以 | 不可以 | 表示本网范围内表示主机,路由表中表示默认路由 |
全 0 | 特定值 | 不可以 | 可以 | 表示本网内某个特定主机 |
全 1 | 全 1 | 不可以 | 可以 | 表示本网广播地址(路由器不转发) |
特定值 | 全 0 | 不可以 | 不可以 | 表示网络地址,一个网络 |
特定值 | 全 1 | 不可以 | 可以 | 表示直接广播地址,对特定网络上的所有主机进行广播 |
任何数(非全0/1) | 可以 | 可以 | 用于本地软件环回测试,称为环回地址 |
5.3.2 - 私有IP
地址
地址类别 | 地址范围 | 网段个数 |
---|---|---|
A | 10.0.0.0 ~ 10.255.255.255 | 1 |
B | 172.16.0.0 ~ 172.31.255.255 | 16 |
C | 192.168.0.0 ~ 192.168.255.255 | 256 |
5.4.网络地址转换NAT
Network Address Translation
在专用网连接到因特网的路由器上安装
NAT
软件,安装了NAT
软件的路由器叫做NAT
路由器,它至少有一个有效的外部全球IP
地址
- 在
WAN
端有该接口的IP
地址和端口两个东西,- 在
LAN
端有各个设备的IP
地址和端口号- 每个
WAN
端口对应LAN
中的一个IP
地址、端口号
5.5.子网掩码
5.6.无分类编址CIDR
- 消除了传统的
A
类,B
类和C
类地址以及划分子网的概念- 融合子网地址与子网掩码,方便子网划分
5.6.1 - 构成超网
将多个子网聚合成一个较大的子网,叫做构成抄网,或路由聚合 – 将网络前缀缩短
5.6.2 - 最长前缀匹配
使用
CIDR
时,查找路由表可能得到几个匹配结果,应该选择具有最长网络前缀的路由。前缀越长,地址块儿越小,路由越具体
5.7.ARP
协议
由于在实际网络的链路上传送数据帧时,最终必须使用
MAC
地址,所以就有了ARP
协议
- 完成主机或路由器
IP
地址到MAC
地址的映射 – 解决下一跳走哪儿的问题ARP
协议使用过程 – 检查ARP
高速缓存,有对应表项则写入MAC
帧,没有则用目的MAC
地址位FF-FF-FF-FF-FF-FF-FF
的帧封装并广播ARP
请求分则,同一局域网中所有主机都能收到该请求。目的主机收到请求后就会向源主机单播一个ARP
响应分组,源主机收到后将此映射写入ARP
缓存 – 10~20min更新一次ARP
协议4种典型情况
- 主机
A
发给本网络上的主机B
– 用ARP
找到主机B
的硬件地址- 主机
A
发给另一网络上的主机B
– 用ARP
找到本网络上一个路由器(网关)的硬件地址- 路由器发给本网络的主机
A
– 用ARP
找到主机A
的硬件地址- 路由器发给另一网络的主机
B
– 用ARP
找到本网络上的一个路由器硬件地址ARP
协议自动进行
5.8.DHCP
协议
动态主机配置协议
DHCP
是应用层协议,使用客户机/服务器方式,客户端和服务端通过广播方式进行交互,基于UDP
。DHCP
是体统即插即用联网机制,主机可以从服务器动态获取IP
地址、子网掩码、默认网关、DNS
服务器与IP
地址,允许地址重用,支持移动用户加入网络,支持在用地址续租
- 主机广播
DHCP
发现报文DHCP
服务器广播DHCP
提供报文- 主机广播
DHCP
请求报文DHCP
服务器广播DHCP
确认报文
5.9.ICMP
网际控制报文协议
5.9.1 - ICMP
差错报文
5.9.1.1.应该发送报文的情况
- 终点不可达 – 当路由器或主机不能交付数据包时就向源点发送终点不可达报文
- 源点抑制 – 当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢
- 时间超过 – 当路由器收到生存时间
TTL
= 0 的数据报时,除了丢弃该数据报,还要向源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文- 参数问题 – 当路由器或目的主机收到的数据报的首部中有的字段值不正确时,就该丢弃数据报,并向原点发出参数问题报文
- 改变路由(重定向) – 路由器把改变路由报文发送给主机,让主机知道下次应将数据报发给另外的路由器
5.9.1.2.不应发送报文的情况
- 对
ICMP
差错报告报文,不再发送ICMP
差错报告报文- 对第一个分片的数据报片的所有后续数据报片都不发送
ICMP
差错报告报文- 对具有组播地址的数据报都不发送
ICMP
差错报告报文- 对具有特殊地址(如127.0.0.0/0.0.0.0)的数据报不发送
ICMP
差错报告报文
5.9.3 - ICMP
询问报文
- 回送请求和回答报文 – 主机或路由器向特定目的主机发出询问,收到此报文的主机必须给源主机或路由器发送
ICMP
回送回答报文。测试目的站是否可达以及了解其相关状态- 时间戳请求和回答报文 – 请某个主机或路由器回答当前日期和时间。用来进行时钟同步和测量时间
- 掩码地址请求和回答报文
- 路由器询问和通告报文
5.10.IPv6
数据报格式
IPv6
基本首部40B
- 4位 – 版本号
- 8位 – 优先级
- 20位 – 流标签
- 16位 – 有效载荷长度
- 8位 – 下一个首部
- 8位 – 跳数限制
- 128位 – 源地址
- 128位 – 目的地址
IPv6
有效载荷64KB
- 扩展首部
- 数据
5.11.IPv4
- IPv6
IPv6
将地址从32位(4B)扩大到128位(16B),更大的地址空间IPv6
将IPv4
的校验和字段彻底移除,以减少每跳的处理时间IPv6
将IPv4
的可选字段移除首部,变成了扩展首部,成为灵活的首部格式,路由器通常不对扩展首部进行检查,大大提高了路由器的处理效率IPv6
支持及即插即用(即自动配置),不需要DHCP
协议IPv6
首部长度必须是8B
的整数倍,而IPv4
的首部是4B
的整数倍IPv6
只能在主机处分片,IPv4
可以在路由器和主机处分片ICMPv6
支持资源的预分配,支持实时视像等要求,保证一定的带宽和时延的使用IPv6
取消了协议字段,改成下一个首部字段IPv6
取消了总长度字段,改用有效载荷长度字段IPv6
取消了服务类型字段
5.12.IPv6
基本地址类型
单播
一对一通信 – 可做源地址 + 目的地址
多播
一对多通信 – 可做目的地址
任播
一对多中的一个通信 – 可做目的地址
5.13.IPv6
向IPv4
过渡的策略
双栈协议
双协议栈技术就是指在一台设备上同时启用
IPv4
协议栈和IPv6
协议栈。这样的话,这台设备既能和IPv4
网络通信,又能和IPv6
网络通信。如果这台设备是一个Router
,那么这台Router的不同接口上,分别配置了IPv4
地址和IPv6
地址,并很可能分别连接了IPv4
网络和IPv6
网络。如果这台设备是一个计算机,那么它将同时拥有IPv4
地址和IPv6
地址,并具备同时处理这两个协议地址的功能
隧道技术
通过使用互联网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据(或负载)可以是不同协议的数据帧或包。隧道协议将其他协议的而数据帧或包重新封装然后通过隧道发送。
5.14.路由算法
5.14.1 - 静态路由算法
非自适应路由算法 – 管理员手工配置路由信息
- 简便、可靠,在负荷稳定、拓扑变化不大的网络中运行效果很好,广泛用于高度安全性的军事网络和较小的商业网络
- 路由更新慢,不适用大型网络
5.14.2 - 动态路由算法
自适应路由算法 – 路由器之间彼此交换信息,按照路由算法优化出路由表项
- 路由更新快,使用大型网络,及时响应链路费用或网络拓扑变化
- 算法复杂,要增加网络负担
分类:
- 全局性 – 链路状态路由算法
OSPF
- 所有路由器掌握完整的网络拓扑和链路费用信息- 分散性 – 距离向量路由算法
RIP
- 路由器只掌握物理相连的邻居及链路费用
三种路由协议比较
RIP
是一种分布式的基于向量的内部网关路由选择协议,通过广播UDP
报文来交换路由信息OSPF
是一种内部网关协议,要交换的信息量较大,应使报文的长度尽量短,所以不适用传输层协议,二十直接采用IP
BGP
是一个外部网关协议,在不同的自治系统之间交换路由信息,由于网络环境复杂,需要保证可靠传输,所以采用TCP
协议 | RIP |
OSPF |
BGP |
---|---|---|---|
类型 | 内部 | 内部 | 外部 |
路由算法 | 距离向量 | 链路状态 | 路径相连 |
传递协议 | UDP |
IP |
TCP |
路劲选择 | 跳数最少 | 代价最低 | 较好,非最佳 |
交换节点 | 相邻路由器 | 网络中所有路由器 | 相邻路由器 |
交换内容 | 当前路由器知道的全部信息,即自己的路由表 | 与本路由器相邻的所有路由器的链路状态 | 首次交换整个路由表,之后交换有变化部分 |
5.14.2.1.RIP
协议
是一种分布式的,基于距离向量的路由选择协议,是因特网的协议标准,最大优点是简单。它要求网络中每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳纪录(即一组距离)
- 距离 – 通常为跳数,即从源端口到目的端口所经过的路由器个数,经过一个路由器跳数+1.特别的,从一路由器直接连接的网络距离位1,
RIP
允许一条路由最多只能包含15个路由器,因此距离位16表示网络不可达
交换
- 仅和相邻路由器交换信息
- 路由器交换的信息是自己的路由表
- 每30秒交换一次路由信息,然后路由器根据新信息更新路由表。若超过180s没有收到邻居路由器的通告,则判定邻居路由器没了,并更新自己的路由表
路由器刚开始工作时,只知道直接连接的网络的距离(距离为1),接着每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息
经过若干次更新后,所有路由器最终都会知道到达本自治系统任何一个网络的最短距离和下一跳路由器的地址,即收敛
距离向量算法
- 修改相邻路由器发来的
RIP
报文中所有表项 – 对地址为x的相邻路由器发来的RIP
报文中的所有项目:把“下一跳”字段中的地址改为x,并把所有的“距离”字段+1- 对修改后的
RIP
报文中的每一个项目,进行下列步骤
- 若下一跳是X,则用收到的项目替换源路由表中的项目
- 若下一跳不是X,原来距离比X走的距离远则更新,否则不做处理
- 若180s还没收到相邻路由器X的更新路由表,则把X记为不可达路由器,即把距离设置为16
报文格式
RIP
是应用层协议,使用UDP
传输数据一个
RIP
报文最多可包括25个路由,如超过,必须再用一个RIP
报文传送
- 2字节 – 地址族标识符
- 2字节 – 路由标记
- 4字节 – 网络地址
- 4字节 – 子网掩码
- 4字节 – 下一跳路由器地址
- 4字节 – 距离(1-16)
5.14.2.2.OSPF
协议
开放最短路径优先,是因为使用了
Dijkstra
提出的最短路径算法SPF
OSPF
最主要的特征就是使用分布式的链路状态协议
交换
- 使用洪泛法向自治系统内所有的路由器发送信息,即路由器通过输出端口向所有相邻的路由器发送信息,而每一个相邻路由器又再次将此信息发往其所有相邻路由器
- 发送的信息就是与本路由器相邻的所有路由器的链路状态(本路由器和哪些路由器相邻,以及该链路的度量/代价 – 费用、距离、时延、带宽等)
- 只有当链路发生变化时,路由器才向所有的路由器洪泛发送信息
最后,所有路由器都能建立一个链路状态数据库,即全网拓扑图
链路状态路由算法
- 每个路由器发现它的邻居结点【HELLO问候分组】,并了解邻居结点的网络地址
- 设置到它的每个邻居的成本度量
metric
- 构造【DD数据库描述分组】,向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息
- 如果DD分组中的摘要自己都有,则邻站不做处理,如果有没有的或者是更新的,则发送【
LSR
链路状态请求分组】,请求自己没有的和比自己更新的信息- 收到邻站的
LSR
分组后,发送【LSU
链路状态更新分组】进行更新- 更新完毕后,邻站返回一个【
LSAck
链路状态确认分组】进行确认- 使用
Dijkstra
,根据自己的链路状态数据库构造到其他节点间的最短路径只要有一个路由器的链路状态发生变化,就会洪泛发送【
LSU
链路状态更新分组】进行更新。更新完毕后,其他站返回一个【LSAck
链路状态确认分组】进行确认
OSPF
的区域为了使
OSPF
能够用于规模很大的网络,OSPF
将一个自治系统再划分为若干个更小的范围,叫做区域。每一个区域都有一个32位的区域标识符(用点分十进制表示)。区域也不能太大,在一个区域内的路由器最好不超过200个
OSPF
分组直接用
IP
数据报传送。包括:
IP
数据报首部OSPF
分组
OSPF
分组首部- 类型 1 至类型 5 的
OSPF
分组
其他特点
- 每 30 分钟,要刷新一次数据库中的链路状态
- 由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。因此当互联网规模很大时,
OSPF
协议要比距离向量RIP
协议好得多- 不存在坏消息传的慢的问题,收敛速度很快
5.14.3 - 分层次的路由选择协议
- 因特网规模很大
- 许多单位不想让外界知道自己的路由选择协议,但还想炼乳因特网
自治系统
AS
在单一的技术管理下的一组路由器,而这些路由器使用一种
AS
内部的路由选择协议和共同的度量以确定分组在该AS
内的路由,同时还使用一种AS
之间的路由协议以确定在AS
之间的路由一个
AS
内的所有网路都属于一个行政单位来管辖,一个自治系统的所有路由器在本自治系统内都必须连通
5.14.4 - 路由选择协议
内部网关协议
IGP
在一个
AS
内使用的
RIP
、OSPF
外部网关协议
EGP
在
AS
之间使用的
BGP
5.14.4.1.BGP
协议
当
BGP
发言人相互交换了网络可达性的信息后,各BGP
发言人就根据所采用的策略从收到的路由信息中找出到达各AS
的较好路由
交换
- 与其他
AS
的邻站BGP
发言人交换信息- 交换的网络可达性的信息,即要到某个网络所要经过的一系列
AS
- 发生变化是更新有变化部分
报文格式
BGP
是应用层协议,借助TCP
传送
BGP
协议特点
BGP
支持CIDR
,因此BGP
的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。在
BGP
刚刚运行时,BGP
的邻站是交换整个BGP
路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销都有好处
BGP-4
的四种报文
OPEN
- 用来与相邻的另一个BGP
发言人建立关系,并认证发送方UPDATE
- 通知新路径或撤销源路径KEEPALIVE
- 在无UPDATE
时,周期性证实邻站的连通性,也作为OPEN
的确认NOTIFICATION
- 报告先前报文差错,也被用于关闭连接
5.15.IP
数据报的三种传输方式
5.15.1 - 单播
发送数据报到单个目的地,且每发送一份单播报文都使用一个单播
IP
地址作为目的地址。是点对点传输方式
5.15.2 - 广播
发送数据包到同一广播域或子网内的所有设备的一种数据传输方法,是一种点对多点的传输方式
5.15.3 - 组/多播
当网络中的某些用户需要特定数据时,组播数据发送者仅发送一次数据,借助组播路由协议,位组播数据包建立组播分发树,被传递的数据到达距离用户端尽可能近的结点后才开始复制和分发,是一种点对多点的传输方式
5.15.3.1.IP
组播地址
让原设备能够将分组发送给一组设备。属于多播组的设备将被分配一个组播组
IP
地址(一群共同需求主机的相同标识)组播地址的范围224.0.0.0~239.255.255.255(
D
类地址),一个D
类地址表示一个组播组。只能用作分组的目的地址。源地址总是单播地址
- 组播数据报也是尽最大努力交付,不提供可靠交付,应用于
UDP
- 对组播数据报不产生
ICMP
差错报文- 并非所有
D
类地址都可以作为组播地址
5.15.3.2.硬件组播
同单播地址一样,组播
IP
地址也需要相应的组播MAC
地址在本地网络中实际传送帧。组播MAC
地址以十六进制值01-00-5E打头,余下的6个十六进制位是根据IP
组播地址的最后23位转换得到的收到的多播数据报的主机,还要再
IP
层利用软件进行过滤,把不是本主机要接受的数据报丢弃。
5.15.3.3.IGMP
协议
让路由器知道本局域网上是否有主机参加或退出了某个组播组,使用
IP
数据报传递报文
- 某主机要加入组播组时,该主机向组播组的组播地址发送一个
IGMP
报文,声明自己要成为该组的成员。本地组播路由器收到IGMP
报文后,要利用组播路由选择协议把这组成员关系发给因特网上的其他组播路由器- 本地组播路由器周期性探询本地局域网上的主机,以便知道这些主机是否还是组播组的成员
- 只要有一个主机对某个组响应,那么组播路由器就会认为这个组是活跃的。
- 如果几次探询后没有一个主机响应,组播路由器就认为本网络上的没有次组播组的主机,因此就不再把这组的成员关系发给其他的组播路由器
5.15.3.4.组播路由选择协议
目的是找出以源主机为根结点的组播转发树。
构造树可以避免在路由器之间兜圈子
对不同的多播组对应于不同的多播转发数;同一个多播组,对不同的源点也会有不同的多播转发树
组播路由选择协议常使用的三种算法
- 基于链路状态的路由选择
- 基于距离向量的路由选择
- 协议无关的组播(稀疏/密集)
5.16.移动IP
移动
IP
技术是移动结点(计算机/服务器等)以固定的网络IP
地址,实现跨越你同网段的漫游功能,并保证了基于网络IP
的网络权限在漫游过程中不发生任何改变
- 移动结点 – 具有永久
IP
地址的移动设备- 归属代理(本地代理)– 一个移动结点拥有的就居所称为归属网络,在归属网络中代表移动节点执行移动管理功能的实体叫做归属代理
- 外部代理(外地代理)– 在外部网络中帮助移动节点完成移动管理功能的实体称为外部代理
- 永久地址(归属/主地址)– 移动站点在归属网络中的原始地址
- 转交地址(辅地址)– 移动站点在外部网络使用的临时地址。
5.17.路由器
路由器是一种具有多个输入输出端口的专用计算机,其任务是转发分组
- 路由选择 – 根据所选定的路由选择协议构造出路由表,同时经常或定期的和相邻路由器交换路由信息而不断地更新和维护路由表
- 路由选择处理机
- 路由选择协议
- 路由表
- 分组转发 – 若收到
RIP
/OSPF
分组等,则把分组送往路由选择处理及,若收到数据分组,则查找转发表并输出
- 输入端口
- 输出端口
- 交换结构 – 根据转发表 [ 由路由表得来 ]对分组进行转发
5.17.1 - 输入端口
- 从线路上接受分组
- 物理层处理
- 数据链路层处理
- 网络层处理 – 分组排队、查表和转发,产生时延
- 交换结构
输入端口中的查找和转发功能在路由器的交换功能中是最重要的
5.17.2 - 输出端口
- 交换结构
- 网络层处理 – 分组排队、缓存管理,产生时延
- 数据链路层处理
- 物理层处理
- 向线路发送分组
若路由器处理分组的速率赶不上分组进入队列的速率,则队列的存储空间最终必定减少到零,这就使后面再进入队列的分组由于没有存储空间而只能被丢弃,路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因
5.17.3 - 路由表与路由转发
路由表根据路由选择算法得出的,主要用途是路由选择,用软件来实现
- 目的网络地址
- 子网掩码
- 下一跳
IP
地址- 接口
默认路由的目的网络地址和子网掩码都是0.0.0.0
转发表由路由表得来,可用软件实现,也可由特定的硬件来实现。转发表必须包含完成转发功能所必须的信息,在转发表的每一行必须包含从要到达的目的网络到输出端口和某些MAC地址信息的映射
5.18.三层设备的区别
路由器 – 可以互联两个不同网络层协议的网段
网桥 – 可以互联两个物理层和链路层不同的网段
集线器 – 不能互联两个物理层不同的网段
六、传输层
TCP
UDP
传送数据之前必须建立连接,数据传送结束后要释放连接。不提供广播或多播服务。由于 TCP
要提供可靠的面向连接的传输服务,因此不可避免增加了许多开销 – 确认,流量控制,计时器及连接管理等传输数据之前不需要建立连接,收到 UDP
报文后也不需要给出任何确认可靠、面向连接、时延大、适用于大文件 不可靠、无连接、时延小、适用于小文件
6.1.传输层的寻址与端口
6.1.1 - 复用
应用层所有的应用进程都可以通过传输层再传输到网络层
6.1.2 - 分用
传输层从网络层收到数据后交付指明的应用进程
6.1.3 - 端口
- 服务端使用端口号
- 熟知端口号 0~1023 – 给
TCP/IP
最重要的一些应用程序,让所有用户都知道
FTP
– 21TELNET
– 23SMTP
– 25DNS
– 53TFTP
– 69HTTP
– 80SNMP
– 161- 登记端口号 1024~49151 – 为没有输指端口号的应用程序使用的
- 客户端使用的端口号 49152~65535 – 仅在客户进程运行时才动态选择
在网络中采用发送方和接收方的套接字组合来识别端点,套接字唯一标识了网络中的一个主机和它上面的一个进程
- 套接字
Socket
= (主机IP
地址,端口号)
6.2.UDP
协议
UDP
旨在IP
数据报服务之上增加了很少的功能,即复用分用和差错检测功能
UDP
是无连接的,减少开销和发送数据之前的时延UDP
使用最大努力交付,即不保证可靠交付UDP
是面向报文的,适合一次性传输少量数据的网络应用
- 面向报文 – 应用层给
UDP
多长的报文,UDP
就照样发送,即一次发一个完整报文UDP
无拥塞控制,适合很多实时应用UDP
首部开销小,8B,TCP
20B
6.2.1 - UDP
首部格式
- 16b 源端口号
- 16b 目的端口号
- 16b
UDP
长度 – 指整个UDP
用户数据报的长度- 16b
UDP
检验和 – 检测整个UDP
数据报是否有错,错就丢弃分用时,找不到对应目的端口号就丢弃报文,并给发送方发送
ICMP
“端口不可达”差错报告报文。
6.3.TCP
协议
- 是面向连接的协议(虚连接)的传输层协议
- 每一条
TCP
连接只能由两个端点,每一条TCP
连接只能是点对点的TCP
提供可靠交付的服务,无差错、不丢失、不重复、按序到达(可靠有序,不丢不重)TCP
提供全双工通信。
- 发送缓存 – 准备发送的数据和以发送但尚未收到确认的数据
- 接收缓存 – 按序到达但尚未被接受应用程序读取的数据和不按序到达的数据
TCP
面向字节流 –TCP
把应用程序交下来的数据看成仅仅是一连串的无结构的字节流
- 流 – 流入到进程或从进程流出的字节序列
6.3.1 - TCP
报文首部格式
- 16b 源端口
- 16b 目的端口
- 32b 序号 – 在一个
TCP
连接中传送的字节流中的每一个字节都按序编号,本字段表示本报文段所发送数据的第一个字节的序号- 32b 确认号 – 期望收到对方下一个报文段的第一个数据字节的序号。若确认号为
N
,则证明到序号N-1
为止的所有数据都已正确收到- 4b 数据偏移 –
TCP
报文段的数据起始处距离TCP
报文段的起始处有多远,以4B
为单位,即·个数值是4B
- 6b 保留
- 1b
URG
–URG
= 1 时,标明此报文段中有应急数据,是高优先级的数据,应尽快传送,不用在缓存里排队,配合紧急指针字段使用- 1b
ACK
-ACK
-=1 时,确认号有效,在连接建立后所有传送报文段都要把ACK
置为 1- 1b
PSH
-PSH
= 1 时,接收方尽快交付接收应用进程,不用等到缓存填满再向上交付- 1b
RST
-RST
= 1 时,表明TCP
连接中出现严重差错,必须释放连接,然后再重新建立传输链接- 1b
SYN
-SYN
= 1 时,表明连接是一个连接请求/连接接收报文- 1b
FIN
-FIN
= 1 时,表明此报文段发送方数据已发完,要求释放连接- 16b 窗口 – 指的是发送本报文段的一方的接收窗口,即现在允许对方发送的数据量
- 16b 检验和 – 检验首部+数据,检验时要加上12B伪首部,第四个字段为6
- 16b 紧急指针 –
URG
= 1 时,指出本报文中紧急数据的字节数- 选项 + 填充
6.3.2 - TCP
连接管理
- 连接建立 – 采用C/S方式,主动发起连接建立的应用程序叫客户,被动等待连接建立的应用进程叫服务器
- 客户端发送连接请求报文段,无应用层数据
- SYN = 1,seq = x (随机)
- 服务器为该
TCP
连接分配缓存和变量,并向客户端返回确认报文段,允许连接,无应用层数据。
- SYN = 1,ACK = 1,seq = y (随机),ack = x + 1
- 客户端为该
TCP
连接分配缓存和变量,并向服务器端返回确认的确认,可以携带数据
- ACK = 1,seq = x + 1,ack = y + 1
- 数据传送
- 连接释放 – 参与一条
TCP
连接的两个进程中的任何一个都能终止该连接,连接结束后,主机中的“资源”将被释放
- 客户端发送连接释放报文段,停止发送数据,主动关闭
TCP
连接
- FIN = 1,seq = u
- 服务器端回复一个确认报文段,客户到服务器这个方向的连接就释放了 – 半关闭状态
- ACK = 1,seq = v,ack = u + 1
- 服务器发完就可以发出连接释放报文段,主动关闭
TCP
连接
- FIN = 1,ACK = 1,seq = w,ack = u + 1
- 客户端回复一个确认报文段,再等到时间等待计时器设置的2MSL(最大报文段寿命)后,连接彻底关闭
- ACK = 1,seq = u + 1,ack = w + 1
6.3.2.1.SYN
洪泛攻击
SYN
洪泛攻击发生在OSI
第四层,这种方式利用TCP
协议的特性,就是三次握手。攻击者发送TCP SYN
,SYN
是TCP
三次握手中的第一个数据包,而当服务器返回ACK
后,该攻击者就不对其进行再确认,那这个TCP
连接就处于挂起状态,也就是所谓的半连接状态,服务器收不到再确认的话,还会重复发送ACK
给攻击者。这样更加会浪费服务器的资源。攻击者就对服务器发送非常大量的这种TCP
连接,由于每一个都没法完成三次握手,所以在服务器上,这些TCP
连接会因为挂起状态而消耗CPU
和内存,最后服务器可能司机,就无法为正常用户提供服务了。
6.3.3 - TCP
可靠传输
- 确认 – 接收方在接收到报文后要回复确认报文,也可以在要传输的数据中携带上确认
- 重传 –
TCP
的发送方在规定时间内没有收到确认就要重传以发送的报文段,TCP
采用自适应算法,动态改变重传时间RTTs
(加权平均往返时间)- 校验
- 序号
冗余
ACK
(冗余确认)每当比期望序大的失序报文到达时,发送一个冗余
ACK
,指明下一个下带字节的序号发送方收到**3个对于某个报文的冗余
ACK
**则认定其丢失
6.3.4 - TCP
流量控制
在通信过程中,接收方根据自己接收缓存的大小,动态地调整发送方地发送窗口大小,即接收窗口rwnd(接收方设置确认报文段地窗口字段来将
rwnd
通知给发送方),发送方的**发送窗口取接收窗口rwnd
和拥塞窗口cwnd
的最小值
TCP
为每一个连接设有一个持续计时器,只要连接的一方收到对方的零窗口通知,就启动持续计时器- 若持续计时器设置的时间到期,就发送一个零窗口探测报文段。接收方收到的探测报文段时给出现在的窗口值
6.3.5 - TCP
拥塞控制
出现拥塞的条件
对资源需求的总和 > 可用资源
网络中有许多资源同时呈现供应不足 => 网络性能变坏 => 网络吞吐量将随输入负荷增大而下降
拥塞控制 – 防止过多的数据注入到网络中
四种算法:
- 慢开始
- 拥塞避免
- 快重传
- 快恢复
接收窗口 – 接收方根据接收缓存设置的值,并告知给发送方,反映接收方容量
拥塞窗口 – 发送方根据自己估算的网络拥塞程度而设置的窗口值,反映网络当前容量
七、应用层
7.1.网络应用模型
7.1.1 - 客户/服务器模型
Client/Server
服务器 – 提供计算服务的设备
- 永久提供服务
- 永久性访问地址/域名
客户机 – 请求计算服务的主机
- 与服务器通信,使用服务器提供的服务
- 间歇性接入网络
- 可能使用动态
IP
地址- 不与其他客户机直接通信
7.1.2 - P2P
模型
- 不存在永远在线的服务器
- 每个主机既可以提供服务,也可以请求服务
- 任意端系统/节点之间可以直接通讯
- 节点间歇性接入网络
- 节点可能改变
IP
地址- 可扩展性好
- 网络健壮性强
7.2.DNS
系统
7.2.1 - 域名
- 顶级域名
- 国家顶级域名
- cn,us,uk
- 通用顶级域名
- com,net,org,gov,int,aero,museum,travel
- 基础结构域名/反向域名
- arpa
- 二级域名
- 类别域名
- ac,com,edu,gov,mil,net,org
- 行政区域名用于我国各省、自治区、直辖市
- bj,js
7.2.2 - 域名服务器
7.2.2.1.根域名服务器
掌握各个顶级域名服务器以及对应的
IP
地址
7.2.2.2.顶级域名服务器
管理该顶级域名服务器注册的所有二级域名
7.2.2.3.权限域名服务器
负责一个区的域名服务器
7.2.2.4.本地域名服务器
当一个主机发出
DNS
查询请求时,这个查询报文就会发给本地域名服务器,如果本地没有,则访问根域名服务器
7.2.3 - 域名解析过程
7.2.3.1.递归查询
靠上层域名服务器,由上层域名服务器去找下一步应该做什么
7.2.3.2.迭代查询
靠本地域名服务器,上一层域名服务区告诉本地域名服务器下一步该找谁
7.3.FTP
文件传输协议
7.3.1 - FTP
File Transfer Protocol
提供不同种类主机系统(软/硬件体系等都可以不同)之间的文件传输能力,使用
TCP
实现可靠传输
7.3.1.1.FTP
服务器和用户端
FTP
是基于客户/服务器的协议- 用户通过一个客户机程序连接至在远程计算机上运行的服务器程序
- 依照
FTP
协议提供服务,进行文件传输的计算机就是FTP
服务器- 连接
FTP
服务器,遵循FTP
协议与服务器传输文件的电脑就是FTP
客户端
7.3.1.2.FTP
工作原理
- 登录
- ftp地址 用户名 密码
- 控制连接始终保持 – 端口为 21
- 数据连接保持一会儿 – 端口为 20
- 主动方式下(服务器自己告诉客户,自己的端口号),数据端口是20
- 被动方式下由客户端和服务器自己协商一个大于1024的端口
7.3.1.3.FTP
传输模式
- 文本模式
ASCII
模式,以文本序列传输数据- 二进制模式
Binary
模式,以二进制传输数据
7.3.2 - TFTP
Trivial File Transfer Protocol
7.4.电子邮件系统
使用可靠的
TCP
连接
- 信封
- 内容
- 首部
- 收件人
- 主题
- 主体
7.4.1 - 组成结构
双方各有
- 用户代理 – 电子邮件客户端软件
- 撰写
- 显示
- 处理
- 通信
- 邮件服务器
- 发送和接收
- 向发件人报告邮件传输结果
邮件协议
SMTP
– 发送POP3
/IMAP
– 接收
7.4.2 - SMTP
协议
规定了在两个互相通信的
SMTP
进程之间应如何交换信息负责发送邮件的
SMTP
进程就是SMTP
客户,负责接收邮件的进程就是SMTP
服务器
SMTP
规定了14条命令和21种应答信息
- 使用
TCP
连接- 端口号 – 25
- 工作方式
C/S
7.4.2.1.通信的三个阶段
- 连接建立
- 邮件发送
- 连接释放
7.4.2.2.SMTP
的缺点
- 不能传送可执行文件或者其他二进制对象
- 仅限于传送7位
ASCII
码,不能传送其他非英语国家的文字- 服务器会拒绝超过一定长度的邮件
7.4.3 - POP3
协议
两种工作方式
- 下载并保留(在服务器)
- 下载并删除
7.4.4 - IMAP
协议
网际报文存取协议
比
POP3
复杂,当用户在PC
上的IMAP
客户程序打开IMAP
服务器的邮箱时,用户可以看到邮箱的首部,若用户需要打开某个邮件,该邮件才上传到用户的计算机上。可以让用户在不同的地方使用不同的计算机随时上网阅读处理邮件,还允许只读取邮件中的某一部分
7.5.万维网概述
World Wide Web
是一个大规模的、联机式的信息储藏所/资料空间,是无数个网络站点和网页的集合
7.5.1 - URL
的一般形式
<协议> : // <主机> : <端口> / <路径>
7.5.2 - HTTP
协议
定义了浏览器怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器
- 浏览器分析
URL
- 浏览器向
DNS
请求解析IP
地址DNS
解析出IP
地址- 浏览器与服务器建立
TCP
连接- 浏览器发出取文件命令
- 服务器响应
- 释放
TCP
连接- 浏览器显示
7.5.3 - HTTP
的特点
HTTP
协议是无状态的采用
TCP
作为传输层协议,但HTTP
本身是无连接的 – 通信双方在交换HTTP
报文之前无需建立HTTP
连接连接方式
- 持久连接
- 非流水线
- 流水线
- 非持久连接