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

计算机网络-第5章 运输层(1)

主要内容:进程之间的通信与端口、UDP协议、TCP协议、可靠传输原理(停止等待协议、ARQ协议)、TCP报文首部、TCP三大题:滑动窗口、流量控制、拥塞控制机制

5.1 运输层协议概述

运输层向它上面的应用层提供通信服务,真正通信的实体为主机中的进程,端点非主机而是进程。端到端的通信为应用进程之间的通信。

运输层提供应用进程间的逻辑通信,网络层提供主机间的逻辑通信。

运输层的两种协议:无连接的用户数据报协议UDP、面向连接的传输控制协议TCP;

通信时传送的数据单位叫做运输协议数据单元TPDU;

采用UDP和TCP的各种应用及应用层协议:

单个计算机的进程用进程标识符标志。互联网使用的计算机操作系统种类很多,使用不同标识符,该方法不能用于标志运行在应用层的应用进程。通过在运输层使用端口协议号(简称端口),用于识别进程。

协议层间的抽象协议端口是软件端口,为应用层各种协议进程与运输实体进行层间交互的一种地址,硬件端口是不同硬件设备进行交互的接口。16位端口号用来标志一个端口。

服务器使用的端口号分为熟知端口号、登记端口号(登记后才能用)。

客户端口号为短暂端口号。

名词解释:

运输层的复用和分用:复用为不同进程使用同一运输层协议传送数据,分用为接收方基于端口把数据正确交付目的进程。

5.2 用户数据报协议UDP

UDP在IP数据报上增加了很少一点功能,复用、分用、差错检测等。

主要特点:1无连接(减少了开销和发送数据前的时延);2尽最大努力交付;3面向报文(对应用层交下来的报文,不合并也不拆分,保留这些报文的边界);4UDP没有拥塞控制;5支持一对一,一对多,多对一,多对多交互通信;6UDP首部开销小只有8个字节,TCP20个字节。

UDP首部格式:

UDP基于端口的分用:

通过伪首部计算检验和,IP数据报只检验首部,UDP检验首部和数据部分。

5.3 传输控制协议TCP

TCP主要特点:1.面向连接的运输层协议;2.每条TCP连接只有两个端点,只能点对点通信;3.提供可靠交付;4.提供全双工通信(通过缓存实现)。5.面向字节流,流指的是流入到进程或进程流出的字节序列。把数据看作一连串的无结构的字节流,而非数据块。

TCP根据对方给出的窗口值和当前网络拥塞程度决定报文段应包含多少个字节。如果缓存的数据太长,划分短一些再传送。如果只有一个字节,积累足够多后再构成报文段发送出去。

TCP连接的端点叫做套接字(socket)或插口;端口号拼接到IP地址构成套接字。

每一条TCP连接唯一地被通信两端的两个端点(即两个套接字)所确定。

应用程序访问连网协议的应用编程接口API,也称为socket,socket api。面向网络的api,restful api是基于http的api。

5.4 可靠传输工作原理

理想传输条件特点:1.传输信道不产生差错;2不管发送方以多快速度发数据,接收方总来得及处理。

“停止等待”:每发送完一个分组就停止发送,等阿迪对方确认。收到确认后再发送下一个分组。

有差错情况会在发送完一个分组后设定一个超时计时器,重传前面发送过的分组,为超时重传。

超时重传三点注意事项:1暂时保留已发送的分组副本;2分组和确认分组都必须进行编号;3.重传时间比数据在分组传输的平均往返时间更长一些。

确认丢失和确认迟到:

通过确认和重传机制,就可以在不可靠的传输网络上实现可靠通信。自动重传请求ARQ.

信道利用率:

采用流水线传输可获得很高的信道利用率。

连续ARQ协议:发送窗口(发送窗口内的5个分组都可以连续发出去,无需确认),接收方累计确认,对按序到达的最后一个分组发送确认。

5.5 TCP报文段首部格式

TCP面向字节流,传送的数据单元为报文段,该报文段分为首部和数据两部分。

相关文章:

计算机网络-第5章 运输层(1)

主要内容:进程之间的通信与端口、UDP协议、TCP协议、可靠传输原理(停止等待协议、ARQ协议)、TCP报文首部、TCP三大题:滑动窗口、流量控制、拥塞控制机制 5.1 运输层协议概述 运输层向它上面的应用层提供通信服务,真正…...

性能优化-卡牌项目渲染优化

优化的方向 CPU 影响帧率 GPU 影响帧率 内存 超了会崩 显存 显存超了画面会异常,甚至可能导致游戏崩溃 带宽 影响耗电 分辨率 设备性能不行又要求流畅,降低目标渲染分辨率,立竿见影,但是会牺牲画质 场景 1 使用烘焙…...

STM32FreeRTOS任务通知(STM32cube高效开发)

文章目录 一、任务通知(一)任务通知概述1、任务通知可模拟队列和信号量2、任务通知优势和局限性 (二) 任务通知函数1、xTaskNotify()发送通知值不返回先前通知值的函数2、xTaskNotifyFromISR()发送通知函数ISR版本3、x…...

