软讯网络 > 软件时空 > 软件相关 > 什么是带外数据
【标 题】:什么是带外数据
【关键字】:
【来 源】:http://www.cublog.cn/u/21356/showart.php?id=233572
什么是带外数据
带外数据(OOB)就像是一个第二数据信道. 这样做的目的在于,对大多数数据都使用TCP数据流,而为紧急的数据使用带外数据. Telnet协议中使用带外数据来携带类似Ctrl-C的中断信号,因此他们就不需要在中断发生前,在远端等待常规的TCP数据。你可以通过在send()中使用MSG_OOB标签来发送带外数据,并在recv()中设置MSG_OOB标签来接收。 你也可以在setsockopt()设置SO_OOBINLINE标签来处理带外数据。
带外数据是一个有用的概念,但不幸的是,对于关于如何在堆栈层上递交带外数据有两种互相矛盾的解释:TCP协议中最初的描述(RFC793)被"主机请求"文档(RFC 1122)所代替,但是依然有很多机器在使用基于RFC 793的OOB程序。在Winsock2文档的3.5节中讨论了带外数据,在3.5.2节中,有RFC793和RFC1122存在问题的细节。
OOB并不是一个完全功能的第二数据信道:它是相当受限制的。 因此,除非当应用了类似Telnet的协议需要它,不要使用它。 你可以通过简单使用两条数据链路来实现类似带外数据的功能:一条是常规数据,另一条是紧急数据。
【相关文章】
没有相关文章