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

计算机网络5:运输层

概述

进程间基于网络的通信

计算机网络中实际进行通信的真正实体,是位于通信两端主机中的进程。
如何为运行在不同主机上的应用进程提供直接的逻辑通信服务,就是运输层的主要任务。运输层协议又称为端到端协议
运输层向应用层实体屏蔽了下面网络核心的细节(例如网络拓扑、所采用的路由选择协议等),它使应用进程看见的就好像是在两个运输层实体之间有一条端到端的逻辑通信信道。
根据应用需求的不同,因特网的运输层为应用层提供了两种不同的运输层协议,即面向连接的TCP和无连接的UDP,这两种协议就是本章要讨论的主要内容。

TCP和UDP

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

端口号

注意:这里的“端口”并不是看得见、摸得着的物理端口,而是用来区分不同应用进程的标识符。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

UDP和TCP的对比

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

TCP

TCP的全部功能需要依靠其首部中的各字段来实现。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
保留占6比特,全0,以后使用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
标志位:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三报文握手

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四报文挥手

在这里插入图片描述
此时处于半关闭状态
在这里插入图片描述
在这里插入图片描述
否则:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

流量控制

TCP为应用程序提供了流量控制(Flow Control)机制,以解决因发送方发送数据太快而导致接收方来不及接收,造成接收方的接收缓存溢出的问题。

流量控制的基本方法:接收方根据自己的接收能力(接收缓存的可用空间大小)控制发送方的发送速率。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
TCP规定:即使接收窗口值为0,也必须接受零窗口探测报文段、确认报文段以及携带有紧急数据的报文段。
零窗口探测报文段也有重传计时器, 当重传计时器超时后,零窗口探测报文段会被重传。在这里插入图片描述

拥塞控制

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

慢开始+拥塞避免

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
“慢开始”是指一开始向网络注入的报文段少,而并不是指拥塞窗口cwnd的值增长速度慢。
“拥塞避免”也并非指完全能够避免拥塞,而是指在拥塞避免阶段将cwnd值控制为按线性规律增长,使网络比较不容易出现拥塞。

快重传和快恢复算法

“快重传”是指使发送方尽快(尽早)进行重传,而不是等重传计时器超时再重传。
在这里插入图片描述
对于个别丢失的报文段,发送方不会出现超时重传,也就不会误认为出现了拥塞而错误地把拥塞窗口cwnd的值减为1。实践证明,使用快重传可以使整个网络的吞吐量提高约20%。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这些都是在变更拥塞门限ssthresh,拥塞窗口cwnd,但真正发的是发送窗口,它还要考虑接收窗口的大小。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

可靠传输的实现

TCP的滑动窗口以字节为单位
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

超时重传时间的选择

在这里插入图片描述
往返时间RTT的测量是比较复杂的.
报文段每重传一次,就把RTO增大一些。典型的做法是将新RTO的值取为旧RTO的2倍。
报文段发生重传,就不采用RTT样本计算RTO,而是把RTO增大一些。典型的做法是将新RTO的值取为旧RTO的2倍。
在这里插入图片描述

选择确认

在之前介绍TCP的快重传和可靠传输时,TCP接收方只能对按序收到的数据中的最高序号给出确认。当发送方超时重传时,接收方之前已收到的未按序到达的数据也会被重传。
能否设法只传送缺少的数据而不重传已经正确到达、只是未按序到达的数据呢?
TCP可以使用选择确认(Selective ACK,SACK)[RFC 2018](建议标准)
在这里插入图片描述
SACK相关文档并没有指明发送方应当怎样响应SACK。因此大多数的TCP实现还是重传所有未被确认的数据块。

相关文章:

计算机网络5:运输层

概述 进程间基于网络的通信 计算机网络中实际进行通信的真正实体,是位于通信两端主机中的进程。 如何为运行在不同主机上的应用进程提供直接的逻辑通信服务,就是运输层的主要任务。运输层协议又称为端到端协议。 运输层向应用层实体屏蔽了下面网络核心…...

昂科烧录器支持HangShun航顺芯片的32位微控制器HK32F030C8T6

芯片烧录行业领导者-昂科技术近日发布最新的烧录软件更新及新增支持的芯片型号列表,其中HangShun航顺芯片的32位微控制器HK32F030C8T6已经被昂科的通用烧录平台AP8000所支持。 HK32F030C8T6使用ARM Cortex-M0内核,最高工作频率96 MHz,内置最…...

纯css星空动画

让大家实现一个这样的星空动画效果,大家会怎么做? js,不! 其实使用css就能写 我也不藏着掖着,源码直接放下面了 <script setup></script><template><div class"box"><div v-for"i in 5" :key"i" :class"layer…...

使用Apache Flink实现实时数据同步与清洗:MySQL和Oracle到目标MySQL的ETL流程

使用Apache Flink实现实时数据同步与清洗&#xff1a;MySQL和Oracle到目标MySQL的ETL流程 实现数据同步的ETL&#xff08;抽取、转换、加载&#xff09;过程通常涉及从源系统&#xff08;如数据库、消息队列或文件&#xff09;中抽取数据&#xff0c;进行必要的转换&#xff0…...

postman教程-22-Newman结合Jenkins执行自动化测试

上一小节我们学习了Postman Newman运行集合生成测试报告的方法&#xff0c;本小节我们讲解一下Postman Newman结合Jenkins执行自动化测试的方法。 在软件开发过程中&#xff0c;持续集成&#xff08;CI&#xff09;是一种实践&#xff0c;旨在通过自动化的测试和构建过程来频繁…...

uniapp实现tabBar功能常见的方法

在 UniApp 中实现 Tab 功能通常涉及到使用 <navigator> 组件结合 tabBar 配置&#xff0c;或者通过自定义的视图切换逻辑来实现。以下是两种常见的实现方式&#xff1a; 1. 使用 tabBar 配置 UniApp 支持在 pages.json 文件中配置 tabBar&#xff0c;以在应用的底部或顶…...

智慧在线医疗在线诊疗APP患者端+医生端音视频诊疗并开处方

智慧在线医疗&#xff1a;音视频诊疗新纪元 &#x1f310; 智慧医疗新篇章 随着科技的飞速发展&#xff0c;智慧医疗正逐步走进我们的生活。特别是在线医疗&#xff0c;凭借其便捷、高效的特点&#xff0c;已成为许多患者的首选。而其中的“智慧在线医疗患者端医生端音视频诊疗…...

攻防平台搭建与简易渗透工具箱编写

知识点&#xff1a;攻防平台搭建&#xff0c;虚拟机的网络模式详解&#xff0c;安全脚本编写 虚拟机的网络模式&#xff1a; 虚拟机&#xff08;VM&#xff09;的网络模式决定了虚拟机与宿主机以及外部网络之间的连接方式。不同的虚拟化平台&#xff08;如VMware, VirtualBox,…...

SQL EXISTS 关键字的使用与理解

SQL EXISTS 关键字的使用与理解 SQL&#xff08;Structured Query Language&#xff09;是一种用于管理关系数据库管理系统&#xff08;RDBMS&#xff09;的标准编程语言。在SQL中&#xff0c;EXISTS关键字是一个逻辑运算符&#xff0c;用于检查子查询中是否存在至少一行数据。…...

开源低代码平台,JeecgBoot v3.7.0 里程碑版本发布

项目介绍 JeecgBoot是一款企业级的低代码平台&#xff01;前后端分离架构 SpringBoot2.x&#xff0c;SpringCloud&#xff0c;Ant Design&Vue3&#xff0c;Mybatis-plus&#xff0c;Shiro&#xff0c;JWT 支持微服务。强大的代码生成器让前后端代码一键生成! JeecgBoot引领…...

名侦探李先生第一话:谁是真正的凶手(只出现一次的数字相关题解(力扣)+位操作符回忆)

引子&#xff1a;我们在之前的案子中破解过基础的单身狗问题&#xff0c;那面对更有挑战的案子&#xff0c;且看李先生如何破局&#xff0c;那下凶手&#xff01; 复习&#xff1a; 1&#xff0c;位操作符&#xff1a; 正整数原&#xff0c;反&#xff0c;补码都相同 首位是…...

【PA交易】BackTrader(一): 如何使用实时tick数据和蜡烛图

背景和需求 整合Tick数据是PA交易的回测与实盘基本需求。多数交易回测框架往往缺乏对大规模Tick数据直接而全面的支持。Tick数据因其体量庞大&#xff08;例如&#xff0c;某棕榈油主力合约四年间的数据达8GB&#xff09;为结合价格趋势与PA分析带来挑战&#xff0c;凸显了实时…...

HTML(16)——边距问题

清楚默认样式 很多标签都有默认的样式&#xff0c;往往我们不需要这些样式&#xff0c;就需要清楚默认样式 写法&#xff1a; 用通配符选择器&#xff0c;选择所有标签&#xff0c;清除所有内外边距选中所有的选择器清楚 *{ margin:0; padding:0; } 盒子模型——元素溢出 作…...

【Godot4自学手册】第四十二节实现拖拽进行物品交换和数量叠加

这一节我们主要学习背包系统中的物品拖拽后&#xff0c;物品放到新的位置&#xff0c;或交换物品位置&#xff0c;如果两个物品属于同一物品则数量相加。具体效果如下&#xff1a; 一、修改item.tscn场景 给item.tscn场景的根节点Item添加Label子节点&#xff0c;命名为Numv…...

存储系统概述

目录 层次结构 存储器的分类 存储器的编址和端模式 存储器端模式 存储器的技术指标 1. 存储容量 示例&#xff1a; 2. 访问速度 访问速度的表现形式&#xff1a; 示例&#xff1a; 3. 功耗 示例&#xff1a; 4. 可靠性 可靠性指标&#xff1a; 示例&#xff1a;…...

Trilium windows上修改笔记目录,创建多个笔记空间方法

一开始使用trilium会非常的不舒服&#xff0c;不像是obsidian可以创建多个笔记空间&#xff0c;指定多个笔记目录。这里摸索到了解决方案 修改目录的方法一 ——修改系统环境变量 打开控制面板-系统-高级系统设置 新增如上条目 修改目录的方法二——直接写bat脚本运行 新建位…...

<Rust><iced>在iced中显示gif动态图片的一种方法

前言 本文是在rust的GUI库iced中在窗口显示动态图片GIF格式图片的一种方法。 环境配置 系统&#xff1a;window 平台&#xff1a;visual studio code 语言&#xff1a;rust 库&#xff1a;iced、image 概述 在iced中&#xff0c;提供了image部件&#xff0c;从理论上说&…...

【Unity设计模式】状态编程模式

前言 最近在学习Unity游戏设计模式&#xff0c;看到两本比较适合入门的书&#xff0c;一本是unity官方的 《Level up your programming with game programming patterns》 ,另一本是 《游戏编程模式》 这两本书介绍了大部分会使用到的设计模式&#xff0c;因此很值得学习 本…...

圆的面积并三角形面积并

三角形面积并 #include<iostream> #include<cstring> #include<algorithm> #include<cmath> #include<vector> using namespace std; const int maxn 110; #define x first #define y second typedef pair<double, double> PDD; const d…...

Spring Data JPA介绍与CRUD实战演练

文章目录 一、Spring Data JPA 简介二、Spring Data JPA 与 MyBatis Plus 比较设计哲学和抽象层次SQL 控制学习曲线和技术要求性能与优化综合考虑 三、SpringDataJpa实战演练1. 创建user表2. 搭建Spring Boot开发环境3. pom.xml文件内容4. application.yml文件内容5. Applicati…...

