1。網絡應用程序的一般組成
一般來講,可以將網絡應用程序分為兩個部分。一部分專門用來負責通信的模塊;它們與網絡協議棧相連接,借助網絡協議棧提供的服務完成網絡上的數據信息交換;另外一部分是面向用戶或者進行其他處理的模塊,它們接收用戶的命令,或者對借助網絡傳輸過來的數據進行加工。
2。網絡協議棧
規定計算機之間交換的消息格式和含義的協定,被稱為網絡協議或者計算機通信協議。按照分層的模型設計協議,所形成的協議軟件也是按層組織的,使用“棧”這一術語來描述實現整套協議的軟件。
Internet是基于TCP/IP協議棧的。
3。網間進程通信
網間進程通信是指網絡中不同主機的應用進程之間相互通信,當然,也可以把同機進程通信看做是網間通信的特例。網間通信需要解決以下問題。
(1)網間進程標識問題
在同一主機中,不同的進程可以用進程號唯一標識,但是,在網絡環境下,各主機獨立分配進程號已經不能惟一的標識。
在Internet中,用一個三元組可以在全局惟一的標識一個應用進程。
應用進程=(傳輸層協議,主機的IP地址,傳輸層端口)
一個完整的網間通信定義一個五元組在全局惟一的標識。
(傳輸層協議,本地機IP得之,本地機傳輸層端口,遠地機IP地址,遠地機傳輸層端口)。
(2)與網絡協議棧連接的問題
網間通信實際是借助網絡協議棧實現的。對于網絡編程來說,與網絡協議連接,這個問題通過定義套接字網絡編程接口來解決。
(3)多重協議問題
現行的網絡體系結構很多,操作系統往往支持眾多的協議,不同的協議的工作方式不同,地址格式不同,因此網間進程通信需要解決多重協議的識別問題。
(4)不同的通信服務的問題
網間通信所要求的通信服務有不同的要求。在TCP/IP協議棧中,傳輸層有TCP和UDP兩個協議,TCP提供可靠的數據流來傳輸服務,UDP提供不可靠的數據報傳輸服務,需要根據通信服務要求做出選擇。
4。TCP/IP簡介
TCP/IP(Transmission Control/Inetnet Protocol,傳輸控制協議/網際協議)是一系列協議,或者說協議簇,它定義了數據傳輸如何通過因特網進行交換。
圖。TCP/IP協議棧簡圖
5。端口號的分配機制
具體來說,TCP或UDP端口分配規則如下。
端口號 | 用途 |
0 | 不使用,或者作為特殊用途 |
1~255 | 保留給特定服務 |
256~1023 | 保留給其他的服務,如路由 |
1024~4999 | 可以用作任意客戶端口 |
5000~65535 | 可以用作任意的服務器端口 |