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

【计算机网络运输层详解】

文章目录

  • 一、前言
  • 二、运输层的功能
      • 1. 端到端通信
      • 2. 复用与分用
      • 3. 差错检测
      • 4. 流量控制
      • 5. 拥塞控制
  • 三、运输层协议:TCP 和 UDP
    • 1. TCP:面向连接的可靠传输协议
    • 2. UDP:无连接的传输协议
  • 四、端口号与进程通信
      • 1. 端口号分类
      • 2. 端口通信模型
  • 五、流量控制与拥塞控制
      • 1. 流量控制
      • 2. 拥塞控制
  • 六、总结


一、前言

计算机网络运输层(Transport Layer)位于网络层之上、应用层之下,在整个网络协议栈中起着承上启下的作用。它为应用进程提供端到端的数据传输服务,并确保数据能够可靠或高效地传送到目标主机。


二、运输层的功能

1. 端到端通信

  • 网络层负责主机之间的数据传输,但无法区分主机上的具体应用进程。
  • 运输层通过端口号标识不同的进程,实现主机到主机之间的端到端通信。

2. 复用与分用

  • 复用:多个应用程序可以同时使用运输层协议进行数据传输。
  • 分用:接收方将运输层数据解析并分发到对应的应用程序。

3. 差错检测

  • 运输层对数据进行校验,保证数据在传输过程中没有损坏。
  • 校验和用于检测数据在传输过程中是否出错。

4. 流量控制

  • 防止发送方发送过多的数据,超过接收方的处理能力。
  • 避免数据溢出或丢失。

5. 拥塞控制

  • 防止网络拥塞,确保网络资源被合理利用。
  • 通过调整发送速率来适应当前网络状态。

三、运输层协议:TCP 和 UDP

运输层的两大核心协议分别是:

  • TCP(Transmission Control Protocol):传输控制协议
  • UDP(User Datagram Protocol):用户数据报协议

1. TCP:面向连接的可靠传输协议

TCP 提供可靠的数据传输服务,具有以下特性:

  • 面向连接:在数据传输前需要先建立连接(3次握手),数据传输结束后释放连接(4次挥手)。
  • 可靠传输:数据包按序到达、无差错、不丢失、不重复。
  • 流量控制:通过滑动窗口机制控制发送方的数据发送速率。
  • 拥塞控制:通过慢启动、拥塞避免、快重传等算法控制数据流量,防止网络拥塞。

TCP 报文格式

  0          4          8         16         24         32
  --------------------------------------------------------
 | 源端口号    | 目的端口号      | 序号(32位)                 |
  --------------------------------------------------------
 | 确认号(32位)                      |
  --------------------------------------------------------
 | 数据偏移(4位) | 保留(6位) | 标志位(6位)  | 窗口大小      |
  --------------------------------------------------------
 | 校验和         | 紧急指针                      |
  --------------------------------------------------------
 | 可选字段(0-320位)                  |
  --------------------------------------------------------
 | 数据部分                              |
  --------------------------------------------------------
  • 源端口号和目的端口号:标识通信双方进程。
  • 序号和确认号:保证数据的可靠性和有序性。
  • 标志位
    • ACK:确认标志。
    • SYN:同步标志,用于建立连接。
    • FIN:终止标志,用于断开连接。
  • 窗口大小:用于流量控制。
  • 校验和:检测数据传输是否出错。

TCP 连接过程

  • 三次握手(建立连接)
    1. 客户端发送 SYN 报文。
    2. 服务端返回 SYN + ACK 报文。
    3. 客户端返回 ACK 报文,连接建立。
  • 四次挥手(释放连接)
    1. 客户端发送 FIN 请求断开连接。
    2. 服务端返回 ACK 确认。
    3. 服务端发送 FIN 请求断开。
    4. 客户端返回 ACK,连接断开。

2. UDP:无连接的传输协议

UDP 提供无连接的数据传输服务,具有以下特性:

  • 无连接:无需建立连接即可传输数据。
  • 不可靠传输:不保证数据有序、不丢失。
  • 速度快:开销小,适合对实时性要求高的应用(如视频会议、语音通话)。

UDP 报文格式

  0          4          8         16         24         32
  --------------------------------------------------------
 | 源端口号    | 目的端口号      | 数据长度         | 校验和      |
  --------------------------------------------------------
 | 数据部分(可变长)                                  |
  --------------------------------------------------------
  • 源端口号和目的端口号:标识通信进程。
  • 数据长度:数据部分的长度。
  • 校验和:检测数据是否损坏。
  • 数据部分:实际传输的数据。

UDP 应用场景

  • 实时音视频:如 VoIP、视频通话。
  • 在线游戏:数据传输需要速度,不需要可靠性。
  • 广播和多播:如 DHCP 协议。

四、端口号与进程通信

1. 端口号分类

  • 0~1023:系统端口(知名端口)
    • 80:HTTP
    • 443:HTTPS
    • 22:SSH
  • 1024~49151:注册端口
    • 分配给用户程序或进程。
  • 49152~65535:动态或私有端口
    • 临时端口号,供客户机程序使用。

2. 端口通信模型

  • 服务器监听指定端口,等待客户端连接。
  • 客户端通过指定端口向服务器发送数据。
  • 服务器和客户端进行数据交互。

五、流量控制与拥塞控制

1. 流量控制

  • 滑动窗口机制
    • 发送方和接收方维护窗口。
    • 窗口大小决定发送方可发送的数据量。
    • 通过调整窗口大小实现流量控制。

示例

  • 发送方窗口大小为 4。
  • 每次发送 4 个数据包。
  • 接收方确认收到数据后,滑动窗口前移。

2. 拥塞控制

  • 慢启动:初始发送速率较低,逐步增加。
  • 拥塞避免:防止发送速率增长过快。
  • 快重传:在接收方连续接收到 3 个重复的 ACK 时,立即重传数据。
  • 快恢复:在拥塞时减少窗口大小,不重置。

六、总结

运输层在计算机网络中负责主机之间的数据传输。它通过 TCP 和 UDP 提供可靠或高速的传输服务,同时通过流量控制与拥塞控制保障网络稳定性。

TCP 适合可靠性要求高的场景

  • 如文件传输、邮件、Web 浏览。

UDP 适合实时性要求高的场景

  • 如视频会议、语音通话、在线游戏。

相关文章:

  • OpenCV-Contrib常用扩展模块
  • Python模块化设计——递归
  • git push 提示 fatal: the remote end hung up unexpectedly
  • Linux系统管理与编程10:任务驱动综合应用zabbix-agent2
  • STM32滴答定时器(SysTick)原理及延时函数实现
  • python爬虫DrissionPage的使用
  • 【CC2530 教程 二】CC2530定时器实现微秒、毫秒、秒延时函数
  • 爬虫框架Scrapy从入门到实战
  • android初学
  • cython编译pyd并且c调用
  • 腾讯四面面经
  • Qt-Q_ENUM宏和QMetaEnum类
  • rocky linux 与centos系统的区别
  • 16.Linux蓝牙从硬件驱动到应用
  • HTTP核心知识
  • vue插槽传送和接收item
  • pyqt5报错:qt.qpa.plugin: Could not find the Qt platform plugin “xcb“(已解决)
  • Linux安装Ollama+MaxKB建立本地知识库
  • 2024年MathorCup数学建模C题物流网络分拣中心货量预测及人员排班解题全过程文档加程序
  • SpringBoot(8)——Springboot数据层开发
  • 烈士沈绍藩遗孤、革命家帅孟奇养女舒炜逝世,享年96岁
  • 玉渊谭天丨一艘航母看中国稀土出口管制为何有效
  • 上海优化营商环境再攻坚,企业和机构有哪些切实感受?
  • 马克思主义理论研究教学名师系列访谈|曾瑞明:想通了才可能认准,认准了才能做好
  • 黄晨光任中科院空间应用工程与技术中心党委书记、副主任
  • 现场|万里云端,遇见上博