计算机网络自顶向下(三)——传输层
传输层
目标
理解传输层的工作原理
(1)多路复用,解复用
(2)可靠数据传输
(3)流量控制
(4)拥塞控制
学习Internet的传输层协议:
(1)UDP无连接传输
(2)TCP面向连接的可靠传输
(3)TCP的可靠控制
概述
RDT,即reliable data transfer
物理层:传输实体,链路层:点到点,网络层:端到端,传输层:进程到进程,应用层:客户-服务
传输层提供进程与进程之间的,以message为单位的通信服务
传输协议运行在端系统。
发送方:讲应用层的报文分成报文段,然后传递给网络层。
接收方:将报文段重组成报文,然后传递给应用层。
有多个传输层协议可供应用选择
IP向上层提供的服务是不可靠的,TCP加强了可靠性;TCP向上层提供的服务是不安全的,SSL可以加强安全性。TCP无法降低延迟,无法增加带宽。TCP可以加强服务品质,但无法优化性能。
有连接的单位是分组,无连接的单位是数据报
字节流:Byte stream;数据报:Datagram;边界信息:Boundary information
best effort
多路复用/解复用
上一层实现IP的区分,到传输层引入端口,区分进程,完成源端的复用,到目标端的解复用。
复用是指多个tcp socket的信息都往下交,对方收到再分给不同的socket
共有65535个端口号
TCP和UDP使用端口的方式不一样
为了使穿过层间的信息最少,TCP和四元组相捆绑,即socket,socket包含四个信息:本地IP,本地port,对方IP,对方port。
socket是网络服务接口,对应进程
UDP的socket和本地IP,本地port相捆绑(二元组)。
应用往下传的是:(1)数据(2)socket(3)对方IP和对方port的地址(cad,指针)
无连接传输UDP
应用:实时流媒体;事务性应用(一次往返)
UDP:用户数据报协议
UDP校验和:检测在被传输报文段中的差错。
残存错误:数据部分和EDC部分出错后依然符合校验规则。(概率小,但不可忽略)
发送方编码,接收方解码
进位回滚
可靠数据传输的原理
rdt(可靠数据传输)在应用层、传输层和数据链路层都很重要。是网络Top10问题之一。
信道的不可靠特点决定了可靠数据传输协议的复杂性。
在可靠信道上传输:不出错,不丢失
超时重传机制(解决传错/丢失问题)
滑动窗口协议(slide window):发送缓冲区。
发送窗口的最大值<=发送缓冲区的值
发送窗口前沿移动的极限:不能超过发送缓冲区
接收窗口=接收缓冲区
GBN(Go-back-N)协议和SR(Selective Repeat)协议的异同:相同:发送窗口>1,一次可发多个未经确认分组。区别:GBN接收窗口尺寸=1,只能顺序接收,一旦一个分组没有发成功,要返回错误的地方重发;SR接收窗口尺寸>1,可乱序接收,发送未成可以选择性重发错的中间某一项。
GBN适用范围:出错率低(SR复杂易出错)
SR适用范围:链路容量大(延迟大,带宽大)
GBN:以时间换空间 SR: 以空间换时间
面向连接的传输:TCP
(段结构;可靠数据传输;流量控制;连接管理)
TCP概述:点对点,可靠的、按顺序的字节流,管道化(流水线),发送和接收缓存,全双工数据,面向连接,有流量控制
MSS:Maximum Segment Size, 最大报文段大小,≤当然可以
TCP往返延时(RTT)和超时
在局域网中,两台计算机之间的往返延迟可以设置为固定的值;通过TCP处理进程通信的情况,超时时间是动态的、自适应的。
sampleRTT 当前采样RTT
estimatedRTT 移动平均RTT
TCP在IP不可靠服务的基础上建立了RTT
快速重传算法
流量控制
目的:防止发送方发的太快,超出了接收方的处理能力(防止接收方缓冲区溢出)。
连接管理
连接建立 和 连接拆除
拥塞控制
网络拥塞的表现:分组丢失率变高,延迟更多
两种拥塞控制方法:端到端拥塞控制,网络辅助的拥塞控制
ATM网络:异步传输网络,它的数据单位是RM(信元)
ABR模式:弹性服务
TCP拥塞控制
如何检测拥塞:超时(拥塞);收到某个段三个重复的ACK(轻微拥塞,没有发生拥塞,但是由于未通过差错检验,给源端一种发生拥塞的错觉)
rate=CongWin/RTT
两种控制同时考虑:接受窗口反映流量控制,拥塞窗口反映拥塞控制
拥塞控制的策略:慢启动(每个RTT,CongWin加倍;一开始慢速,但加速是指数性的)
拥塞控制的机制:线性增加-层性减-线性增加-层性减…
(改进)指数增加-线性增加-线性减-指数增加-线性增加-线性减…
小结
- 传输层提供的服务:为应用进程间的逻辑通信服务(相对的,网络层提供的是主机和主机之间的通信服务),传输层协议包括TCP和UDP
- 原理:多路复用和解复用
区分进程使用的是:端口 - 无连接传输层协议UDP
- 可靠数据传输原理:停止等待协议(RDT),流水线协议(GBN:接收窗口=1,SR:接收窗口>1)
- TCP协议:TCP特性,面向连接的,进程到进程的;TCP报文段格式;TCO可靠传输机制;超时重传,快速重传;流量控制;连接管理
- 拥塞控制原理:拥塞原因,拥塞代价(方式:网络辅助e.g.ATM - 根据网络提供的反馈信息;端到端e.g.TCP - 超时和三个冗余ACK来判断拥塞)