计算机网络总结:第三章 运输层

第三章 运输层

3.1 概述和运输层服务

  • 提供在不同主机上运行的app进程之间的逻辑通信
  • 传输协议在终端系统中运行
    –发送方:将应用消息分成报文段,传递给网络层
    –rcv 方:将片段重新组合成消息,传递到app层
  • 应用程序可使用多种传输协议
    –Internet:TCP和UDP
3.1.1 运输层和网络层的关系
  • 网络层:主机之间的逻辑通信
  • 传输层:进程之间的逻辑通信(依赖,增强,网络层服务)
3.1.2 因特网运输层概述
  • 可靠,有序交付(TCP):拥堵控制、流量控制、连接设置
  • 不可靠,无序交付(UDP):“best-effort”IP的简洁扩展
  • 服务不详(available):延迟保证、带宽保证

3.2 多路复用和多路分解

  • 多路分解的定义:将运输层报文段中的数据交付到正确的套接字的工作
  • 多路复用的定义:在源主机从不同套接字中收集数据块,并为每个数据块封装上首部信息从而生成报文段,然后将报文段传递到网络层
  • 多路分解如何工作?
    –主机接收IP数据报
    A)每个数据报都有源IP地址,目的IP地址
    B)每个数据报携带1个传输层段
    C)每个段都有源,目标端口号
    –主机使用IP地址和端口号将段定向到适当的套接字
    在这里插入图片描述
  • 无连接的多路复用和多路分解
  • 面向连接的多路复用和多路分解

3.3 无连接运输:UDP

  • 优点
    –关于何时、发送什么数据的应用层控制更为精细
    –无需连接建立
    –无连接状态
    –分组首部开销小
  • 用途:流媒体,SNMP,RIP,DNS
3.3.1 UDP报文结构

在这里插入图片描述

3.3.2 UDP检验和

3.4 可靠数据传输原理

3.4.1 构造可靠数据传输协议
  • 经完全可靠信道的可靠数据传输:rdt 1.0
  • 经具有比特差错信道的可靠数据传输:rdt 2.0
    –使用肯定确认与否定确认的可靠数据传输协议称为自动重传请求(ARQ),需要以下三种协议功能来处理比特差错的情况:差错检测(error detection)、接收方反馈(receiver feedback)、重传(re-transmission)
    –缺陷:如果一个ACK或NAK分组受损,发送方无法知道接收方是否正确接受了上一块发送的数据
    –rdt 2.1:使用了从接收方到发送方的肯定确认和否定确认
    –rdt 2.2:接收方必须包括由一个ACK报文所确认的分组序号,发送方必须检查接收到的ACK报文中被缺的分组序号
  • 经具有比特差错的丢包信道的可靠数据传输:rdt 3.0
    –特点:定时重传
    –被称为比特交换协议(因为分组号在0和1之间交替)
3.4.2 流水线可靠数据传输协议
  • 解决流水线的差错恢复的方法:回退N步(GBN),选择重传(SR)
3.4.3 回退N步
  • 特点:允许发送方发送多个分组而不需等待确认,但它也受限于在流水线中未确认的分组数不能超过某个最大允许数N。当分组丢失时,会丢弃当前分组之后的分组
  • 优点:接受缓存简单,不需要缓存任何失序分组;避免了停等协议中所提到的信道利用率问题
  • 缺点:单个分组的差错会引起大量分组重传
    在这里插入图片描述
3.4.4 选择重传
  • 特点:通过让发送方仅重传那些它怀疑在接收方出错的分组而避免了不必要的重传
  • 注:窗口长度必须小于或等于序号空间大小的一半
    在这里插入图片描述

3.5 面向连接的传输:TCP

3.5.1 TCP连接
  • 基本概念
    在这里插入图片描述
    –点到点(point-to-point):在单个发送方与单个接收方之间的连接
    –全双工服务(full-duplex service):不同主机上的AB进程之间存在TCP连接,则应用层的数据可从A流向B,反之亦然
    –三次握手:客户发送一段特殊的TCP报文段,服务器以另一个特殊的TCP报文段来响应,最后客户再用第三个特殊报文段作为响应(前两个报文段不包含应用层数据,第三个可包含)
    –最大报文段长度(Maximum Segment Size):TCP可从缓存中取出并放入报文段中的数据量受限于MSS
    –TCP连接的组成包括:一台主机上的缓存、变量和与进程连接的套接字,以及另一台主机的这三样东西
