第一章 引言
网络协议
定义
为进行网络中的数据交换而建立的规则、标准或约定,即网络协议。
通信双方需要共同遵守,相互理解。
三要素
- 语法:规定传输数据的格式(如何讲)
- 语义:规定所要完成的功能(讲什么)
- 时序:规定各种操作的顺序(双方讲话的顺序)
协议分层结构
- 网络体系结构:层和协议的集合为网络体系结构。
- 层次栈:为降低网络设计的复杂性,网络使用层次结构和协议栈,每一层使用下一层提供的服务,并为上一层提供服务。
- 协议栈:一个特定的系统所使用的一组协议,即每层的协议,称为协议栈
- 对等实体:不同机器上构成相应层次的实体称为对等实体
- 接口:在每一对相邻层次之间的是接口;接口定义了下层向上层提供哪些服务原语
服务原语
- 服务
- 典型服务:面向连接传输服务,无连接传输服务
- 原语告诉服务执行某些操作或报告对等实体所采取的操作
- 六个核心服务原语
(以面向连接服务为例)
服务与协议的关系
- 协议是“水平”的,服务是“垂直”的
- 实体使用协议来实现其定义的服务
- 上层实体通过接口使用下层实体的服务
参考模型
OSI七层参考模型【物链网淑(输)慧(会)试(示)用】
-
物理层
- 定义如何在信道上传输0、1
- 有机械接口、电子信号、时序接口、介质等
-
数据链路层
- 实现相邻网络实体间的数据传输
- 功能:成帧等(成帧:从物理层的比特流中提取出完整的帧)
-
网络层
- 将数据报跨越网络从源设备发送到目的设备
- 功能:路由等
-
传输层
- 将数据从源端口发送到目的端口(进程到进程)
- 网络层的控制主要面向运营商,传输层为终端用户提供端到端的数据传输控制
-
会话层
- 利用传输层提供的服务,在应用程序之间建立和维持会话,并能使会话获得同步
-
表示层
- 关注所传递信息的语法和语义
-
应用层
- 通过应用层协议,提供应用程序便捷的网络服务调用
TCP/IP参考模型(以最主要的两个协议TCP/IP命名)
- 网络接口层
- 描述了为满足无连接的互联网络层需求,链路必须具备的功能
- 互联网层
- 允许主机将数据包注入网络,让这些数据包独立地传输至目的地,并定义了数据包格式和协议(IPv4和IPv6协议)
- 传输层
- 允许源主机与目标主机上的对等实体,进行端到端的数据传输:TCP、UDP
- 应用层
- DNS、HTTP、FTP、SMTP…
OSI与TCP/IP模型的比较
- OSI7层,TCP/IP4层。(答题时写TCP/IP的…层与OSI的…层大致对应)
- 设计思想:通用性与实用性
- OSI:先有模型后有协议设计,不局限于特定协议,明确了服务/协议/接口等概念,更具有通用性
- TCP/IP:仅仅对已有协议的描述
- OSI无连接和面向连接;TCP/IP仅支持无连接
- 二者的不足
- OSI:从未被真正实现,技术实现糟糕,被认为是政府和机构的强加标准
- TCP/IP:核心概念未能实现,不具备通用性,混用接口与分层设计,模型欠缺完整性
度量单位(KMGT速率10的3,容量2的10)
- 比特率/带宽/吞吐量
- 时延(传输传播处理排队)/往返时延RTT(2传播+末端处理,不含传输)/时延抖动/时延带宽积(传播时延带宽)
- 包转发率PPS/丢包率/利用率(有数据通过的时间/所有的时间)
第二章 物理层
功能
- 是网络体系结构中的最低层
- 不是连接计算机的具体物理设备,也不是负责信号传输的具体物理媒体
- 考虑如何在连接各计算机的传输媒体上传输数据比特流
- 尽可能屏蔽掉不同传输媒体和通信手段的差异,为数据链路层提供一个统一的数据传输服务
接口特性
机械特性
接线器的形状\尺寸\引线数目和排列\固定和锁定装置等
电气特性
发送器和接收器有关电气电路的特性
“电平”/V/Ω
[指明电压的范围]
功能特性
接线器的每一引脚/针脚的作用
[指明某一电压表示什么意义]
过程特性
不同功能的各种可能事件的出现顺序
常用标准
(知道传统以太网10BASE-T中10表示数据率10Mbps,BASE表示基带传输,T表示双绞线)
多路复用技术
目的:允许用户使用一个共享信道进行通信
频分复用(FDM)
将多路基带信号调制到不同频率载波上,再进行叠加形成一个复合信号.
所有用户在同样的时间占用不同的带宽资源(用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带)
时分复用(TDM)与统计时分复用(STDM)
- 时分复用:将时间划分为一段段等长的时分复用帧(TDM帧)
- 每个用户所占时间间隙周期性出现
- 所有用户在不同的事件占用同样的频带宽度
- 不足:可能会造成线路资源的浪费
- 统计时分复用: 动态地按需分配共用信道的时隙,只需要传送数据的终端接入共享信道
波分复用(WDM)
利用多个激光器在单条光纤上同时发送多束不同波长激光的技术(理解为光的频分复用)
码分复用(CDMA)
-
利用码序列相关性实现的多址通信,基本思想是靠不同的地址码来区分地址.
-
具体实现:每个站的码片序列各不相同,相互正交.
-
计算:求规格化内积(1-发了1;-1-发了0;0-没有发)
第三章 数据链路层基础
位置和功能
位置
向下:利用物理层提供的位流服务
向上:向网络层提供明确的服务接口
功能(弥补网络层的缺陷)
- 成帧:将比特流划分成帧
- 为了检测和纠正物理层在比特传输中可能出现的错误
- 数据链路层功能需要借助"帧"的各个域来实现
- 差错控制:处理传输中出现的差错
- 流量控制:确保发送方的发送速率不大于接收方的处理速率,避免接收缓冲区溢出
差错检测和纠正(⭐⭐⭐)
需要知道的概念
- 码字:(n,m)码-m个数据位r个校验位的n位单元(m+r=n)
- 码率:码字中非冗余部分的比例(m/n)
- 海明距离:两个码字之间不同对应比特的数目(各个比特位互相对应,有几位不同)
- 为了检查d个错可使用海明距离d+1的编码
- 为了纠正d个错可使用海明距离2d+1的编码
检错码
(只可推断是否错,不可知道哪位错,可请求重传解决,主要用于高可靠信道)
奇偶校验
增加一位校验位,奇/偶指的是1的个数
校验和(TCP/IP常用)
循环冗余校验CRC(⭐⭐⭐)
https://www.bilibili.com/video/BV19E411D78Q?p=21 从14:05开始
- 发送方:加0->模2除->余数加进去传输(生成多项式有几位就加几位减一个0)
生成多项式由收发双方提前商定;注意模2除和普通除法不一样(善用异或运算) - 接收方:对照校验码是否一致
纠错码
(可判断是否错并定位出错位置纠正错误,主要用于错误发生比较频繁的信道)
海明码(发现双比特错,纠正单比特错)
校验位:位置在2的幂次,数值要看是奇/偶校验
接收方根据校验位可以定位行/列
基本的数据链路层协议
- 关键假设:
- 分层进程独立假设
- 提供可靠服务假设
- 只处理通信错误假设
- 演进:乌托邦单工协议->无错信道单工停止-等待协议->有错信道单工停止-等待协议
- 乌托邦单工协议:完美不现实(假设单向传输、完美信道、始终就绪、瞬间完成)
- 无错信道上的停等式协议
- 发送方:发送一帧-等确认-确认后发送下一帧;接收方:接收后交给物理层哑帧作为成功接收上一帧的确认。
- 解决帧传输过程中接收方被**“淹没”**问题(来不及处理)
- 停-等式协议(发送方发送一帧后暂停,等待确认到达后发送下一帧;接收方完成接收后回复确认接收)(确认帧的内容不重要:哑帧)
- 有错信道上的单工停等式协议
- 发送方:初始化帧序号0,发送帧-等到正确的确认则发送下一帧/等到超时或错误的确认则重发;接收方:初始化期待0号帧,等到正确帧则交给网络层并发送该帧确认/等到错误帧则发送上一个成功接收帧的确认
- 解决了通信信道出错导致帧出错、丢失的问题
滑动窗口协议
基本思想
- 窗口机制:发送方和接收方都具有一定容量的缓冲区(即窗口),发送端在收到确认之前可以发送多个帧
- 序号使用:循环重复使用有限的帧序号
- 累计确认:不必对收到的分组逐个发送确认,而是对按照序到达的最后一个分组发送确认
- 发送方:发送一帧-下限前移;收到确认-上限前移。若一直收不到确认则重发。
- 接收方:累计确认。接收一帧-下限前移;发出确认-上限前移。
回退N协议
- 思想:出错全部重发。接收端接收到一个出错帧或乱序帧就丢弃所有的后继帧并且不为这些帧发送确认;发送端超时后重传所有未被确认的帧。(只能按序接收)
选择重传协议
- 思想:发送方收到对某一帧的否认帧或定时器超时,只重传该出错帧或计时器超时的数据帧。接收端只丢弃出错帧,后面的数据帧保存在缓存中。
- 接收端收到的数据包的顺序可能和发送的数据包顺序不一样,所以要等序列号小的所有帧都正确接收后,按次序交付给网络层(区别于回退N协议)
第四章 介质访问子层
信道分配问题
两种分类
- 点到点信道:信道直接连接两个端点
- 多点访问:多用户共享一根信道【例如早期星型拓扑式集线器,现在几乎都是交换机】
常见的局域网拓扑(⭐⭐⭐)
总线拓扑、星型拓扑、环型拓扑
共同点:共享一根信道(广播信道/多路访问信道/随机访问信道)
多路访问协议
分类
ALOHA协议
纯ALOHA:想发就发(效率比较低)
随时产生冲突(冲突:两个或两个以上的帧)
冲突的帧完全破坏,破坏了的帧要重传
分隙ALOHA
把时间分成时隙,长度对应一帧的传输时间。
帧的发送必须在时隙的起点,冲突只发生在时隙的起点。
载波侦听多路访问协议CSMA(先听后发)
以太网采用CSMA/CD。
吞吐量:ALOHA<1-持续式<p-持续式
冲突:ALOHA>1-持续式>p-持续式
p-持续式付出了高延迟的代价
非持续式CSMA
- 原理:侦听-介质空闲则开始发送;介质忙则等待一个随机分布的时间然后重复侦听判断的过程。
- 优缺点:好处是等待一个随机时间可以减少再次冲突的可能性;坏处是等待时间内介质上如果没有数据传送那么就浪费了时间
1-持续(CSMA/CD)
- 原理(先听后发,边听边发):侦听-介质空闲则发送;介质忙则持续侦听,一旦空闲立即发送;如果发生冲突则等待一个随机分布的时间然后重复侦听判断过程。
- 为什么仍然会有冲突?两种情况:同时传送(同时发现介质空闲)/传播延迟时间(听到空闲的时候实际已经忙了)
- CSMA/CD模型
- 传输周期:一个站点使用信道,其他站点禁止使用
- 竞争周期:所有站点都有权使用,争用时间槽
- 空闲周期:所有站点都不使用信道
p-持续式CSMA
- 原理:(1-持续式是p-持续式的特例)
受控访问协议
位图协议
竞争期:可以举手(发送竞争比特)
传输期:按序发送
令牌
令牌:发送权限
令牌的运行:发送工作站去抓取,获得发送权(发送的帧需要发送站将其从共享信道上去除;防止无限循环)
二进制倒计数协议
编序号,序号长度相同,经过比较让高序号站点优先
自适应搜索树协议
竞争时隙所有站点同时竞争。
若只有一个站点申请则获得信道。
否则下一竞争时隙,一半站点参与竞争(递归),下一时隙由另一半站点参与竞争。
即所有站点构成一棵完全二叉树。
以太网
经典以太网
- 物理层:最高数据率10Mbps,使用曼彻斯特编码,使用同轴电缆和中继器连接。
- MAC子层协议
- 主机运行CSMA/CD协议
- 常用以太网MAC帧格式有两种标准:DIX Ethernet V2标准;IEEE的802.3标准
- 硬件地址又称为物理地址或MAC地址,MAC帧中的源地址和目的地址长度均为6字节
(“类型”在Ethernet V2标准中视为上一层的协议类型,IEEE802.3视为数据长度)
交换式以太网
- 交换式以太网的核心是交换机,交换机通过告诉背板把帧传送到目标端口
- 工作在数据链路层,检查MAC帧的目的地址对收到的帧进行转发
快速以太网
- 带宽100Mbps
- 保留原来工作方式(帧格式、接口、过程)
- 使用双绞线/光纤做线缆
千兆以太网
- 带宽千兆,保留原来工作方式
- 半双工下使用CSMA/CD,为了向后兼容,增加载波扩充和真突发;全双工下不需使用CSMA/CD,缺省方式
万兆以太网
- 带宽万兆(10Gbps)
- 只支持全双工,不再使用CSMA/CD,不支持半双工
- 保持兼容性
数据链路层交换原理(⭐⭐⭐)
【在解决如何避免冲突】
预备知识:冲突域(一个Hub)
- 用物理层设备扩充网络:扩大冲突域
- 用数据链路层设备扩充网络:用网桥或交换机分隔冲突域
重点:透明网桥工作原理
理想的网桥
透明的:即插即用;网络中的站点无需感知网桥的存在与否
构建MAC地址表(即逆向学习)
- 预备知识(理解,不用记忆):
- 交换机会将主机发送的数据帧无差别的传送
- 网桥MAC地址表会设定老化时间(默认300s),当表项的老化时间到期时,会删除表项
- 构建MAC地址表的过程:
- 初始的时候网桥MAC地址表为空
- 当有主机发送数据帧的时候,交换机的端口可以接收到,所以逆向学习源地址(即发送帧的站MAC地址被学习),进行增加表项或更新表项的操作,同时记录或更新帧到达时间,以便之后的删除表项操作
利用MAC地址表进行数据帧的转发——对于入境帧的处理过程(三选一)
-
转发——发送方和接收方在不同端口,地址表中都有记录
逆向学习源地址,并根据目的地址查询MAC地址表。
找到匹配项之后从对应端口转发出去。 -
过滤——发送方和接收方在同一个端口,地址表中都有记录
逆向学习源地址,并根据目的地址查询MAC地址表。
找到匹配项之后发现入境口=出境口,丢弃。
-
泛洪——目的地址位广播帧或未知单播帧(不在MAC地址表中)
逆向学习源地址,并根据目的地址查询MAC地址表。
找不到匹配项,从所有端口(除了入境口)发送出去。(ps:为什么除了入境口?因为如果目的地址对应端口时入境口,由于交换机的无差别转发,一定已经发送了数据帧)
【一个网段的数据被发送到无关网段,存在安全隐患,浪费网络资源】