引言
信道类型
- 点对点信道:一对一方式
- 广播信道:一对多方式
点对点信道
数据链路和帧
链路:从一个节点到相邻节点的物理线路,中间没有其他交换节点
数据链路:链路的基础上加上通信协议,把实现这些协议的硬件和软件加到链路上
网络适配器(网卡)来实现这些协议
通信主要步骤:
- A的数据链路层吧网络层交下来的IP数据报添加首部和尾部封装成帧
- 发送给B的数据链路层
- 若B收到的帧无差错,就提取出IP数据报给网络层,否则丢弃
三个基本问题
封装成帧,透明传输,差错检测
封装成帧
- 在数据前后添加首部和尾部,同时根据这个判断帧的开始和结束,即帧定界
- 帧是数据链路层的数据传送单元
- 链路层协议规定了数据部分长度上限–MTU(最大传送单元,Maximum Transfer Unit)
- 如果数据是ASCII码文件,使用帧定界符:SOH(Start Of Header)表示帧首部的开始,EOT(End Of Transmission)表示帧的结束。二进制编码是01和04
- 数据传输出现差错时通过判断帧定界符来判断是否是一个完整的帧
透明传输
- 传输的数据中不可以包含帧定界符
- 非ASCII码文件会出现帧定界符
- 透明的意思是什么数据都能通过这个数据链路层。某一个实际存在的事物看起来却好像不存在一样,数据看不见那个帧定界符
- 解决方法:发送时在数据中出现SOH和EOT的前面插入转义字符ESC(十六进制是1B),接受时在送往网络层之前删掉这个转义。如果数据中有也有转义,再插入一个转义
差错检测
- CRC计算 FCS是冗余码
- 除法:数据加上(除数-1)位的
0
;模2除法,看头部,1就上1,0就上0;减法不同为1,相同为0;取出余数 - CRC只保证帧的无差错接受,即接受的帧都是几乎没有差错的
- 传输差错:比特差错;帧丢失,帧重复,帧失序;
- CRC实现无比特差错的传输,但不是可靠传输
- 历史上有帧编号,确认和重传机制,后来因为科技的发达。链路质量提高,取消了,能提高通信效率
点对点协议PPP
计算机和ISP进行通信时使用的数据链路层协议
PPP协议的组成
- 一个将IP数据报封装到串行链路的方法
- 一个用来建立,配置和测试数据链路连接的链路控制协议LCP
- 一套网络控制协议NCP
PPP协议的帧格式
各字段意义
首部:4个,尾部:2个
F是标识字段,表示一个帧的开始或结束,0x7E,连续两帧只用一个标志字段
A是地址字段,C是控制字段。这两个没有意义
协议字段两个字节:0x0021代表信息字段是IP数据报
信息字段长度可变,不超过1500字节
FCS是CRC的帧校验序列F A C 协议 信息部分 FCS F
字节填充
- 异步传输 转义字符为0x7D,字节填充
- 因为标志字段是7E,所以一个7E就变成7D和5E
- 如果出现了7D(转义字符),7D就变成7D和5D
- 如果有ASCII控制字符(小于0x20),出现0x03变成7D和23
- EX:7D 5E FE 27 7D 5D 7D 5D 65 7D 5E => 7E FE 27 7D 7D 65 7E
- 好像只要发现有
D 5
,那么就合并这两个,去掉D5
0比特填充
- 同步传输,使用SONET/SDH链路
- 扫描信息字段,连续五个1填入一个0
- 接收方会把连续的五个1后的0删除
PPP协议的工作状态
- 4个状态:链路静止,链路建立,鉴别,网络层协议,链路打开
广播信道的数据链路层
- 双绞线是局域网中的主流传输媒体
- 共享信道的两个方法:静态划分信道和动态媒体接入控制(随机接入,受控接入)
CSMA/CD协议
- 总线的特点:总线上的所有计算机都能检测都这个数据,也就是广播通讯
以太网采取的措施
- 无连接的工作方式:不必建立连接就可以发送数据。
- 以太网采取尽最大努力的交付,不可靠的交付
- 使用曼彻斯特编码
- 使用集线器的双绞线以太网,物理上是星形网,逻辑上是总线网
协议要点
- 多点接入:总线型网络
- 载波接听:检测总线上有没有其他计算机也在发送。不管是在发送前还是在发送中,每个站都不停检测
- 碰撞检测:边发送边监听。如果有两个站在同时发送数据,就产生了碰撞
- 由于电磁波在总线上是以有限的速率传播的,所以数据在总线上会出现碰撞
- 局域网最多经过两倍的总线端到端的传播时延
- 一个站不能同时发送和接收,但必须边监听信道,所以进行半双工通信
- 争用期:碰撞窗口,端到端的往返时间2r,只有经过争用期这段时间还没有碰撞,才能肯定发送不会发生碰撞
- 截断二进制指数退避
- 有个k和r。k=Min[重传次数,10];r=random(0~2k-1)[2的k次方-1]
- 重传时间是r倍的争用期
- 争用期是512比特时间。1比特时间就是发送一个比特所需要的时间
- 强化碰撞
- 当发生碰撞时,立即停止发送数据,并且发送32bit或64bit的认为干扰信号
- 让所有用户知道发生碰撞
- 帧最小间隔是9.6微秒,96比特时间,让接收站缓存来得及清理
广播信道的以太网
MAC层的硬件地址
- 固化在适配器的ROM中的地址
- 6个字节地址字段
MAC帧格式
- 五个字段
|---6---|--6--|-2--|--46~1500-|-4-|
|目的地址|源地址|类型|数据数据数据|FCS|
- 类型字段用来表示上一层用什么协议
- 当数据字段长度小于46字节时,会插入一个整数字节
- 实际传送的帧还要多8个字节。7个字节是前同步码,使接收端的适配器在接受MAC帧时能迅速调整时钟频率,使它和发送端的时钟同步(位同步);最后一个字节是帧开始定界符
- 以太网传送数据以帧为单位传送,传送帧时,各帧之间有一定的间隙。因此以太网不需要帧结束定界符,也不需要使用字节插入保证透明传输
- 无效帧:
- 帧的长度不是整数个字节
- FCS查出有错
- 数据字段不再46~1500字节之间。因此MAC帧长度在64~1518之间
- 无效帧直接丢弃
拓展以太网
物理层
- 使用光纤和光纤调制解调器,进行电信号和光信号的转换,可以使主机和集线器相连接
- 使用多个集线器连接成多级星系结构的以太网
- 一个以太网是一个独立的碰撞域,多个以太网互联后会变成一个碰撞域,这时最大吞吐量只有一个以太网的吞吐量。意思就是某个以太网内的两个站在通信时所传送的数据会通过所有的集线器进行转发,其他以太网内不能通信(会碰撞)
- 不用以太网技术不能用集线器相连
数据链路层
- 使用网桥,它根据MAC帧的目的地址对收到的帧进行转发和过滤
- 两个以太网通过网桥连接起来后便成为更大的以太网,原来的以太网成为网段
- 网桥依靠转发表来转发帧:查找转发表,如果在不同接口,就转发到不同网段,否则丢弃这个帧
- 网桥通过内部接口管理软件和网桥协议实体完成操作
- 网桥好处:
- 过滤通信量,增大吞吐量。网桥可以使网段成为隔离开的碰撞域
- 扩大物理范围/提高可靠性
- 可互联不通物理层,MAC层和不同速率的以太网
- 网桥缺点:
- 对接受的帧要存储和查找转发表,然后执行CSMA/CD算法,才转发,增加了时延
- 没有流量控制,可能导致缓存溢出,帧丢失
- 用户数不能过多,传播过多会造成广播风暴
- 网桥转发帧时不改变帧的源地址
透明网桥
- 以太网上的站点不知道所发送的帧将经过哪几个网桥
- 是即插即用设备
- 不需要人工配置转发表
- 自学习算法
- 网桥每接收到一个帧,记下源地址和进入网桥的接口
- 帧的源地址写在转发表的地址中
- 转发帧时根据收到的帧中的目的地址进行转发
- 此时目的地址就是前面的源地址
- 网桥是存储转发方式工作的,先把整个帧接受(集线器和转发器是按比特转发)再进行处理,不管目的地址是什么
- 丢弃CRC检错/帧长过长/短的帧
- 转发过程:
- 在初始化中,网桥接受到一个帧,会记录下源地址以及接口,然后转发到其他所有接口,即使帧的目的地址和源地址在同一个网段
- 如果在一个网段中有目的地址以及另外一个网桥,另外一个网桥还是会接受到转发的帧,这是为了记录并学习下来
- 如果转发表中已经包含目的地址的接口,直接舍弃
- 转发表中还会写入帧进入网桥的时间,为了使转发表能反映网络拓补的最新状态。接口管理软件会在一定时间内删除转发表中的项目
- 生成树算法
- 互联在一起的网桥在进行彼此通信后,就能找出原来的网络拓扑的一个子集,这个子集里不存在回路
- 避免帧在网络中兜圈子
- 一定时间会对生成树拓扑进行更新
源路由网桥
- 发送帧时把详细的路由信息放在帧首部中
- 能帮助源站确定整个网络可以通过的帧的最大长度
多接口网桥–以太网交换机
- 以太网交换机的每个接口都直接与一个单个主机或另一个集线器相连
- 全双工方式,通信时能同时连通多对接口,这样能无碰撞地传输数据
- 自学习算法,即插即用设备,具有多种速率的接口
- 大多以存储转发方式转发,一些使用直通方式
虚拟局域网VLAN
- 由局域网网段组成的与物理位置无关的逻辑组,这些网段有共同的需求
- VLAN帧有一个标识符,指明发送这个帧的工作站是哪一个VLAN
- 利用以太网交换机划分局域网
- 虚拟局域网上的每个站都能收到同一个虚拟局域网上其他成员发出的广播
- 在同一个以太网交换机上但不在一个VLAN上的工作站不会接受到其他VLAN发出的信息
- 虚拟局域网协议在以太网的帧格式中插入4字节的标识符
目的地址|源地址|VLAN标记|类型|数据|FCS
- 2字节的标记类型和2字节的标记控制信息