计算机网络:运输层 - 概述
计算机网络:运输层 - 概述
- 运输层的任务
- 端口号
- 复用与分用
- UDP协议
- 首部格式
- TCP协议
- 面向字节流
运输层的任务
物理层、数据链路层以及网络层,他们共同解决了将主机通过网络互联起来所面临的问题,实现了主机到主机的通信。
网络层的作用范围是主机到主机,但实际上在计算机网络中进行通信的真正实体是位于通信两端主机中的进程。

AP1 和 AP2 是局域网LAN1上主机A中与网络通信相关的两个应用进程。
AP3 和 AP4 是局域网LAN2上主机B中的与网络通信相关的两个应用进程。
如何为运行在不同主机上的应用进程提供直接的通信服务?是运输层的任务。运输层协议又称为端到端协议。运输层的作用范围是应用进程到应用进程,也称为端到端。
运输层最重要的两个协议是
TCP与UDP
- 用户数据报协议
UDP
传输的协议数据单元是UDP报文或者UDP用户数据报。UDP在传输数据之前不需要先建立连接,对方的运输层在收到UDP报文后,不需要给出任何确认。
常见的使用UDP的应用层协议:DNS,DHCP,TFTP。
- 传输控制协议
TCP
传输的协议数据单元是TCP报文段。TCP提供面向连接的服务,在传输数据前必须先建立连接,数据传输结束后要释放连接,接收方收到TCP报文后也要给出去确认。因此TCP也只能提供一对一的服务。
常见的使用TCP的应用层协议:HTTP,SMTP,FTP,TELNET。
端口号

如图,假设AP1要和AP4通信,那么当主机B接收到了主机A发来的报文后,主机B怎么知道这个数据报要交给AP3还是AP4?也就是说运输层面临的第一个问题就是如何标识一个进程。
计算机上的进程是使用进程标识符 PID 来标志的。然而因特网上的计算机并不是使用统一的操作系统,不同操作系统使用不同格式的进程标识符。为了使运行不同操作系统的计算机的应用进程之间能够进行网络通信,就必须使用统一的方法对 TCP/IP 体系的应用进程进行标识。
运输层使用
端口号来区分应用层的不同应用进程
端口号长度为16bit,取值范围是 0-65535,分为:熟知端口号,登记端口号,短暂端口号。
熟知端口号:
取值范围是 0-1023。因特网数字分配机构 IANA 把这些端口号指派给了 TCP/IP 体系中最重要的一些应用协议。常见的端口号如下:
| 协议 | 端口号 |
|---|---|
| DHCP | 67 和 68 |
| DNS | 53 |
| TFTP | 69 |
| SNMP | 161 |
| SNMP(trap) | 162 |
| SMTP | 25 |
| FTP | 21 和 20 |
| TELNET | 23 |
| HTTP | 80 |
| HTTPS | 443 |
登记端口号:
取值范围是 1024-49151,为没有熟知端口号的服务器所使用。这类端口号必须在 IANA 按照规定的手续登记,以防止重复。
例如,微软远程桌面应用程序使用的端口号是3389。
短暂端口号:
取值范围是 49152-65535,留给客户进程选择,暂时使用当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用。
复用与分用
接下来我们介绍发送方的复用和接收方的分用,如图所示:

这是收发双方的应用进程,发送方的某些应用进程所发送的不同应用报文在运输层使用 UDP 协议进行封装,这称为 UDP 复用。而另一些应用进程所发送的不同应用报文在运输层使用 TCP 协议进行封装,这称为 TCP 复用。
运输层使用端口号来区分不同的应用进程,不管是使用运输层的 UDP 协议封装成的 UDP 用户数据报,还是使用 TCP 协议封装成的 TCP 报文段。在网络层都需要使用 IP 协议封装成 IP 数据报,这称为 IP 复用。
IP 数据报首部中协议字段的值,用来表明 IP 数据报的数据载荷部分封装的是何种协议数据单元:取值为6,表示封装的是TCP报文段;取值为17,表示封装的是UDP用户数据报。
接收方的网络层收到 IP 数据报后进行 IP 分用。
若 IP 数据报首部中协议字段的值为17,则把 IP 数据报的数据载荷部分所封装的 UDP 用户数据报上交运输层的 UDP。若协议字段的值为6,则把 IP 数据报的数据载荷部分所封装的 TCP 报文段上交运输层的 TCP。
运输层对 UDP 用户数据报进行 UDP 分用,对 TCP 报文段进行 TCP 分用,也就是根据端口号将它们交付给上层相应的应用进程。
接下来我对TCP和UDP两个协议做一个简单讲解,只是了解它们的基本特点,不深入讲解,后续会有其它博客讲解具体细节。
UDP协议
UDP协议具有一下特点:
UDP是无连接的,即发送数据之前不需要建立连接UDP使用尽最大努力交付,即不保证可靠交付UDP是面向报文的,即一次发送和交付一个完整的报文UDP没有拥塞控制,很适合实时通信,因为实时通信要求源主机以恒定的速率发送数据,并允许丢失部分数据UDP支持一对一、一对多、多对一和多对多的交互通信UDP的首部开销小,只有 8 个字节
首部格式
UDP数据报的首部只要8 byte,由四个字段组成,每个字段都是2 byte,如图:

