可靠数据传输 rdt

可靠:不错 不丢 不乱序

信道的不可靠特性,决定了rdt的复杂性

rdt基本结构 接口

image.pngimage.png
image.pngimage.pngimage.png
注意:单向双向箭头的含义,并不是简单的单向,而是双向流动的控制信息(ack seq。。。),只考虑数据为单向数据传输

FSM 有限状态机 image.png

rdt1.0

假设底层信道完全可靠(不会错误,不会丢失分组) 显示不存在
因为假设可靠,所以不需要确认信息交互(无耦合关系,可假设独立)
image.png

rdt2.0

不可靠信道——产生位错误,想办法恢复
image.png
image.png
image.png

image.png

rdt2.1 & rdt2.2

image.png
image.png
image.png

注意这里只需要2个序列号,目的是错开分组,防止重复

image.png

注意接收方的 has_seq1(rcvpkt),再次确认只需要 0,1seq的巧妙性 注意ack多的chksum

image.png
重复(指是否为 00 11seq)

2.2
image.png

发送方发的seq是0,但是接收方返回确认是ack1,说明出错

image.png

rdt3.0

假设不只位错误,可能分组也丢失
image.png
所以image.png
image.png

注意新状态 timeout ,action:start/stop timer

image.png
image.png

注意这个超时但确认接收成功的状况

image.png

停等协议

流水线机制&滑动窗口机制(GBN SR)

流水线机制&停等
image.png
image.png

流水线协议

image.png

滑动窗口协议

image.png

GBN

GO-Back-N
image.png

发送方

image.png
image.png
image.png

接收方

image.png
image.png
eg:image.png

SR 选择重传

image.png
SR接收方将确认一个正确接收的分组而不管其是否按序。失序的分组将被缓存直到
所有丢失分组{即序号更小的分组)皆被收到为止,这时才可以将一批分组按序交付给上层。
image.png
eg:
image.png

注意re se窗口的不同

TCP

面向连接
**

TCP连接

原理

image.png

组成

image.png
TCP连接的组成包括:一台主机上的缓存、变量和与进
程连接的套接字,以及另一台主机上的另一组缓存、变量和与进程连接的套接字。

TCP报文段结构

image.pngimage.pngimage.png

PSH URG 指针不被使用,所以是8-2=6bit