《计算机网络应用技术》:
为了解决通信子网可靠性问题,就要在网络层之上加上传输层以改善其服务质量。
此外,传输层还可以屏蔽因通信子网不同造成的网络服务原语的差别,使用户可以用标准的原语编写应用程序。
传输层的主要功能可以看作是增加和优化网络层服务质量。如果网络层提供的服务很完备,那么传输层的工作就很容易,否则传输层的工作就较繁重。对于面向连接的服务,传输服务用户在建立连接时要说明可接受的服务质量参数值。传输层根据网络层提供的服务种类及自身增加的服务检查用户提出的参数,如能满足要求则建立正常连接,否则就拒绝连接。服务质量参数包括一些用户的要求,如连接建立延迟、连接失败概率、吞吐率、传输延迟、残余误码率、优先级及恢复功能等。
传输层的服务原语还是一套接字描述。比较著名的有伯克利(Berkeley)UNIX支持的TCP/IP协议,这套服务原语用于客户机/月艮务器工作模式,它通过系统功能调用实现。主要的原语有:SOCKET、BIND、LISTEN、ACCEPT、CONNECT、SEND、RECV和CLOSE。
SOCKET服务原语用于建立发方通信端点。该原语调用的参数有协议类型(如TCP、UDP、XNS等)和服务类型(如面向连接的和无连接的服务)。SOCKET原语返回一个整数用以标识所建立的通信端点。
BIND服务原语用于为新建立的通信端点赋予一个地址。
CONNECT服务原语用于在本地端点和远地端点间建立一条连接。对于无连接的协议(如UDP协议),该原语并不表示连接,只是把对方地址存储下来。
LISTEN原语是服务器为请求连接的客户分配请求连接队列空间,并指定队列长度(一般为5)。
ACCEPT原语由服务器执行,等待连接请求的到来。自请求连接的TPDU到达后,创建一个新的连接端点,并将该端点的标识符返回给请求端。接着服务器产生一个进程为该连接服务,服务器又等待新的连接。
在服务器一方顺序执行SOCKET、BIND、LISTEN和ACCEPT四个原语,在客户一方执行SOCKET、CONNECT两个原语,进行建立连接工作。连接建立成功后,双方用SEND和RECV原语发送和接收数据。
CLOSE原语用于释放连接。如果用于TCP协议,则系统继续把尚未发送的数据发送出去。双方都使用CLOSE原语后,连接即被释放。
……
展开