一分鐘了解 TCP IP 模型

2021-08-18 13:26:29 字數 1897 閱讀 2683

原文講的不是特別細,為了便於理解,我顛倒了順序。

寫在開始我們需要知道協議到底是什麼。

在網路上,乙個協議對應於管理系統之間如何相互通訊的規則。

然後我們需要知道什麼是協議族。

乙個協議族是一系列協同工作的協議的集合。

什麼是 tcp/ip 模型?tcp/ip(傳輸控制協議/網際網路協議)由 darpa 在 20 世紀 70 年代提出。這個模型來自於 arpanet,它同樣也是個知名的「網際網路模型」。tcp/ip 模型有四個抽象的層次,描述了總體的設計大綱,並實現了網路通訊的具體協議。我們將會簡短地討論每個層次最為流行的協議。

1. 網路訪問層(資料連線 + 物理層)

網路訪問層包括主機連線到物理網路所需要的硬體以及傳送資料的協議。目標可以是網路上的其他主機,自己,或者遠端的路由。網際網路層具有整個網際網路絡的檢視,而網路訪問層僅限於像路由之類的第三層裝置定義的物理層邊界。

這個層次的協議取決於所使用的物理網路。如果物理網路是 lan,那麼通常使用的是乙太網(802.3)協議以及它的變體,如果使用的是 wan,常用的則是點對點協議(ppp)以及幀中繼等協議。

比較出名的是乙太網協議。兩台電腦(主機)之間是通過網絡卡來進行傳送和接收資料的。每個網絡卡都有乙個獨特的位址,也就是 mac 位址。乙太網資料以幀為單位,包括標頭和資料部分。乙太網在子網內以廣播的形式傳送資料。光有 mac 位址並不能讓兩台主機之間相互通訊,如果兩台主機不在同乙個子網,乙太網協議就沒轍了。這就要通過網路層來區分每台主機所在的網路是哪個子網。如果在同乙個子網,就用廣播傳送資料,否則就用路由傳送。這就導致了網路層的誕生。

2. 網路層(網際網路層)

網路層的主要任務是區分主機是不是在同乙個子網。網路層將上一層(傳輸層)接收到的資料分發到目標主機(在同乙個網路或者外部網路)。這層確保片段通過網路移動到目標網路。於是引入了所謂的網路位址,即**。規定網路位址的協議就叫 ip 協議。所以網路位址也稱 ip 位址。ip 協議的資料報放在乙太網資料報的資料部分,也分為標頭和資料兩部分。有了 ip 協議,就可以在兩個主機之間傳送資料了,接下來的問題在於每台主機都有不同的應用,如何區分哪個資料報屬於哪個程式?這就是傳輸層的由來。

3. 傳輸層

傳輸層的主要任務是為應用層提供會話以及資料報通訊服務。它接收應用層的資料,然後把它們分成更小的單元(標頭和資料部分在網路層的資料部分),傳輸到網路層。

這層的任務是確保分割的單元在另一端正確地到達,它關心資料端到端的傳輸以及建立主機之間的邏輯連線,即所謂建立埠到埠的連線。網路層建立主機到主機的連線,只要有主機和埠,就能確定資料報屬於哪個程式的。unix 系統把主機 + 埠稱之為套接字(socket)。

這一層主要有兩個協議:tcp 和 udp。

4. 應用層

這個層次讓應用能夠訪問其他層次的服務,並且定義了讓應用交換資料的協議。這一層新增了自己的標頭並向下傳送到傳輸層。這一層的主要任務是將接收到的資料報按照協議解讀成各種型別的資料,並將要傳送的資料打包進傳輸層。現在資料報的格式看起來是這樣的(以 http 為例):

|——| |——| |——| |——| |——————-|

乙太網標頭 ip標頭 tcp標頭 http標頭 資料部分

這一層主要的協議有:http、ftp、smtp、telnet、nfs、rip 等等。

一分鐘sed入門(一分鐘系列)

1.簡介 sed是一種行編輯器,它一次處理一行內容。2.sed呼叫方式 sed options command file s sed options f scriptfile file s 第一種直接在命令列中執行,第二種把命令寫到了指令碼中,二者無本質區別。示例 1 列印hello.txt的內容 ...

一分鐘了解索引技巧

花1分鐘時間,了解聚集索引,非聚集索引,聯合索引,索引覆蓋。舉例,業務場景,使用者表,表結構為 t user uid primary key,login name unique,passwd,login time,age,聚集索引 clustered index 聚集索引決定資料在磁碟上的物理排序,...

一分鐘了解負載均衡

什麼是負載均衡 負載均衡 load balance 是分布式系統架構設計中必須考慮的因素之一,它通常是指,將請求 資料 均勻 分攤到多個操作單元上執行,負載均衡的關鍵在於 均勻 常見的負載均衡方案 常見網際網路分布式架構如上,分為客戶端層 反向 nginx層 站點層 服務層 資料層。可以看到,每乙個...