描述一個網(wǎng)絡中各個協(xié)議層的常用方法是使用國際標準化組織(ISO)的計算機通信開放系統(tǒng)互連(open systems interconnection , OSI)模型。![]() (圖片來自《UNIX網(wǎng)絡編程卷一》)
OSI模型的低下兩層是隨系統(tǒng)提供的設(shè)備驅(qū)動程序和網(wǎng)絡硬件,一般不必關(guān)心它們。TCP和UDP之間留有空隙,表明網(wǎng)絡應用繞過傳輸層直接使用IPV4和IPV6是可能的,即原始套接字。 套接字(socket)編程接口是從頂上三層(網(wǎng)絡協(xié)議的應用層)進入傳輸層的接口。除了提到的原始套接字,套接字編程可以徹底繞過IP層直接讀寫數(shù)據(jù)鏈路層的幀。 為什么套接字提供的是從OSI模型的頂上三層進入傳輸層的接口,有兩個原因: 1)頂上三層處理具體網(wǎng)絡應用(如FTP、HTTP)的所有細節(jié),而對通信細節(jié)了解很少;低下四層對具體網(wǎng)絡應用了解不多,卻處理所有的通信細節(jié)(發(fā)送數(shù)據(jù)、等待確認、校驗等)。 2)頂上三層通常構(gòu)成所謂的用戶進程,底下四層卻通常作為操作系統(tǒng)內(nèi)核的一個部分提供?,F(xiàn)代操作系統(tǒng)都提供分隔用戶進程與內(nèi)核的機制。 所以,在第4層和第5層之間的接口是構(gòu)建API的自然位置。 |
|
來自: 風雪夜歸人_95 > 《網(wǎng)絡》