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服務有一個相應的端口地址(端口號),端口地址使用16位數值表示,用於識別特定的進程和服務。在範圍0~1024之間的端口地址稱為公認端口地址(Well-Known Port Address),此類端口地址將特定的端口地址與特定的服務關聯起來。(FTP的公認端口地址為端口21。)
任何守護程序或偵聽進程本質上都是在運行中等待,偵聽與其服務相對應的公認端口地址上的連接企圖。
關於端口,還有一個概念,Web統一資源定位符URL(Uniform Resource Locator,URL),公認端口地址經常可以作為配置選項進行修改,因此每次都可在字符串域名部分的末尾看到不同的端口地址。例如www.xxx.com:8080,指明使用的端口地址是8080,而不是默認的標準端口地址80來建立連接。
當一個連接請求到達時,偵聽進程檢驗是否允許處理該請求。若偵聽進程允許,在UNIX中,會創建另一個臨時進程,在Windows中,會生成一個獨立的執行線程,用來處理這個特殊請求。
臨時進程或是執行線程,僅僅持續到服務足以處理用戶請求的時刻為止,並使用範圍在1025~65535之間的臨時端口地址處理用戶請求。
當處理某個特定請求的進程或線程創建完畢,偵聽進程或守護進程就返回到位該服務偵聽其他請求的工作狀態。
有時,服務會是用4個端口地址,以便雙方能夠同時管理不同的連接,使用不同的連接可以實現數據傳輸和控制信息的分離。
閱讀更多 流年排隊 的文章