当前位置: 首页 > article >正文

【计算机网络】运输层协议解析

前言

运输层直接为应用进程间的逻辑通信提供服务。

运输层向高层用户屏蔽了下面网络核心细节(如网络拓扑、路由选择协议等)它使应用进程看见的就好像是在两个运输层实体之间有一条端到端的逻辑通信信道。

UDP与TCP对比

  • UDP:
    无连接
    支持一对一,一对多,多对一和多对多交互通信
    对应用层交付的报文直接打包
    尽最大努力交付,也就是不可靠
    不使用流量控制和拥塞控制
    首部开销小,仅仅8字节
  • TCP:
    面向连接
    每一条TCP链接只能有两个端点EP,只能是一对一通信
    面向字节流
    可靠传输,使用流量控制和拥塞控制
    首部最小20字节,最大60字节

TCP流量控制

  • 流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。
    利用滑动窗口机制可以很方便的在TCP连接上实现对发送方的流量控制、
    TCP接收方利用自己的接收窗口的大小来限制发送方发送窗口的大小。
    TCP发送方收到接收方的零窗口通知后,应启动持续计时器,持续计时器超时后,向接受方发送零窗口探测报文。

TCP拥塞控制

  • 对网络中某一资源的需求超过该资源所能提供的可用部分,网络性能就要变坏–拥塞
    如果出现拥塞不进行控制,整个网络的吞吐量就将随输入负荷的增大而下降。

TCP超时重传时间选择

  1. RFC6298建议使用一下公式进行计算超时重传时间RTO
    RTO = RTTS + 4 * RTTD
    加权平均往返时间RTTS
    RTTS1 = RTT1
    新的RTTS = (1 - a)*旧的RTTS + a * 新的RTT样本
    0<= a <1
    a的RFC6298推荐值为1/8,即0.125

  2. RTT偏差的加权平均RTTD
    RTTD1 = RTT1 / 2
    新的RTTD = (1 - b)*旧的RTTD + b * |RTTS - 新的RTT样本|
    0<= b <1
    b的RFC6298推荐值为1/4,即0.25

TCP可靠传输实现

  1. TCP基于以字节为单位的滑动窗口来实现可靠传输
    发送方在未收到接收方的确认时,可以将发送窗口内还未发送的数据全部发送出去,接收方只接收序号落入发送窗口内的数据
    虽然发送方的发送窗口是根据接收方的接收窗口设置的,但在同一时刻,发送方的发送窗口并不总是和接收方的接收窗口一样大。
    网络传送窗口值需要经历一定时间的滞后,并且这个时间还是不确定的。发送方还可能根据网络当时的拥塞情况适当减少自己的发送窗口尺寸。
  2. 对于不按序到达的数据如何处理,TCP并无明确规定。
    如果接收方把不按序到达的数据一律丢弃,那么接受窗口的管理将会比较简单,但是不利于网络资源利用。TCP通常对不按序到达的数据是先临时存放在接收窗口中,等到字节流中所缺失的字节收到后,再按序交付上层应用进程。
  3. TCP要求将接收方必须有积累确认和捎带确认机制,这样可以减少传输开销、接收方可以在合适的时候发送确认,也可以在自己有数据要发送时把确认信息顺便捎带上。
  4. 接收方不应过分推迟发送确认,否则会导致发送方不必要的超时重传。
  5. TCP的通信是全双工通信。通信中的每一方都在发送和接收报文。

http://www.kler.cn/a/315264.html

相关文章:

  • GM_T 0039《密码模块安全检测要求》题目
  • stm32制作CAN适配器5--WinUsb上位机编写
  • OpenTK 中帧缓存的深度解析与应用实践
  • nodejs利用子进程child_process执行命令及child.stdout输出数据
  • cad c# 二次开发 ——动态加载dll 文件制作(loada netloadx)
  • 数据结构经典算法总复习(下卷)
  • Flutter - Win32程序是如何执行main函数
  • jmeter得到的文档数据处理
  • 后端接收数组,集合类数据
  • 数据结构之算法复杂度
  • 基于BiGRU+Attention实现风力涡轮机发电量多变量时序预测(PyTorch版)
  • 软考中级软件设计师——数据结构与算法基础学习笔记
  • 【图灵完备 Turing Complete】游戏经验攻略分享 Part.5 编程
  • 【若依RuoYi-Vue | 项目实战】帝可得后台管理系统(二)
  • Linux自主学习篇
  • oracle中NUMBER(1,0)的字段如何映射到c#中
  • 【设计模式-适配】
  • SSC377/D, 5M30 64/128MB, 1Tops1. 支持双摄,甚至三摄;2. 夜视全彩;3. 省内存、省带宽;4. 算力较大,适合新的算法模型;
  • 图像处理与分析
  • Spring的任务调度
  • 怎么在路由器上使用tcpdump抓包
  • Redisson 分布式锁的使用详解
  • Vue3中shallowRef和ref区别
  • 确保在AWS上的资源安全:构建坚不可摧的云安全防线
  • C++ prime plus-2-编程练习
  • 解决 Torch not compiled with CUDA enabled 问题 | MiniCPM3-4B 【应用开发笔记】