- 5
- 0
- 约1.03万字
- 约 11页
- 2018-01-05 发布于天津
- 举报
第十二章带外数据-Read.doc
第八章 带外数据
8.1 概述
许多传输层有带外数据(out-of-band data)的概念,有时也称为加速数据(expedited data)。这个想法是指连接双方中的一方发生重要事情,想要迅速通知对方。这里的“迅速”是指这种通知应该在已经排队等待发送的任何“普通”(有时称为“带内”)数据之前发送。也就是带外数据设计为比普通数据有更高的优先级。但是,带外数据是映射到现有的连接中的,而不是在顾客机和服务器之间再用一个连接。
目前,几乎所有的传输层实现都有一个不同的带外数据的实现,因此不同的传输层系统在带外数据的识别和处理上有很大不同,因此,用户进行程序设计时需要注意这一点。
8.2 TCP带外数据
8.2.1 TCP带外数据的发送和接收
TCP没有真正的带外数据,而是提供了一个紧急模式(urgent mode)。假设一个进程已向一个TCP套接口写入了N字节数据,并且这些数据被TCP放入套接口发送 缓冲区等待发送给对方。图8-1中说明了这种状态,并且标记了从1到N的数据字节。
进程现在使用send函数和NSG_OOB标志发送一个包含ASCII字符“a”的带外数据字节:
send(fd, “a”, 1, MSG_OOB);
TCP将数据放置在套接口发送缓冲区的下一个可用位置,并设置这个连接的TCP紧急指针(urgent pointer)为下一个可用位置。图8-2说明了
原创力文档

文档评论(0)