深入理解计算机网络-10传输层2

目录

0、传输层服务功能概述

一、传输层寻址

(一)进程服务器的TSAP地址分配方案

(二)名称服务器的TSAP地址分配方案

二、传输连接的建立

(一)正常传输连接的建立

(二)重复传输连接的解决方法

三、数据传输

四、传输连接释放


0、传输层服务功能概述

传输层要完成端到端的透明数据传输至少要分两大步骤:

一是虚拟传输连接的建立(面向连接的传输服务);

二是源端用户数据沿着传输连接传送到目的端。

要完成整个数据传输过程,需要完成8个方面的基本功能:

传输层寻址、传输连接建立、数据传输、传输连接释放、流量控制、拥塞控制、多路复用和解复用、崩溃恢复。

一、传输层寻址

需要解决几个问题:

发送主机的用户进程如何直到接收主机对应用户进程所关联的TSAP地址呢?

在一台服务器上有大量潜在的服务进程,但是大多数服务进程又很少被使用,那么让每个服务进程都主动、持续地监听一个TSAP地址显然会让费大量的服务器资源。

(一)进程服务器的TSAP地址分配方案

进程服务器方案是初始连接协议initial connection protocol方案的一种。它就是先由进程服务器为各应用进程集中建立初始传输连接,然后再转给对应的服务进行正式的传输连接。

类似于原本各部门接线员,改为统一接线员接线再分配。

(二)名称服务器的TSAP地址分配方案

一些特殊情况下还是有些服务必须独立运行于进程服务器而存在。

名称服务器name server,也称目录服务器directory server,也就是我们通常所说的DNS服务。也是初始连接协议方案的一种。

名称服务器总是在监听一个特定的知名服务器端口(即常规端口)。

名称服务器之所以直到这些知名服务的TSAP地址,是因为在一个新的服务被创建时必须向名称服务器注册,并把它的服务名字和TSAP地址告诉名称服务器。名称服务器将把这份信息记录到它的内部数据库中,以后当用户查询时就直到了。如DNS服务器配置时,就会把这台及其上所配置的各服务器角色的对应服务记录添加到DNS服务器中,这些记录中就会记录对应的服务器名称、所用端口信息。

二、传输连接的建立

(一)正常传输连接的建立

正常传输连接的建立。不考虑网络延迟、子网分组存储、重复分组等因素

(1)主机A用户进程调用传输层的T_CONNECT.request原语,发送CR TPDU;

(2)主机B收到请求后调用T_CONNECT.indication原语(可能会因为需要降低服务质量,调用参数会包括较小的吞吐量、较长的时延、较高的差错率、较低的优先级等)告知相应的用户进程,有用户要建立传输连接;

(3)若接受连接请求,则B用户实体调用T_CONNECT.response原语(若需要减低服务质量,参数与indication类似),发送CC TPDU;若拒绝(可能B进程认为源端的服务质量水平太差,或者应用层目前工作实在台繁忙),则发送RJ TPDU。

(4)主机A收到CC TPDU后,调用T_CONNECT.confirm原语向自己的用户实体中的源用户进程确认连接已建立,正式进入数据发送阶段。

(二)重复传输连接的解决方法

传输连接建立过程的非正常连接现象:

1.网络拥塞会导致建立过程中所传输的确认TPDU分组无法及时回到发送端,发起方就可能需要进行多次连接尝试。

2.子网分组存储也可能会导致一些TPDU分组没有及时到达,造成传输连接发起方多次重试。还有就是若延迟的分组过一段时间又到达了,又会请求建立新的连接,就出现了重复连接的问题。

解决以上问题,通常采用非重复TSAP、超时连接表、分组的TTL机制、三次握手机制。

第一次:发送端发送CR TPDU请求建立一个连接;

第二次:接收端收到CC TPDU进行应答,在应答分组中宣告了自己的初始连接序列号;

第三次:发送端收到应答后发送第一个DT TPDU,对接收端初始序列号确认。

出现延迟的重复CR TPDU情况下,B主机依然发送确认,但A主机检查自己发现已经确认过了,就发送RJ TPDU。

三、数据传输

ISO规定了正常数据传输和加速数据传输两种类型。

涉及原语:T_DATA.request\T_DATA.indication\T_EXPEDITED_DATA.request\T_EXPEDITED_DATA.indication

涉及TPDU:DT TPDU\AK TPDU\ED TPDU\EA TPDU

过程:

(1)A主机的用户实体调用T_DATA.request(发送加速数据调用T_EXPEDITED_DATA.request)指示传输层协议开始发送数据。普通数据发送DT TPDU(TPDU序列号字段值假设为i),加速数据ED TPDU(序列号值为m);

若发送的数据时经过分段的,每个TPDU都有子序列号(在“可变部分”),在最优一个数据段中的EOT(传输结束)置1,如果不是最后一个数据段则为0。

(2)当数据到达B主机传输层时,调用T_DATA.indication(加数数据为T_EXPEDITED_DATA.indication)向用户实体指示有数据到达;

(3)B主机发送AK TPDU确认,其中有“你的TPDU序列号”(YR-TU-NR)字段为希望收到的下一个数据或加速数据TPDU的序列号,等于i+1(加数数据为m+1),但没有TPDU序列号字段值

四、传输连接释放

分为“对称释放”和“非对称释放”

对称释放:各自独立发出释放连接请求,收到对方确认后才释放连接;

非对称:发送释放请求后单方终止连接,但这样做有可能丢失对方发送的数据。

OSI/RM传输连接释放采用三次握手协商方式,分正常释放连接和非正常释放连接,非正常释放连接有3种情况:最后的确认TPDU丢失、应答TPDU丢失、应答及后续释放请求DR丢失。

TCP/IP的释放采用四次握手机制。

DR TPDU用于请求释放连接

DC TPDU用于确认释放连接

如果最后的DC TPDU丢失,最终释放连接请求会因超时而自动释放。

如果另一方的DR TPDU丢失,则发起释放连接请求的一方会再次重新发送DR TPDU,请求释放连接。

如果另一方DR TPDU和请求重发的DR TPDU均发生丢失,而且重发多次仍未成功,则最后因传输超时而导致连接自动释放。

猜你喜欢

转载自blog.csdn.net/hongdi/article/details/126122891