目录
一、传输层相关概念的介绍
(一)传输层与数据链路层的异同点
传输层的功能主要体现在广域网应用中,数据链路层是局域网通信的数据传输通道,而传输层则是广域网的数据传输通道。
在局域网中的网络应用同样需要泳道传输层功能,由用户计算机操作系统中的TCP或UDP协议完成,不同的只是在局域网中传输连接时永久连接的,因为在局域网中的数据链路时永久连接的,不需要与其他网络连接。
OSI/RM的两种划分方式
1.面向应用和面向通信
2.面向主机或资源子网、面向通信子网
(二)网络层、传输层、应用层之间的关系
同一时刻,两主机间可以进行多个应用通信。而不同通信的标识就是进程ID,只有通信进程才可以把对应的数据包传输到对应的网络中。
在进行具体的网络通信应用时必须为每一个网络配备一个唯一的应用进程标识,否则所传输的报文就不知道要提交给哪个用户应用了。而这个应用进程识别就是依靠传输层,它是通过“端口”来与不同应用进程进行对应的。
传输实体Transport Entity,可能位于操作系统的内核,或在一个独立的用户进程中,或以一个链接库的形式被绑定在具体的网络应用中。
只有资源子网中的中断设备才具有传输层功能,通信子网中的设备一般之多只具备OSI/RM下面三层的功能,即通信功能。
二、点对点和端对端
点对点Poinit to Point连接:通信双方是直接通过电缆进行连接,即背对背连接,中间没有经过任何其他设备。
端到端End to End连接:是两个中断系统之间的连接,体现在两个终端系统的连接中要经过一个或多个设备。
端到端传输在数据传输前要在两端所经过的线路上建立一条构建于网络层已搭建好的路由路径之上的虚拟传输连接(这里仅是针对面向连接的传输层协议而言),以此来屏蔽所经网络类型或参数配置的不同,就像它们是直接相连的一样;链路建立后,源端即可发送数据,直至数据发送完毕,接收端确认接收成功。
端到端传输的优点是链路建立后源端知道接收设备一定能收到(这就是可靠性的体现),而且经过中间交换设备时无需建立多条传输链路,节省了设备资源。
端到端传输的缺点:
1.是直到目的端收到数据为止源端的设备一直要参与传输,因为只有在传输完成后从源端到目的端所建立的虚拟传输连接才能拆除,否则会中途中断数据的传输。这样一来,如果整个传输的延迟很长会对源端的设备资源造成很大浪费,因为源端可能早就把所有数据发完了,只因为中间子网的一些延迟而导致接收端长时间没有接收完数据,最终导致传输连接不能释放。
2.如果接收设备关机或故障,那么端到端传输不可能实现,因为两端无法建立一条虚拟的专用通道。
点对点传输的优点是源端设备送出数据后,任务完成,不需要参与整个参数过程,就不会浪费源端设备的资源,后面的数据传输是由后面的设备来完成。即使接收端设备关机或故障,也可采用存储转发技术进行缓冲。
点对点传输的缺点是源端发出数据后,不知道目的端能否收到或何时能收到数据,因为它不需要事先与对方建立连接,数据发送也是以数据报方式发送,不管对方是否工作正常都把数据发送出去。
三、传输层服务
传输层在通信子网提供的服务基础上,为源主机和目的主机之间提供可靠的、透明的、可由用户选择的数据传输服务。
(一)传输层服务类型
与网络层由面向连接服务和无连接服务2类一样(TCP/IP体系结构中只有无连接的网络层服务,因为只有IP这一个种网络层连接协议)。
网络层:分成数据报和虚电路方式, 数据报是一种无连接的网络服务,虚电路是一种面向连接的网络服务。
(1)数据报:在网络层上,数据包都是自己独立路由的,每个数据包都有目的端和源端的详细地址,这样就导致了最好到达目的端的数据包是无序的。
(2)虚电路:在网络层上,源端的网络实体和目的端的网络实体在数据包传输之前要进行虚电路的建立。在沿虚电路的路上每一个路由器都会为这路虚电路建立端口映射。在建立完之后,所有的数据包都会沿着该虚电路,按照顺序的到达目的端。
传输层:有TCP和UDP协议,TCP是面向连接的传输服务,UDP是面向无连接的传输服务
(1)面向连接的传输服务:在提供传输服务前需要先建立专门的传输连接,连接是可管理的的,在需要时或者通信结束时拆除。是可靠的传输服务,可提供拥塞控制和差错控制。如TCP。
(2)无连接的传输服务:提供服务前不需要建立专门的传输连接,直接向目的结点发送数据,不管是否有可传输的通道,只提供不可靠(仅做尽力传输)的传输服务。如UDP。
网络层和传输层都有面向连接的服务,为什么还要划分两个层次呢?
因为:传输层的代码完全运行在用户的机器上,而网络层主要运行在承运商控制的路由器上,这也就是网络层应该在的地方,网络层的作用就是为数据包提供路由。这样就照成了用户对于网络层的控制几乎是没有的,用户只能控制自己机器上的程序。那么如果网络层提供的将服务不够用怎么办? 如果他频繁的丢失分组怎么办?用户在网络层上并没有真正的控制权,所以他们不可能用最好的路由器或者在数据层上用更好的错误处理机制来解决服务太差的问题,唯一的可能是在网络层之上的另一层中提高服务质量。这样就是为什么会出现传输层的原因。从本质上来讲,由于传输层的存在,这使得传输服务有可能比网络服务更加可靠。丢失的分组和损坏的数据可以在传输层上检测出来,并且由传输层来补偿。
原文链接:https://blog.csdn.net/suwei19870312/article/details/5618234/
(二)服务等级
不同类型的网络一起不同连接性能的网络,所提供的传输层服务级别也不一样。
主要分为“传输连接”和“数据传输”服务:
传输连接服务:传输层为它的上层发出的每个应用进程在网络层提供的服务基础上建立一个相应的逻辑连接;
数据传输服务:在所建立的传输连接基础上为用户提供比网络层更有保障、更有针对性并且由用户自己进行拥塞控制、差错控制的数据传输。
传输服务的服务质量水平与传输层协议、网络类型有关,大致可分为三大类:
A类:具有低连接差错率和故障率,是可靠的传输服务,一般指虚电路网络上;
B类:具有较低连接差错率和故障率,服务质量中等,应用于广域网和互联网中的传输协议多数属于这一类;
C类:具有较高的连接差错率和故障率,服务质量较差,如数据报服务、无线电分组交换网所提供的传输协议。
(三)传输层协议类别
在OSI/RM体系结构的传输层中,不同类型的传输层协议所支持的服务级别不一样,共分TP0-TP4五种类别。
四、TSAP和TPDU
(一)TSAP(传输服务访问点)
是上层调用传输层服务、传输层为它的上层提供服务的逻辑接口,是传输层地址。
同一实践同一对网络实体间的用户应用进程可能有多个,所以不能仅靠网络实体地址(即NSAP)来标注通信双方(因为此时通信的实体是各个应用进程,而不是通信双方主机),而必须借助传输层地址进行标识。TSAP就相当于传输层地址,不同的TSAP标识不同的会话或应用进程。
为确保所有的传输地址在整个网络中是唯一的,传输地址规定由网络ID、主机ID和主机的传输端口三部分组成。
传输层协议端口共有65535个,前1024个为常规端口代表特定应用层服务(或者应用层进程),不能分配给其他应用服务使用,而且同一时间同一主机上不能有两个应用进程使用相同的端口。
TPDU(传输层协议数据单元,Protocol Data Unit),为了于TCP/IP体系结构区分(“数据段”),OSI/RM体系机构中称为TPDU,格式如下;
LI,长度指示,1字节,以字节为单位标识整个TPDU头部得长度,最大值254
固定部分:包括TPDU代码和常用参数,内容对于某一特定TPDU是固定的(如目的端口和源端口),但对于不同传输协议的TPDU是不一样的。
可变部分:包含一些可选参数,每个参数由3个字段code(代码,1字节)、Length(长度,1字节)、Value(参数值,可变长度)构成,即CLV。因各个TPDU头部参数项数据不同,所以长度是可变得。常见参数如下:
以上各类TPDU解释见P484——P490
(二)服务原语Service Primitive
服务功能实现的具体过程描述,是要完成一项服务必须要经过的主要步骤。
一个服务通常由一组原语操作来描述,用户进程通过这些原语操作可以访问该服务。这些原语高速该服务执行某个动作或者将某个实体所执行的动作报告给用户。如果协议栈位于操作系统中,则这些服务原语通常是一些系统调用。这些系统调用会进入到内核模式,然后再内核模式中控制该及其,让操作系统发送必要的分组。到底哪些原语可以使用取决于所提供的服务,针对面向连接的服务的原语与针对无连接的服务原语是不同的。
在OSI/RM体系结构中,服务原语每层都有,并不只是传输层才有。
1.一个简单的传输服务原语模型
仅包括:监听listen、连接connect、发送send、接收receive、断开连接disconnect
应用流程如下:
(1)服务器调用listen原语,使其处于监听转台,直到有客户来请求连接;
(2)当客户希望与服务器会话时,调用connect原语,向服务器发送一个请求建立传输连接的CR TPDU;
(3)当该CR TPDU到达服务器时,服务器传输服务实体执行状态检查,是否正处于监听状态:若是则解除监听,并返回一条确认连接请求的CC TPDU;
(4)当CC TPDU到达客户端后,客户端直到服务器同一建立传输连接,便通知应用进程开始建立传输连接;
(5)建立好后就可以正式发送DT TPDU了。任何一方都可以调用receive原语,以等待另一方调用send原语,发送数据。当一方接收到另一方发来的DT TPDU时,接收端会发送一个数据接收确认DA TPDU;
(6)当不再需要一个连接时,传输用户必须将它释放,以便使两个传输实体内部的缓存空间有机会被重新使用。释放有两种形式:对称和非对称释放。非对称释放,任何一方都可以调用disconnect原语,在本端传输实体向对端发送一个DR TPDU后双向传输连接都将被释放;对称释放中,连接的两个方向彼此独立,每个方向需要单独释放。当一方调用disconnect原语时,意味着它不再需要发送数据了,但是它仍然希望能接收对方发送过来的数据。这种方式中,只有当双方都调用了disconnect原语,各自向对方发送DR TPDU后一个连接才能可能被真正释放出来。
2. ISO规范中的传输服务原语
OSI/RM体系结构的ISO规范中,各层服务原语分4中类型:
请求request:用户要求服务提供者提供某项服务,如建立连接或发送数据;
指示indication:服务提供者执行请求原语后,用指示原语通知本端用户实体,告知有人想要与之建立连接或发送数据等;
响应response:收到指示原语后,利用响应原语向对方做出反映。例如同意或不同意建立连接等;
确认confirm:请求方可以通过接收确认原语来获悉对方是否同意接收请求。
request和response(接收来自服务提供者的响应)由请求服务用户调用,而indication和confirm则由服务提供者调用。
OSI/RM传输层中主要包括10中传输服务原语,分布在传输连接建立、数据发送和传输连接断开3个主要阶段。
表中“主叫地址”参数是指请求传输连接的 TSAP 地址:
“被叫地址”参数是指与之建立传输连接的 TSAP 地址;
“响应地址”参数等于被叫 TSAP 地址;
“加速数据选择”参数是指在传输连接上是否可以使用加速数据服务(如果声明没有这项服务,它就不能在传输连接上使用);
“传输服务用户数据”参数是在传输用户之间传送的传输服务数据,传输服务提供者不进行修改,其长度为1~32 字节;
“服务质量”参数包括传输服务用户的一些要求,即 OoS 参数。
无连接的传输服务只有两个原语。