应用层协议原理——可供应用程序使用的运输服务

        前面讲过套接字是应用程序进程和运输层协议之间的接口。在发送端的应用程序将报文推进该套接字。在该套接字的另一侧,运输层协议负责使该报文进入接收进程的套接字。

        包括因特网在内的很多网络提供了不止一种运输层协议。当开发一个应用时,必须选择一种可用的运输层协议。如何做出这种选择呢?最可能的方式是,通过研究这些可用的运输层协议所提供的服务、选择一个最能为你的应用需求提供恰当服务的协议。

        一个运输层协议能够为调用它的应用程序提供什么样的服务呢?大体能够从四个方面对应用程序服务要求进行分类:可靠数据传输、吞吐量、定时和安全性

        

1.可靠数据传输

       分组在计算机网络中可能丢失。例如,分组能够使路由器中的缓存溢出,或者当分组中的某些比特损坏后可能被丢弃。像电子邮件、文件传输、远程主机访问、Web文档传输以及金融应用等这样的应用,数据丢失可能会造成灾难性的后果(在后一种情况下,无论对银行或对顾客都是如此!)。因此,为了支持这些应用,必须做一些工作以确保由应用程序的一端发送的数据正确、完全地交付给该应用程序的另一端。如果一个协议提供了这样的确保数据交付服务,就认为提供了可靠数据传输(reliable data transfer)。运输层协议能够潜在地向应用程序提供的一个重要服务是进程到进程的可靠数据传输。当一个运输协议提供这种服务时,发送进程只要将其数据传递进套接字,就可以完全相信该数据将能无差错地到达接收进程。

        当一个运输层协议不提供可靠数据传输时,由发送进程发送的某些数据可能不能够到达接收进程。这可能能被容忍丢失的应用(loss-tolerant application)所接受,最值得注意的是多媒体应用,如交谈式音频/视频,它们能够承受一定量的数据丢失。在这些多媒体应用中,丢失的数据引起播放的音频/视频出现小干扰,而不是致命的损伤。

2.吞吐量

        可用吞吐量,在沿着一条网络路径上的两个进程之间的通信会话场景中,可用吞吐量就是发送进程能够向接收进程交付比特的速率。因为其他会话将共享沿着该网络路径的带宽,并且因为这些会话将会到达和离开,该可用吞吐量将随时间波动。这些观察导致另一种自然的服务,即运输层协议能够以某种特定的速率提供确保的可用吞吐量。使用这种服务,该应用程序能够请求r比特/秒的确保吞吐量,并且该运输协议能够确保可用吞吐量总是为至少r比特/秒。这样的确保吞吐量的服务将对许多应用程序有吸引力。例如,如果因特网电话应用程序对语音以32kbps的速率进行编码那么它也必须以这个速率向网络发送数据,并向接收应用程序交付数据。如果运输协议不能提供这种吞吐量,该应用程序或以较低速率进行编码(并且接收足够的吞吐量以维持这种较低的编码速率),或它可能必须放弃发送,这是因为对于这种因特网电话应用而言,接收所需吞吐量的一半是几乎没有或根本没有用处的。具有吞吐量要求的应用程序被称为带宽敏感的应用(bandwidh-sensitive application)。许多当前的多媒体应用是带宽敏感的,尽管某些多媒体应用程序可能采用自适应编码技术对数字语音或视频以与当前可用带宽相匹配的速率进行编码。

        带宽敏感的应用具有特定的吞吐量要求,而弹性应用(elastic application)能够根据情况或多或少地利用可供使用的吞吐量。电子邮件、文件传输以及Web传送都属于弹性应用。当然,吞吐量是越多越好。

3.定时

        运输层协议也能提供定时保证。如同具有吞吐量保证那样,定时保证能够以多种形式实现。一个保证的例子如:发送方注入进套接字中的每个比特到达接收方的套接字不迟于100ms。这种服务将对交互式实时应用程序有吸引力,如因特网电话、虚拟环境电话会议和多方游戏,所有这些服务为了有效性而要求数据交付有严格的时间限制。

        对于非实时的应用,较低的时延总比较高的时延好,但对端到端的时延没有严格的约束。