3.5.2 TCP报文段结构

在这里插入图片描述
–序号(sequence number):报文段首字节的字节流编号
–确认号(acknowledgement number):期望从对方主机收到的下一字节的序号

3.5.3 往返时间的估计与超时
  • 基本概念
    –TCP采用超时/重传机制来处理报文段的丢失
  • 估计往返时间
    –SampleRTT:大多数的TCP实现仅仅在某一时刻为一个已发送但尚未确认的报文段做一次RTT采样,得到一个SampleRTT
    –EstimatedRTT:TCP维持一个EstimatedRTT,一旦获得一个新SampleRTT时,则根据下式来更新EstimatedRTT:
    EstimatedRTT = (1-a)* EstimatedRTT + a * SampleRTT(其中a通常取值为0.125)
    –RTT偏差DevRTT,用于估算SampleRTT一般会偏离EstimatedRTT的程度:
    DevRTT = (1-B)DevRTT + B|SampleRTT - EstimatedRTT|(其中B通常取值为0.25)
  • 设置和管理重传超时间隔
    –RTO = EstimatedRTT + 4 * DevRTT(推荐的初始TimeoutInterval)
3.5.4 可靠数据传输
  • 超时间隔加倍:TCP重传具有最小序号的还未被确认的报文段,每次重传是都会将下一次的超时间隔设为先前值的两倍
  • 快速重传:一旦收到3个冗余ACK,TCP就执行快速重传,即在该报文段的定时器过期之前重传丢失的报文段
3.5.5 流量控制

在这里插入图片描述在这里插入图片描述

3.5.6 TCP连接管理

3.6 拥塞(Congestion)控制原理

  • 什么是拥塞控制
    –防止发送方发的太快,使得网络来不及处理,从而导致网络拥塞
  • 拥塞原因与代价
    –情况1:两个发送方和一台具有无穷大缓存的路由器
    –情况2:两个发送方和一台具有有限缓存的路由器
    –情况3:四个发送方和具有有限缓存的多台路由器及多跳路径
  • 拥塞控制的方法
    –端到端拥塞控制:没有来自网络的明确反馈;从终端系统观察到的损失,延迟推断出拥塞;TCP采取的方法
    –网络辅助的拥塞控制:路由器向终端系统提供反馈(一位表示拥塞【SNA,DECnet,TCP / IP ECN,ATM】;明确的拥塞通知)

3.7 TCP拥塞控制

  • 采取的方法:端到端的拥塞控制,让每个发送方根据所感知到的网络拥塞程度来限制其能向连接发送流量的速率
    在这里插入图片描述
  • TCP拥塞控制算法
    –慢启动
    在这里插入图片描述
  • 何时停止指数增长?
    A)存在一个由超时指示的丢包时间,TCP发送方将cwnd设置为1并重新开始慢启动过程,同时将ssthresh(慢启动阈值)设置为cwnd/2
    B)当cwdn的值等于ssthresh时,结束慢启动并且TCP转移到拥塞避免模式
    C)如果检测到三个冗余ACK,这时TCP执行一种快速重传并进入快速回复状态
    –拥塞避免:每个RTT只将cwnd的值增加一个MSS
  • 何时停止线性增长?
    A)存在一个由超时指示的丢包时间,TCP发送方将cwnd设置为1并重新开始慢启动过程,同时将ssthresh(慢启动阈值)设置为cwnd/2
    B)如果检测到三个冗余ACK,网络继续从发送方向接收方交付文段
    –快速恢复:对于引起TCP进入快速恢复状态的缺失报文段,对收到的每个冗余的ACK,cwnd的值增加一个MSS。最终,当对丢失报文段的一个ACK到达时,TCP在降低cwnd后进入拥塞避免状态;如果出现丢包,反应和慢启动一样
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值