网络协议基础:“工作中模模糊糊的概念,这次终于理顺了!”
如何毀掉一個嬰兒?
斷了他的奶。
如何毀掉一個年輕人?
斷了他的網。
“網絡之于年輕人,正如同奶水之于嬰兒”
什么是網?什么是域名?什么是IP、Mac地址,端口號?什么是UDP?什么是TCP?今天這篇教程,將帶大家學習TCP/IP的知識,“工作中模模糊糊的概念,這次終于理順了!”
TCP/IP背景介紹
上世紀 70 年代,隨著計算機技術的發展,計算機使用者意識到:要想發揮計算機更大的作用,就要將世界各地的計算機連接起來。但是簡單的連接是遠遠不夠的,因為計算機之間無法溝通。因此設計一種通用的“語言”來交流是必不可少的,這時 TCP/IP 協議就應運而生了。
TCP/IP(Transmission Control Protocol/Internet Protocol)是傳輸控制協議和網絡協議的簡稱,它定義了電子設備如何連入因特網,以及數據如何在它們之間傳輸的標準。
TCP/IP 不是一個協議,而是一個協議族的統稱,里面包括了 IP 協議、ICMP 協議、TCP 協議、以及 http、ftp、pop3 協議等。網絡中的計算機都采用這套協議族進行互聯。
網絡協議棧架構
提到網絡協議棧結構,最著名的當屬 OSI 七層模型,但是 TCP/IP 協議族的結構則稍有不同,它們之間的層次結構有如圖對應關系:
可見 TCP/IP 被分為 4 層,每層承擔的任務不一樣,各層的協議的工作方式也不一樣,每層封裝上層數據的方式也不一樣:
-
(1)應用層:應用程序通過這一層訪問網絡,常見 FTP、HTTP、DNS 和 TELNET 協議;
-
(2)傳輸層:TCP 協議和 UDP 協議;
-
(3)網絡層:IP 協議,ARP、RARP 協議,ICMP 協議等;
-
(4)網絡接口層:是 TCP/IP 協議的基層,負責數據幀的發送和接收。
本教程,就是從底向上分層次對 TCP/IP 的各協議做介紹。
IP 地址
網絡上每一個節點都必須有一個獨立的 IP 地址,通常使用的 IP 地址是一個 32bit 的數字,被 . 分成 4 組,例如,255.255.255.255 就是一個 IP 地址。有了 IP 地址,用戶的計算機就可以發現并連接互聯網中的另外一臺計算機。
域名
用 12 位數字組成的 IP 地址很難記憶,在實際應用時,用戶一般不需要記住 IP 地址,互聯網給每個 IP 地址起了一個別名,習慣上稱作域名。
域名與計算機的 IP 地址相對應,并把這種對應關系存儲在域名服務系統 DNS(Domain Name System) 中,這樣用戶只需記住域名就可以與指定的計算機進行通信了。
MAC 地址
MAC(Media Access Control)地址,或稱為物理地址、硬件地址,用來定義互聯網中設備的位置。
在 TCP/IP 層次模型中,網絡層管理 IP 地址,鏈路層則負責 MAC 地址。因此每個網絡位置會有一個專屬于它的 IP 地址,而每個主機會有一個專屬于它 MAC 地址。
端口號
IP 地址是用來發現和查找網絡中的地址,但是不同程序如何互相通信呢?這就需要端口號來識別了。如果把 IP 地址比作一間房子 ,端口就是出入這間房子的門。真正的房子只有幾個門,但是端口采用 16 比特的端口號標識,一個 IP 地址的端口可以有 65536(即:2^16)個之多!
常用協議對應端口號:
-
SSH 22
-
FTP 20 和 21
-
Telnet 23
-
SMTP 25
-
TFTP 69
-
HTTP 80
-
SNMP 161
-
Ping 使用ICMP,無具體端口號
封裝和分用
封裝:當應用程序發送數據的時候,數據在協議層次當中自頂向下通過每一層,每一層都會對數據增加一些首部或尾部信息,這樣的信息稱之為協議數據單元(Protocol Data Unit,縮寫為PDU),在分層協議系統里,在指定的協議層上傳送的數據單元,包含了該層的協議控制信息和用戶信息。如下圖所示:
-
物理層(一層)PDU指數據位(Bit)
-
數據鏈路層(二層)PDU指數據幀(Frame)
-
網絡層(三層)PDU指數據包(Packet)
-
傳輸層(四層)PDU指數據段(Segment)
-
第五層以上為數據(data)
RFC
RFC(Request for Comment)文檔是所有以太網協議的正式標準,并在其官網上面公布,由 IETF 標準協會制定。大量的 RFC 并不是正式的標準,出版的目的只是為了提供信息。RFC 的篇幅不一,從幾頁到幾百頁不等。每一種協議都用一個數字來標識,如 RFC 3720 是 iSCSI 協議的標準,數字越大意味著 RFC 的內容越新或者是對應的協議(標準)出現的比較晚。
其他知識點
-
鏈路層介紹
-
IP網際協議
-
網絡層其它協議
-
傳輸層:UDP協議
-
傳輸層:TCP協議
-
應用層協議
完整的教程學習(完全免費),請打開這里:
https://www.shiyanlou.com/courses/98
相關教程推薦:
GO語言模擬實現TCP/IP協議
https://www.shiyanlou.com/courses/1300
相關推薦
50個Python練手項目,拿去過冬吧!
10個不到500行代碼的超牛Python練手項目
10個精彩Python視頻教程整理,10種新技能輕松Get!
30本Python學習參考書,從入門到大師全了!
大牛推薦的10本學習Java必看書
如何開始使用Java機器學習
再別說找不到C++練手項目,這20個拿去不謝!
總結
以上是生活随笔為你收集整理的网络协议基础:“工作中模模糊糊的概念,这次终于理顺了!”的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 昨天521表白失败,我想用Python分
- 下一篇: NumPy 百题大冲关,冲鸭!