带外数据
程序员文章站
2022-06-05 22:04:27
...
概述
许多传输层有带外数据的概念,有时候也称经加速数据。其想法是一个连接的某端发生了重要的事情,而且该端希望迅速通告其对端。这里的“迅速”意味着这种通知在已经排队等待发送的任何“普通”数据之前发送,也就是优先级更高。
-
TCP带外数据
TCP没有真正的带外数据,不过提供了紧急模式。假设一个进程已经往一个TCP套接字写出N字节数据,而且TCP把这些数据排队在该套接字的发送缓冲区中,等着发送到对端。即
该进程接着以MSG_OOB标志调用send函数写出一个含有ASCII字符a的单字节带外数据:
send(fd, "a", 1, MSG_OOB);
TCP把这个数据放置在该套接字发送缓冲区的下一个可用位置,并把该链接的TCP紧急指针设置成再下一个可用位置,并把带外字节标记为“OOB”: