帶外數據(out—of—band data),有時也稱為加速數據(expedited data),
是指連接雙方中的一方發生重要事情,想要迅速地通知對方。
這種通知在已經排隊等待發送的任何“普通”(有時稱為“帶內”)數據之前發送。
帶外數據設計為比普通數據有更高的優先級。
帶外數據是映射到現有的連接中的,而不是在客戶機和服務器間再用一個連接。
在字節流服務中,由於沒有報文邊界,用戶進程在某一時刻可以讀或寫任意數量的字節。為保證傳輸正確或采用有流控制的協議時,都要進行緩存。但對某些特殊的需求,如交互式應用程序,又會要求取消這種緩存。
在數據傳送過程中,希望不通過常規傳輸方式傳送給用戶以便及時處理的某一類信息,如UNIX系統的中斷鍵(Delete或Control-c)、終端流控制符(Control-s和Control-q),稱為帶外數據。邏輯上看,好象用戶進程使用了一個獨立的通道傳輸這些數據。該通道與每對連接的流相聯系。由於Berkeley Software Distribution中對帶外數據的實現與RFC 1122中規定的Host Agreement 不一致,為了將互操作中的問題減到最小,應用程序編寫者除非與現有服務互操作時要求帶外數據外,最好不使用它。
-----------------------------------------------------------------------------------
網絡上對out of band的說法:
帶外數據(out—of—band data),有時也稱為加速數據(expedited data),
是指連接雙方中的一方發生重要事情,想要迅速地通知對方。這種通知在已經排隊等待發送的任何“普通”(有時稱為“帶內”)數據之前發送。帶外數據設計為比普通數據有更高的優先級。帶外數據是映射到現有的連接中的,而不是在客戶機和服務器間再用一個連接。
---------------------------------------------------
在數據傳送過程中,希望不通過常規傳輸方式傳送給用戶以便及時處理的某一類信息,如UNIX系統的中斷鍵(Delete或Control-c)、終端流控制符(Control-s和Control-q),稱為帶外數據。邏輯上看,好象用戶進程使用了一個獨立的通道傳輸這些數據。該通道與每對連接的流相聯系。由於Berkeley Software Distribution中對帶外數據的實現與RFC 1122中規定的Host Agreement不一致,為了將互操作中的問題減到最小,應用程序編寫者除非與現有服務互操作時要求帶外數據外,最好不使用它。
http://www.cic.tsinghua.edu.cn/sys/book2/twosocket.htm
------------------------------------------------------
帶外數據上面的兄台說的很清楚了,就是為了在正常數據流之外能及時的通知到應用程序有異常事件發生,對帶外數據的實現一般使用BSD的緊急數據指針方式,即TCP只保證將緊急數據之前的所有數據一起返回給應用程序,而應用程序怎樣處理這個事件完全由自己決定,甚至可以認為是一般的數據而不加以特別對待,所以對於一些設計不太合理的程序,比如根本不判斷read的返回值之類的,反而根本不會受到OOB的影響。
正因為一般緊急數據夾在正常數據流中,而你的網絡截獲程序一般是從連路層取包,這時根本沒有緊急數據的概念(在TCP這層),當然可以捕到了
------------------------------------------------------
補充一點,帶外數據的發送和接收:send(sockfd,"a",1,MSG_OOB);recv(sockfd,&outofband,1,MSG_OOB);
----------------------------------
能補充的只有一句了TCP/IP詳解卷一
----------------------------------
說明TCP協定傳送資料的方式是一種資料流型的傳輸型態.
也就是資料像流水般有次序地由本端主機流向(傳送到)遠方主機.
而遠端主機則依序自資料流中讀取資料,將它傳給應用程式去處理.
可是,有些時候有些資料必須優先加以處理.當接收端發現在資料中有緊急封包存在時,
它必須儘量加以優先處理,這時候接收端會進入urgent mode,開始接收urgent data,
將它pass給應用程式,而緊急封包表頭中的URGENT POINTER則指出urgent data的
終止點(在receiver buffer中的位置).當urgent data消化完畢後,
TCP則告知應用程式回到正常的接收狀態.由於此一類型的封包打斷了原先很有次序的傳輸方式,
就好像一團正在合協氣氛下演奏時,突然冒出來的雜音一般.因此便將它稱為不協調(out of band)的資料.
以上資料摘錄於"方盈"編著的TCP/IP通訊協定-入門與應用
http://bit.kuas.edu.tw/~cjtu/project/cjtu/oobd.html