传输层服务

提供给上层的服务

传输层的最终目标是向它的用户提供高效的、可靠的和成本有效的数据传输服务,它的用户通常是应用层的进程。为了实现这个目标,传输层需要充分利用网络层提供给它的服务。在传输层内,完成这项工作的硬件和/或软件称为传输实体(transport entity)。传输实体可以实现在主机的不同位置,可能在操作系统内核,或者以一个链接库的形式绑定到网络应用中,或者以一个独立的用户进程运行,甚至可以实现在网络接口卡上。前两种实现方式在Internet上最常见。

网络层、传输层和应用层

传输服务类似于网络服务,但是两者之间有一些重要的区别。最主要的区别在于网络服务毫不掩盖地按照实际网络提供的服务来建立模型。实际网络可能会丢失数据包,所以网络服务一般来说是不可靠的。

与此相反,面向连接的传输服务是可靠的。当然,实际网络并非没有错误,但是,这恰好是传输层的目标——在不可靠的网络之上提供可靠的服务。

传输服务原语(简单的)

这个传输接口给出了一个传输接口应该完成的基本工作,允许应用程序建立并使用连接,用完之后再释放连接。

原语发出的包含义
LISTEN(无)阻塞,直到某个进程试图与之连接
CONNECTCONNECTION REQ主动尝试建立一个连接
SENDDATA发送信息
RECEIVE(无)阻塞,直到达到一个DATA包
DISCONNECTDISCONNECTION REQ请求释放连接

TCP的套接字原语

原语含义
SOCKET创建一个新通信端点
BIND将套接字与一个本地地址关联
LISTEN声明愿意接收连接;给出队列长度
ACCEPT被动创建一个入境连接
CONNECT主动创建一个连接
SEND通过连接发送一些数据
RECEIVE从连接上接收一些数据
CLOSE释放连接

寻址

当一个应用(比如一个用户)进程希望与另一个远程应用进程建立连接时,它必须指定要连接到哪个应用进程上(无连接的传输也有同样的问题:消息发送给谁?)。通常使用的方法是为那些能够监听连接请求的进程定义相应的传输地址。在Internet中,这些端点称为端口(port)。

通用术语传输服务访问点(TSAP,Transport Service Access Point) 表示传输层的一个特殊端点,网络层上的类似端点(即网络层地址)称为网络服务访问点(NSAP,Network Service Access Point)。IP地址是NSAP的实例。

TASP、NASP和传输连接
应用进程(包括客户和服务器)可以将自己关联到一个本地TSAP上,以便与一个远程TSAP建立连接。这些连接运行在每台主机的NSAP之上,如上图所示。在有些网络中,每台计算机只有一个NSAP,但是能有多个传输端点共享此NSAP,因此需要某种方法来区分这些传输端点。

使用传输连接的一种可能场景如下所述。

  1. 主机2上的邮件服务器进程将自己关联到TSAP 1522上,等待入境连接请求的到来。
  2. 主机1上的应用进程希望发送一个邮件消息,所以它把自己关联到TSAP 1208上,并且发出一个CONNECT请求。该请求消息指定主机1上的TASP 1208作为源,主机2上的TSAP 1522作为目标。这个动作最终导致在应用进程和服务器之间建立了一个连接。
  3. 应用进程发送邮件消息。
  4. 作为响应,邮件服务器表示它将传递该消息。
  5. 传输连接被释放。

注意,在主机2上很可能还有其他的服务器被关联到其他的TSAP上,它们也在等待经过同一个NSAP达到的入境请求连接。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值