选择重传 selective repeat SR
当窗口宽度大和带宽时延大时,一个单个分组的差错就可能引起GBN大量重传 选择重传:让发送方仅重传那些怀疑在接收方出错的分组而避免不必要重传
接收方:收到后面的分组缓存并发送ACK,即使收到已接收的分组也要发送ACK(说明之前ACK可能丢失),防止发送方窗口不移动
问题:接收方窗口太大时会无法确定是一个新分组还是重传,因此窗口大小长度必须小于或等于序号空间大小的一半
分组重排序message reorder:表现为可能存在一个发送和接收方窗口都不存在的分组旧拷贝,是一个冗余分组
分组最大寿命:解决分组重排序reorder问题
3.5面向连接的传输 TCP
TCP 传输控制协议
? 全双工服务full-duplex service 双向连接 ? 点对点point-to-point 多播在TCP中不可能
? 三次握手:前两个报文段不承载有效载荷(一个来自客户机 一个来自服务器)第三个
承载有效载荷(来自客户机) ? 发送缓存
send buffer:在三次握手初期设置的缓存之一,TCP
将套接字传递的数据流引导
到发送缓存里
? 最大报文段长度Maximum Segment sizeMSS:TCP从发送缓存中取出并放入报文段的数据量大
小限制,根据最大链路层帧长度即最大传输单元Maximun transmission unit MTU设置,MSS只是数据的最大长度,不包括报文段首部
? TCP连接组成:两套(发送方和接收方)主机缓存、变量、与一个进程连接的套接字
TCP 提供服务
? 可靠数据传输
? 流量控制服务flow-control service速度匹配服务,消除发送方使接收方缓存溢出的可能性 ? 拥塞控制congestion control TCP发送方因IP网络的拥塞而被遏制
可靠数据传输
TCP 发送方:
? 超时(定时器与最早未被确认的报文段关联)且未被确认就重传
? 每发生一次超时事件就加倍doubling超时间隔,收到数据或收到ACK后超时间隔又换算为
TimeOutInterval(由EstimatedRTT 和DevRTT推算得出) ? 快速重传fast retransmit 接受到3个冗余ACK立即重传
流量控制
TCP双方各维护一个接收窗口,将窗口剩余大小信息通过报文段通知对方
TCP连接管理
建立连接:三次握手
SYN=1 Seq=client_isn
SYN=1 Seq=server_isn ACK=client_isn+1 SYN=0 Seq=client_isn+1 ACK=server_isn+1
拆除连接 SYN洪泛攻击
3.6拥塞控制
丢失一般在网络变拥塞时路由器缓存溢出引起 分组重传作为网络拥塞的征兆
TCP拥塞算法
? 加性增、乘性减 AIMD 每次丢包拥塞窗口CongWin减半 ,即收到一次确认增大一个
MSS*MSS/CongWin ,即每过一个RTT增加一个MSS
? 慢启动SS:Congwin初始为1MSS,每过一个RTT,加倍,即收到一次确认增大一个MSS ? 超时:重新进入慢启动 (阈值Threshold减半,CongWin设为一MSS)
? 收到三个冗余ACK:Congwin减半(阈值为Congwin的一半,然后Congwin改为阈值)
快速恢复fast recovery
TCP维持一个阈值threshold管理这些复杂动态,用来确定慢启动结束与拥塞避免CA将开始的窗口长度
阈值初始值很大,发生丢包则减半,当CongWin达到阈值时,进入拥塞避免阶段(阈值不变)
Ch4 网络层
每台主机和路由器中都有一个网络层部分
4.1概述
主要功能
转发forwarding 是指将分组从一个输入链路接口转移到适当的输出链路接口的路由器本地动作 选路routing 是指分组从源到目的地时,决定端到端路径的网络范围的进程
连接建立Connection Setup 从源到目的地沿着所选择的路径彼此握手,以便在网络层数据分组能够开始流动之前,给定源到目的地连接之间建立起状态
网络服务模型
最大时延抖动时间量
? 因特网 尽力而为best-effort service服务 ? 恒定Constant比特率ATM网络服务 CBR ? 可用Available比特率ATM网络服务 ABR
jitter
发送方发送两个相继分组之间的时间量等于在目的地接收到它们之间的
4.2 虚电路和数据报网络
网络层的连接服务和无连接服务:是否有握手预备步骤 和传输层不同点: ①主机到主机
②不同时提供连接服务和无连接服务,仅提供连接服务的计算机网络称为虚电路(Virtual-Circuit VC)网络,仅提供无连接的计算机网络称为数据报网络datagram network
③除了在网络边缘的端系统中实现外,也在网络中心的路由器中实现
虚电路网络
因特网为数据报网络,ATM和帧中继frame relay为虚电路网络,网络层连接被称为虚电路 虚电路组成:
①源和目的主机之间的路径(链路、路由器) ②VC号,沿着该路径的每段链路一个号码 ③沿着该路径的每台路由器中的转发表表项
? 维持连接状态信息Connection state information当创建一条新的虚电路,转发表就增加一个新项,
终止一条时,就删除沿着该路径每个表中的相应项
? 分组首部的VC号一直在变化(减少首部长度),而每条链路上可能有多个VC号(简化
虚电路建立)
? 虚电路建立(确定链路VC号和路由器表项,还可预留资源)、数据流动、虚电路拆除
(更新转发表)
? 指示虚电路启动和终止以及路由器之间传递的用于建立虚电路的报文被称为信令报文
signaling message,用来交换这些报文的协议为信令协议signaling protocol
数据报网络
分组上加上目的地端系统的地址,然后推进网络中,不需建立连接
路由器有多少个链路,其表项就只需要多少,进行最大前缀匹配longest prefix matching rule 路由器的转发表可能在任何时刻修改,因此数据报可能会无序到达