带外数据

Out-of-band data
Out-of-band data is sent ahead of any data that is already queued for transmission
但实际上,和普通数据共享数据流,是没有先后的(限TCP协议实现)
本质上是,tcp协议头上有urgent位,并记录了带外数据的位置偏移
一些注意的点
TCP supports out-of-band data,bug UDP doesn’t
TCP refers to out-of-band data as ‘‘urgent’’ data
TCP supports only a single byte of urgent data,but allows urgent data to be delivered out of band from the normal data delivery mechanisms
带外数据的通知:
1 信号通知
        需要设置所有者进程,fcntl(sockfd, F_SETOWN, pid);
2 select,poll等io复用通知
无论1 or 2,这时候都可以用MSG_OOB标记,来接受数据
也可以不关注带外数据的通知,从正常数据流中读取带外数据
1 设置SO_OOBINLINE(改变socket读取数据的行为)
2 通过int sockatmark(int sockfd),来标记带外数据的出现
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。