运输层---概述
目录
- 运输层主要内容
- 一.概述和传输层服务
- 1.1 概述
- 1.2 传输服务和协议
- 1.3 传输层 vs. 网络层
- 1.4 Internet传输层协议
- 二. 多路复用与多路分解(解复用)
- 2.1 概述
- 2.2 无连接与面向连接的多路分解(解复用)
- 2.3面向连接的多路复用
- *2.4 Web服务器与TCP
运输层主要内容
1. 传输层工作原理:
- 多路复用与多路分解
- 可靠数据传输
- 流量控制
- 拥塞控制
2. Intrnet传输层协议:
- UDP:无连接传输
- TCP:面向连接的可靠传输
- TCP的拥塞控制
一.概述和传输层服务
1.1 概述

-
1. 运输层:将从应用程序接收到的报文分成多个小块,各个小块均加上运输层首部以生成运输层报文段,即转换成运输层分组。(运输层分组也称为运输层报文段)
-
2. 应用程序数据传输—图示1:
- 发送端:
- 图示2
- 中间传输:
网络层将运输层的报文段封装为数据包。
中间路由器作用于网络层字段,不会检查运输层报文段的字段。
- 图示3
- 接收端:
1.2 传输服务和协议
- 1. 运输层协议作用:为不同主机应用进程提供了逻辑通信功能。
计算机网络中的逻辑通信:在这种方式下,发送方不同应用进程可以使用同一个运输层协议来传送数据,而接收方的运输层能够在剥去报文的首部后将数据正确交付到目的应用程序。
逻辑通信的实现需要运输层提供端到端的逻辑连接,并且进行差错检测等操作。在计算机网络中,虽然两个运输层之间并没有一条水平方向的物理连接,但是它们之间的通信却好像是沿水平方向传送数据。
- 2. 运输层协议实现位置:
端系统之中。 - 3.运输层协议:TCP和UDP协议。
1.3 传输层 vs. 网络层

以下面图例作类比:
其中”邮政服务“左右两侧分别为两个家庭的所有成员,代表两个主机(端系统)
- 收信人Bob和Ann:运输层协议
- 邮政服务:代表网络层协议
- 信封内容(字符):应用层报文
- 进程:两家人的亲戚关系。
1.4 Internet传输层协议
-
UDP(用户数据报协议):不可靠,无连接服务。
-
TCP(传输控制协议):可靠,面向连接服务。

- 面向连接的服务和面向无连接的服务
面向无连接的服务
指通信双方不需要事先建立一条通信线路,而是把每个带有目的地址的包(报文分组)送到线路上,由系统自主选定路线进行传输面向连接的服务
通信双方在通信时,要事先建立一条通信线路,其过程有建立连接、使用连接和释放连接三个过程- 有应答与无应答的服务
有应答服务
指接收方在收到数据后向发送方给出相应的应答,该应答由传输系统内部自动实现,而不是由用户实现。
所发送的应答可以是肯定应答,也可以是否定应答,通常在接收到的数据有错误时发送否定应答。
无应答服务
指接收方收到发送的数据后,不向发送方反馈任何信息,该服务是不透明的,即不是由用户实现,
而是由通信系统自动实现。因此,该服务不能保证可靠性- 可靠与不可靠的服务
可靠服务
指网络具有纠错、检错机制,能保证数据正确、可靠地传送到目的地。不可靠服务
指网络只是尽量正确、可靠地传送,但不能保证数据正确、可靠地传送到目的地。
如文件传输服务就是一种有应答服务,客户端收到服务器发送的页面文件后不给出应答,属于不可靠服务
二. 多路复用与多路分解(解复用)
2.1 概述
- 前置:
网络层IP协议(国际协议):是一种尽力而为的交付服务(Best-Effort Delivery Service),基于每台主机有一个IP地址提供不可靠服务。 - 定义:
多路复用:将运输层报文段中数据交付到正确套接字的工作。
多路分解(解复用):包括从源主机不同套接字收集数据块,并封装上首部信息(用于在以后分解),再将报文段传递到网络层的所有工作。