基于element-plus的Dialog选择控件

翻看之前工程师写的vue2的代码,很多都是复制、粘贴,也真是搞不懂,明明可以写一个控件,不就可以重复使用。很多前端总喜欢element搞一下,ant-design也搞一下,有啥意义,控件也不是自己写的&#x…...

手把手教使用静默 搭建Oracle 19c 一主一备ADG集群

一、环境搭建 主机IPora19192.168.134.239ora19std192.168.134.240 1.配置yum源 1.配置网络yum源 1.删除redhat7.0系统自带的yum软件包; rpm -qa|grep yum >oldyum.pkg 备份原信息rpm -qa|grep yum|xargs rpm -e --nodeps 不检查依赖,直接删除…...

使用协程库httpx并发请求

httpx和aiohttp都是比较常用的异步请求库,当然requests多线程或requestsgevent也是不错的选择。 一个使用httpx进行并发请求的脚本如下: import functools import sys import timeimport anyio import httpxasync def fetch(client, results, index) -…...

js的同步异步

JavaScript(JS)是一门单线程的编程语言,这意味着它一次只能处理一个任务。然而,JS 支持同步和异步操作。 同步操作是指代码按照顺序执行,每个操作必须在前一个操作完成后才能进行。这意味着当一个操作在执行时&#x…...

C# MG.CamCtrl 工业相机库(开源) 海康 大恒

C# MG.CamCtrl 相机库(开源) 海康 大恒 介绍工厂模式创建实例选取对应SN号的相机,初始化启动相机取图注销相机参数设置/获取接口 介绍 c# 相机库,含海康、大恒品牌2D相机的常用功能。 底层采用回调信号量模式封装 ,最…...

【Redis】redis的基本使用

📝个人主页:五敷有你 🔥系列专栏:Redis ⛺️稳中求进,晒太阳 Redis的概述 为什么要有redis? redis是数据库,mysql也是数据库,redis做缓存的意义就是为了减轻数据库压力 数据库为什么…...

植物病害识别:YOLO水稻病害识别数据集(3000多张,3个类别,yolo标注)

YOLO水稻病害识别数据集,包含细菌性枯萎病,水稻瘟疫,褐斑病3个常见病害类别,共3000多张图像,yolo标注完整,可直接训练。 适用于CV项目,毕设,科研,实验等 需要此数据集或…...

Java实现Tron(波场)区块链的开发实践(三)波场链水龙头、WEB3测试实战

上一节我们具体讲到Java实现Tron波场链的逻辑代码实现。 这一节我们通过部署和开发好的代码,针对测试链进行自测开发,准备测试环境。 1. 创建离线地址 首先我们需要一个离线地址,我们不需要在线进行创建,直接可以通过第一节的离…...

010-$nextTick

$nextTick 1、问题2、$nextTick3、应用场景 1、问题 Vue 实现响应式,在 data 更新后,一定时间内,没有继续操作DOM,然后会触发浏览器渲染引擎去更新DOM,更新DOM也是需要时间的,所以 data 更新引起的 DOM更新…...

[IAGC] Kafka消费者组的负载均衡策略

在Apache Kafka中,负载均衡是通过将主题的每个分区分配给消费者组中的一个消费者来实现的。Kafka的负载均衡算法会尽可能平均地将分区分配给每个消费者。 文章目录 分配策略Kafka的重新平衡扩展性参考资源 分配策略 在Kafka中,有两种内置的分区分配策略…...

2024年会声会影 迎接来了七大新功能

我喜欢Corel VideoStudio 会声会影2024旗舰版,因为它使用起来很有趣。它很容易使用,但仍然给你很多功能和力量。VideoStudio让我与世界分享我的想法!“这个产品的功能非常多,我几乎没有触及它的表面,我可以做大量的编辑…...

AIGC、3D模型、轻量化、格式转换、可视化、数字孪生引擎等(老子云三维模型可视化优化服务平台)

老子云概述 老子云3D可视化快速开发平台,集云压缩、云烘焙、云存储云展示于一体,使3D模型资源自动输出至移动端PC端、Web端,能在多设备、全平台进行展示和交互,是全球领先、自主可控的自动化3D云引擎。 平台架构 平台特性 基于 H…...

JMM(Java Memory Model)内存模型

Java内存模型,规范了计算机内存与java虚拟机之间的协调工作,即规定了 将java 虚拟机中的变量存储到内存中和从内从中取出来的内存细节。 Java内存模型中规定了所有的变量都存储在内存中,每条线程还有自己的工作内存,线程对变量的…...

.NET 简介:跨平台、开源、高性能的开发平台

.NET 简介 .NET 是微软开发的一个免费、开源、跨平台的开发人员平台,用于构建各种类型的应用程序。它可以运行使用多种语言编写的程序,其中 C# 是最常用的语言。.NET 依赖于许多大规模应用在生产中使用的高性能运行时。 .NET 平台具有以下特点&#xf…...

m序列生成器

