目录
绪论
- 数据通信:两台设备之间通过某种形式的传输介质或网络进行的数据交换,更通俗地说,就是将数据从一个地方传送到另一个地方。
- 网络:用通信链路连接起来的设备(称为节点)的集合
- 网络模型:OSI(7层)和因特网(5层)模型
- 因特网:即Internet,最早由美国国防部高级研究计划局(DARPA)设计,称为ARPANet(阿帕网),目的是把各种计算机连在一起
- 协议和标准:协议的是哪个核心要素:语法(syntax)、语义(semantics)、时序(timing);
两类数据通信标准:事实标准、法定标准
网络模型
- OSI 七层模型(自底向上):物理层,数据链路层,网络层,传输层,会话层,表示层,应用层
- 协议数据单元(PDU)是对等实体在交互作用中传递的数据单元
- 各层次功能:物理层负责位(bit)从一个节点 到另一个节点的传递;数据链路层负责帧(frame)从一跳(节点) 到下一跳(节点)传递;网络层负责将各个分组(packet) 从源地址传递到目的地址;传输层负责报文 从一个进程到另一个进程的传递;会话层负责对话控制(允许两系统会话及会话方式控制)和同步(增加检查点或同步点);表示层负责翻译、加密和压缩数据;应用层负责向用户提供服务
- TCP/IP协议族的四个层次:网络接口层,互联网层,传输层,应用层。TCP/IP协议族的四层地址:物理地址,逻辑地址,端口地址,专用地址;跳到跳是物理地址将改变,但逻辑地址和端口地址保持不变。
物理层
一、 数据和信号
- 传输减损:衰减,失真,噪声;
- 分贝:dB=10log10P2P1 反映两种信号或同一信号在两个不同位置之间的相对强度,P 表示功率
- 信噪比:SNR=平均信号功率/平均噪声功率 SNRdB=10log10SNR
- 数据速率限制:
奈奎斯特定理(无噪声通道):比特率 = 2 * 带宽* log2L , 带宽指示通道带宽,L表示信号电平个数(增加信号电平会增加接收方的负担,减弱系统的可靠性)
香农容量定理(噪声通道):通道容量=带宽 * log2(1+SNR) , SNR是信噪比; 当SNR很大时,假定SNR+1 = SNR 得到 C = B * SNRdB3 , C 是通道容量,B是带宽
香农容量公式给出数据速率上限,奈奎斯特定理给出所需的信号电平数(实际的)
- 性能: 带宽:Hz或bps; 吞吐量:发送速度的实际均衡值,小于带宽;延迟:包含传播时间,传输时间,排队时间和处理延迟;抖动:不同分组有不同的延迟,某些应用敏感;
带宽与延迟的乘积定义了能充满链路的位数
二、 数字传输
- 数据元素:表示一块信息的最小实体,即位(bit),是我们需要发送的,被承载的;信号元素:是数字信号的最小单元,承载数据单元,是我们能发送的,是传输载体;(用信号表示数据)
- 数据速率:比特率(bps); 信号速率:波特率;数据通信的目标:增加数据速率,降低信号速率(波特率决定数字信号的带宽);S=c*N*1rbaud , N是数据速率,S是信号速率,r是比率(每个信号元素承载数据元素的个数),c是情形因子
- 线路编码方案:
单极NRZ(成本高,不用于数据通信); 极性NRZ-L和极性NRZ-I方案如下图:
以上两种方案都有基线偏移问题,同步问题以及直流问题
曼彻斯特编码以及差分曼彻斯特编码:
没有基线偏移和DC成分(每一位都含正负电平),没有同步问题(位中间的跳变用于同步)
4. 块编码:块编码通常称为mB/nB 编码技术,用n位组替换m位组(n>m)
三、 模拟传输(了解)
- 数字到模拟转换:幅移键控(ASK),频移键控(FSK),相移键控(PSK);在数字数据模拟传输中,波特率小于等于比特率
- ASK带宽: ; 多电平FSK带宽:
四、 带宽利用
- 复用:频分复用(FDM):用于组合模拟信号的模拟多路复用技术;波分复用(WDM):WDM是合并多个光信号的模拟多路复用技术;时分复用(TDM):组合多个低速通道为一个高速通道的数字复用技术;同步时分复用:
在同步TDM中,链路速率是单个连接数据速率的n倍,并且分配给每个单元的持续时间是单元持续时间的1/n
五、传输介质(了解)
- 有向介质:双绞线,同轴电缆,光纤电缆; 无线传输:无线电波(多播通信),微波(单播通信),红外波(短距离通信);
- 交换
- 电路交换网络(物理层):由物理链路连接的一组交换机组成,每条链路被分成了n个通道;电路交换三个阶段:连接建立,数据传输,拆除连接
- 分组交换:在分组交换种,对分组不存在资源分配,资源按需分配
- 数据报网络:无连接网络(不需要连接建立与拆除);因特网在网络层用数据报方法对分组进行交换
- 虚电路网络:结合了以上两种网络的产物:存在连接建立与拆除,按需分配资源(数据报网络),通常在数据链路层实现;分组到达目的地可能有不同延迟;在交换广域网中,数据链路层通常采用虚电路技术实现(如帧中继和ATM)。
数据链路层
一、检错与纠错
- 差错类型:单比特差错,突发性差错(两位或更多位);检错与纠错的核心是冗余;两种纠错方法:前向纠错,重传纠错
- 汉明距离:两个字对应位不同的数量;求最小汉明距离:具有最少1的个数的非0有效码字中1的个数
- 编码方案的三个参数:码字长度n,数据字长度k,以及最小汉明距离dmin;为了保证检测出所有情况下最多s个错误,块编码中的最小汉明距离一定是dmin=s+1; 为了保证纠正所有情况下最多t个差错,块编码的最小汉明距离是dmin=2t+1
- 简单的奇偶校验码能检验出奇数个差错
- 循环编码:循环冗余码CRC
- 若生成多项式至少有两项,且x0(最右边的位)的系数是1,则所有单比特错误都可以被捕捉到;包含因子x+1的生成多项式能检测到所有奇数个差错
二、 数据链路控制
- 数据链路层的两个主要功能:数据链路控制:用来处理两个相邻节点之间的通信;介质访问控制:如何共享链路进行访问控制
- 成帧:固定长度成帧,可变长度成帧:需要一种方法规定一个帧的结束和下一个帧的开始,包含面向字符协议(在帧的开始和结束增加一字节的标记)以及面向位协议(01111110标记帧的开始和结束);字节填充和位填充…
- 流量控制和差错控制:流量控制就是一系列程序,用来限制发送方在等到确认之前发送的数据流量;数据链路层的差错控制,基于自动重复请求ARQ,即重传数据
- 无噪声通道:停止等待协议:发送方发出一个帧后必须停下来,直到接受到来自接收方的确认再发送下一帧
- 有噪声通道:停止等待ARQ,回退N帧ARQ,选择性重复ARQ
停止等待协议:
在停止等待ARQ协议中,发送方保留已发送帧的副本,当定时器到时仍未收到确认(ACK),则认为该数据帧丢失并重传该帧
无差错停等ARQ的线路利用率:, a是传播时延比传输时延
滑动窗口:
GBN协议中的发送窗口:
当有效确认到达时,发送窗口滑动一个或多个时隙帧(一个ACK可以确认一个以上的帧);发送窗口小于2m
GBN的接受窗口:
窗口大小为1,且每次只滑动一个时隙
选择性重传ARQ:发送和接收窗口的大小最多是
发送窗口:
接收窗口:
性能分析:无差错时滑动窗口协议的线路利用率为:
W是窗口大小,a是传播时延比传输时延
假设单个帧出错概率为P,传输一个帧的次数的期望值为:
三、多路访问
- 数据链路层被分为两个子层:上子层负责数据链路控制(流量控制和差错控制),下子层负责对共享介质的访问(多路访问);在IEEE标准中,数据链路层被分为:LLC和 MAC ,其中,IEEE 802.11 定义了两个MAC子层:分布式协调功能(DCF)和点协调功能(PCF)
- 随机访问:每个站点遵循多路访问协议
带冲突检测的载波侦听多路访问(CSMA/CD):帧最小长度:Lmin=2*R*Tp, R是带宽,Tp是最大传播时间; CSMA/CD协议中降低再冲突采用了二进制指数退避技术:
- 带冲突避免的载波侦听多路访问CSMA/CA;主要通过三种方法来避免冲突:帧间间隔,竞争窗口和确认;在CSMA/CA中,如果站点发现通道繁忙,它并不重启竞争窗口的时钟,而是停止定时器并当通道空闲时再重启(恢复)定时器
四、有线局域网:以太网
- 以太网中帧的最小值:64字节,最大值:1518字节;有效载荷的长度最小值:46字节,最大值:1500字节; 在物理层还包含8字节的前导符与起始帧界定符
- 单播地址、多播地址和广播地址:第一个字节的最低位决定了物理地址的类型:该位是0代表单播地址,否则是多播地址;广播地址是多播地址的一个特例,它的所有位都是1.
- 以太网电缆命名标准:10base5:10代表10Mbps, base代表基带传输,5指长度最大值500m; 10base-T: T代表双绞线;10base-F:F代表光纤
- 网桥:在以太局域网中,网桥有两个作用:提高带宽和分割冲突域
网络层
网络层负责从源主机到目的主机之间的单独分组的传输,即主机到主机的通信
一、逻辑寻址
- IPv4: 32-bit地址,它唯一地与通用地定义了连接在因特网上的设备
- 分类寻址:地址被划分为A,B,C,D,E五类(大部分地址被浪费):
- 子网化:将一个A类或B类一大块地址,划分为多个类组即子网
- 无类寻址:限制条件:块中的地址必须是连续的;一个块中的地址个数是2的整数次幂;块的起始地址必须能被块的地址个数整除
- IPv4中,块地址可用x.y.z.t/n来定义,其中x.y.z.t定义了一个地址,而/n定义掩码
- 用二进制标记法的起始地址可设置最右边的32-n位都是0求得;最后地址可用最右边都是32-n位都是1求得;块中地址个数可用232-n求得(n为掩码)
- 网络地址转换(NAT):使得用户内部拥有大量地址,而外部只有少量地址,使用NAT技术,专用网络就不可能为它的网络之外的客户端运行服务程序,在专用网络中,与因特网的通信总是由用户站点发起
- IPv6:地址长度128位
二、IP协议
- 因特网中的网络交换式利用数据报分组交换的方法实现的
- IPv4: 数据报格式:
头部长度(HLEN):以四字节定义数据报头部的总长度(字段值乘4就是头部长度),头部最小长度20字节(基本头部);总长度(Total length)定义了包括头部在内的数据报总长度,是16位因此总长限制在65535字节;生存时间(TTL):控制一个数据报所通过路由器的最大跳数;源地址和目的地址都是32位且传输期间保持不变
- 分片:分片偏移:13位,表示该分片在整个数据报的位置,以8字节为度量单位;标记(Flags):3位,第二位为“不分片位”,为1则不能分片,第三位“多分片位”,为1表示后面还有分片,0表示最后一个分片
- 校验和计算:首先将头部划分为16位的部分,并将各部分相加,将计算结果取反码放入校验和字段;IPv4的校验和只对头部进行
三、地址映射,差错报告和多播
- 地址映射:逻辑地址(全局)到物理地址(本地)的映射 ARP:ARP请求报文是广播发送,回答报文是单播发送; 物理地址到逻辑地址的映射:动态主机配置协议(DHCP):提供可以是人工的或自动的静态的或动态的地址配置
- 因特网控制报文协议(ICMP):分为差错报告报文,查询报文;ICMP总是向原始的源方报告差错报文,不能纠正差错;ICMP查询报文封装在IP分组中
四、传递、转发和路由选择
- 传递:是指网络层控制下用底层的网络对一个分组进行处理的方法;转发:将分组传递到下一个站点的方法;路由选择:转发过程中创建路由表的方法
- 主机地址与掩码做与运算得到子网地址(见逻辑寻址)
- 路由表:静态路由表:一般手工输入和更新;动态路由表:使用动态路由协议
- 单播路由选择协议:距离向量协议RIP(基于UDP,域内路由协议);链路状态协议OSPF(基于IP,域内路由协议);路径向量协议BGP(基于TCP,域间路由协议)
传输层
传输层负责进程到进程的传递,套接字地址(IP: port)唯一定义了进程(客户端或服务器端)
UDP, TCP, 和SCTP
- 无连接服务:分组从一方发送给另一方,不需要建立连接和释放连接,如因特网UDP;面向连接的服务:首先在发送方和接收方建立一个连接,然后传输数据,最后释放连接,TCP和SCTP属于此类
- 可靠服务:应用层需求,传输层实现流量控制和差错控制获得;不可靠服务:应用程序不需要可靠性,不要求流量控制与差错控制
- 用户数据报协议(UDP):无连接服务,UDP无流量控制与差错控制;适用于简单的请求-响应通信
- 传输控制协议(TCP):面向连接的协议,在两个TCP之间建立一个虚拟连接来发送数据; TCP允许以字节流的形式传递数据,并且接收进程也以字节流接收数据;全双工通信:数据可以在同一时间双向流动,每一方TCP都有发送和接收缓冲区;面向连接的服务:是一个虚连接;可靠的服务:是一种可靠的传输协议,使用确认机制来检查数据是否安全和完整到达;序号系统:TCP在段的头部采用,称为序号和确认号;一个段的序号字段的值定义为该段包含的第一个字节的序号,段中确认字段的值定义了通信一方预期接收的下一个字节的编号,确认号是累加的
- TCP特点:流量控制:数据接收方控制发送数据的数量,是为了防止接收方的数据溢出,差错控制:以段作为差错检测的数据单元,拥塞控制
- TCP段格式:
源端口和目的端口地址:16位
序列号:32位字段,段中数据的第一字节编号; 确认号:32位字段,段的接收方期望从对方接收的字节号;头部长度:4位字段,以四字节为单位,指明TCP头部的长度;保留:6位字段;控制:6位; 窗口大小:16位字段; 校验和:16位字段; 紧急指示符:16位,只有当紧急标志设置时才有效
7. TCP连接的三个过程
1)连接建立:三次握手,用户发送的第一个段是SYN段,它不携带数据,而用于序列号同步;SYN和ACK段,服务端通信的SYN段,并设置ACK标志,同样不携带数据而占用一个序列号;ACK段:使用ACK标志和确认序号字段来确认收到了第二个段,此ACK段不占用序列号:
2)数据传输:使用数据捎带确认机制,最后一个分段仅携带确认
3)连接关闭主要有两种办法:三次握手和带有半关闭选项的四次握手:
三次握手:
带有半关闭的四次挥手:
- TCP流量控制
TCP使用滑动窗口处理流量控制,是面向字节的,窗口可变大小,窗口的值选取接收窗口和拥塞窗口中较小的一个
- TCP差错控制
包含:监测受到损坏的段,丢失的段,失序的段和重复的段,还包括检测出差错后纠正差错的机制;使用:校验和,确认,重传(核心)三种工具实现,重传的情况:重传定时器到时或当发送方受到三个重复的ACK时
- TCP拥塞控制
-
三个阶段:慢速启动、拥塞避免、拥塞检测
慢速启动算法中,拥塞窗口的起始值设为1个最大段长度,大小按指数增加直至到达阈值; 拥塞避免采用加性增加算法,拥塞窗口大小加性增加(每次加一)直至检测到拥塞; 拥塞检测采用乘性减少,当检测到拥塞后,最大阈值下降一半。 如果检测到计时器到时,则新的慢速启动阶段开始;若接收到三个ACK,则新的拥塞避免阶段开始(以上两种情况阈值均要减半)
- SCTP协议
流控传输协议(SCTP)是一种新的可靠的,面向报文的传输层协议,它兼有UDP和TCP的最佳特性。 多流:SCTP在每一次连接中提供多流服务,如果多流中的某一个被阻塞,其余的流依然可以传递他们的数据; 多接口:SCTP关联允许每个端有多个IP地址,主路径故障时可用替换路径; SCTP的特性:全双工通信,面向连接服务,可靠的服务。
- TCP段与SCTP分组对比:
在SCTP中,控制信息和数据信息在分开的大块中携带