IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 计算机网络学习笔记(5)---传输层--可靠数据传输、Rdt1.0、2.0、2.1、2.2、3.0、流水线与滑动窗口协议、GBN、SR -> 正文阅读

[网络协议]计算机网络学习笔记(5)---传输层--可靠数据传输、Rdt1.0、2.0、2.1、2.2、3.0、流水线与滑动窗口协议、GBN、SR

目录

?1 传输层

2 可靠(不错、不丢、不乱)数据传输

?3 流水线机制和滑动窗口协议

?1 传输层

1.1 传输层服务和协议

1、传输层协议为运行在不同Host上的进程提供了一种逻辑通信机制

2、端系统运行传输层协议:

(1)发送方:将应用递交的消息分成一个或多个的Segment,并向下传给网络层;

(2)接收方:将接收到的segment组装成消息,并向上交给应用层;

3、传输层可以为应用提供多种协议?--- Interrnet上的TCP;UDP;

1.2 传输层与网络层的区别

1、网络层:提供主机之间的逻辑通信机制;

2、传输层:提供应用进程之间的逻辑通信机制;

(1)位于网络层之上;(2)依赖于网络层服务;(3)对网络层服务进行(可能的增强);

1.3?Internet传输层协议

1、可靠、按序的交付服务(TCP)

(1)拥塞控制;(2)流量控制;(3)连接建立;

2、不可靠的交付服务(UDP)

基于“尽力而为(Best-effort)”的网络层,没有做(可靠性方面的)扩展;

3、两种服务TCP/UDP均不保证延迟、带宽;

1.4 多路复用和多路分用

?注:Socket是传输层与应用层之间的,“门”;

1、无连接分用---面向UDP?

?2、面向连接的分用---TCP,一对一

?注:一个进程创建多个线程;

?1.5 UDP---User Datagram Protocol [RFC 768]

1、基于Internet IP协议----(1)复用/分用;(2)简单的错误校验;

2、“Best effort”服务,UDP服务:(1)丢失;(2)非按序到达;

3、无连接:(1)UDP发送方和接收方之间不需要握手;(2)每个UDP段的处理独立于其他段;

4、UDP优点(存在价值)

(1)无需建立连接(减少延迟);(2)实现简单:无需维护连接状态;(3)头部开销小;

(4)没有拥塞控制:应用可更好的控制发送时间和速率;

5、UDP应用

(1)常用于流媒体应用:容忍丢失;速率敏感;(2)DNS、SNMP;

在UDP上实现可靠数据传输:在应用层增加可靠性机制;应用特定的错误恢复机制;

?6、UDP校验和checksum校验和---检测UDP段在传输中是否发生错误(如位翻转);

(1)发送方:

a、将段的内容视为16-bit整数;

b、校验和计算:计算所有整数的和,进位加在和的后面,将得到的值按位求反,得到校验和

c、发送方将校验和放入校验和字段;

(2)接收方

a、计算所收到段的校验和;

b、将其与校验和字段进行对比:不相等---检测出错误;相等:没有检测出错误(但可能也有错误)

(3)校验和计算示例:最高位进位必须被加进去

2 可靠(不错、不丢、不乱)数据传输

2.1 可靠数据传输原理

(1)可靠数据传输对应用层、传输层、链路层都很重要;

(2)网络Top-10问题;

(3)信道的不可靠特性决定了可靠数据传输协议(rdt)的复杂性;

2.2?可靠数据传输协议基本结构:接口

2.3?可靠数据传输协议

2.4 Rdt1.0:可靠信道上的可靠数据传输?

(1)底层信道完全可靠;不会发生错误(bit? error);不会丢弃分组;

(2)发送方和接收方的FSM独立;

?2.5 Rdt2.0:产生位错误的信道

(1)底层信道可能翻转分组中的位(bit),利用校验和检测位错误;

(2)如何错误恢复?

a、确认机制(Acknowledgements,ACK):接收方显式地告知发送方分组已正确接收;

b、NAK:接收方显示地告知发送方分组有错误;

c、发送方收到NAK后,重传分组;

(3)基于这种重传机智的rdt协议称为ARQ(Automatic Repeat Request)协议

(4)Rdt2.0中引入的新机制:差错检测;接收方反馈控制消息:ACK/NAK;重传

?2.6 Rdt2.1和2.2

1、Rdt2.0的缺陷:ACK/NAK消息发生错误/被破坏(corrupted)

(1)为ACK/NAK增加校验和,检错并纠错;

(2)发送方收到被破坏ACK/NCK时不知道接收方发生了什么,添加额外的控制消息;

(3)如果ACK/NAK坏掉,发送方重传;

(4)不能简单地重传:产生重复分组;

2、如何解决重复分组的问题

(1)序列号(Sequence number):发送方给每个分组增加序列号;(2)接收方丢弃重复分组;

3、Rdt2.1:应用对ACK/NAK破坏

发送方:

接收方:

?4、Rdt2.1 VS Rdt2.0

5、Rdt2.2:无NAK消息协议?

?2.7 Rdt3.0:信道既可能发生错误,也可能丢失分组

1、“校验和+序列号+ACK+重传”够用吗?

2、?发送方:

?

3、Rdt3.0示例:

?4、Rdt3.0性能分析---Rdt3.0能够正确工作,但性能很差

软硬件协同设计,停等操作,引起的Rdt3.0的性能很差

?3 流水线机制和滑动窗口协议

3.1 流水线协议?

1、允许发送方在收到ACK之前连续发送多个分组:

(1)更大的序列号范围;(2)发送方/接收方需要更大的存储空间以缓存分组;

?3.2 滑动窗口协议(Sliding-window protocol)

??

1、窗口---(1)允许使用的序列号范围;(2)窗口尺寸为N:最多有N个等待确认的消息;

2、滑动窗口---随着协议的运行,窗口在序列号空间内向前滑动;

3、滑动窗口协议:GBN,SR

3.3 GBN协议---Go-Back-N协议

?1、Go-Back-N(GBN)协议:发送方

(1)分组头部包含K-bit序列号;(2)窗口尺寸为N,最多允许N个分组未确认;

(3)ACK(n):确认序列号n(包含n)的分组均已被正确接收:可能受到重复ACK;累计确认

(4)为空中的分组设置计时器(timer);

(5)超时Timeout(n)事件:重传序列号大于等于n,还未受到ACK的所有分组

2、GBN:发送方扩展FSM

?3、GBN:接收方扩展FSM

?(1)ACK机制:发送拥有最高序列号的、已被正确接收的分组的ACK;

a、可能产生重复的ACK;b、只需要记住唯一的expectedseqnum;

(2)乱序到达的分组:

a、直接丢弃-->接收方没有缓存;b、重新确认序列号最大的、按序到达的分组;

4、GBN示例

?3.4 Selective Repeat---SR协议,多了一个接收方的窗口

1、 GBN协议缺陷:会重传重复分组很多;

2、SR协议改进

(1)接收方对每个分组单独进行确认---设置缓存机制,缓存乱序到达的分组;

(2)发送方只重传那些没收到ACK的分组---为每个分组设置定时器;

(3)发送方窗口:a、N个连续的序列号;b、限制已发送且未确认的分组;

3、SR发送方/接收方窗口

?4、SR协议

?

5、SR协议示例?

?

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-08-28 09:42:41  更:2021-08-28 09:44:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 20:49:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计