可靠数据传输 rdt
可靠:不错 不丢 不乱序
信道的不可靠特性,决定了rdt的复杂性
rdt基本结构 接口





注意:单向双向箭头的含义,并不是简单的单向,而是双向流动的控制信息(ack seq。。。),只考虑数据为单向数据传输
FSM 有限状态机
rdt1.0
假设底层信道完全可靠(不会错误,不会丢失分组) 显示不存在
因为假设可靠,所以不需要确认信息交互(无耦合关系,可假设独立)
rdt2.0
不可靠信道——产生位错误,想办法恢复


rdt2.1 & rdt2.2



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

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

重复(指是否为 00 11seq)
2.2
发送方发的seq是0,但是接收方返回确认是ack1,说明出错

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

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


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

停等协议
流水线机制&滑动窗口机制(GBN SR)
流水线协议
滑动窗口协议

GBN
发送方
接收方


eg:
SR 选择重传

SR接收方将确认一个正确接收的分组而不管其是否按序。失序的分组将被缓存直到
所有丢失分组{即序号更小的分组)皆被收到为止,这时才可以将一批分组按序交付给上层。
eg:
注意re se窗口的不同
TCP
TCP连接
原理
组成

TCP连接的组成包括:一台主机上的缓存、变量和与进
程连接的套接字,以及另一台主机上的另一组缓存、变量和与进程连接的套接字。
TCP报文段结构



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




