计算机网络复习5——运输层

news2024/12/26 18:09:42

运输层解决的是进程之间的逻辑通信问题

两个主机进行通信归根结底是两个主机中的应用程序互相通信,又称为“端到端的通信”

端口

运行在计算机中的进程是用进程标识符来标志的。但不同的操作系统标识进程的方法不统一,因特网重新以统一的方法对TCP/IP体系中的应用进程进行标识。

这个标识符的名字叫“协议端口号”(protocol port number),简称“端口”(port)

端口用一个16位端口号进行标志。

端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。在互联网中不同计算机的相同端口号不一定表示的是相同进程。

端口号0-1023为熟知端口,由服务器端使用,例如21、80端口。

端口号1024-49151为登记端口,由服务器端使用,例如1433、8080端口。

端口号49152-65535为客户端口,客户端任意使用。

协议

UDP

用户数据报协议UDP( User Datagram Protocol)—— 提供:无连接、不可靠交付服务

适合实时,如直播、不可靠交付服务

UDP非常简单,只在IP数据报服务上增加了端口交付和差错检测功能

UDP对于应用层交付的数据不进行任何的拆分

如果检验和检验出错误就丢弃

TCP

传输控制协议TCP——(Transmission Control Protocol) :提供:面向连接、可靠交付服务

适合传文件等

相对于UDP,TCP协议要复杂许多,TCP的连接可以提供全双工通信。

TCP以字节为单位进行交付(相对于UDP的面向报文)。

TCP还能够根据网络拥塞状况自主控制报文的长度

TCP的连接

TCP把连接作为最基本的抽象,每一条 TCP 连接有两个端点。这两个端点不是主机,不是主机的IP 地址,不是应用进程,也不是运输层的协议端口。

TCP连接的端点叫做套接字(socket)或插口。

端口号拼接到IP地址即构成了套接字。

一对IP地址+端口构成了一条TCP连接

可靠传输的原理

停止等待协议

对异常的处理:

#停止等待协议在实现时的几个细节

·重传功能如何实现——保留副本,在发送完一个分组后,必须暂时保留已发送的分组的副本

·大文件如何有序到达——分组编号,为了确认发送顺序,分组和确认都必须进行编号。

·如何确定超时时间——为了记录时间,应设置一个超时计时器,且超时计时器的重传时间应当比数据在分组传输的RTT更长一些

这种可靠传输协议常称为自动重传请求ARQ (Automatic Repeat reQuest)

信道利用率的计算:

·TD是发送分组时间

·RTT是往返时间

·TA是发送确认信息时间,时常忽略不记

停止等待协议的缺点:这种机制可能会导致信道利用率太低,因为需要确定上一个收到或丢失(超时没有收到回复)才能发送下一个

连续ARQ协议

使用流水线传输

#累计确认

·由于现在出错概率低,可以收到几个发一个确认,就是“累积确认 ”

·优点:降低开销,即使某些确认丢失也不必重传。

·缺点:不能向发送方反映出接收方已经正确收到的所有其他分组的信息,信道质量差时开销大。

可靠传输的实现

滑动窗口

根据接收方给出的窗口值 ,发送方构造出自己的发送窗口

窗口之后的数据一律不允许发送或接收

A收到确认,窗口滑动,B收到连续数据,窗口滑动

窗口用完或数据发送完毕,停止发送

超时重传

重传机制是TCP中最重要和最复杂(不确定性)的问题。

TCP的每个报文段拥有一个计时器。计时器超时仍未收到确认,就要重传这一报文段。重传时间一定大于一次往返时间,然而互联网环境很复杂

超时重传时间 RTO (RetransmissionTime-Out) :

修正的 Karn 算法 :新的 RTO = 2 * (旧的 RTO) ,考虑到报文重传一般是因为网络状况变差,应在RTO中体现出这一点,所以报文段重传时要把 RTO 增大

流量控制

TCP报文段的首部格式

·紧急 URG —— 当 URG = 1 时,表明紧急指针字段有效。它告诉对方此报文段中有紧急数据(如关键指令),应尽快处理(相当于高优先级的数据)。

·确认 ACK —— 当 ACK =1 时确认号字段有效,ACK  0 时确认号无效。

·推送 PSH (PuSH) —— 接收 TCP 收到 PSH = 1 的报文段,就尽快地交付接收应用进程,常于推送命令。该字段目前很少使用。

