TCP/IP協議軟件接口


協議軟件接口

從操作系統層面來看,系統內核集成了對TCP/IP的具體實現,具有常用協議應用能力,協議實現在內核空間執行

從應用程序層面來看,各類涉及網絡通信的應用程序都通過系統中的協議實現完成數據交互過程,應用程序在用戶空間執行

那么對於兩個不同層次上的實現,應用程序如何訪問操作系統內核中協議實現的具體功能呢?

協議軟件接口承擔應用程序與操作系統協議實現之間的橋梁作用,它封裝了協議實現的基本功能,開放系統調用接口以簡化操作,使得應用程序可以用系統調用的方式方便地使用協議實現提供的數據傳輸功能

依賴於底層操作系統的不同,目前常用的協議軟件接口有:
● Berkeley Socket:加州大學伯克利分校為Berkeley UNIX操作系統定義的套接字接口;
● Transport Layer Interface:AT&T為其System V定義的傳輸層接口;
● Windows Sockets:Windows系統下的套接字接口。

協議軟件接口的功能

TCP/IP被設計成能運行於多個廠商環境之下。為了與各種不同的機器保持兼容,TCP/IP的設計者們仔細地避免使用任何一個廠商的內部數據表示,另外TCP/IP標准還仔細地避免讓接口使用那些只能在某一個廠商的操作系統中可用的特征。因此TCP/IP和使用它的應用之間的接口是不精確指明的。

接口必須支持如下概念性操作:
● 分配用於通信的本地資源。
● 指定本地和遠程通信端點。
● (客戶端)啟動連接。
● (服務器端)等待連接到來。
● 發送或接收數據。
● 判斷數據何時到達。
● 產生緊急數據。
● 處理到來的緊急數據。
● 從容終止連接。
● 處理來自遠程端點的連接終止。
● 異常終止通信。
● 處理錯誤條件或連接異常終止。
● 連接結束后釋放本地資源。

要特別注意協議軟件接口的“接口”功能,即協議軟件接口為網絡應用程序和操作系統協議棧建立了調用的關聯,協議軟件接口的功能主要體現在關聯的能力上,如創建用於關聯的標識,為網絡操作分配資源、拷貝數據、讀取信息等,而真實的網絡通信功能是由協議棧具體完成的程序邏輯是由網絡應用程序部署的

以發送接口為例,數據的發送究竟是由發送接口完成還是由系統協議棧完成呢?實際上,發送接口函數僅僅完成了兩個工作:第一,將數據從應用程序緩沖區拷貝到內核緩沖區;第二,向系統內核通知應用程序有新的數據要發送。真正負責發送數據的是協議棧。因此,發送接口函數成功返回並非意味着數據已經發送出去,此時數據有可能還保留在協議棧中等待發送,也有可能已經被發送到網絡中,這依賴於協議的選擇和當前的網絡環境、系統環境等諸多因素。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM