计算机网络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实现还是重传所有未被确认的数据块。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/854848.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【机器学习】机器学习重要分支——集成学习:理论、算法与实践

文章目录 引言第一章 集成学习的基本概念1.1 什么是集成学习1.2 集成学习的类型1.3 集成学习的优势 第二章 集成学习的核心算法2.1 Bagging方法2.2 Boosting方法2.3 Stacking方法 第三章 集成学习的应用实例3.1 图像分类3.2 文本分类 第四章 集成学习的未来发展与挑战4.1 模型多…

【前端项目笔记】2 主页布局

主页布局 element-ui提供的组件名称就是它的类名 ☆☆ CSS选择器: (1)基本选择器 类型选择器 p/span/div…… 类选择器 (.classname) ID选择器 (#idname) 通配选择器 ( * ) (2)属性选择器 选择具有特定属性或属性值的…

【C语言】解决C语言报错:Uninitialized Variable

文章目录 简介什么是Uninitialized VariableUninitialized Variable的常见原因如何检测和调试Uninitialized Variable解决Uninitialized Variable的最佳实践详细实例解析示例1:局部变量未初始化示例2:数组未初始化示例3:指针未初始化示例4&am…

C的I/O操作

目录 引言 一、文件与目录操作 1. 打开与关闭文件 2. 文件读写操作 3. 文件定位与错误处理 二、字符流与字节流 1. 字符流处理 2. 字节流处理 三、序列化与反序列化 1. 序列化 2. 反序列化 四、新的I/O(NIO) 表格总结 文件与目录操作 字符…

Java基础学习-数组

目录 数组定义 注意点: 地址值是数组在内存中实际存储的地址。 案例遍历:遍历数组得到每一个元素,求数组里面所有数据和 案例:定义数组,遍历能被3整除的数字 案例:遍历一个数组,奇数将当前…

守护电力心脏:国网电力监控运维平台的智慧使命

国网电力监控运维平台,以其强大的数据分析和处理能力,实现了对电网运行的实时监控。无论是电压波动、电流异常,还是设备故障,平台都能迅速捕捉并发出预警,确保电力供应的稳定和安全。 山海鲸可视化电力监控运维平台 想…

jpg压缩在线方法,我只用这2种(无损)

在数字化的时代,我们经常需要分享、存储或上传各种图像文件,而JPG是其中最常见的图像格式之一。然而,大文件大小有时可能成为一个问题,尤其是在网络传输或存储空间有限的情况下。为了解决这一问题,我们可以利用在线工具…

【嵌入式系统开发】002 VI编辑器入门

文章目录 0. 前言1. VI编辑器简介1.1 什么是VI编辑器1.2 打开VI编辑器 2. VI编辑器的三种工作模式间(模式切换与部分功能)3. 移动操作4. 编辑4.1 插入4.2 删除 5. 复制、粘贴6. 查找、替换 0. 前言 对文件进行编辑时,如果是在有图…

gsoap2.8交叉编译方法(详细、亲测可用)

环境搭建 交叉编译器安装,过程略。 注意:如果要使用脚本配置环境变量,在运行脚本时,应该使用 . /绝对路径的方式,而不是直接/绝对路径或者./绝对路径,否则会导致配置失败。(亲测如此&#xff0…

[巨详细]安装HBuilder-X教程

文章目录 下载HBuilder-X点击网址 ,打开官网先点击所有产品,再点击HBuilder-X。进入HBuilder-X官网页面点击more,选择适合的版本下载。等待下载打开压缩包,点击HBuilderX.exe选择喜欢的风格关闭该弹窗,选择创建就创建成…

如何学习 Java 中的 Socket 编程,进行网络通信

Socket编程是网络编程的核心技术之一,它使得不同主机之间可以进行数据通信。Java提供了丰富的网络编程API,使得编写网络应用程序变得相对简单和直观。本文将详细讲解如何学习Java中的Socket编程,并通过示例代码展示如何实现网络通信。 一、S…

Java情侣飞行棋系统小程序+H5+微信公众号+APP 源码

💑甜蜜互动,共赴云端之旅🛫 🌈一、引言:飞行棋遇上情侣,乐趣翻倍 在繁忙的生活中,情侣们总是渴望找到一种简单而有趣的方式来增进彼此的感情。这时,情侣飞行棋小程序应运而生&#…

视频融合共享平台LntonCVS视频监控管理平台技术方案详细介绍

LntonCVS国标视频综合管理平台是一款以视频为核心的智慧物联应用平台。它基于分布式、负载均衡等流媒体技术进行开发,提供广泛兼容、安全可靠、开放共享的视频综合服务。该平台具备多种功能,包括视频直播、录像、回放、检索、云存储、告警上报、语音对讲…

【C#】汽车租赁系统设计与实现

目的: 设计一个简单的汽车租赁系统,包含以下功能: 添加车辆:用户可以添加新的车辆到系统中,包括车辆的品牌、型号、车牌号、日租金等信息。查找车辆:用户可以通过车牌号或者品牌来查找车辆,并…

MyBatis查询两个字段,返回Map,一个字段作为key,一个字段作为value的实现

项目场景: 在使用MyBatis,我们经常会遇到这种情况:SELECT两个字段,需要返回一个Map,其中第一个字段作为key,第二个字段作为value。MyBatis的MapKey虽然很实用,但并不能解决这种场景。 问题描述 …

【Unity】向量应用:已知入射方向和法向量求反射方向(跳弹系统)

文章目录 已知入射方向和法向量求反射方向已知条件解题思路代码范例 已知入射方向和法向量求反射方向 已知条件 已知入射向量v1和法向量n(OB),求反射向量v2,上述向量均为单位向量。 解题思路 设 AO为 v1 ;OB为 n …

实验13 BGP路径选择

实验13 BGP路径选择 一、 原理描述二、 实验目的三、 实验内容四、 实验配置五、 实验步骤 一、 原理描述 与域内路由不同,域间路由更加注重策略,而不是技术。在域内进行选路,可以使用路由算法计算出到达目的子网的最短路径;而在…

如何完美解决 Oracle Database 19c 安装程序 - 第7步(共8步)卡住,半小时都不动

🚀 如何完美解决 Oracle Database 19c 安装程序 - 第7步(共8步)卡住,半小时都不动 摘要 在安装 Oracle Database 19c 时,很多用户会在第7步(共8步)遇到卡住的问题,尤其是安装程序长…

行业模板|DataEase应用平台对接大屏模板推荐

DataEase开源数据可视化分析工具于2022年6月发布模板市场(https://templates-de.fit2cloud.com),并于2024年1月新增适用于DataEase v2版本的模板分类。模板市场旨在为DataEase用户提供专业、美观、拿来即用的大屏模板,方便用户根据…

Spring框架的最新进展:2023年Spring Boot和Spring Cloud功能更新

引用 Spring框架的最新动态:2023年Spring Boot与Spring Cloud功能升级 Spring框架作为Java开发领域的重要技术之一,一直致力于简化开发流程和提高开发效率。2023年,Spring Boot和Spring Cloud两大核心组件再次迎来功能升级,为开…