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

news2025/3/30 0:17:52

文章目录

  • 一、前言
  • 二、运输层的功能
      • 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 适合实时性要求高的场景

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2322289.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

UR5e机器人位姿

UR5e 作为一款 6 自由度协作机器人,其末端执行器的位姿(位置与姿态的组合)控制是实现精准操作的核心。在笛卡尔坐标系中,位姿通常用齐次变换矩阵表示,包含末端的三维位置(x, y, z)和三维姿态&am…

导入 Excel 规则批量修改或删除 PDF 文档内容

需要对 PDF 文档内容进行修改的时候,通常我们会需要借助一些专业的工具来帮我们完成。那我们如果需要修改的 PDF 文档较多的时候,有什么方法可以帮我们实现批量操作呢?今天这篇文章就给大家介绍一下当我们需要批量修改多个 PDF 文档的时候&am…

ISIS-1 ISIS概述

前面几章我们介绍了OSPF的基础工作原理以及怎样交互LSA形成LSDB链路状态数据库的 这一章我们来介绍另一个链路状态路由协议,ISIS路由协议 一、概述 ISIS(Intermediate System to Intermediate System,中间系统到中间系统)是由ISO(International Organization for Standardiza…

茱元游戏TV2.9.3 | 适配多设备的经典街机游戏集合

茱元游戏TV是一款专为TV端设计的游戏软件,同时适配手机、投影仪和车机等多种设备。尽管其兼容性一般,仅支持安卓9.0以上系统,但它提供了丰富的经典街机游戏资源,非常适合8090后怀旧游玩。注意,游戏需先下载才能玩&…

RTD2525BE《HDMI转EDP,DP转EDP》显示器芯片

一、产品概述 瑞昱RTD2525BE是一款专为高端显示设备设计的多接口转换芯片,支持HDMI 2.0与DisplayPort(DP)1.4双输入,并高效转换为嵌入式DisplayPort(eDP)输出。该芯片集成先进信号处理技术,支持…

SvelteKit 最新中文文档教程(10)—— 部署 Cloudflare Pages 和 Cloudflare Workers

前言 Svelte,一个语法简洁、入门容易,面向未来的前端框架。 从 Svelte 诞生之初,就备受开发者的喜爱,根据统计,从 2019 年到 2024 年,连续 6 年一直是开发者最感兴趣的前端框架 No.1: Svelte …

springboot使用阿里限流框架-sentinel

当前项目源码 控制台下载 启动bin中的看板服务&#xff1a;账号密码:sentinel/sentinel 官方文档地址 项目引入依赖 <!-- sentinel注解支持 --> <dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-annotation-aspectj<…

鸿蒙特效教程10-卡片展开/收起效果

鸿蒙特效教程10-卡片展开/收起效果 在移动应用开发中&#xff0c;卡片是一种常见且实用的UI元素&#xff0c;能够将信息以紧凑且易于理解的方式呈现给用户。 本教程将详细讲解如何在HarmonyOS中实现卡片的展开/收起效果&#xff0c;通过这个实例&#xff0c;你将掌握ArkUI中状…

Qt在模块依靠情况下资源文件名称和资源名称的使用限制

概述 在Qt中使用添加资源文件的时候&#xff0c;对于资源文件名称的定义&#xff0c;往往是较为随意的。 但是当涉及到Qt库依赖的时候&#xff0c;则可能需要遵守一定的规则&#xff0c;否则可能出现文件找不到或者错误加载的问题。 环境 环境名称Qt 版本系统版本LinuxQt 5.…

MTK Android12-Android13 设置系统默认语言

Android 系统&#xff0c;默认语言 文章目录 需求&#xff1a;场景 参考资料实现方案实现思路编译脚本熟悉-平台熟悉mssi_64_cnkernel-4.19 解决方案修改文件-实现方案 源码分析PRODUCT_LOCALES 引用PRODUCT_DEFAULT_LOCALE 定义get-default-product-locale 方法定义PRODUCT_DE…

贪心算法——思路与例题

贪心算法&#xff1a;当我们分析一个问题时&#xff0c;我们往往先以最优的方式来解决问题&#xff0c;所以顾名思义为贪心。 例题1 题目分析&#xff1a;这题利用贪心算法来分析&#xff0c;最优解&#xff08;可容纳人数最多时&#xff09;一定是先考虑六人桌&#xff0c;然…

网络华为HCIA+HCIP 防火墙

防火墙部署模式 路由模式 有路由器的功能 路由器干的活 他都得干 透明模式 旁挂模式 IDS 端口镜像 VPN

WordPress超级菜单插件UberMenu v3.78汉化版

一、插件介绍 UberMenu 是一款功能强大的 WordPress 超级菜单插件,能够帮助站长创建响应式、可自定义的多级菜单。该插件支持动态内容加载、图标、图片、搜索框等丰富功能,并且兼容大多数 WordPress 主题。 UberMenu v3.78 经过完整汉化,适用于中文站点用户,让操作更加直观…

SQL中体会多对多

我们可以根据学生与课程多对多关系的数据库模型&#xff0c;给出实际的表数据以及对应的查询结果示例&#xff0c;会用到JOINLEFT JOIN两种连接 1. 学生表&#xff08;students&#xff09; student_idstudent_name1张三2李四3王五 2. 课程表&#xff08;courses&#xff09…

23种设计模式-备忘录(Memento)设计模式

备忘录设计模式 &#x1f6a9;什么是备忘录设计模式&#xff1f;&#x1f6a9;备忘录设计模式的特点&#x1f6a9;备忘录设计模式的结构&#x1f6a9;备忘录设计模式的优缺点&#x1f6a9;备忘录设计模式的Java实现&#x1f6a9;代码总结&#x1f6a9;总结 &#x1f6a9;什么是…

2024年3月全国计算机等级考试真题(二级C语言)

&#x1f600; 第1题 下列叙述中正确的是 A. 矩阵是非线性结构 B. 数组是长度固定的线性表 C. 对线性表只能作插入与删除运算 D. 线性表中各元素的数据类型可以不同 题目解析&#xff1a; A. 矩阵是非线性结构 错误。矩阵通常是二维数组&#xff0c;属…

【MySQL】索引 事务

目录 一、索引 概念 作用 使用场景 使用 查看索引 创建索引 删除索引 背后的数据结构 二、事务 为什么使用事务 事务的概念 使用 开启事务 执行多条 SQL 语句 回滚或提交&#xff1a;rollback/commit; 事务的基本特性 原子性 一致性 持久性 隔离性 脏读 …

【江协科技STM32】软件SPI读写W25Q64芯片(学习笔记)

SPI通信协议及S为5Q64简介&#xff1a;【STM32】SPI通信协议&W25Q64Flash存储器芯片&#xff08;学习笔记&#xff09;-CSDN博客 STM32与W25Q64模块接线&#xff1a; SPI初始化&#xff1a; 片选SS、始终SCK、MOSI都是主机输出引脚&#xff0c;输出引脚配置为推挽输出&…

Git+Fork 入门介绍

git 分区理解 fork安装 从路径下去拿软件时&#xff0c;注意先拉到本地。经验来看&#xff0c;fork直接安装会出不可思议的问题。 fork操作 安装&#xff0c;注意设置好名字&#xff0c;如果之前安装的同学&#xff0c;名字没有写好&#xff0c;重新安装设置好名字。 clone操…

Windows系统安装Node.js和npm教程【成功】

0.引言——Node.js和npm介绍 项目描述Node.js基于Chrome V8引擎的JavaScript运行环境&#xff0c;使JavaScript可用于服务器端开发。采用单线程、非阻塞I/O及事件驱动架构&#xff0c;适用于构建Web服务器、实时应用和命令行工具等npmNode.js的包管理器与大型软件注册表。拥有…