4.安全性

        最后,运输协议能够为应用程序提供一种或多种安全性服务。例如,在发送主机中,运输协议能够加密由发送进程传输的所有数据,在接收主机中,运输层协议能够在将数据交付给接收进程之前解密这些数据。这种服务将在发送和接收进程之间提供机密性,以防该数据以某种方式在这两个进程之间被观察到。运输协议还能提供除了机密性以外的其他安全性服务、包括数据完整性和端点鉴别

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

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

相关文章

什么是海外仓管理自动化?策略及落地实施步骤指南

作为海外仓的管理者,你每天都面临提高海外仓运营效率、降低成本和满足客户需求的问题。海外仓自动化管理技术为这些问题提供了不错的解决思路,不过和任何新技术一样,从策略到落地实施,都有一个对基础逻辑的认识过程。 今天我们整…

重生奇迹mu的地图名

地图之一:勇者大陆 勇者大陆地处奇迹大陆中央。终年阴雨连绵,气候潮湿闷热。植物由充满黑暗阴森气氛的草地所构成。这里的NPC数量是所有地图中最多的。因为地步交通要冲,所以也是玩家聚集最多的地方。 这里是剑士、魔法师、魔剑士和圣导师初…

vue3关于在线考试 实现监考功能 推流拉流

vue3 关于在线考试 实现监考功能&#xff0c; pc端考试 本质是直播推流的功能 使用腾讯云直播: 在线文档 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><link rel"icon" href"/f…

永磁同步电机控制算法--最大转矩电流比控制(虚拟信号注入法)

目前&#xff0c;国内外相关学者对 MTPA 控制方法进行了一系列的理论研究与仿真分析。通过研究取得的成果综合来看&#xff0c;该控制方法主要有&#xff1a;直接公式计算法、曲线拟合法、查表法、搜索法、高频信号注入法以及参数辨识法等。 之前的文章中已经介绍了直接公式计…

Java.Maths类的常用方法

Maths类的常用方法 Math 类是 Java 标准库中的一个类&#xff0c;位于 java.lang 包中。它提供了一些基本的数学操作方法&#xff0c;这些方法都是静态的。以下是 Math 类的所有方法&#xff1a; 数学常量 double E: 自然对数的底数&#xff08;约等于 2.718&#xff09;doub…

对于“百模大战”,几乎所有大佬的口风都180 °大转变了?

文 | 智能相对论 作者 | 陈泊丞 在2024世界人工智能大会暨人工智能全球治理高级别会议产业发展主论坛上&#xff0c;百度创始人、董事长兼首席执行官李彦宏谈了些对于AI大模型的看法&#xff0c;语惊四座。 他先是指出&#xff0c;“百模大战造成了社会资源的巨大浪费&#x…

ubuntu 如何复制文件夹的内容

在Ubuntu中&#xff0c;您可以使用cp命令来复制文件夹的内容。如果您想要复制文件夹及其所有内容&#xff08;包括子文件夹&#xff09;&#xff0c;可以使用-r&#xff08;递归&#xff09;选项。 cp -r /path/to/source/folder/* /path/to/destination/folder/ 这个命令会将s…

现在2024年网络安全真实情况还好就业吗?_2024年网络安全专业到底行不行了

2024年网络安全行业的前景看起来非常乐观。根据当前的趋势和发展&#xff0c;一些趋势和发展可能对2024年网络安全行业产生影响&#xff1a; 5G技术的广泛应用&#xff1a;5G技术的普及将会使互联网的速度更快&#xff0c;同时也将带来更多的网络威胁和安全挑战。网络安全专家…

java-spring boot光速入门教程(超详细!!)

目录 一、引言 1.1 初始化配置 1.2 整合第三方框架 1.3 后期维护 1.4 部署工程 1.5 敏捷式开发 二、SpringBoot介绍 spring boot 2.1 搭建一个spring boot工程 2.2 使用idea创建项目 2.3 在线创建姿势 2.4 项目的目录结构 2.5 项目的运行方式 2.6 yml文件格式 2…

CP AUTOSAR标准之XCP(AUTOSAR_CP_SWS_XCP)(更新中……)

1 简介和功能概述 该规范规定了AUTOSAR基础软件模块XCP的功能、API和配置。XCP是主设备(工具)和从设备(设备)之间的协议描述(ASAM标准),提供以下基本功能: 同步数据采集(测量)同步数据刺激(用于快速原型设计)在线内存校准(读/写访问)校准数据页面初始化和切换用于ECU开发目的…

