A. 謝有TCP/IP詳解的代碼有能發我一分嗎
一、分層
1、網路協議通常分不同層次進行開發,每一層分別負責不同的通信功能。
2、TCO/IP通常被認為是一個四層協議系統:
1)、鏈路層,有時候也被稱作數據鏈路層或網路介面層,通常包括操作系統中的設備驅動程序和計算機中對應的網路介面卡。它們一起處理與電纜(或其他任何傳輸媒介)的物理介面細節。
2)、網路層,有時也稱作互聯網層,處理分組在網路中的活動。在TCP/IP協議族中,網路層協議包括IP協議(網際協議),ICMP協議(internet互聯網控制報文協議),以及IGMP協議(internet組管理協議)。
3)、運輸層主要為兩台主機上的應用程序提供端到端的通信。在TCP/IP協議族中,有兩個互不相同的傳輸協議:TCP(傳輸控制協議)和UDP(用戶數據報協議)。
4)、應用層負責處理特定的應用程序細節。
3、在TCP/IP協議族中,網路層IP提供的是一個不可靠的服務,它只是盡可能快地把分組從源節點送到目的節點,不提供任何可靠性的保證。另一方面,TCP在不可靠的IP層上提供一個可靠的運輸層。
二、TCP/IP的分層
1、TCP/IP協議族中不同層次的協議
1)、幀頭和幀尾所標注的數字是典型乙太網首部的長度。
2)、乙太網數據幀的物理特性是其長度必須在46~1500位元組之間。
3)、圖中IP和網路介面層傳送的數據單元應該是分組。分組既可以是一個IP數據報,也可以是IP數據報的一個片。
4)、UDP數據和TCP數據基本一致。唯一不同的是UDP傳送給IP的信息單元稱作UDP數據報,而UDP首部的長度為8位。
5)、由於TCP、UDP、ICMP、IGMP都要向IP傳送數據,因此IP必須在生成的IP首部加入某種標識,以表明數據屬於那一層。IP在首部存入一個長度為8位的數值,稱作協議域。1表示IGMP協議,2表示ICMP協議,6表示TCP協議,17表示UDP協議。
6)、TCP、UDP、網路介面也要在首部加入標識符。
2、當應用程序用TCP傳送數據時,數據被送入協議棧中,然後逐個通過每一層直到被當作一串比特流送入網路。其中每一層對收到的數據都要添加一些首部信息(有時還要添加尾部信息)。
3、TCP傳給IP的數據單元稱作TCP報文段或簡為TCP段,IP傳給網路介面層的數據單元稱作IP數據報。通過乙太網傳輸的比特流稱作數據幀。
六、分用
當目的主機收到一個乙太網數據幀時,數據就開始從協議棧中由低往上升,同時去掉各層協議加上的報文首部。每層協議盒都要去檢查報文首部中的協議標識,以確定接受數據的上層協議。這個過程稱作分用。還有乙太網數據幀的分用過程
七、客戶-伺服器模型
1、伺服器提供的服務分兩種類型:
1)、重復型
2)、並發型
2、重復型伺服器通過以下步驟進行交互:
I、等待一個客戶請求的到來
II、處理客戶請求
III、發送響應給發送請求的客戶
IV、返回第I步
3、並發型伺服器採用以下步驟:
I、等待一個客戶請求的到來
II、啟動一個新的伺服器來處理這個請求
III、返回第I步
4、一般來說,TCP伺服器是並發的,而UDP伺服器是重復的,但也存在一些例外。
八、埠號
1、伺服器一般都是通過知名埠號來識別的。客戶使用臨時設定的埠號。
2、大多數TCP/IP實現給臨時埠分配1024~5000之間的埠號。大於5000的埠號是為其他伺服器預留的。
3、Uinx系統有保留埠號的概念。只有超級用戶特權的進程才允許給它自己分配一個保留埠號。