-
传输层
为不同host上的不同进程提供 逻辑通信 机制
- 多路复用&多路分解
- UDP
- 可靠数据传输协议
- GBN
- SR
- TCP
- 流量管理
- 拥塞控制
-
多路复用/多路分解
传输层将数据交付给套接字,而不是进程
UDP:Dip,Dport
TCP:Sport,Sip,Dport,Dip
-
UDP
首部 8 字节
仅提供:
进程到进程的数据交付(多路复用/分解);
差错检查。
应用:
流式多媒体(容忍丢失,速率敏感)
因特网电话
NFS 远程文件服务器
DNS,DHCP,SNMP(简单网络管理协议)
checksum:
16bit,溢出回卷,总结果按位取反
(实际上,包括ip首部的一些字段,见右图)
出错?丢弃 或 交付给应用程序并警告
-
可靠数据传输协议
不错:无差错,损坏
不丢:不丢包
不乱:顺序提交
信道利用率 U =
-
rdt1.0:底层信道可靠
-
rdt2.0:检查位错误(校验和),返回ACK
停-等协议:仅当收到ACK,才继续发送下一个分组
-
rdt2.1:ACK/NAK校验和,序列号检测重复分组
- 发送方:仅当收到ACK且ACK完整,才继续发送下一个seq分组
-
接收方:分组无损,序列号正确,返回带校验和的ACK;
等待下一个seq分组
-
rdt2.2:无NAK,使用冗余ACK
接收方 告知 发送方 最后一个正确接收的分组seq
- rdt3.0:延迟,丢包 -> 定时器
-
GBN
分组头部 k bit 序列号
窗口大小N,允许最多N个未确认分组
1个计时器
累积确认:n确认(即使n-1未确认),base = n+1
重传:n-1确认,n未确认,重发n及以后所有未确认分组
-
SR
N个计时器:窗口内每个位置一个
确认:确认正确接收的分组,无论顺序
缓存:缓存失序分组,直到所有更小序号分组被收到
接收方:
Base -N ~ base - 1
- 一定已收到
- 一定已交付
- 若收到重复分组,返回ACK
- 可能原因,ACK丢失
Base ~ base + N -1
- 可能未收到,缓存,ACK
- 可能收到,ACK
- 缓存序号连续,交付
序列号:
对SR,窗口长度≤ 1/2序号空间
信道利用率