分享外贸工作中常用英文标准表达和英文语句

常用英文表达 报拉格斯最低到岸价 quote the lowest price CIF Lagos经营纺织品多年 be in the line of textiles for many years货物受欢迎 the goods are very popular with customers / have met with a warm reception /be well received/accepted/ enjoy a wide populari…

Java线程死锁及解决方法

多线程环境下&#xff0c;死锁即两个或两个以上的线程去争夺同一个共享资源&#xff0c;而导致互相等待的情况。 要产生死锁&#xff0c;必须满足如下四个条件&#xff1a; 互斥条件&#xff0c;共享资源x和y只能被一个线程占有请求和保持条件&#xff0c;T1持有x&#xff0c…

解读BASE理论:高可用性与性能的完美平衡

Base概念 BASE 理论是一种处理大规模分布式系统中的数据一致性问题的思路。相比于传统的严格一致性&#xff0c;它更灵活&#xff0c;适用于那些需要高可用性和性能的系统。BASE 理论由三个部分组成&#xff1a; 基本可用&#xff08;Basically Available&#xff09; 基本可用…

【c++刷题笔记-动态规划】day32: 509. 斐波那契数 、 70. 爬楼梯 、 746. 使用最小花费爬楼梯

509. 斐波那契数 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int fib(int n) {if(n0){return 0;}vector<int>dp(n1);dp[0]0;dp[1]1;for(int i2;i<n;i){dp[i]dp[i-1]dp[i-2];}return dp[n];} }; 70. 爬楼梯 - 力扣&#xff08;LeetCode&#x…

pytorch 模型保存到本地之后,如何继续训练

在 PyTorch 中&#xff0c;你可以通过以下步骤保存和加载模型&#xff0c;然后继续训练&#xff1a; 保存模型 通常有两种方式来保存模型&#xff1a; 保存整个模型&#xff08;包括网络结构、权重等&#xff09;&#xff1a; torch.save(model, model.pth) 只保存模型的state…

利用亚马逊云科技云原生Serverless代码托管服务开发OpenAI ChatGPT-4o应用

今天小李哥继续介绍国际上主流云计算平台亚马逊云科技AWS上的热门生成式AI应用开发架构。上次小李哥分享​了利用谷歌云serverless代码托管服务Cloud Functions构建Gemini Pro API​&#xff0c;这次我将介绍如何利用亚马逊的云原生服务Lambda调用OpenAI的最新模型ChatGPT 4o。…

CSAL: the Next-Gen Local Disks for the Cloud——论文泛读

EuroSys 2024 Paper 论文阅读笔记整理 问题 云本地磁盘以其实惠的价格和高性能而极具吸引力。在云本地磁盘中&#xff0c;物理存储设备直接连接到计算服务器&#xff0c;并作为块设备虚拟化到虚拟机&#xff08;VM&#xff09;。在这种设置下&#xff0c;计算节点受其有限的计…

纯前端如何实现Gif暂停、倍速播放

前言 GIF 我相信大家都不会陌生&#xff0c;由于它被广泛的支持&#xff0c;所以我们一般用它来做一些简单的动画效果。一般就是设计师弄好了之后&#xff0c;把文件发给我们。然后我们就直接这样使用&#xff1a; <img src"xxx.gif"/>这样就能播放一个 GIF …

MPC学习资料汇总

模型预测控制MPC学习资料汇总 需要的私信我~ 需要的私信我~ 需要的私信我~ 【01】课件内容 包含本号所有MPC课程的课件&#xff0c;以及相关MATLAB文档。 【02】课件源代码 本号所有MPC课程的源代码。 【03】MPC仿真案例 三个MPC大型仿真案例&#xff1a; 1&#xff09;…

Python面试题:在 Python 中如何进行多线程编程?

在 Python 中进行多线程编程通常使用 threading 模块。下面是一个简单的示例&#xff0c;展示了如何创建和启动多个线程。 示例代码 import threading import time# 定义一个简单的函数&#xff0c;它将在线程中运行 def print_numbers():for i in range(10):print(f"Nu…