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

《网络工程师必读――网络工程基础》精彩片段试读(一)

  9.2.2 传输服务原语

所谓 “ 原语 ” 就是规定了一个实体应当完成的功能,供用户和其他实体访问该服务时调用,并通知服务提供者采取某些行动或报告某个对等实体的活动。不仅传输层有,其它层也可以有,如下章介绍的会话层和表示层。

1. 标准的传输服务原语

“ 传输服务原语 ” 允许传输用户访问传输服务,并且这种访问是直接的和不透明的。 一套简单的传输服务原语集合包括:监听( Listen )、连接( Connect )、发送( Send )、接收( Receive )、断连( Disconnect )。

这些服务原语的工作原理是这样的:

( 1 )服务器执行 Listen 原语,一般的做法是调用一个侦听库过程,由它执行一个系统调用,并且阻塞该服务器,使其处于监听状态,直到有客户来连接。

( 2 )当一个客户希望与该服务器进行通话的时候,它执行 Connect 原语。在这个原语中,传输实体将阻塞调用方,并且给服务器发送一个分组。封装在该分组净荷中的是一条发送给服务器传输实体的传输层消息。

客户的 Connect 调用将使得传输实体发送一个 Connect Request TPDU 给服务器。娄这个 TPDU 到达服务器的时候,服务实体执行检查,看服务器是否正被阻塞在 Listen 调用中。然后它解除服务器的阻塞,并且给客户送回一条 Connection Accepted TPDU 。当这个 TPDU 到达客户端的时候,客户也被解除阻塞,于是传输连接建立起来了。

( 3 )传输连接建议好后,就可以正式发送数据了。任何一方都可以执行 Receive 原语,以等待另一方执行 Send 原语。当 TPDU 到来的时候,接收方被解除阻塞。然后它可以对这个 TPDU 进行处理并发送一个应答。只要双方对于发送的数据的顺序有统一的认识,则这种方式可以工作得很好。

 

【注意】在传输层上,即使一个非常简单的单向数据交换过程也会比网络层上的交换过程复杂。发送的每一个数据分组最终都要被确认。推携带控制 TPDU 的分组也要被确认,无集结是以隐式,还是显示方式。这些确认是由传输实体使用网络层协议来管理的。它们对于传输用户是不可见的。同样,传输实体也不关心定时器和重传的问题,这些机制对于传输用户全部不可见。

 

( 4 )当不再需要一个连接时,传输用户必须将它释放,以便使两个传输实体内部的表空间有机会被除数重新使用。释放连接有两种形式:对称释放和非对称释放。在非对称释放中,任何一方都可以执行 Disconnect 原语,从而导致它的传输实体将一个 Disconnect TPDU 发送给远程的该 TPDU 后,连接就被释放。在对称方式中,连接的两个方向彼此独立,每个方向需要单独被释放。当一方执行 Disconnect 原语的时候,这意味着它不再需要发送数据了,但是它仍然希望能接收对方发过来的数据。在这种方式中,只有当双方都执行了 Disconnect 原语,一个传输连接才可能被真正释放出来。

图 9-6(此处显示不了) 给出了全用这些简单传动轴服务原语来建立和释放连接的状态图。每一个状态的出现都是一种事件触发,或者是由本地的传输用户执行了一个原语,或者是接收到了一个 TPDU 分组。不过要注意,此处为了简单起见,假设了每一个 TPDU 都单独确认的,而且也采用了对称释放模型,由客户先释放连接。图避实线部分显示了服务器的状态序列,而虚线部分则显示了客户的状态序列。

 

图 9-6   一个简单的传输连接管理流程

传输服务原语允许传输服务用户访问传输服务。这里需要说明的是,传输服务类似于网络服务,但两者存在显著的区别。网络服务倾向于将实际网络提供的服务模型化,由于网络内部问题,实际的网络可能会丢失数据分组,所以网络服务并不十分可***。相反,面向连接的传输服务则是可***的,虽然实际的传输服务并非毫无错误,但在不可***的网络服务之上提供可***的传输服务正是传输层要实现的目标。

2. ISO 规范中的传输服务原语

