运输层---概述
目录
- 运输层主要内容
- 一.概述和传输层服务
- 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 生态系统和强大的社区支持。适用于大型…...
【Swoole微服务适配黄金法则】:基于127个真实项目数据验证的8项兼容性阈值指标(含QPS衰减预警公式)
第一章:Swoole微服务适配黄金法则的提出背景与核心价值随着 PHP 生态在高并发、低延迟场景中的持续演进,传统 FPM 架构在微服务化进程中暴露出连接开销大、进程模型僵化、协程支持缺失等系统性瓶颈。Swoole 作为 PHP 原生高性能网络引擎,凭借…...
STM32 Modbus通信学习笔记——通信流程
文章目录前言Modbus协议硬件连接基于RS485的Modbus通信Modbus拓扑结构Modbus通信流程Modbus主机帧结构传输方式RTU传输方式ASC传输方式数据帧格式ASCII 帧RTU 帧设备地址(找谁)功能码(干什么)校验CRC-16(循环冗余错误校…...
Carsim与Simulink联合仿真模型——AEB的cpar文件、simulink模型文件及...
Carsim与Simulink联合仿真模型——AEB 提供cpar文件,simulink模型文件,模型搭建过程文档在汽车开发领域,安全系统始终占据着举足轻重的地位。其中,主动安全辅助系统(AEB)作为现代汽车的安全核心,…...
编译原理实战:从NFA到最小化DFA的完整算法实现与优化
1. 理解NFA与DFA的基本概念 在编译原理中,**非确定有限自动机(NFA)和确定有限自动机(DFA)**是两种重要的计算模型。它们的主要区别在于状态转移的确定性:NFA允许一个状态在同一个输入符号下转移到多个状态,甚至可以通过ε转移(空转…...
AppFlowy 终极安装配置完整教程:快速搭建个人AI知识库
AppFlowy 终极安装配置完整教程:快速搭建个人AI知识库 【免费下载链接】AppFlowy Bring projects, wikis, and teams together with AI. AppFlowy is the AI collaborative workspace where you achieve more without losing control of your data. The leading ope…...
5个实战技巧:快速掌握新一代AI组件开发
5个实战技巧:快速掌握新一代AI组件开发 【免费下载链接】Element-Plus-X Enterprise-level AI component library front-end solution 🤖 项目地址: https://gitcode.com/gh_mirrors/el/Element-Plus-X Element-Plus-X是企业级AI组件库前端解决方…...
终极指南:如何快速安装Koikatu HF Patch完整增强补丁
终极指南:如何快速安装Koikatu HF Patch完整增强补丁 【免费下载链接】KK-HF_Patch Automatically translate, uncensor and update Koikatu! and Koikatsu Party! 项目地址: https://gitcode.com/gh_mirrors/kk/KK-HF_Patch 还在为Koikatu和Koikatsu Party游…...
SiameseUIE效果实测:中文OCR后文本(含错别字)仍保持82%+抽取准确率
SiameseUIE效果实测:中文OCR后文本(含错别字)仍保持82%抽取准确率 1. 引言:当AI遇到不完美的中文文本 你有没有遇到过这样的情况:从扫描文档或图片中提取的中文文字,总是带着各种错别字和格式问题&#x…...
为什么要做 GeoPipeAgent贾
指令替换 项目需求:将加法指令替换为减法 项目目录如下 /MyProject ├── CMakeLists.txt # CMake 配置文件 ├── build/ #构建目录 │ └── test.c #测试编译代码 └── mypass2.cpp # pass 项目代码 一,测试代码示例 test.c // test.c #includ…...
Obsidian PDF++:构建PDF与知识网络的无缝连接
Obsidian PDF:构建PDF与知识网络的无缝连接 【免费下载链接】obsidian-pdf-plus PDF: the most Obsidian-native PDF annotation & viewing tool ever. Comes with optional Vim keybindings. 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-pdf-plus…...