·复位 RST (ReSeT) —— 当 RST = 1 时,表明 TCP 连接中出现严重差错(如程序崩溃),必须释放连接,然后再重新建立运输连接。

·同步 SYN —— 同步 SYN = 1 表示这是一个连接请求或连接接受报文。

·终止 FIN (FINis) —— 用来释放一个连接。FIN = 1 表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。

拥塞控制

在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏——产生拥塞(congestion)

算法

·慢开始:并不慢,其呈指数增长

·拥塞避免:呈一次函数增长

·快重传:快重传算法要求接收方每收到一个失序的报文段后就立即发出重复确认,收到三个重复确认就重传,发送方的发送窗口的上限值应当取为接收方窗口 rwnd 和拥塞窗口 cwnd 这两个变量中较小的一个

·快恢复:连续收到三个重复的确认后减半慢开始门限,转而执行加法增大算法进行快恢复

·如果降到0并开始慢开始,是因为通过超时检测到丢失的报文段

·路由器的随机早期检测 RED

三次握手

四次挥手

运输层习题(大题)

5-23

5-26

5-33

5-34

5-39

运输层习题(选择)

TCP提供面向(连接)的传输服务。

在TCP/IP参考模型中,传输层的主要作用是在互联网络的源主机与目的主机对实体之间建立用于会话的(端到端连接)

TCP/IP为实现高效率的数据传输,在传输层采用了UDP协议,其传输的可靠性则由(应用进程)提供

第6章 应用层

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

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

相关文章

qtcanpool 知 10:包管理雏形

文章目录 前言痛点转机雏形实践后语 前言 曾听闻:C/Qt 没有包管理器,开发起来太不方便。这是一个有过 node.js 开发经验的人对 Qt 的吐槽。 确实,像 python、golang、node.js 这些编程语言都有包管理器,给用户带来了极佳的开发体…

ASP.NET Core 9.0 静态资产传递优化 (MapStaticAssets )

一、结论 💢先看结论吧, MapStaticAssets 在大多数情况下可以替换 UseStaticFiles,它已针对为应用在生成和发布时了解的资产提供服务进行了优化。 如果应用服务来自其他位置(如磁盘或嵌入资源)的资产,则应…