ISO 规范包括四种类型 10 个传输服务原语,其中服务质量参数指示用户的要求,诸如吞吐量、延迟、可***度和优先度等。传输服务( TS )用户数据参数最多可达 32 个八进制用户数据。 I SO 规范的四种类型传输服务原语,如下:

l               请求( Request ):用户利用它要求服务提供者提供某项服务。如建立连接或发送数据等;

l               指示( Indication ):服务提供者执行一个请求后,用指示原语通知收方的用户实体,告知有人想要与之建立连接或发送数据等;

l               响应( Response ):收到指示原语后,利用响应原语向对方作出反应。例如同意或不同意建立连接等;

l               确认( Confirm ):请求方可以通过接收确认原语来获悉对方是否同意接受请求。原语可以携带参数,如连接请求原语的参数可能指明它要与哪台机器连接,需要什么服务类别等。连接指示原语的参数可能包含呼叫者的标识、需要服务的类别等。被呼叫实体可以在响应原语中的参数里表示同意或不同意连接;若同意,则可能对某些参数给出协商值,比如最大数据吞吐量等。

在传输连接建立阶段所需的四个服务原语及参数如下:

l               T-CONNECT.request (参数包括:被叫地址,主叫地址,加速数据选择,服务质量,用户数据)

l               T-CONNECT.indication (参数同上)

l               T-CONNECT.response (参数包括:服务质量,相应地址,加速数据选择,用户数据)

l               T-CONNECT.confirm (参数包括:服务质量,相应地址,加速数据选择,用户数据)

在数据传送阶段所需的服务原语如下:

l               T-DATA.request (参数为 “ 用户数据 ” )

l               T-DATA.indication (参数为 “ 用户数据 ” )

l               T-EXPEDITED-DATA.request (参数为 “ 用户数据 ” )

l               T-EXPEDITED-DATA.indication (参数为 “ 用户数据 ” )

在传输连接释放阶段所需的服务原语和参数如下:

l               T-DISCONNECT.request (参数为 “ 用户数据 ” )

  l            T-DISCONNECT.indication (参数包括:释放原因,用户数据)

相关文章:

  • 《网络工程师必读――网络工程基础》精彩片段试读(二)
  • 别让我思考(Don’t make me think)
  • 《网管员必读》系列图书获国家级大奖!
  • 从《网管员必读》系列丛书获奖看读者的真正需求――成绩回顾
  • 从《网管员必读》系列丛书获奖看读者的真正需求――成功原因分析(一)
  • 从《网管员必读》系列丛书获奖看读者的真正需求――成功原因分析(二)
  • 庆典活动全面展开,网工系列全面预订
  • 连续ARQ协议
  • ISDN的网络连接方式和功能参考点
  • 给参加网工软考的朋友一份练习题(一)
  • 给参加网工软考的朋友一份练习题(二)
  • 紧密型系列丛书,IT图书发展的必然趋势
  • 网管与杂工
  • 新时代网管的十二大主要职责(一)
  • 新时代网管的十二大主要职责(二)
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • 【译】理解JavaScript:new 关键字
  • 2017 年终总结 —— 在路上
  • 2019年如何成为全栈工程师?
  • Centos6.8 使用rpm安装mysql5.7
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • Java应用性能调优
  • js中forEach回调同异步问题
  • Netty 4.1 源代码学习:线程模型
  • Python爬虫--- 1.3 BS4库的解析器
  • Python语法速览与机器学习开发环境搭建
  • SOFAMosn配置模型
  • Spring Cloud中负载均衡器概览
  • 编写高质量JavaScript代码之并发
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 前端存储 - localStorage
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 突破自己的技术思维
  • 微信开源mars源码分析1—上层samples分析
  • 问题之ssh中Host key verification failed的解决
  • 线上 python http server profile 实践
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • ionic入门之数据绑定显示-1
  • raise 与 raise ... from 的区别
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (23)Linux的软硬连接
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (solr系列:一)使用tomcat部署solr服务
  • (二)fiber的基本认识
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (简单) HDU 2612 Find a way,BFS。
  • (全注解开发)学习Spring-MVC的第三天
  • (四)图像的%2线性拉伸
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • (原)Matlab的svmtrain和svmclassify
  • .NET 8.0 发布到 IIS
  • .NET Core 成都线下面基会拉开序幕