源端口与目的端口用与标识两个不同主机上的进程。长度为整个UDP数据报的长度校验和用于检验数据报是否出错
在计算校验和时,还会引入一个伪首部的概念:

伪首部不是一个真实存在的首部,只有计算校验和是,会把这个伪首部也计算进来。
TCP协议
TCP协议有以下特点:
TCP是面向连接的运输层协议。TCP 在传送数据之前,必须先建立连接;在传送数据完毕后,必须释放已经建立的连接。- 每一条
TCP连接只能有两个端点(endpoint),每一条TCP连接只能是点对点的(一对一)。 TCP提供可靠交付的服务。通过 TCP 连接传送的数据,无差错、不丢失、不重复,并且按序到达- TCP 提供全双工通信。TCP 连接的两端都设有发送缓存和接收缓存,用来临时存放双向通信的数据。
面向字节流
- 面向字节流,
流指的是一连串的字节序列。
发送方的 TCP 把应用进程交付下来的数据块,仅仅看作是一连串的无结构的字节流,TCP 并不知道这些带传送的字节流的含义,仅将他们编号并存储在自己的发送缓存。

TCP 不保证接收方应用程序所收到的数据块和发送方应用程序所发出的数据块,具有对应大小的关系。
接收方要具有还原字节流的能力,接收方应用程序收到的字节流必须和发送方应用程序发出的字节流完全一样。
相关文章:
计算机网络:运输层 - 概述
计算机网络:运输层 - 概述 运输层的任务端口号复用与分用UDP协议首部格式 TCP协议面向字节流 运输层的任务 物理层、数据链路层以及网络层,他们共同解决了将主机通过网络互联起来所面临的问题,实现了主机到主机的通信。 网络层的作用范围是…...
使用阿里开源的Spring Cloud Alibaba AI开发第一个大模型应用
背景 前段时间看到Spring推出了SpringAI,可以方便快速的接入ChatGPT等国外的大模型,现在阿里巴巴也紧追脚步推出了Spring Cloud Alibaba AI,Spring Cloud Alibaba AI 目前基于 Spring AI 0.8.1 版本 API 完成通义系列大模型的接入。通义接入…...
`THREE.PointsMaterial` 是 Three.js 中用于创建粒子系统材质的类。它允许你设置粒子系统的外观属性,比如颜色、大小和透明度。
demo案例 THREE.PointsMaterial 是 Three.js 中用于创建粒子系统材质的类。它允许你设置粒子系统的外观属性,比如颜色、大小和透明度。下面是对其构造函数的参数、属性和方法的详细讲解。 构造函数 const material new THREE.PointsMaterial(parameters);参数&am…...
Android-Android Studio-FAQ
1 需求 2 接口 3 Android Studio xml布局代码补全功能失效问题 最终解决方案就是尝试修改compileSdk 为不同SDK版本来解决问题,将原本34修改为32测试会发现xml代码补全功能有效了! 参考资料 Android Studio xml布局代码补全功能失效问题_android studi…...
架构师指南:现代 Datalake 参考架构
这篇文章的缩写版本于 2024 年 3 月 26 日出现在 The New Stack 上。 旨在最大化其数据资产的企业正在采用可扩展、灵活和统一的数据存储和分析方法。这一趋势是由企业架构师推动的,他们的任务是制定符合不断变化的业务需求的基础设施。现代数据湖体系结构通过将数…...
通讯协议大全(UART,RS485,SPI,IIC)
参考自: 常见的通讯协议总结(USART、IIC、SPI、485、CAN)-CSDN博客 UART那么好用,为什么单片机还需要I2C和SPI?_哔哩哔哩_bilibili 5分钟看懂!串口RS232 RS485最本质的区别!_哔哩哔哩_bilibili 喜欢几位…...
基于EXCEL数据表格创建省份专题地图
1 数据源 随着西藏于5月1日发布2022年一季度经济运行情况,31省份一季度GDP数据已全部出炉。 总量方面,粤苏鲁稳居前三;增速方面,23省份高于“全国线”,新疆表现最佳,增速达到7.0%。 表格表现数据不够直观…...
基于java+springboot+vue实现的电商应用系统(文末源码+Lw)241
摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本电商应用系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息&a…...
好文!12个策略解决 Kafka 数据丢失问题
哥们儿!有遇到Kafka数据丢失问题的问题吗,你是如何解决的?今天的文章,V哥来详细解释一下,整理了12种解决策略,希望可以帮助你解决项目中的问题:以下是一些常见的解决方案和最佳实践。 生产者确认…...
Android 第三方框架:网络:OkHttp:源码分析:拦截器
文章目录 涉及到的设计模式 责任链模式:ArrayList策略模式:Interceptor和XXXInterceptor源码分析API总结涉及到的设计模式 责任链模式:ArrayList ArrayList 用ArrayList作为保存顺序的数据结构 把系统提供的各种Interceptor和自定义的Interceptor放入ArrayList中 RealI…...
FlowUs AI的使用教程和使用体验
FlowUs AI 使用教程 FlowUs AI特点使其成为提升个人和团队生产力的有力工具,无论是在学术研究、内容创作、技术开发还是日常办公中都能发挥重要作用。现在来看看如何使用FlowUs AI吧! 注册与登录:首先,确保您已经注册并登录FlowU…...
SwiftUI 6.0(iOS 18)ScrollView 全新的滚动位置(ScrollPosition)揭秘
概览 在只有方寸之间大小的手持设备上要想体面的向用户展示海量信息,滚动视图(ScrollView)无疑是绝佳的“东牀之选”。 在 SwiftUI 历史的长河中,总觉得苹果对于 ScrollView 视图功能的升级是在“挤牙膏”。这不,在本…...
阿贝云免费虚拟主机和免费云服务器评测
阿贝云是一家提供免费虚拟主机和免费云服务器的服务商,为用户提供了一个便捷的搭建网站和应用的平台。他们的服务受到了很多用户的好评。用户可以轻松地在阿贝云上创建自己的网站,并享受免费的虚拟主机和云服务器。通过阿贝云的服务,用户可以…...
不懂就问,开通小程序地理位置接口有那么难吗?
小程序地理位置接口有什么功能? 若提审后被驳回,理由是“当前提审小程序代码包中地理位置相关接口( chooseAddress、getLocation )暂未开通,建议完成接口开通后或移除接口相关内容后再进行后续版本提审”,那么遇到这种情况&#x…...
Python 全栈系列256 异步任务与队列消息控制(填坑)
说明 每个创新都会伴随着一系列的改变。 在使用celery进行异步任务后,产生的一个问题恰好也是因为异步产生的。 内容 1 问题描述 我有一个队列 stream1, 对应的worker1需要周期性的获取数据,对输入的数据进行模式识别后分流。worker1我设施为10秒运行…...
从零开始的Ollama指南:部署私域大模型
大模型相关目录 大模型,包括部署微调prompt/Agent应用开发、知识库增强、数据库增强、知识图谱增强、自然语言处理、多模态等大模型应用开发内容 从0起步,扬帆起航。 大模型应用向开发路径:AI代理工作流大模型应用开发实用开源项目汇总大模…...
C++类和对象总结
目录 总结 一、引言 二、类的定义 三、对象的创建与初始化 四、访问控制 五、封装 六、继承 七、多态 八、其他特性 九、总结 C类的定义 C对象的创建和初始化 C类的访问控制 总结 一、引言 C是一种面向对象的编程语言,其核心概念是类和对象。类是对现…...
基于PHP的民宿管理系统
有需要请加文章底部Q哦 可远程调试 基于PHP的民宿管理系统 一 介绍 此民宿管理系统基于原生PHP开发,数据库mysql,前端jquery.js和echarts.js。系统角色分为用户和管理员。用户可以在线浏览和预订民宿,管理员登录后台进行相关管理等。(在系统…...
ROS中C++、Python完整的目录结构
文章目录 在ROS中,一个典型的C软件包目录结构通常包括以下几个主要目录: include:该目录包含C头文件(.hpp或者.h文件),用于声明类、函数、变量等。通常,这些头文件定义了ROS节点、消息类型、服务…...
Boosting原理代码实现
1.提升方法是将弱学习算法提升为强学习算法的统计学习方法。在分类学习中,提升方法通过反复修改训练数据的权值分布,构建一系列基本分类器(弱分类器),并将这些基本分类器线性组合,构成一个强分类…...
从 JetBrains 全家桶用户视角,聊聊 DataGrip 那些被低估的『协同』技巧:共享查询、布局同步与团队规范
从 JetBrains 全家桶用户视角,聊聊 DataGrip 那些被低估的『协同』技巧:共享查询、布局同步与团队规范 在团队开发环境中,数据库操作往往被视为个人技能而非团队资产。当开发者频繁切换于 IntelliJ IDEA、PyCharm 和 DataGrip 之间时…...
AI写专著必备攻略:掌握这些技巧,用AI 3天完成20万字专著撰写
学术专著在写作时需要严谨的态度,而这种严谨性则依赖于大量的资料和数据支持。收集资料和整合数据恰恰是写作过程中最为繁琐且耗时的步骤。研究者需要广泛查找国内外的前沿文献,这不仅要求文献的权威性和相关性,还需追溯到原始来源࿰…...
深入解析ACP Bridge:构建高效微服务通信与数据同步的协议转换桥梁
1. 项目概述与核心价值最近在折腾一个跨平台数据同步的项目,遇到了一个挺有意思的组件——allvegetable/acp-bridge。乍一看这个名字,可能会有点摸不着头脑,acp是什么?bridge又在这里扮演什么角色?实际上,这…...
从NeoPixel到CircuitPython:打造智能LED眼镜的完整硬件与软件实践
1. 项目概述 如果你对可穿戴电子设备、酷炫的LED光效以及用代码创造物理交互感兴趣,那么这个项目绝对能让你兴奋起来。今天要分享的,是如何亲手制作一副灵感来源于电子音乐人REZZ标志性风格的NeoPixel LED眼镜。这不仅仅是一个简单的焊接和组装教程&…...
科技赋能林草防火,合规筑牢生态屏障—— 杭兴智能 XHJK‑5000 / HXJK‑6000 系列智慧宣传杆适配 LY/T 2798‑2025 标准实践
森林草原是我国重要的生态资源,守护林草安全、防范火灾风险,是生态文明建设的关键一环。随着《森林草原防灭火条例》深入实施与林业行业标准化建设持续推进,传统人工巡护、静态标语、零散警示等方式,已难以满足新时期 “预防为主、…...
【NotebookLM林业科研提效指南】:3大AI笔记工作流重构传统林学研究范式
更多请点击: https://codechina.net 第一章:NotebookLM林业科学研究 NotebookLM 是 Google 推出的基于 AI 的研究协作者工具,专为文献理解与知识整合设计。在林业科学研究中,它可高效处理林学专著、野外调查报告、遥感解译文档、…...
从八皇后到N皇后:深度优先搜索(DFS)的经典实战与优化技巧
从八皇后到N皇后:深度优先搜索(DFS)的经典实战与优化技巧 在国际象棋的64格棋盘上放置8个互不攻击的皇后,这个看似简单的谜题背后隐藏着组合数学的深邃奥秘。当我们将问题扩展到NN棋盘上的N皇后问题时,它便成为了检验算法效率的绝佳试金石。本…...
光子量子计算编译优化技术与自适应框架设计
1. 光子量子计算编译技术概述光子量子计算作为量子计算的重要实现路径之一,其独特的室温运行特性和优异的光子传输性能使其在分布式量子计算领域具有天然优势。在测量基量子计算(MBQC)范式中,量子计算过程被转化为对特定纠缠态&am…...
告别无声直播!OBS实时字幕插件终极指南:5分钟让直播无障碍
告别无声直播!OBS实时字幕插件终极指南:5分钟让直播无障碍 【免费下载链接】OBS-captions-plugin Closed Captioning OBS plugin using Google Speech Recognition 项目地址: https://gitcode.com/gh_mirrors/ob/OBS-captions-plugin 还在为直播观…...
AI测试-如何选择AI测试工具
在 AI 编程席卷开发圈的 2026 年,面对琳琅满目的工具,测试同学最常问的就是:Augment、Cursor、Trae、Claude Code、Codex 到底该怎么选? 这五款工具虽同为 AI 编程助手,但产品定位、技术路线和适用场景天差地别。本文…...
