如何毀掉一個嬰兒?
斷了他的奶。
如何毀掉一個年輕人?
斷了他的網。
「網絡之於年輕人,正如同奶水之於嬰兒」網絡
什麼是網?什麼是域名?什麼是IP、Mac地址,端口號?什麼是UDP?什麼是TCP?今天這篇教程,將帶你們學習TCP/IP的知識,「工做中模模糊糊的概念,此次終於理順了!」架構
上世紀 70 年代,隨着計算機技術的發展,計算機使用者意識到:要想發揮計算機更大的做用,就要將世界各地的計算機鏈接起來。可是簡單的鏈接是遠遠不夠的,由於計算機之間沒法溝通。所以設計一種通用的「語言」來交流是必不可少的,這時 TCP/IP 協議就應運而生了。機器學習
TCP/IP(Transmission Control Protocol/Internet Protocol)是傳輸控制協議和網絡協議的簡稱,它定義了電子設備如何連入因特網,以及數據如何在它們之間傳輸的標準。tcp
TCP/IP 不是一個協議,而是一個協議族的統稱,裏面包括了 IP 協議、ICMP 協議、TCP 協議、以及 http、ftp、pop3 協議等。網絡中的計算機都採用這套協議族進行互聯。學習
提到網絡協議棧結構,最著名的當屬 OSI 七層模型,可是 TCP/IP 協議族的結構則稍有不一樣,它們之間的層次結構有如圖對應關係:設計
可見 TCP/IP 被分爲 4 層,每層承擔的任務不同,各層的協議的工做方式也不同,每層封裝上層數據的方式也不同:3d
(1)應用層:應用程序經過這一層訪問網絡,常見 FTP、HTTP、DNS 和 TELNET 協議;視頻
(2)傳輸層:TCP 協議和 UDP 協議;blog
(3)網絡層:IP 協議,ARP、RARP 協議,ICMP 協議等;教程
(4)網絡接口層:是 TCP/IP 協議的基層,負責數據幀的發送和接收。
本教程,就是從底向上分層次對 TCP/IP 的各協議作介紹。
網絡上每個節點都必須有一個獨立的 IP 地址,一般使用的 IP 地址是一個 32bit 的數字,被 . 分紅 4 組,例如,255.255.255.255 就是一個 IP 地址。有了 IP 地址,用戶的計算機就能夠發現並鏈接互聯網中的另一臺計算機。
用 12 位數字組成的 IP 地址很難記憶,在實際應用時,用戶通常不須要記住 IP 地址,互聯網給每一個 IP 地址起了一個別名,習慣上稱做域名。
域名與計算機的 IP 地址相對應,並把這種對應關係存儲在域名服務系統 DNS(Domain Name System) 中,這樣用戶只需記住域名就能夠與指定的計算機進行通訊了。
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(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