IP基礎之應用程序接口

TCP/IP基礎之應用程序接口

在“TCP/IP基礎之數據封裝”中我們曾提到,網絡分層中的每個層相互之間會用接口進行交互並提供服務,其中應用層與用戶之間的接口稱之為應用程序接口(Application Programming Interface,簡稱API)。API實際上是一種功能集合,也可說是定義、協議的集合,無論是哪種集合,它的實質都是通過抽象來為用戶屏蔽實現上的細節和複雜性。

API的主要目的是提供應用程序給開發人員基於某軟件或硬件得以訪問一組例程的能力,而又無需訪問源碼,或理解內部工作機制的細節。

從用戶角度看,應用程序接口表現為一系列API函數,用戶可以使用這些函數進行網絡應用程序開發。

從網絡角度看,應用程序接口給用戶提供了一組方法,用戶可以使用這組方法嚮應用層發送業務請求、信息和數據,網絡中的各層則依次響應,最終完成網絡數據傳輸。

API的作用主要體現在以下幾個方面。

  • 遠程過程調用(RPC,Remote Procedure Call Protocol):通過作用在共享數據緩存器上的過程(或任務)實現程序間的通信。
  • 標準查詢語言(SQL):是標準的訪問數據的查詢語言,通過通用數據庫實現應用程序間的數據共享。
  • 文件傳輸:通過發送格式化文件實現應用程序間數據共享。
  • 信息交付:指松耦合或緊耦合應用程序間的小型格式化信息,通過程序間的直接通信實現數據共享。

應用層的應用程序接口有很多,並且發展很快,比較常見的包括Socket、FTP、HTTP以及Telnet。

這些接口從大類上可分為四類:

  • 遠程過程調用(RPC)接口
  • 數據查詢接口
  • 文件類接口
  • 數據通信接口

例如FTP協議屬於文件類接口,基於FTP用戶可以實現文件在網絡間的共享和傳輸。而Socket和HTTP可歸結為數據通信接口,基於這兩種接口用戶可以開發網絡通信應用程序,以及Web頁面交互程序。

如果從編程開發角度看,無論是FTP、HTTP還是Telnet,都是基於Socket接口開發出來的應用層協議,是對Socket接口的進一步封裝和抽象,從而為用戶提供更高一層的服務和接口。

常用的Socket類型有兩種:流式Socket(SOCK_STREAM)和數據報式Socket(SOCK_DGRAM)。

  • 流式socket是一種面向連接的socket,針對於面向連接的TCP服務應用。
  • 數據報式socket是一種無連接的socket,對應於無連接的UDP服務應用。

從用戶接口意義上講,還有傳輸層的TLI接口,是由AT&T開發的,有時也稱作XTI。它是傳輸層為用戶提供的應用程序接口,可以用來在傳輸層進行應用開發。


分享到:


相關文章: