《计算机网络》期末复习——第三章:数据链路层

🛩️🛩️🛩️ 快期末考试了,再不复习就寄了。

🛩️🛩️🛩️希望我的文章能对你有所帮助,有不足的地方还请各位看官多多指教,大家一起学习交流!

✈️✈️✈️动动你们发财的小手,点点关注点点赞!在此谢过啦!哈哈哈!😛😛😛

目录

一、数据链路层的设计问题

[1.1 提供给网络层的服务](#1.1 提供给网络层的服务)

[1.1.1 无确认的无连接服务](#1.1.1 无确认的无连接服务)

[1.1.2 有确认的无连接服务](#1.1.2 有确认的无连接服务)

[1.1.3 有确认的面向连接的服务](#1.1.3 有确认的面向连接的服务)

[1.2 成帧](#1.2 成帧)

[1.2.1 字节计数法](#1.2.1 字节计数法)

[1.2.2 字节填充的标志字节法](#1.2.2 字节填充的标志字节法)

[1.2.3 位填充的标志位法](#1.2.3 位填充的标志位法)

[1.2.4 物理层编码违例法](#1.2.4 物理层编码违例法)

[1.3 错误控制](#1.3 错误控制)

[1.4 流量控制](#1.4 流量控制)

三、简单的数据链路层协议

[3.1 乌托邦式的单工协议(协议1)](#3.1 乌托邦式的单工协议(协议1))

[3.2 无错误信道上的单工停一等协议(协议2)](#3.2 无错误信道上的单工停一等协议(协议2))

[3.3 有错误信道上的单工停一等协议(协议3)](#3.3 有错误信道上的单工停一等协议(协议3))

四、提高效率

[4.1 双向传输,多帧在途](#4.1 双向传输,多帧在途)

[4.1.1 双向传输:捎带确认](#4.1.1 双向传输:捎带确认)

[4.1.2 滑动窗口](#4.1.2 滑动窗口)

[4.2 全双工、滑动窗口协议示例](#4.2 全双工、滑动窗口协议示例)

[4.2.1 1位滑动窗口协议(协议4)](#4.2.1 1位滑动窗口协议(协议4))

[4.2.2 回退N协议(协议5)](#4.2.2 回退N协议(协议5))

[4.2.3 选择重传协议(协议6)](#4.2.3 选择重传协议(协议6))


一、数据链路层的设计问题

数据链路层的功能:提供给网络层的服务、成帧、错误控制、流量控制。
注:本章学习的许多原理(如错误控制、流量 控制等)也适用于传输层协议和其他层协议。

1.1 提供给网络层的服务

提供了三种基本服务:

  • 无确认的无连接服务
  • 有确认的无连接服务
  • 有确认的面向连接的服务

1.1.1 无确认的无连接服务

源主机向目的主机发送独立的帧,而目的主机对收到的帧不进行确认。

  • 不存在逻辑连接的建立和释放的过程
  • 数据链路层对丢失的帧不作恢复工作

适用于:

  • 误码率很低的场合,如以太网
  • 实时通信,如视频传输或语音

1.1.2 有确认的无连接服务

对发送的每一帧进行确认,让发送方知道帧是否安全到达。

  • 不存在逻辑连接的建立和释放的过程
  • 可提高可靠性

适用于:

  • 不可靠信道,如无线系统。

1.1.3 有确认的面向连接的服务

  • 源主机和目的主机在传输数据前,先建立连接。
  • 在该连接上发送的每一帧都进行编号,数据链路层保证所发的每一帧都被真正接收到,而且保证每帧都接收一次,并且所有帧按顺序接收。
  • 数据传输结束后,释放连接。

适用于:

  • 长距离且不可靠的线路。如卫星信道或长途电话电路。

1.2 成帧

什么是成帧?

  • 数据链路层把比特流分成离散的帧。

为什么要成帧?

  • 数据链路层接收的比特流可能有错误。
  • 错误检测/控制适用于块,而不是比特流。

成帧的方法:

  • 字节计数法
  • 字节填充的标志字节法
  • 位填充的标志位法
  • 物理层编码违例法

1.2.1 字节计数法

在帧头部使用一个字段来标明帧中的字符数。

缺点:计数值有可能由于传输差错而被 "篡改"。

1.2.2 字节填充的标志字节法

  • 每一帧以标志字节 FLAG 作为开头和结束分界符。
  • 在传输数据中出现 FLAG 时,在字符前插入一个特殊的转义字符( ESC ),字节填充。
  • 如果转义字符出现在传输数据中,则用一个转义字节来填充。

1.2.3 位填充的标志位法

1.2.4 物理层编码违例法

1.3 错误控制

目的: 保证所有的帧都能正确的,并按正确的顺序 交付给目的主机的网络层。
采用的方法:

  • 向发送方提供有关接收情况的反馈信息,接收方收到数据帧后,判断是否错误,发确认帧或否认帧。
  • 发送方收到否认帧后,重传

发送方发送的数据帧在链路上完全丢失或其 确认帧丢失,可能会产生死锁

  • 引入定时器,超时重传

接收方发送的确认帧丢失,使发送方重发原 来的帧,接收方无法区别重复帧和新帧

  • 采用方法是对每个发送帧进行编号

1.4 流量控制

目的: 解决发送方和接收方的速率、处理能力及缓冲 区数量不匹配问题。限制发送方所发出的数据流量,使其发送速率不要超过接收方能处理的速率。
常用的两种方法:

  • 基于反馈的流控制
  • 基于速率的流控制

三、简单的数据链路层协议

  • 乌托邦式的单工协议(协议1)
  • 无错误信道上的单工停一等协议(协议2)
  • 有错误信道上的单工停一等协议(协议3)

3.1 乌托邦式的单工协议(协议1)

3.2 无错误信道上的单工停一等协议(协议2)

3.3 有错误信道上的单工停一等协议(协议3)

四、提高效率

目标: 双向传输,多帧在途

  • 双向传输:捎带确认
  • 滑动窗口

全双工、滑动窗口协议示例

  • 1位滑动窗口协议(协议4)
  • 回退N协议(协议5)
  • 选择重传协议 (协议6)

4.1 双向传输,多帧在途

4.1.1 双向传输:捎带确认

4.1.2 滑动窗口

4.2 全双工、滑动窗口协议示例

4.2.1 1位滑动窗口协议(协议4)

4.2.2 回退N协议(协议5)

4.2.3 选择重传协议(协议6)

  • 接收方的数据链路层存储坏帧后的所有正确帧,当发送方得知某个帧出错时,只是重传此坏帧,而不是所有的后继帧。

  • 在这个协议中,发送方和接收方都维持一个可接收序列号的窗口。

  • 接收窗口的大小>1,并为窗口中的每个序列号都提供一个缓冲区,每个缓冲区用一位判断其是否为空。

当某一帧到达时,接收方检查其序列号,看其是否落在 窗口内。 如果落在窗口内且从未接收过,就接收并存储, 接收到的此帧保存在数据链路层,而不交给网络层,直 到比它序列号小的所有帧都按次序已交给了网络层,此 帧才能提交给网络层。

窗口大小选择 (N为表示序号的长度)


✨好啦,今天的分享就到这里!

🎉希望各位看官读完文章后,能够有所提升。

✨创作不易,还希望各位大佬支持一下!

👍点赞,你的认可是我创作的动力!

⭐收藏,你的青睐是我努力的方向!

✏️评论:你的意见是我进步的财富!

相关推荐
UestcXiye4 小时前
《TCP/IP网络编程》学习笔记 | Chapter 3:地址族与数据序列
c++·计算机网络·ip·tcp
qq_421833675 小时前
计算机网络——SDN
计算机网络
城南vision6 小时前
计算机网络——TCP篇
网络·tcp/ip·计算机网络
lihuhelihu7 小时前
第3章 CentOS系统管理
linux·运维·服务器·计算机网络·ubuntu·centos·云计算
幸运超级加倍~7 小时前
软件设计师-上午题-15 计算机网络(5分)
笔记·计算机网络
爱吃生蚝的于勒18 小时前
深入学习指针(5)!!!!!!!!!!!!!!!
c语言·开发语言·数据结构·学习·计算机网络·算法
城南vision19 小时前
计算机网络——HTTP篇
网络协议·计算机网络·http
幺零九零零1 天前
【计算机网络】TCP协议面试常考(一)
服务器·tcp/ip·计算机网络
长安初雪1 天前
Request 和 Response 万字详解
计算机网络·servlet
ZachOn1y1 天前
计算机网络:运输层 —— 运输层概述
网络·tcp/ip·计算机网络·运输层