Linux網路程式設計學習筆記 TCP IP基礎 1

2021-07-27 11:00:26 字數 3247 閱讀 2805

層級名稱

作用傳輸單位

應用層提**用程式間通訊

表示層處理資料格式,資料加密等

ppdu(presentation)

會話層建立,維護和管理會話

spdu(session)

傳輸層建立端到端鏈結

segment(段)

網路層定址和路由選擇

packet(包

資料鏈路層

介質訪問,鏈路管理

frame(幀)

物理層位元流傳輸

b(位元)

*pdu(protocoldataunit)

物理層

物理層(physical layer):物理層定義了所有電子及物理裝置的規範,為上層傳輸提供了乙個物理介質,本層的資料傳輸單位為位元流(b),屬於本層定義的規範有eia/tia rs-232、eia/tia rs-449、v 35、rj-45等,實際使用中的裝置如網絡卡等屬於本層。

資料鏈路層(data link layer)

資料鏈路層(data link layer):對物理層收到的位元流進行資料成幀,提供可靠的資料傳輸服務,實現無差錯資料傳輸。再資料鏈路層中資料的單位為幀(frame),屬於本層定義的規範有sdlchdlcpppstp幀中繼等實際使用中的裝置如switch交換機屬於本層。

網路層(network layer)

網路層負責講各個子網之前的資料進行路由選擇,分組與重組。本層中資料的傳輸單位為資料報(packet)。實際屬於本層定義的規範有ipipx,rip,ospf,icmp,igmp等。實際使用中的裝置如路由器屬於本層。

傳輸層(transport layer)

提供可靠的資料傳輸服務,它檢測路由器丟棄的包,然後產生乙個重傳的請求,能夠將亂序收到的資料報重新排序。

會話層(session layer)

管理主機之間的會話程序,包括會話建立、終止和會話過程中的管理。

表示層(pressentatian layer)

表示層對網路傳輸的資料進行交換,使得多個主機之間傳送的資訊能夠相互理解,包括資料的壓縮,加密,格式轉換等。

應用層與應用程式介面溝通,以達至展示給使用者的目的,再次常見的協議有:http,https,ftptelnet,ssh,ssh,smtp,pop3等。

tcp/ip各層中所支援的協議如下圖所示,來自於草根老師部落格(程姚根)。

區域網中兩個ftp伺服器通訊的過程如下圖所示,來自於c++教程網

從上圖中我們可以看到的是:

-兩個主機通訊的前提是使用一樣的協議。

-在網路分層中,每一層使用不同的協議。

-每一層不關心另一層的處理與實現。

-核心當中已經提供了協議棧的實現。

廣域網中,資料傳輸需要經過很多的路由器,這時典型的tcp/ip四層模型如下圖所示,來自於c++教程網

對等通訊是指在tcp/ip協議中,每一層之間採用相同的協議,主機與主機在通訊過程中每一層遮蔽了下一層的細節,相同層級層之間的通訊像是建立起了虛電路(邏輯流)。

封裝是將資料打上對應頭部,讓對等方知道雙方具有一樣的語言,交付給下一層進行通訊。封裝之後對等方就能認識資料,從而能夠進行一定的解析。**見水印。

與資料封裝對應的是資料的解封,也稱之為資料的分用。

資料的分用可以理解為將資料去頭轉交給對應上層的過程,過程如下圖所示。

ip可以標識一台主機,但是不能標識這台主機上的某乙個服務,這個時候就需要用到埠的概念。

1.總所周知埠(well know ports):從0到1023,這些埠由iana分配和控制他們緊密繫結於一些服務。通常這些埠的通訊明確表明了某種服務的協議。例如:21埠為ftp服務埠。

2.註冊埠(registered port):從1024到49151。那些埠不收iana控制,但由iana登記並提供使用情況清單。他們鬆散地繫結於一些服務。也就是說有許多服務繫結這這些埠,這些埠通用用於許多其他目的。例如:1433 microsoft sql服務埠。

3.動態或私有埠(dynamic or private ports):從49152到65535。iana不管這些埠。實際上,機器通常從1024起到分配動態埠。但也有路外:sunde rpc埠從32768開始。

Linux網路程式設計學習筆記(五)

通過捕捉sigchld訊號捕捉殭屍程序,可解決多個子程序同時連線的情況 伺服器端 include include include include include include include include include void error handling char message void...

Linux網路程式設計學習筆記 索引

一 linux基本知識 學習筆記 linux平台的檔案i o操作 學習筆記 linux平台的檔案,目錄及操作 linux學習筆記 標準輸入輸出 linux學習筆記 程序概念及控制 linux學習筆記 訊號處理 二 程序間通訊 三 傳輸層協議tcp和udp 四 tcp套接字 五 udp資料報 六 套接...

linux網路程式設計筆記

以下是對我之前學習的linux網路程式設計的一些筆記。int socket int domain,int type,int protocol type這個引數,可以加上乙個 sock nonblock,把套接字設定為非阻塞,保證這一設定的原子性。int listen int sockfd,int b...