要梳理清楚的知识点:
波特率、比特率和每秒比特数(概念及转换);
各个信号的表示;
字符填充法,循环冗余码;
数据链路层滑动窗口协议(流量控制)、介质访问控制、PPP协议(通信);
路由算法;
Ipv4;
IP地址和MAC地址;
IPv6;
路由协议;
这是之前记错题本的时候记下来要梳理的知识点。
波特率、比特率和每秒比特数(概念及转换)
这里王道写的语焉不详。
速率也称数据率,是指数据传输速率,表示单位时间内传输的数据量。可以用码元传输速率和信息传输速率表示。
- 码元传输速率:又称波特率,他表示单位时间内数字通信系统所传输的码元个数(也可以称为脉冲个数或信号变化的次数),单位是波特。1波特表示数字通信系统每秒传输一个码元。码元可以是多进制的,也可以是二进制的。码元速率与进制数无关。
- 信息传输速率。又称信息速率、比特率,它表示单位时间内数字通信系统传输的二进制码元个数(比特数),单位是比特/秒。(b/s)
波特和比特是两个不同的概念,码元传输速率与信息传输速率又有一定关系。若一个码元携带n比特的信息量,则M波特率的码元传输速率对应的信息传输速率为Mn比特/秒。
各个信号的表示
单极不归零码
不归零编码:区别是不使用归零,一个周期可以全用来传输数据,但是缺点是难以同步。
双极不归零码
单极归零码
归零编码:在归零编码中用高电平代表1,低电平代表0,每个时钟周期中间均跳变到低电平。
双极归零码
差分码
AMI码
双相码
曼彻斯特编码将一个码元分成两个相等的间隔,前一个间隔为高电平而后一个间隔为低电平表示1,码元0的表示方法正好相反。
差分曼彻斯特编码:若码元为1,则前半个码元的电平与上一个码元的后半个码元相同,若码元为0,则正好相反。
nBmB
将n位二进制信息码作为一组,映射成m位二进制新码组。
组帧
字符计数法
字符计数法是指在帧头部使用一个计数字段来标明帧内字符数。
字符填充的首位定界符法
字符填充法使用特定字符来定界一帧的开始与结束。使用SOH和EOH来定界开始和结束,如果帧内部有相应的SOH,EOH,ESC字符则使用ESC将其转义。
零比特填充的首位表示法
该方法使用01111110来标志一帧的开始和结束,为了避免歧义,发送方在信息位中遇到五个连续的1后,自动在其后插入一个0。
违规编码法
如曼彻斯特编码中使用高低和低高电平对,所以出现高高和低低电平对就是违规的,用其作为定界起始和终止。
循环冗余码
使用一个长度为n的序列不断的对原始码列(+(n - 1)位)进行异或操作,求得的余数就是得到的校验码。
数据链路层滑动窗口协议(流量控制)
流量控制
停止-等待流量控制:发送方每发哦是那个一帧,都要等待接收方的应答信号,之后才能发送下一帧。
滑动窗口
滑动窗口流量控制:在任意时刻发送方都维持一组连续的允许发送的帧的序号,称为发送窗口;同时接收方也维持一组连续的允许接收帧的序号,称为接收窗口。发送窗口用来对发送方进行流量控制,而发送窗口的大小Wt代表在还未收到对方确认信息的情况下发送方最多还可以发送多少个数据帧。同理,在接收端设置接收窗口是为了控制接收数据帧,窗口之外的数据帧一律丢弃。
滑动窗口有以下特性:
- 只有接受窗口向前滑动时,发送窗口才有可能向前滑动;
- 从滑动窗口的概念看,停止-等待协议、后退N帧协议和选择重传协议旨在发送窗口和接收窗口上有所差别:
协议 | 发送窗口大小 | 接收窗口大小 |
停止-等待协议 | 1 | 1 |
后退N帧协议 | > 1 | = 1 |
选择重传协议 | > 1 | > 1 |
- 接收窗口的大小位1时,可保证帧的有序接收;
- 数据链路层的滑动窗口协议中,窗口的大小在传输过程中是固定的。
可靠传输机制
数据链路层的可靠传输使用确认和超时重传两种机制完成。
- 确认是一种无数据的控制帧,这种控制帧使得接收方可以让发送方知道那些内容被正确接收。有些情况下为了提高传输效率,将确认捎带在一个回复帧中,称为捎带确认。
- 超时重传是指发送方在发送某个数据帧后就开启一个计时器,在一定时间内如果没有得到发送的数据帧的确认帧,那么就重发,直到发送成功为止。
单帧滑动窗口与停止等待协议
- 数据帧丢失;
- 数据帧被破坏,重传;
- 数据帧正确而确认帧被破坏,重发时发送再次发送ACK帧;(如果出现相同发送序号的数据帧,表明发送端进行了超时重传;出现连续序号的确认帧时,表明接收端收到了重复帧)
- 发完一个帧后,必须保留副本;
- 数据帧和确认帧必须编号;
多帧滑动窗口与后退N帧协议(GBN)
ACKn表示对第n号帧的确认,表示接收方已正确接收到第n号帧及以前的所有帧,下一次希望收到第n + 1号帧(也可能是0号帧)。
后退N帧协议的接收窗口为1,可以保证按序接收数据帧。若采用n比特对帧编号,则其发送窗口的尺寸Wt应满足1 =< Wt <= 2^1 - 1,若发送窗口尺寸大了,则会造成接收方无法分辨新帧和旧帧。
- 累积确认
- 只按顺序接收,否则丢弃
- 确认序列号大的,按序列到达的帧;
- 发送窗口最大为2^n -1
多帧滑动窗口与选择重传协议
- 逐一确认
- 只重传错帧(收到NAK或超时)
- 接收方有缓存
- Wtmax = Wrmax = 2^(n - 1)
介质访问控制协议
现在有两种链路:
- 点对点链路:两个相邻结点通过一个链路相连,没有第三者。(PPP协议,广域网,因此不需要进行介质访问控制)
- 广播式链路:共享通信介质(局域网)
信道划分介质访问控制
实际就是把广播信道转变为点对点信道。
频分多路复用
频分多路复用是指将多路基带信号调制到不同频率载波上,可将该物理信道的总带宽分割成若干子信道。
时分多路复用
将一条物理信道按时间分为若干时间片,轮流地给多个信号使用。
波分多路复用
光的频分多路复用。
码分多路复用
采用不同的编码来区分各路原始信号的一种复用方式。
码分多址,每个比特时间再划分成m个短的时间槽,称为码片。每个站点被指派一个唯一的m位码片序列,发送1时,站点发送它的码片序列,发送0时,站点发送该码片序列的反码。每个站点的码片序列相互正交,使用S * (S - T)得到数据。
随机访问介质控制
随机访问介质各个游湖随机发送消息,所以要解决的主要问题就变成了如何解决冲突。
纯ALOHA协议
当网络中任何一个站点需要发送数据时,可以不进行任何检测就发送数据。如果有一段时间未收到确认,那么该站点就认为传输过程中发生了冲突;需要等待一段时间后(等待一段随机的时间)再发送数据,直至发送成功。
时隙ALOHA协议
时隙ALOHA协议把所有各站在时间上同步起来,并将时间划分为一段段等长的时隙,规定只能在每个时隙开始的时候才能发送一个帧。
CSMA协议
CSMA协议在发送前先监听共用信道,发现信道空闲再发送。
1-坚持CSMA协议
监听到信道忙后,继续坚持侦听信道,侦听到信道空闲后,发送帧的概率为1。如果发生冲突,那么随机等待一段时间后,再重新开始侦听信道。
非坚持CSMA
如果信道空闲,那么立即发送数据;如果信道忙,那么放弃监听,等待一个随机的时间后再重复上述过程。
p-坚持CSMA
一个结点要发送数据时,首先侦听信道;如果信道忙,就持续侦听,直至信道空闲,那么已概率p发送数据,以1 - p推迟到下一个时隙;如果下一个时隙信道仍然空闲,那么仍以p概率发送给数据;这个过程一直持续到数据发送成功或因其他结点发送数据而检测到信道忙为止,若是后者,则等待下一个时隙再重新开始监听。
CSMA/CD协议
- 适配器从网络层获得一个分组,封装成以太网帧,放入适配器的缓存,准备发送;
- 如果适配器监听到信道空闲,那么他开始发送该帧,如果适配器监听到信道忙,那么他在持续监听直至信道上没有信号能量,然后发送该帧;
- 在发送过程中,适配器持续检测信道,若一直为检测到碰撞,则发送完毕;若检测到碰撞,则中止发送,并发送一个拥塞信号,让所有用户都知道;
- 中止发送后,适配器执行指数退避算法,等待一段随机事件后返回第二步;
CSMA/CD协议的以太网只能进行半双工通信,在发送帧后至多RTT就能知道是否碰撞,
最小帧长 = 总线传播时延 * 数据传输速率 * 2
以太网帧不少于64B
二进制指数退避算法:
- 确定基本退避时间,一般取2r;
- 定义参数k,它等于重传次数,但k不超过10,即k = min{重传次数,10},当重传次数不超过10时,k等于重传次数;当重传次数大于10时,k就不再增大而一直等于10;
- 从离散的整数集合中随机取出一个数r(0,1,2....2^k -1 ),重传所需要退避的时间r被的基本退避时间,即2rr;
- 当重传达16次还不能成功时,说明网络拥挤,无法发出。
CSMA/CA协议
用于无线局域网,因为无法进行碰撞检测;
- 接收信号的强度往往远小于发送信号的强度;
- 在无线通信中,并非所有站点都能听见对方,存在隐蔽站问题;
因此将碰撞检测改为碰撞避免,所有站在完成发送后,必须再等待一段时间,才能发送下一帧,这段时间称为帧间间隔。
- 若站点最初有数据要发送,且检测到信道空闲,在等待时间DIFS后,就发送整个数据帧;
- 否则,站点执行CSMA/CA退避算法,选取一个随机回退值。一旦检测到信道忙,退避计时器就保持不变,只要信道空闲,退避计时器就进行倒计时;
- 当退避计时器减到0时,站点就发送整个帧并等待确认;
- 发送站若收到确认,就知道已发送的帧被目的站正确接收,这时如果要发送第二帧就从步骤二开始;
若发送站在规定时间没有收到ACK,就必须重传该帧,再次使用CSMA/CA协议征用该信道直到收到确认。
处理隐蔽站:
- 为了避免该问题,802.11允许发送站对信道进行预约
- 源站要发送数据帧之前先广播一个很短的请求发送RTS控制帧;
- 若信道空闲,则AP广播一个允许发送的CTS控制帧;
- 其他站会在时间内抑制发送;
令牌传递协议
一个令牌沿着环形总线在各结点间依次传递,令牌是一个特殊的MAC帧,仅控制信道的使用。
- 网络空闲时,只有令牌帧在循环传递;
- 令牌传递到有数据要发送的站点时,站点就修改令牌中的标志位,并在令牌中附加传输的数据,变成一个数据帧并发送出去;
- 数据沿着环路传输,接收到的站点一边转发数据,一遍查看帧的目的地址;
- 直到到达源站点,源站点收到自己发出去的帧后就不再转发;
- 源站点发送完后,重新产生一个令牌,并传递个下一站点,以交出信道控制权;
适用于负载重,通信量大的广播信道。
MAC帧
地址字段
去往AP | 来自AP | 地址1 | 地址2 | 地址3 | 地址4 |
0 | 1 | 接收地址=目的地址 | 发送地址=AP地址 | 源地址 | - |
1 | 0 | 接收地址=AP地址 | 发送地址=源地址 | 目的地址 | - |
PPP协议
PPP协议是使用串行线路通信的面向字节的协议,该协议应用在直接链接的两个结点的链路上,只支持全双工线路。
三个组成部分:
- 链路控制协议:一种扩展链路控制协议,用于建立、配置、测试、管理数据链路;
- 网络控制协议:PPP协议允许同时采用多种网络层协议,每个不同的网络层协议要用一个相应的NCP来配置,为网络层协议建立和配置逻辑链接;
- 一个将IP数据报封装到串行链路的方法,收到最大传送单元的限制;
另外:
- PPP提供差错检测但不提供纠错功能,只保证无差错接收,不可靠的传输协议,也不适用序号和确认机制;
- 无需流量控制;
- 仅支持点对点的链路通信,不支持多点线路;
- PPP只支持全双工链路;
- 两端可以运行不同的网络层协议;
- 在异步线路上使用字节填充法,在同步线路上用比特填充法;
路由算法
- 静态路由算法:由网络管理员手工配置;
- 动态路由算法:路由器上的路由表通过相互连接的路由器之间彼此交换信息,然后按照一定的算法优化出来的。
距离-向量路由算法
所有结点都定期将它们的整个路由选择表传送给所有与之相邻的结点,包括:每条路径的目的地;路径的代价。
在这种算法中,所有结点都必须参与距离向量交换,以保证路由的有效性和一致性。所有的结点都监听从其他结点传来的路由选择更新信息,并在下列情况下更新它们的路由表:
- 被通告一条新的路由,该路由在本结点的路由表中不存在,此时本地系统加入这条新的路由;
- 发来的路由信息中有一条到达某个目的地的路由,该路由与当前使用的路由相比,由较短的距离。这种情况下,就用结果发送路由信息的结点的新路由替换路由表中到达那个目的地的现有路由;
链路状态路由算法
链路状态路由算法要求每个参与该算法的结点都具有完全的网络拓扑信息,完成两个任务:
- 主动测试所有邻接到的结点;
- 定期将链路状态传播给所有其他结点;
OSPF
在一个链路状态路由选择中,一个结点检查所有直接链路的状态,并将所得的状态信息发送给网上的所有结点,而不是进发送给直接相连的结点。每个结点都用这种方式从网上所有其他的结点接收包含直接链路状态的路由选择信息。
一旦链路状态发生变化,结点就对更新的网络图利用dijkstra最短路径算法重新计算路由。
三个特征:
- 向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法;
- 发送的信息是与路由器相邻的所有路由器的链路状态;
- 只有当链路状态发生变化时,路由器才向所有路由器发送此信息;
层次路由
当网络规模扩大的时候,路由表的比例成比例地增大,因此将整个互联网划分为较小自治系统(一个自治系统中包含很多局域网),每个自治系统有权自主决定本系统内采用何种路由选择协议,如果两个自治系统需要通信,就需要一种在两个自治系统之间的协议来屏蔽这些差异。
- 自治系统内部所使用的路由选择协议称为内部网关协议,RIP、OSPF;
- 自治系统之间所使用的路由协议称为外部网关协议,域间路由选择,BGP;与其他AS的BGP发言人交换信息,交换网络可达性;
- 使用层次路由时,OSPF将一个自治系统再划分为若干区域,每个路由器都知道在本区域内如何把分组路由到目的地的细节,但不用知道其他区域的内部结构;
IPv4
IPv4分组格式
IP首部重要字段:
- 版本:IP协议版本,版本号为4。
- 首部长度:以32位为单位,总共四位,最大值为60B,最常用的长度为20B,此时不使用任何选项;
- 总长度:占16位,指首部和数据之和的长度,单位为字节,因此最大长度为65535B。总长度不可以超过MTU。
- 标识:十六位,他是一个计数器,每产生一个数据报就加一,并赋值给标识字段,当分片时,每个数据报片都复制一次标识号,以便能正确重装成原来的数据报。
- 标志:占三位,最低位为MF,MF = 1表示后面还有分片,MF = 0表示最后一个分片,标志字段中间的一位是DF,DF = 0才允许分片。
- 片偏移:占十三位,除最后一个分片外,每个分片在原分组的相对位置,片偏移以8个字节为偏移单位。除最后一个分片外,每个分片的长度一定是8B的整数倍。
- 生存时间(TTL):占八位,标识数据报在网络中可通过路由器数量的最大值,路由器转发分组前,先把TTL减一,若TTL = 0则把分组丢弃。
- 协议:占八位,指出此分组使用何种协议(上层协议),6标识TCP,17标识UDP。
- 首部校验和:占16位,首部校验和只校验首部,不校验数据部分。
- 源地址字段:占4B,标识发送方的IP地址。
- 目的地址字段:占4B,标识接收方的IP地址。
- 首部长度单位是4B,总长度单位1B,片偏移8B。
IP数据报分片
一个链路层数据报能承载的最大数据量称为最大传送单元(MTU)。
当IP数据报的总长度大于MTU时,就需要对其进行分片。
IPv4地址
这里只记录特殊的IP地址:
- 主机号全为0标识网络自身,
- 主机号全1表示广播地址;
- 127.x.x.x保留为环回自检地址,表示任意主机自身,不会出现在任何网络上;
- 32位全为0,表示本网络上的本主机;
- 32位全为1,表示整个TCP/IP网络的广播地址,等效于本网络的广播地址;
上面是私有IP地址。
要使用私有IP地址与公网进行交换就需要使用网络地址转换。
NAT网络地址转换
NAT路由器上维护一个NAT转换表,靠转换表的映射解决私有IP地址的问题。
网络层的三个典型协议
ARP协议(地址解析协议)
- 主机A欲向本局域网上的某台主机B发送数据报,现在ARP高速缓存中查看有无其IP地址;
- 如果有就可以查出其对应的硬件地址,将其写入MAC帧;
- 如果没有就使用FF-FF-FF-FF-FF-FF广播ARP请求分组;
- 主机B收到请求后,返回一个ARP响应分组,包含IP和MAC的映射关系;
- 主机A收到后,将映射写入ARP缓存;
DHCP协议(动态主机配置协议)
- DHCP客户机广播DHCP发现消息,源地址0.0.0.0,目的地址255.255.255.255;
- DHCP服务器收到发现消息,广播DHCP提供消息,源地址为DHCP服务器地址,目的地址255.255.255.255;
- DHCP客户机收到DHCP提供消息,广播DHCP请求消息,源地址0.0.0.0,目的地址255.255.255.255;
- DHCP服务器广播DHCP确认消息,源地址DHCP服务器地址,目的地址255.255.255.255;
ICMP协议(网际控制报文协议)
ICMP报文的种类有两种,ICMP差错报文和ICMP询问报文;
ICMP差错报文
- 终点不可达
- 源点抑制
- 时间超过
- 参数问题
- 改变路由
不应发送差错报文的情况:
- 对ICMP报文不在发送ICMP差错报告报文;
- 对第一个分片的数据报分片的所有后续数据报片都不发送ICMP差错报告报文;
- 对具有组播地址的数据报都不发送ICMP差错报文;
- 对具有特殊地址的数据报不发送差错报文;
ICMP询问报文:
- PING
- Traceroute
IPv6
IPv6特点:
- 更大的地址空间;
- 扩展的地址层次结构;
- 灵活的首部形式;
- 改进的选项;
- 允许协议继续扩充;
- 支持即插即用;
- 支持资源的预分配;
- IPv6只有在包的源节点才能分片,是端到端的,传输路径中的路由器不能分片;
- IPv6首部长度必须是8B的整数倍,而IPv4是4B的整数倍;
- 增大安全性,身份验证和保密功能;
路由协议
内部网关路由协议
RIP(UDP协议,工作在应用层)
协议:
- 网络中每个路由器都要维护一个距离向量表;
- 距离又称跳数,每经过一个路由器,跳数加一;
- RIP优先选择条数少的路径;
- RIP的一条路径最多包含15个路由器,距离为16时表示网络不可达;
- RIP两个相邻的路由器每30秒更新一次路由信息,建立并维护路由表;
特点:
- 仅和相邻的路由器交换信息;
- 交换时交换自己的整个路由表;
- 30秒交换;
OSPF(IP数据报)
区别:
- 向自治系统内所有路由器发送信息,使用洪泛法;
- 发送与本机相邻的所有路由器的状态;
- 只有链路状态发生变化时,才更新信息;
特点:
- OSPF根据不同的业务更灵活;
- 可以将通信量分配给代价相同的路径;
- 保证安全;
- 支持可变长度的子网划分和无分类编址CIDR;
- 每个链路状态都带一个32位的序号,序号越大,状态越新;
外部路由协议
BGP协议(边界网关协议)
使用路径向量路由选择协议;(TCP)
饿死我了,不写了