function [m] mserial_generator(tap_set) % m序列产生器 % 输出为m序列,未进行极性变换。 L 2^(length(tap_set)-1)-1; x [zeros(1,(length(tap_set)-2)) 1]; for i 1:1:Lm(i)x(end);for j 1:1:length(tap_set)-1sum_vector(j)tap_set(j1)*x(j);endsum_x mod…...

go的数据类型看这一篇就够了

目录 一:类型分类 二:介绍 一:类型分类 go的数据类型包含11种,可以分为以下四类。 1:基础类型:布尔,数字和字符串: 2:复合类型:数组和结构体 3:引用类型: 指针,channel通道,切片,map字典,函数 4:接口类型 二:介绍 1:布尔 一个布尔类型的值只有两种:tr…...

【机器学习300问】28、什么是决策树?

〇、两个预测任务 (1)任务一:银行预测偿还能力 当前,某银行正致力于发掘潜在的放贷用户。他们掌握了每位用户的三个关键特征:房产状况、婚姻状况以及年收入。此外,银行还拥有过往这些用户的债务偿还能力的…...

ArcGIS JS 基础教程(1):地图初始化(含AMD/ESM两种引入方式)

ArcGIS JS 系列基础教程(100个项目常用热门功能) 一、地图基础操作 1. ArcGIS JS 基础教程(1):地图初始化(含AMD/ESM两种引入方式) 功能介绍:ArcGIS JS 开发的基础,实…...

012、AI内容生成:AIGC的变现模式与版权迷思

012、AI内容生成:AIGC的变现模式与版权迷思 从一行报错开始 昨晚调试Stable Diffusion的LoRA模型,控制台突然抛出一行错误: RuntimeError: CUDA out of memory. Tried to allocate 4.12 GiB...这个场景太熟悉了——就像三年前调试TensorFlow…...

OpenClaw模型热切换:Qwen3.5-9B-AWQ-4bit与其他模型动态调用

OpenClaw模型热切换:Qwen3.5-9B-AWQ-4bit与其他模型动态调用 1. 为什么需要模型热切换 去年冬天,我正用OpenClaw处理一批产品截图的分析任务。当时只配置了Qwen3.5-9B-AWQ-4bit这一个模型,结果发现——简单图片描述消耗了过多算力&#xff…...

在超大数据集下 DuckDB 与 MySQL 查询速度对比吨

一、什么是urllib3? urllib3 是一个用于处理 HTTP 请求和连接池的强大、用户友好的 Python 库。 它可以帮助你: 发送各种 HTTP 请求(GET, POST, PUT, DELETE等)。 管理连接池,提高网络请求效率。 处理重试和重定向。 支…...

不止于登录:用钉钉扫码打通Vue3后台与企微/飞书(OAuth2.0统一方案)

构建企业级统一身份认证中台:Vue3多平台扫码登录架构设计 当企业同时使用钉钉、企业微信和飞书作为办公平台时,如何为Vue3后台系统设计一套统一的扫码登录方案?这个问题困扰着许多中大型企业的技术团队。我曾参与过某跨国企业的身份认证系统重…...

从Sora2到Veo-3.1:2025年AI视频生成,我们离‘电影级’还有多远?

2025年AI视频生成技术实战测评:Sora2、Veo-3.1与Vidu Q2如何重塑创作流程 当清晨的第一缕阳光透过工作室的玻璃窗,视频创作者小林已经坐在电脑前开始了一天的工作。与三年前不同的是,她的桌面上不再堆满拍摄设备,取而代之的是三块…...

Ubuntu 20.04 + RTX 3050:手把手教你用TensorRT 10.8和C++部署YOLOv11(保姆级避坑指南)

Ubuntu 20.04 RTX 3050:手把手教你用TensorRT 10.8和C部署YOLOv11(保姆级避坑指南) 在计算机视觉领域,YOLO系列模型因其卓越的实时检测性能而广受欢迎。本文将带你从零开始,在Ubuntu 20.04系统上,利用RTX…...

GD32F103C8T6上跑FreeRTOS:保姆级移植教程,从源码下载到LED闪烁测试

GD32F103C8T6移植FreeRTOS实战指南:从零构建实时操作系统 第一次拿到GD32开发板时,我盯着这块"国产STM32"看了半天——引脚兼容、外设相似,但真要把成熟的FreeRTOS移植上去,还是遇到了不少坑。本文将用最接地气的方式&a…...

YApi本地部署后,接口测试插件cross-request装不上?手把手教你解决Chrome扩展加载难题

YApi本地部署后cross-request插件安装难题的终极解决方案 当你终于完成YApi的本地部署,准备大展拳脚进行接口测试时,却发现cross-request插件怎么都装不上——这可能是最令人抓狂的时刻之一。别担心,这绝不是你一个人的问题。本文将深入剖析这…...

从暴力搜索到理论最优:一道任务调度问题的完整算法演进历程

引言在算法竞赛的世界里,每一道题都像是一个等待解开的谜题。今天,我将与大家分享一道关于任务调度问题的完整解题心路历程。这个故事不仅记录了我从暴力搜索到最优算法的探索过程,更展现了在面对复杂问题时,如何通过逐步优化、深…...