TCP/IP模型的學習-應用層

TCP/IP協議四層模型示意圖

TCP/IP模型的學習-應用層

TCP/IP協議四層模型示意圖


Ⅳ.應用層

TCP/IP應用層,是協議棧與主機上的應用程序或進程進行交互的地方,也可以叫作處理層(Process Layer)

TCP/IP應用層定義了進程應用程序進行交互的用戶接口,該層也出現了TCP/IP協議與服務之間的常見重疊。例如文件傳輸協議(File Transfer Protocol,FTP)遠程終端協議Telnet,代表了特定的、基於TCP/IP的協議,定義了用於文件傳輸、終端仿真等服務。

一般情況下,知名的、基於TCP/IP的服務都使用TCP傳輸,即可控制的傳輸。

某些服務,比如網絡文件系統(Network File System,NFS)IP語音(Voice over IP,VoIP)

以及各種形式的流媒體,包括H.323協議支持的流媒體,使用UDP傳輸。這類協議對即時性要求較高。

無論使用哪一種傳輸方式,高級網絡服務都與其網絡協議中的IP有關,也因此,網絡層要提供單獨的協議,以便提供專用的網絡服務。

TCP/IP服務的運行依賴兩個要素:

守護程序:在UNIX系統中,有一個稱為守護程序(daemon)的特殊“偵聽進程”運行在服務器上,處理特定服務的入站用戶請求。

TCP/IP模型的學習-應用層

Linux系統使用netstat命令查詢端口和服務狀態

端口地址:TCP/IP服務有一個相應的端口地址(端口號),端口地址使用16位數值表示,用於識別特定的進程和服務。在範圍0~1024之間的端口地址稱為公認端口地址(Well-Known Port Address),此類端口地址將特定的端口地址與特定的服務關聯起來。(FTP的公認端口地址為端口21。)

TCP/IP模型的學習-應用層

使用netstat查詢Windows當前端口和服務狀態

任何守護程序或偵聽進程本質上都是在運行中等待,偵聽與其服務相對應的公認端口地址上的連接企圖。

關於端口,還有一個概念,Web統一資源定位符URL(Uniform Resource Locator,URL),公認端口地址經常可以作為配置選項進行修改,因此每次都可在字符串域名部分的末尾看到不同的端口地址。例如www.xxx.com:8080,指明使用的端口地址是8080,而不是默認的標準端口地址80來建立連接。

當一個連接請求到達時,偵聽進程檢驗是否允許處理該請求。若偵聽進程允許,在UNIX中,會創建另一個臨時進程,在Windows中,會生成一個獨立的執行線程,用來處理這個特殊請求。

臨時進程或是執行線程,僅僅持續到服務足以處理用戶請求的時刻為止,並使用範圍在1025~65535之間的臨時端口地址處理用戶請求。

當處理某個特定請求的進程或線程創建完畢,偵聽進程或守護進程就返回到位該服務偵聽其他請求的工作狀態。

有時,服務會是用4個端口地址,以便雙方能夠同時管理不同的連接,使用不同的連接可以實現數據傳輸和控制信息的分離。


分享到:


相關文章: