一、绪论
1 交换方式
电路交换:比如电话,建立真实专用连接,并保证连接的各种资源
报文交换:如电报,将报文全部接收,然后转发
分组交换:因特网,接收分组,然后转发
2 网络性能
速率
带宽:单位时间内从网络的某一点到另一点所能通过的“最高数据率”
吞吐量
时延=发送时延+传播时延+处理时延+排队时延
往返时间RTT Round-Trip Time 从发送方发送数据开始,到接收到来自接收方的确认,总共经历的时间。与发送的分组长度有关
利用率 信道或网络利用率过高会产生非常大的时延
3 五层协议的体系结构
应用层
传输层
网络层
数据链路层
物理层 接口形式,电压水平,传递信息用的武理媒介双绞线光纤等并不属于物理层,而是在物理层的下面一层
二、物理层
1 物理层基本概念
规定了机械特性、电气特性、功能特性、过程特性
2 数据通信的基础知识
基带信号:来自信源的信号,如计算机输出的代表各种文字或图像文件的数据信号。基带信号往往含有较多的低频成分,甚至直流成分,而许多信道并不能传输低频分量或直流分量。必须对基带信号进行调制
基带调制 仅对基带信号的波形进行变换,使它能够与信道特性相适应,变换后的信号仍是基带信号,也称为编码
带通调制 使用载波进行调制,将基带信号的频率范围搬迁到较高的频段,并转化为模拟信号。经过载波调制后的信号成为带通信号,即尽在一定频率范围内能通过信道,使用载波的调制称为带通调制
可通过调幅、调频、调相实现
3 信道的极限容量
信道能通过的频率范围 高频信号容易衰减 码间干扰与奈氏准则
信噪比 信号的平均功率与噪声的平均功率之比,常记为S/N,并用分贝dB作为度量单位
信噪比dB=10logS/N dB
香农公式与信道的极限信息传输速率C
C
=
W
l
o
g
2
(
1
+
S
/
N
)
C=Wlog_2(1+S/N)
C=Wlog2(1+S/N)
W为信道的带宽 以Hz为单位
香农公式的意义在于:只要信息传输速率低于信道的极限信息传输速率,就一定可以找到某种办法来实现无差错的传输
4 信道复用
频分复用 所有用户在同样的时间占用不同的带宽资源
时分复用 所有用户在不同时间占用同样的频带宽度
统计时分复用 异步时分复用
波分复用 光的频分复用 掺饵光纤放大器可直接实现光信号的放大
码分复用 频谱类似于白噪声 每个站点被指派一个m bit码片序列,如果要发送比特1,就发送自己的m bit码片序列,如果发送比特0,就发送码片序列的反码
5 宽带接入技术
ADSL技术 把0-4kHz低端频谱留给传统电话使用,而把原来没有被利用的高端频谱留给上网用户使用
三、数据链路层
1 链路与数据链路
链路指两个节点间的一段物理线路,中间没有任何其他交换节点
数据链路还包括实现通信协议的硬件和软件。一般的网络适配器包含了数据链路层和物理层的功能
2 三个基本问题
封装成帧 数据链路层协议规定了所能传输的帧的数据部分长度上限MTU
透明传输 解决传输数据中存在帧定界符的问题
差错控制 CRC循环冗余校验(多项式编码) 知识点 海明距离 海明定理
在数据链路层使用CRC检验,能够实现无比特差错的传输,但还不是可靠传输,有可能出现帧丢失、帧重复、帧失序
对于通信质量良好的有线传输链路,数据链路层不使用确认和重传机制,而对于通信质量较差的无线传输链路,数据链路层使用确认和重传机制
生存时间值TTL time to live
3 点对点协议 PPP
CSMA/CD协议
以太网提供的服务是尽最大努力的交付,是不可靠的交付。如果检测到有差错的数据帧,仅仅将其丢弃,而不做其他动作。
CSMA/CD协议的以太网是半双工通信
发送前检测信道
边发送边检测
碰撞后强化碰撞与退避
四、网络层
网络层提供无连接的、尽最大努力交付的服务 ,在网络层只检查ip数据报首部是否出错而不检测数据部分
与ip协议配套的三个协议
地址解析协议ARP
网际控制报文协议ICMP
网际组管理协议IGMP 与多播相关
1 ip分类 网络号+主机号
2 子网划分 网络号+子网号+主机号
3 CIDR无分类编址 网络前缀+主机号
可以大大减小路由表
4 网际控制报文协议ICMP
允许主机或路由器报告差错情况和提供有关异常情况的报告
比如ping,traceroute
5 路由选择协议
分层次的路由选择协议 内部网关协议IGP(RIP,OSPF) 外部网关协议EGP(BGP)
内部网关协议 RIP
RIP要求路由器维护一个 从本路由器到其他每一个目的网络的距离记录,距离使用跳数来衡量,RIP允许一条路径最多只能包含15个路由器,因此RIP只适用于小型互联网
RIP协议特点:
仅和相邻路由器交换信息
交换的信息是自己的路由表
按规定时间间隔交换路由信息
距离向量算法
(1)修改相邻路由X发来的路由表,将下一跳全部改为X,距离加1
(2)对于修改后的项目,若原来的路由表中没有目的网络N,则把该项加入路由表
如果有,并且下一跳是X,则更新路由表,如果下一跳不是X,则比较收到项目中的距离和路由表中的距离,取小值
(3)如果3分钟没有收到相邻路由的路由表,则将该路由器标记为不可达,距离设置为16
(4)返回
内部网关协议OSPF
(1)向本自治系统所有路由器发送信息,使用洪泛法。路由器通过所有输出端口向相邻路由器发送信息,而每一个相邻路由器又再将此信息发往其相邻路由
(2)发送的信息是与本路由器相邻的所有路由器的链路状态,说明本路由器和哪些路由器相邻,以及该链路的度量。度量用来表示费用、距离、时延、带宽等,这些由网络管理人员决定,相比于RIP,更加灵活
(3)只有当链路状态发生变化时,路由器才向所有路由器使用洪泛法发送信息
自治系统中的所有路由器都能建立一个链路状态数据库,实际上是全网的拓扑结构图,每个路由器可以使用这些数据构造自己的路由表
其他特点
(1)OSPF对于不同类型的业务可计算出不同的路由
(2)如果到同一目的网络有多条代价相同的路由,可以将通信量分配给这几条路径,实现多路径间的负载均衡
外部网关协议BGP
6 VPN和网络地址转换NAT
五、运输层
为应用进程间提供端到端的逻辑通信
UDP
udp是无连接的、尽最大努力的交付;udp面向报文,对于应用层交下来的报文,只是简单的添加首部,既不合并,也不拆分;udp没有拥塞控制
TCP
面向连接的可靠交付服务,全双工通信,
面向字节流 TCP并不关心应用程序一次把多长的报文发送到TCP的缓存中,而是根据对方给出的窗口值和当前网络拥塞成都来决定一个报文段应包含多少字节(UDP发送的报文长度是应用进程给出的)。如果应用进程发送到TCP缓存的数据块太长,TCP就可以把它划分短一些再传送。如果应用进程一次只发来一个字节,TCP也可以等待积累有足够多的字节后再构成报文段发送出去
TCP连接的端点叫套接字,ip地址:端口号
每一条TCP连接唯一地被通信两端的两个端点(即两个套接字)所确定
1 可靠传输原理
停止等待协议
1 无差错情况
发送方在收到接收方确认后发送下一个分组
2 出现差错
接收方什么都不做,发送方只要在一段时间内没有收到确认,就重新发送数据包,即超时重传
注意三点:
- 发送方必须暂时保留已发送分组的副本,只有在收到相应确认后CIA可删除
- 分组和确认分组都必须进行编号,这样才能明确是哪一个发出去的分组收到了确认
- 超时计时器设置的重传时间应该比数据在分组传输的平均往返时间更长一些
3 确认丢失和确认迟到
如果接收方发回的确认丢失,发送方不知道是发送的分组出错、丢失还是确认丢失,发送方会重新发送分组。此时接收方应该丢弃重复的分组,并向发送方发送确认
使用这种确认和重传机制,可以在不可靠的传输网络上实现可靠的通信。
这种可靠传输协议称为自动重传请求ARQ
连续ARQ协议
由于停止等待协议信道利用率太低,因此使用连续ARQ协议
接收方使用累计确认,对按时序到达的最后一个分组发送确认
优点:容易实现,确认丢失也不必重传
缺点:不能向发送方反映出接收方已正确收到的所有分组的信息
2 TCP报文的首部格式
序号:32字节,对每一个字节都按顺序编号
确认号:期望收到对方下一个报文段的第一个数据字节的序号
紧急URG: URG=1时会将该报文的数据插入到TCP缓存队列最前端
确认ACK:当ACK=1时,确认号字段才有效
同步SYN:在建立连接时用来同步序号
2 TCP可靠传输的实现
以字节为单位的滑动窗口 3个指针
超时重传时间的选择 RTT
选择确认SACK
3 TCP的流量控制
让发送方的发送速率不要太快,要让接收方来得及接收
通信双方在建立连接时会协商窗口,随后接收方给发送方发送确认时会根据自己的缓存来调整接收窗口,如果接收方的接收窗口为0,则发送方不能再发送数据并启动一个持续计时器,直到接收方发来新的窗口或者计时器时间到后给接收方发送一个零窗口探测报文段,如果确认报文段的窗口值不为0,则可以继续发送,如果仍然为0则重置计时器
4 TCP的拥塞控制
拥塞控制就是防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。
拥塞控制所要做的都有一个前提,就是网络能够承受现有的网络负荷,拥塞控制是一个全局性的过程,设计到所有的主机、路由器以及与降低网络性能有关的所有因素
对资源的需求>可用资源
AIMD算法
(1)慢开始和拥塞避免
调整拥塞窗口
加法增大、乘法减小
(2)快重传和快恢复
如果接收方收到失序报文段应立即发出重复确认,让发送方及早知道有报文段没有到达对方,而不是捎带确认。
快重传算法规定,发送方只要一连收到三个重复确认就赢立即重传对方尚未收到的报文段,而不必等待重传计时器到期。由于发送方能尽早重传未被确认的报文段,因此可以使整个网络吞吐量提高约20%
快恢复
(1)当收到三个重复确认时,乘法减小算法,ssthresh减半
(2)不执行慢开始算法,将拥塞窗口cwnd设置为ssthresh,随后执行拥塞避免算法
发送方窗口的上限值=min(rwnd,cwnd)
(3)随机早期检测RED
由于多条TCP连接复用在IP数据报中,容易造成全局同步,为了避免全局同步现象,可以使用随机早期检测RED
(4)Google BBR算法
5 TCP的运输连接管理
TCP连接的建立
TCP连接的建立采用客户-服务器方式
SYN报文段不能携带数据,但要消耗一个序号,ACK报文可以携带数据,但是如果不携带数据则不消耗序号
使用三次握手可以防止已失效的连接请求报文段突然又传送到了服务器,因而产生错误
TCP连接的释放
FIN报文段要消耗一个序号
还要注意时间等待计时器与保活计时器的问题