运输层:面向连接的服务和无连接的服务

无连接的服务和面向连接的服务:

像网络层一样,运输层也可以提供两种类型的服务:无连接的服务和面向连接的服务.不过这两种服务在本质桑与网络层不同.在网络层,无连接非服务意味着同一报文的多个数据采取了不同的路径(并且是失序抵达的),而面向连接的服务意味着属于同一报文的多个数据报采取相同的路径(并且是顺序抵达的).而在运输层,我们并不关心分组采取什么样的物理路径(我们假设在两个运输层之间有一条逻辑连接).运输层的无连接服务表示分组和分组之间是互相独立的,而面向连接的服务则意味着 它们之间有联系.


无连接的服务

在使用无连接的服务时,源进程需要将它的报文分割成可被运输层接受的数据块,并将这些数据块逐个交付到运输层.运输层视这些数据块为独立的数据单元,块和块之间没有联系.当来自运输层的一个数据块到达之后,运输层就把它封装到一个分组中,然后发送这个分组.为了说明分组之间的独立性,假设客户京城有三个数据块要发给服务进程.这些数据块按顺序递交给无连接的运输协议.但是,因为在运输层这些分组之间是没有哦联系的,所以分组就可能失序到达终点,并且同样失序地交付给服务进程(假设从进程到运输层的交付以及从运输层到进程的交付是及时的).



如图所示, 在客户端有三个报文块被按顺序(1,2,3)递交给了客户端运输层.因为第二个分组在传输时有额外的时延,所以在服务器端,这些报文并没有按顺序交付(1,3,2),如果这三个数据块属于同一个报文,那么这个服务器接收到的就有可能是一个奇怪的报文.如果其中一个报文丢失了,那么情况会更糟.因为分组没有编号,接收方运输层无法知道一个分组已经丢失.它只能向服务器进程交付两个数据块.

之所以出现以上问题,是因为这两个运输层之间没有协调一致.接收方的运输层既不知道什么时候第一个分组到达,也不知道什么时候所有的分组全部到达.

在无连接的服务中,没有哪一种流量控制,差错控制或者拥塞控制策略能够有效实施.


面向连接的服务


在使用面向连接的服务时,客户和服务器首先要在他们之间建立一条连接.数据的交换只能是在连接建立之后发生.在数据交换完之后,该连接被拆除.运输层的面向连接的服务和网络层的面向连接的服务有所不同.在网络层,面向连接的服务意味着两端的主机机器中间的路由器之间的协调一致.而在运输层,面向连接的服务仅涉及两个主机,也就是说服务是端对端的.这就意味着,不管是无连接的网络协议,还是面向连接的网络协议,我们都能够在上面使用面向连接的运输层协议.







  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值