LeetCode 力扣 热题 100道(十五)搜索插入位置(C++)

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 代码如下所示: class Solution { public:int searchIns…

WPF+LibVLC开发播放器-音量控制和倍速控制

界面 界面上增加音量的控件和倍速控制控件 音量控制 主要也是一个Slider进度条控件来实现音量调节 我们这里设置默认的最大值为100,默认Value值也为100,默认声音开到最大 这里目前完全由前端控制音量调节,可以直接使用ValueChanged事件实…

Vue3技术开发,使用纯CSS3动手制作一个3D环绕的相册展示效果,支持传入任意图片.3D轮播相册的组件

主要讲述封装一个3D轮播相册的组件&#xff0c;效果图如下&#xff0c;仅仅传入一个图片的数组即可&#xff0c;效果如下&#xff1a; 使用Vue3技术开发&#xff0c;支持传入任意张数的图片。 使用方法 <template><Swiper :list"list" /> </templat…

python怎么将字母大写

Python中有三种将字母转换为大写的方法&#xff1a;upper()、capitalize()、title()。 下面通过实例给大家介绍具体用法&#xff1a; str "www.php.com" print(str.upper()) # 把所有字符中的小写字母转换成大写字母 print(str.lower()) # 把所有字…

将vscode上的项目提交到github上

1.windows终端中 创建github仓库 创建完成 提交代码 git init git config --global user.email "fuyulai2024163.com" git config --global user.name "Fuyulai-Hub" git add . git commit -m "first commit" git remote add origin https://g…

【期末JavaEE项目】springboot+vue3完成中国铁路12306网站的业务实现【原创】

&#x1f939;‍♀️潜意识Java&#xff1a;个人主页 &#x1f399;告诉你&#xff1a;Java是世界上最美好的语言 &#x1f48e;比较擅长的领域&#xff1a;前端开发 是的&#xff0c;我需要您的&#xff1a; &#x1f9e1;点赞❤️关注&#x1f499;收藏&#x1f49b; 是…

浅谈CI持续集成

1.什么是持续集成 持续集成&#xff08;Continuous Integration&#xff09;&#xff08;CI&#xff09;是一种软件开发实践&#xff0c;团队成员频繁地将他们的工作成果集成到一起(通常每人每天至少提交一次&#xff0c;这样每天就会有多次集成)&#xff0c;并且在每次提交后…

电子商务人工智能指南 1/6 - 搜索、广告和发现

介绍 81% 的零售业高管表示&#xff0c; AI 至少在其组织中发挥了中等至完全的作用。然而&#xff0c;78% 的受访零售业高管表示&#xff0c;很难跟上不断发展的 AI 格局。 近年来&#xff0c;电子商务团队加快了适应新客户偏好和创造卓越数字购物体验的需求。采用 AI 不再是一…

【Git教程 之 版本控制】

Git教程 之 版本控制 Git教程 之 版本控制版本控制版本控制类型单用户版本控制系统&#xff08;VCS&#xff09;单用户版本控制系统&#xff08;VCS&#xff09;特点常见的单用户版本控制系统&#xff08;VCS&#xff09; 集中式版本控制系统&#xff08;CVCS&#xff09;集中式…

.NET Framework修复工具

某些精简Windows系统或者第三方下载的改版Windows系统在安装.NET Framework的时候会出现类似下面的错误信息: 可以使用微软官方出的.NET Framework修复工具解决, 下载地址: 【免费】.NETFramework修复工具资源-CSDN文库 下载后运行即可修复系统里的.NET Framework

计算机毕业设计Python轨道交通客流预测分析可视化 智慧交通 机器学习 深度学习 人工智能 爬虫 交通大数据

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

从计算服务器角度看智算与算力

计算服务器于智算和算力领域的地位堪称中流砥柱。人工智能旨在赋予计算机人类智能的使命&#xff0c;对计算服务器提出了近乎苛刻的要求。 在智算层面&#xff0c;它是计算服务器通向高效能的核心动力。凭借 CPU 与 GPU、FPGA、ASIC 等构建的异构组合&#xff0c;计算服务器可…

Lighthouse(灯塔)—— Chrome 浏览器性能测试工具

1.认识 Lighthouse Lighthouse 是 Google 开发的一款开源性能测试工具&#xff0c;用于分析网页或 Web 应用的性能、可访问性、最佳实践、安全性以及 SEO 等关键指标。开发人员可以通过 Lighthouse 快速了解网页的性能瓶颈&#xff0c;并基于优化建议进行改进。 核心功能&…

Logistic Regression(逻辑回归)、Maximum Likelihood Estimatio(最大似然估计)

Logistic Regression&#xff08;逻辑回归&#xff09;、Maximum Likelihood Estimatio&#xff08;最大似然估计&#xff09; 逻辑回归&#xff08;Logistic Regression&#xff0c;LR&#xff09;逻辑回归的基本思想逻辑回归模型逻辑回归的目标最大似然估计优化方法 逻辑回归…

使用Hadoop MapReduce进行大规模数据爬取

Hadoop MapReduce概述 Hadoop MapReduce是一个编程模型&#xff0c;用于处理和生成大数据集。它由Map和Reduce两个主要阶段组成。Map阶段负责处理输入数据&#xff0c;并将结果输出为键值对&#xff1b;Reduce阶段则对Map阶段的输出进行汇总和合并&#xff0c;生成最终结果。 …

AI驱动的低代码平台:解密背后的算法与架构创新

引言 在如今的数字化浪潮中&#xff0c;企业对软件的需求正以前所未有的速度增长。传统的开发方式由于开发周期长、成本高&#xff0c;已逐渐无法满足市场的快速变化。而低代码平台的出现&#xff0c;使得开发者和业务人员能够以极简的方式快速构建应用。然而&#xff0c;随着企…

【Spring工具插件】lombok使用和EditStarter插件

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 引入 一&#xff1a;lombok介绍 1&#xff1a;引入依赖 2&#xff1a;使用 3&#xff1a;原理 4&…

释放超凡性能,打造鸿蒙原生游戏卓越体验

11月26日在华为Mate品牌盛典上&#xff0c;全新Mate70系列及多款全场景新品正式亮相。在游戏领域&#xff0c;HarmonyOS NEXT加持下游戏的性能得到充分释放。HarmonyOS SDK为开发者提供了软硬协同的系统级图形加速解决方案——Graphics Accelerate Kit&#xff08;图形加速服务…