ScintillaNET:打造专业级代码编辑器的终极Windows Forms解决方案

ScintillaNET&#xff1a;打造专业级代码编辑器的终极Windows Forms解决方案 【免费下载链接】ScintillaNET A Windows Forms control, wrapper, and bindings for the Scintilla text editor. 项目地址: https://gitcode.com/gh_mirrors/sc/ScintillaNET ScintillaNET是…...

从Java转行大模型应用,Advanced-RAG 学习

一、RAG 进阶概述&#xff08;Advanced-RAG&#xff09;基础RAG&#xff08;检索增强生成&#xff09;核心是“检索生成”的两阶段流程&#xff0c;解决大模型“幻觉”和知识时效性问题&#xff0c;但在复杂场景&#xff08;长文档、模糊查询、高精准需求&#xff09;中存在检索…...

FanControl实战指南:从噪音困扰到智能散热的转型之路

FanControl实战指南&#xff1a;从噪音困扰到智能散热的转型之路 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/…...

CayenneMQTT库详解:嵌入式设备快速接入MQTT平台

1. CayenneMQTT 库概述 CayenneMQTT 是一个专为物联网设备设计的轻量级 MQTT 客户端库&#xff0c;核心目标是将嵌入式终端&#xff08;如 Arduino、ESP8266、ESP32&#xff09;快速、可靠地接入 Cayenne IoT 平台 的可视化仪表盘。该库并非从零实现 MQTT 协议栈&#xff0c…...

元素偏析系数计算:从概念到实际应用

元素偏析系数计算(Pandat代算或自己操作) 实例32: 偏析系数k是指在熔体凝固过程中&#xff0c;溶质元素在固相和液相中浓度的比值。 通过计算偏析系数&#xff0c;可以预测在凝固过程中某一溶质元素的分布情况&#xff0c;从而帮助设计合金的微观组织结构。 偏析系数 k1 则倾向…...

手机号逆向查询QQ号:3步快速找回QQ号的终极免费方案

手机号逆向查询QQ号&#xff1a;3步快速找回QQ号的终极免费方案 【免费下载链接】phone2qq 项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq 你是否曾因忘记QQ号而无法登录重要账号&#xff1f;手机号逆向查询QQ号工具为你提供了一种简单高效的解决方案。这个基…...

告别手动:Python/Shell双环境实战,让Certbot自动续期通配符证书稳如泰山

Python/Shell双环境实战&#xff1a;Certbot自动续期通配符证书的终极方案 当你的服务器集群同时存在Python和Shell环境时&#xff0c;如何构建一个统一的证书自动化管理体系&#xff1f;这个问题困扰着许多技术负责人。通配符证书的自动续期看似简单&#xff0c;但在混合技术栈…...

华硕笔记本CPU过热?G-Helper降压调优终极指南帮你降温10℃

华硕笔记本CPU过热&#xff1f;G-Helper降压调优终极指南帮你降温10℃ 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models 项目…...

贾子公理体系全场景应用白皮书——从底层逻辑根服务器到数字政府、金融、AI等十大领域落地

GG3M贾子公理体系&#xff1a;一套底层公理贯通十大全场景应用落地副标题&#xff1a; 贾子公理体系全场景应用白皮书——从底层逻辑根服务器到数字政府、金融、AI等十大领域落地摘要&#xff1a; 贾子公理体系是GG3M项目的底层逻辑根服务器&#xff0c;以自洽可演绎的公理系统…...

无GPU方案:星图平台OpenClaw镜像+百川2-13B-4bits的云端沙盒体验

无GPU方案&#xff1a;星图平台OpenClaw镜像百川2-13B-4bits的云端沙盒体验 1. 为什么选择云端沙盒方案 作为一个长期折腾本地AI部署的技术爱好者&#xff0c;我最近遇到了一个典型困境&#xff1a;想体验最新的OpenClaw智能体框架&#xff0c;但手头的MacBook Pro只有集成显…...