- 多路复用的要求:
-
- 套接字有唯一标识符
-
- 每个报文段有 特殊字段指示交付到的套接字。
-
运输层报文段中的源与目的端口字段:

- 流程图示:

2.2 无连接与面向连接的多路分解(解复用)
- 1. 无连接的多路分解(解复用)


2.面向连接的多路分解(解复用)

2.3面向连接的多路复用

*2.4 Web服务器与TCP
- 前置
连接套接字与进程之间并不是一 一对应关系。
如今的高性能web服务器通常只使用一个进程,但是为每一个新的客户连接创建一个具有新连接套接字的新线程(线程可被看作一个轻量级的的子进程)。对于这样一台服务器,任意给定时间内都有可能有(具有不同标识的)许多连接套接字连接到相同的进程。
-
使用持续HTTP:客户与服务器之间经过同一个服务器套接字交换HTTP报文。
-
使用非持续HTTP:每一对请求/响应都创建一个新的TCP连接并随后关闭(每次创建关闭不同的套接字)。频繁创建关闭套接字会影响web服务器的性能。
-
多线程Web Server:

相关文章:
运输层---概述
目录 运输层主要内容一.概述和传输层服务1.1 概述1.2 传输服务和协议1.3 传输层 vs. 网络层1.4 Internet传输层协议 二. 多路复用与多路分解(解复用)2.1 概述2.2 无连接与面向连接的多路分解(解复用)2.3面向连接的多路复用*2.4 We…...
高速公路巡检无人机,为何成为公路巡检的主流工具
随着无人机技术的不断发展,无人机越来越多地应用于各个领域。其中,在高速公路领域,高速公路巡检无人机已成为公路巡检的得力助手。高速公路巡检无人机之所以能够成为公路巡检中的主流工具,主要是因为其具备以下三大特性。 一、高速…...
仓库管理系统有哪些功能,如何对仓库进行有效管理
阅读本文,您可以了解:1、仓库管理系统有哪些功能;2、如何对仓库进行有效管理。 仓库是制造业的开端,原材料的领料开始。企业的仓库管理是涉及企业生产、企业资金流和企业的经营风险的关键环节。在众多的工业企业、制造型企业、贸…...
Java 比Automic更高效的累加器
1、 java常见的原子类 类 Atomiclnteger、AtomicIntegerArray、AtomicIntegerFieldUpdater、AtomicLongArray、 AtomicLongFieldUpdater、AtomicReference、AtomicReferenceArray 和 AtomicReference- FieldUpdater 常见的原子类使用方法 使用 AtomicReference 来创建一个原…...
antDv table组件滚动截图方法的实现
在开发中经常遇到table内容过多产生滚动的场景,正常情况下不产生滚动进行截图就很好实现,一旦产生滚动就会变得有点棘手。 下面分两种场景阐述解决的方法过程 场景一:右侧不固定列的情况 场景二:右侧固定列的情况 场景一 打开…...
JavaSE【抽象类和接口】(抽象类、接口、实现多个接口、接口的继承)
一、抽象类 在 Java 中,一个类如果被 abstract 修饰称为抽象类,抽象类中被 abstract 修饰的方法称为抽象方法,抽象方法不用 给出具体的实现体。 1.语法 // 抽象类:被 abstract 修饰的类 public abstract class Shape { …...
微信小程序如何跳转H5页面
1、登录微信公众后台,进入【开发->开发管理->业务域名】,点击修改。 2、首先请下载校验文件,并将文件放置在域名根目录下。 我是把文件放在nginx主机的data目录下,然后通过增加nginx.config配置,重启nginx后可…...
C++(20):bit_cast
C++20之前如果想对不同的指针之间做类型转换需要通过reinterpret_cast,对于整数与指针之前的转换也需要通过reinterpret_cast: C++:reinterpret_cast_c++ reparant_cast_风静如云的博客-CSDN博客 但是reinterpret_cast的缺点是不同的编译环境下,无法包装转型的安全一致。 …...
STM32 低功耗-停止模式
STM32 停止模式 文章目录 STM32 停止模式第1章 低功耗模式简介第2章 停止模式简介2.1 进入停止模式2.1 退出停止模式 第3章 停止模式程序部分总结 第1章 低功耗模式简介 在 STM32 的正常工作中,具有四种工作模式:运行、睡眠、停止以及待机模式。 在系统…...
Hutool中 常用的工具类和方法
文章目录 日期时间工具类 DateUtil日期时间对象-DateTime类型转换工具类 Convert字符串工具类 StrUtil数字处理工具类 NumberUtilJavaBean的工具类 BeanUtil集合操作的工具类 CollUtilMap操作工具类 MapUtil数组工具-ArrayUtil唯一ID工具-IdUtilIO工具类-IoUtil加密解密工具类 …...
K8s(健康检查+滚动更新+优雅停机+弹性伸缩+Prometheus监控+配置分离)
前言 快速配置请直接跳转至汇总配置 K8s SpringBoot实现零宕机发布:健康检查滚动更新优雅停机弹性伸缩Prometheus监控配置分离(镜像复用) 配置 健康检查 健康检查类型:就绪探针(readiness) 存活探针&am…...
Django学习记录:使用ORM操作MySQL数据库并完成数据的增删改查
Django学习记录:使用ORM操作MySQL数据库并完成数据的增删改查 数据库操作 MySQL数据库pymysql Django开发操作数据库更简单,内部提供了ORM框架。 安装第三方模块 pip install mysqlclientORM可以做的事: 1、创建、修改、删除数据库中的…...
React Hooks 中的 useEffect(副作用)
useEffect 是什么? useEffect 是一个 React Hook,它允许你将组件与外部系统同步 当我们在 React 中使用 useEffect 这个 Hook 时,实际上是在告诉 React 在特定情况下执行我们定义的副作用函数。这种副作用函数可以处理一些与组件渲染结果无关…...
[CKA]考试之持久化存储卷PersistentVolume
由于最新的CKA考试改版,不允许存储书签,本博客致力怎么一步步从官网把答案找到,如何修改把题做对,下面开始我们的 CKA之旅 题目为: Task 创建一个pv,名字为app-config,大小为2Gi,…...
基于LLM的SQL应用程序开发实战(一)
基于LLM的SQL应用程序开发实战(一) 16.1 SQL on LLMs应用程序初始化 本节主要从案例代码的角度切入,探索ChatGPT以及大模型,尤其是从生产环境的视角,来思考具体的最佳实践。本节主要跟大家谈的是,在LangChain这样一个框架下,我们使用GPT-3.5或者GPT-4大模型,同时使用第…...
如何批量实现多行合并后居中
思路: 1.先填充数据 2.数据分类统计制作格式 3.格式刷刷制作出的格式 1.填充数据 思路:选中,F5定位空值,,⬆(键盘上的上下左右哪里的上键),按住Ctrl然后按Enter。 2.数据分类统计…...
【深度学习_TensorFlow】手写数字识别
写在前面 到这里为止,我们已经学习完张量的常用操作方法,已具备实现大部分神经网络技术的基础储备了。这一章节我们将开启神经网络的学习,然而并不需要像学习前面那样了解大量的张量操作,而是将重点转向理解概念知识,…...
antv/l7地图,鼠标滚动,页面正常滑动-- 我们忽略的deltaY
背景 在官网项目中,需要使用一个地图,展示产品的分布区域及数量。希望的交互是,鼠标放上标点,tooltip展示地点和数量等信息。鼠标滚动,则页面随着滚动。但是鼠标事件是被地图代理了的,鼠标滚动意味着地图的…...
再续AM335x经典,米尔TI AM62x核心板上市,赋能新一代HMI
近十年来,AM335x芯片作为TI经典工业MPU产品,在工业处理器市场占据主流地位,其凭借GPMC高速并口、PRU协处理器等个性化硬件资源,在工业控制、能源电力、轨道交通、智慧医疗等领域广受用户欢迎。随着信息技术的快速发展,…...
springboot和Django哪一个做web服务器框架更好
目录 一、两者特点 二、各自优势 一、两者特点 编程语言: Spring Boot:使用 Java 编程语言。Django:使用 Python 编程语言。 生态系统和社区支持: Spring Boot:具有庞大的 Java 生态系统和强大的社区支持。适用于大型…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...
安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...
AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...
