利用流上的 tirdwr,在连接有效期间内,可以通过传输连接发送和接收数据。用户可通过关闭与传输端点关联的文件描述符来终止连接,也可通过将 tirdwr 模块弹出流来终止连接。在上述任一情况下,tirdwr 都会执行以下操作:
如果 tirdwr 接收到顺序释放请求,则将该请求传递到传输提供器以完成该连接的顺序释放。数据传送完成后,启动顺序释放过程的远程用户将接收到预期请求。
如果 tirdwr 接收到断开请求,则不执行任何特殊操作。
如果 tirdwr 接收到的既不是顺序释放请求,也不是断开请求,则会将一个断开请求传递到传输提供器以异常中止该连接。
如果流上发生错误,并且 tirdwr 未接收到断开请求,则会将一个断开请求传递到传输提供器。
将 tirdwr 推送到流之后,进程便不能启动顺序释放。如果位于传输连接另一端的用户启动了顺序释放,tirdwr 将处理该释放。如果该部分中的客户机与服务器程序进行通信,则该服务器会使用顺序释放请求终止数据的传送。然后,该服务器将等待客户机的相应请求。此时,该客户机将退出并关闭传输端点。关闭文件描述符之后,tirdwr 便会启动来自连接客户端的顺序释放请求。该释放会生成阻塞服务器的请求。
某些协议(如 TCP)要求此顺序释放以确保数据完整地传送。