计算机网络学习笔记
重学计算机网络原理,到处找教程,b站找到一个特别好的教程,动画和细节很足,让内容很好理解,语言精简而周全,章节划分合理适合碎片化时间充电。
介于内容太多,必须做笔记方便以后查找。我先随便记录,速通一遍再整理。
数字基带信号,例如计算机内部CPU与内存之间传输的信号。
信号需要在信道上传输,可分为数字信道,模拟信道。
在不改变信号性质的前提下,仅对数字信号的波形进行变化,称为编码,编码后产生的信号仍然为数字信号,可以在数字信道中传输,例如以太网使用慢切斯特编码,4B/5B 8B/10B等编码。吧数字信号的频率范围搬移到较高的频段并转换为模拟信号,称为调制。调制后产生的信号为模拟信号,可以在模拟信道中传输。例如WIFI使用补码键控、直接序列扩频、正交频分复用等调制方法。
对于模拟基带信号处理也有编码和调制两种方法,对模拟基带信号进行编码的典型应用是对音频信号进行编码的脉码调制PCM,将模拟音频信号,通过采样,量化,编码这三个步骤进行数字化。对模拟信号进行调制的典型应用是,将语音数据加载到模拟的载波信号中传输,例如传统的电话,另一个是频分复用FDM技术,可以充分利用带宽资源。
码元
在使用时间域的波形表示数字信号时,代表不同离散数值的基本波形。
严格来说传输媒体和信道不能直接划等号,对于单工传输,传输媒体中只包含一个信道。而对于半双工和全双工传输,传输媒体中要包含两个信道。如果使用信道复用技术,一条传输媒体还可以包含多个信道。
不归零编码,就是没有一个时间是零电平。存在同步问题。
归零编码,每一个码元后都需要归零,只需要在归零后进行采样即可,不需要单独的时钟信号。自同步信号。但是归零编码中大部分的数据带宽都被归零浪费掉了。缺点,编码效率低。
因为频率和相位是相关的,即频率是相位随时间的变化率。所以一次只能调制频率和相位两个中的一个。通常情况下,相位和振幅可以结合起来一起调制,称为 正交振幅调制QAM
信道极限容量
失真的因素:码元传输速率,信号传输距离,噪声干扰,传输媒体质量。
奈氏准则:在假定的理想条件下,为避免码间串扰,码元传输速率是有上限的。
理想低通信道的最高码元传输速率=2W Baud
理想带通信道的最高码元传输速率= W Baud
W 信道带宽(单位Hz)
Baud:波特 ,即码元每秒
香农公式
带宽受限且有高斯白噪声干扰的信道的极限传输速率
数据链路层的三个重要问题
封装成帧
差错监测
可靠传输
添加帧头帧尾的操作,称之为封装成帧。
差错检错,通过检错码来发现,即帧尾4字节的FCS字段
可靠传输,检测出误码后将其丢弃,后续要不要补上,就看上层有没有要求可靠传输。
广播信道(总线)(共享式局域网)存在需要解决的两个问题
- 编址 MAC地址
- 数据碰撞 以太网的媒体接入控制协议 CSMA/CD 载波监听多点接入/碰撞监测。
使用点对点链路和链路层交换机的交换式局域网 在有线领域 已经完全取代了共享式局域网,交换机转发帧。由于无线信道的广播天性,无线局域网使用的是共享信道技术802.11使用的媒体接入控制协议是CSMA/CA
封装成帧
封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧。
帧头和帧尾中包含有重要的控制信息
帧头和帧尾的作用之一就是帧定界
点对点协议PPP帧中帧头帧尾的标志位,其作用就是帧定界。
以太网帧中没有帧定界标志,物理层会在MAC帧前添加8字节的前导码,然后再将比特流转换为电信号发送。前7个字节为前同步码,作用是使接收方的时钟同步,之后的1字节为帧开始定界符,表明其后面跟着的就是MAC帧。另外以太网还规定了帧间间隔为96比特的发送时间,因此MAC帧不需要帧结束定界符
透明传输 透明传输是指 数据链路层对上层交付的传输数据没有任何限制 ,就好像数据链路层不存在一样
面向字节的物理链路 使用字节填充 (或称字符填充)的方法实现透明传输
面向比特的物理链路 使用比特填充的方法实现透明传输
为了提高帧的传输效率,应当使帧的数据部分的长度尽可能的大一些。
差错检测
实际的通信链路都不是理想的,比特在传输过程中可以会出现差错:1可能变为0,0也可能变为1,这称为比特差错。
在一段时间內,传输错误的比特占所传输比特总数的比率称为误码率BER(Bit Error Rate)
使用差错检测码来检测数据在传输过程中是否产生了比特差错,是链路层需要解决的重要问题之一。例如帧尾部的fcs位。
奇偶校验(漏检率高)
在待发送的数据后面添加1位奇偶校验位,使整个数据(包含校验位在内)中‘1’的个数为奇数(奇校验)或者偶数(偶校验)。
如果有奇数个位发生误码,奇偶性发生变化,可以检查出误码。
如果有偶数个位发生误码,奇偶性不发生变化,不能检测出误码(漏检)
检错码只能检测出帧在传输过程中出现了差错,但不能定位错误,因此无法纠正错误。
想要纠正传输过程中的差错,可以使用冗余信息更多的纠错码进行前向纠错,但纠错码的开销比较大,在计算机网络中较少使用。
循环冗余检验CRC有很好的检错能力(漏检率非常低),虽然计算比较复杂,但是易于用硬件实现,因此也广泛使用于数字链路层。
可靠传输的基本概念
使用差错检测技术(例如循环冗余检测CRC),接收方的数据链路层就可以检测出帧在传输过程中产生了误码(比特错误)。
数据链路层向上层提供的服务类型
不可靠传输服务: 仅仅丢弃有误码的帧,其他什么都不做;
可靠传输服务:想办法实现发送端发送什么,接收端就收到什么。
对于 有线链路 的误码率比较低,为了减少开销,并不要求数据链路层向上提供可靠传输服务。即使出现了误码,可靠传输的问题由其上层处理。
对于 无线链路 的误码率比较高,因此要求数据链路层必须向上层提供可靠传输服务。
比特差错只是传输差错中的一种,从整个计算机网络体系结构来看,传输差错还包括分组丢失、分组失序以及分组重复,这些传输错误一般不会出现在数据链路层,而会出现在其上层,可靠传输服务并不仅局限于数据链路层,其他各层均可选择实现可靠传输。
可靠传输实现复杂,开销大,是否使用取决于应用需求。
可靠传输
停止—等待协议SW、回退N帧协议GBN、选择重传协议SR
这三种可靠传输实现机制的基本原理并不仅限于数据链路层,可以应用到计算机网络体系结构的各层协议中
停止等待协议
接收方接受数据,检测无误码,发送确认分组,简称为ACK,发送方要收到确认分组ACK后才能继续发送数据。
接收方接受数据,检测有误码,将其丢弃,并给发送方发送否认分组,简称NAK。发送方收到对所发送数据分组的否认分组后,发送方重传该数据分组,因此发送方发送完数据后不能立即将该数据分组从缓存中删除,只有在收到该分组的确认分组后,才能将其从缓存中删除。
可能存在的问题:
数据分组丢失,接收方收不到数据分组,就不会发送ACK或NAK。如果不采取其他措施,发送方就会一直处于等待接收方ACK或NAK的状态。为解决该问题,可以在发送方发送完一个数据分组时,启动一个超时计时器。若到了超时计时器所设置的重传时间而发送方仍收不到接收方的任何ACK或NAK,则重传原来的数据分组,这就叫做超时重传。一般可将重传时间选为略大于“从发送方到接收方的平均往返时间”
确认否认分组丢失,丢失后,发送方触发超时重传,接收方收到重复数据分组。为避免分组重复这种传输错误,必须给每个分组带上序号。对于停止-等待协议,由于每发送一个数据分组就停止等待,只要保证每发送一个新的数据分组,其发送序号与上次发送的数据分组的序号不同就可以了,因此用一个比特来编号就够了。
确认迟到,当接收方的确认分组迟到,触发发送方超时重传,使得发送方先后发送数据分组0和1,这时候存在区分接收方确认分组的问题。将确认分组也编号可以避免这样的问题。
补充:对于数据链路层的点对点信道,往返时间比较固定,不会出现确认迟到的情况。因此,如果只在数据链路层实现停止-等待协议,可以不用给确认分组编号。
TD 发送时延 ,RTT往返时间
当往返时间RTT过长,如卫星链路,信道利用率很低,若出现超时重传,则信道利用率更低。
回退N帧协议GBN(Go-Back-N)
利用发送窗口来限制发送方可连续发送数据分组的个数。
发送方需要维持一个发送窗口,序号落在发送窗口内的数据分组可被连续发送,而不必等收到接收方的相应确认分组后再发送。发送窗口的尺寸记为WT。
接收方不一定要对收到的悲歌数据分组后逐个发送确认,而是可以在收到几个数据分组后(由具体实现),对序号到达最后一个分许发送确认,ACKN表示序号为n及其以前的数据分组都已正确接收
累积确认可以减少接收方的开销,减少对网络资源的占用。缺点,不能向发送方及时反映出接收方已经正确接收的数据分组信息。
当发生发送数据发生误码时,在本例中尽管6,7,0,1的数据分组正确到达接收方,但由于5号数据分组误码不被接收,它们也“受到牵连”而不被接受,发送方还要重传这些数据分组,这就是所谓的Go Back N(回退N帧)。可见,当通信线路质量不好时,回退N帧协议的信道利用率并不比停止-等待鞋业高。
当窗口大于上限时,可能发生接收方无法分辨新旧数据。
选择重传协议SR
回退N帧协议的接收窗口WR只能等于1,因此接收方只能按序接收正确到达的数据分组,一个数据分组误码就会导致其后续多个数据分组不能被接收方按序接收而丢弃(尽管它们无乱序和误码)。这必然会造成发送方对这些数据分组的超时重传,显然这是对通信资源的极大蓝方。
点对点协议PPP
点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的点对点数据链路层协议
用户计算机与ISP进行通信时,所使用的数据链路层协议通常就是PPP协议。1999年公布的在以太网上运行的PPP协议即PPP over Ethernet 简称为PPPoE ,他使得ISP可以通过DSL链路调制解调器以太网等宽带接入技术,以以太网接口的形式为用户提供接入服务。
另外点对点协议也广泛应用于广域网路由器之间的专用线路。
PPP协议为在点对点链路传输各种协议数据包提供了一个标准方法,主要由以下三部分构成:
对各种协议数据报的封装方法(封装成帧)
链路控制协议LCP 用于建立、配置以及测试数据链路的连接
一套网络控制协议NCPs 其中的每一个协议支持不同的网络层协议
面向字节的异步链路采用插入转义字符的字节填充法
面向比特的同步链路采用插入比特0 的比特填充法
3.6.1媒体接入控制的基本概念
共享信道要着重考虑一个问题就是如何协调多个发送和接收站点对一个共享传输媒体的占用,即媒体接入控制MAC (Medium Access Control)
随着技术的发展,交换技术的成熟和成本的降低,具有更高性能的使用点对点链路和链路层交换机的交换式局域网在有线领域已经完全取代了共享式局域网,但由于无线信道的广播天性;无线局域网仍然使用的是共享媒体技术。
3.6.2媒体接入控制-静态划分信道
信道复用
频分复用FDM 时分复用TDM 波分复用WDM 码分复用CDM
将传输线路的频带资源划分成多个子频带,形成多个子信道,各子信道之间需要留出隔离频带,以免造成子信道间的干扰。当多个信号输入一个多路复用器时,这个复用器将每一路信号调制到不同频率的载波上。接收端将相应的分用器通过 过滤波将各路信号分开,将合成的复用信号恢复成原始的多路信号。显然,频分复用的所有用户同时占用不同的频带资源并行通信。
时分复用技术将传输线路的带宽资源,按时隙轮流分配给不同的用户,每队用户只在所分配的时隙里使用线路传输数据。时分复用技术将时间划分成一段段等长的时分复用帧。每一个时分复用用户在每一个时分复用帧中占用固定序号的时隙。显然,时分复用的所有用户在不同的时间占用同样的频带宽度。
波分复用其实就是光的频分复用,如图所示这是8路传输速率均为2.5Gbit/s的光载波,其波长均为1310nm。经光调制后,分别将波长变换到1550nm~1561.2nm,每个光载波相隔1.6nm。这8个波长很接近的光载波,经过光复用器或称合波器就在一根光纤中传输。因此在一根光纤上传输的总速率就达到了8x2.5Gbit/s=20Gbit/s。
码分复用CDM是另- -种共享信道的方法。实际上,由于该技术主要用于多址接入,人们更常用的名词是码分多址CDMA(Code Division Multiple Access)。
同理,频分复用FDM和时分复用TDM同样可用于多址接入,相应的名词是频分多址FDMA(Frequency Division Multiple Access)和时分多址TDMA(Time Division Multiple Access)。在本课程中,我们不严格区分复用与多址的概念。可简单理解如下:
复用是将单-媒体的频带资源划分成很多子信道,这些子信道之间相互独立,互不干扰。从媒体的整体频带资源上看,每个子信道只占用该媒体频带资源的一部分。
多址(更确切地应该称为多点接入)处理的是动态分配信道给用户。这在用户仅仅暂时性地占用信道的应用中是必须的,而所有的移动通信系统基本上都属于这种情况。相反,在信道永久性地分配给用户的应用中,多址是不需要的(对于无线广播或电视广播站就是这样)。
某种程度上,FDMA、TDMA、CDMA可以分别看成是FDM、TDM、CDM的应用。
与FDM和TDM不同,CDM的每一个用户可以在同样的时间使用同样的频带进行通信。
由于各用户使用经过特殊挑选的不同码型,因此各用户之间不会造成干扰。
CDM最初是用于军事通信的,因为这种系统所发送的信号有很强的抗干扰能力,其频谱类似于白噪声,不易被敌人发现。
随着技术的进步,CDMA设备的价格和体积都大幅度下降,因而现在已广泛用于民用的移动通信中。
3.6.3媒体接入控制 动态接入控制 随机接入
早期的共享式以太网,采用载波监听多址接入/碰撞监测CSMA/CD(Carrier Sense Multiple Access/Collision Detection )
96比特时间是指发送96比特所耗费的时间,也称为帧间最小间隔。其作用是接收方可以监测出一个帧的结束,同时也使得其他所有站点都有机会平等竞争信道并发送帧。
争用期(碰撞窗口)
CSMA/CD 最小帧长