1、協議棧
linux的優點之一就是在於它豐富而穩定的網路協議棧,其範圍是從協議無關層(如通用的socket層介面和裝置層)到各種網路協議的實現;對於網路理論介紹一般採用osi模型,但是linux中網路棧的介紹一般分為四層的internet模型
2、網路模型
3、tcp/ip協議族體系結構
4、資料封裝
應用程式資料在傳送到屋裡網路上之前,將沿著協議棧從上往下依次傳遞。每層協議都將在上層協議的基礎上加上自己的頭部資訊(有時還包括尾部資訊),以實現該層的功能,這個過程稱為封裝。
5、tcp/ip協議族
2、傳輸控制協議(tcp)和使用者資料報協議(udp)
3、處於 tcp 和 udp 之上的一組應用協議。它們包括:telnet,檔案傳送協議(ftp),網域名稱服務(dns)和簡單的郵件傳送程式(smtp)等
6、網路層
第一部分稱為網路層。主要包括internet 協議(ip)、網際控制報文協議(icmp)和位址解析協議(arp)
internet 協議(ip)
該協議被設計成互聯分組交換通訊網,以形成乙個網際通訊環境。它負責在源主機和目的地主機之間傳輸來自其較高層軟體的稱為資料報文的資料塊,它在源和目的地之間提供非連線型傳遞服務
網際控制報文協議(icmp)
它實際上不是ip層部分,但直接同ip層一起工作,報告網路上的某些出錯情況。允許網際路由器傳輸差錯資訊或測試報文。
位址解析協議(arp)
arp 實際上不是網路層部分,它處於ip和資料鏈路層之間,它是在32位ip位址和48位實體地址之間執行翻譯的協議
7、傳輸層協議
第二部分是傳輸層協議,包括傳輸控制協議和使用者資料報文協議
傳輸控制協議(tcp):
該協議對建立網路上使用者程序之間的對話負責,它確保程序之間的可靠通訊,所提供的功能如下:
1.監聽輸入對話建立請求
2.請求另一網路站點對話
3.可靠的傳送和接收資料
4.適度的關閉對話
使用者資料報文協議(udp):
這部分主要包括telnet,檔案傳送協議(ftp 和tftp),簡單檔案傳送協議(smtp)和網域名稱服務(dns)等協議
8、ip 協議
ip主要有以下四個主要功能:
資料傳送
定址路由選擇
資料報文的分段
ip的主要目的是為資料輸入/輸出網路提供基本演算法,為高層協議提供無連線的傳送服務.這意味著在ip將資料遞交給接收站點以前不在傳輸站點和接收站點之間建立對話。它只是封裝和傳遞資料,但不向傳送者或接收者報告包的狀態,不處理所遇到的故障
ip包由ip協議頭與協議資料兩部分構成
tcp協議(transmission control protocol,傳輸控制協議)為應用層提供可靠的、面向連線的、基於流(stream)的服務。tcp協議使用超時重傳、資料確認等方式來確保資料報被正確的傳送到目的,因此tcp服務是可靠的。使用tcp協議通訊的雙方必須先建立tcp連線,並且在核心中為該連線維持一些必須的資料結構。當通訊結束時,雙方必須關閉連線以釋放這些核心資料。
8、tcp協議頭部結構
udp協議(user datagram protocol,使用者資料報協議)則與tcp協議完全相反,它為應用層提供不可靠、無連線和基於資料報的服務。不可靠意味著udp協議無法保證資料從傳送端正確的傳送到接收端。如果資料在中途丟失,或者目的端通過資料校驗發現資料錯誤而將其丟棄,則udp協議只是簡單的通知應用層傳送失敗。因此使用udp協議的應用程式通常要自己處理資料確認、超時重傳等邏輯性。
Linux網路程式設計
linux網路程式設計 當然,我們現在,將要開始編寫的第乙個網路程式,雖然非常簡單,但是卻可以很 清楚的說明大部分編寫網路程式需要的基本概念,好了先讓我們看看網路程式的tcp服 務器端的編寫步驟 1.和伺服器的步驟一樣。2.通過設定套介面位址結構,我們說明,客戶端要與之通訊的伺服器的ip位址和 埠。...
linux 網路程式設計
當然,我們現在,將要開始編寫的第乙個網路程式,雖然非常簡單,但是卻可以很 清楚的說明大部分編寫網路程式需要的基本概念,好了先讓我們看看網路程式的tcp服 務器端的編寫步驟 現在讓我們來看看網路程式客戶端的程式設計步驟 以上的步驟,是比較普遍的,我們可以從中看出,編寫網路程式是很有意思的,同 時,也不...
linux 網路程式設計
套接字程式設計 struct sockaddr unsigned short sa family 位址協議,ipv4 tcp ip af inet,ipv6 af inet6 char sa data 14 14位元組的位址協議 struct sockaddr in unsigned short s...