Transmission Control Protocol/Internet Protocol的簡寫,中譯名爲傳輸控制協議/因特網互聯協議,又名網絡通信協議,是Internet最基本的協議、Internet國際互聯網絡的基礎,由網絡層的IP協議和傳輸層的TCP協議組成。 TCP/IP協議由四層組成,分別爲:網絡訪問層、互聯網層、傳輸層、應用層。那如何理解這四層,他們的做用又是什麼呢?html
所謂四層結構,是將網絡中傳輸的數據包邏輯性的分爲四個層次,從前到後的結構以下所示:linux
重點:設備(包括你的手機、電腦等)讀取數據包的順序是從以上左往右讀取的微信
讓咱們經過wireshark工具看下具體的數據包是長什麼樣子的,以下圖我打開了網頁www.baidu.com。能夠分別看到不一樣層的數據包展現,而且我展開了應用層的數據內容,能夠看到訪問的域名爲www.baidu.com網絡
根據前文《小dai淺談通訊網絡(一)——引子》中描述,小明和小剛的對話得知,須要以下兩點:工具
a.彼此的稱呼 b.雙方交談的方式,包括採用中文等post
那麼這所有在通訊網絡中,分別爲MAC地址和網絡協議族(好比以太網的CSMA/CD等)url
小明和小剛交談,就至關於MAC1(電腦)和MAC2(交換機)通訊。spa
網絡協議族再也不累述。操作系統
網絡訪問層又叫數據鏈路層,該層工做於局域網,通常局域網有以太網、令牌網、點對點連接、FDDI等網絡類型。htm
小明和小剛的交談過程,視爲一種應用,雖然是一種面談。這有點像咱們使用微信進行溝通交流同樣。一樣你在電腦或者手機上,點擊的任何APP(應用軟件)就屬於應用層。
根據前面描述,傳輸層是保障服務質量的,也就是保障小剛和小明的談話內容可以更有效。因此所以我也把他們放在一塊兒描述。
a.首先看下個人電腦上運行的應用層程序微信是什麼樣子的。當我雙擊點開並登錄微信後,能夠在任務管理器裏面看到該程序的進程。他們在操做系統後臺運行的時候,就是進程。
b.咱們經過微信能夠和多我的進行通訊,好比你和小紅是一次通訊、你和小利又是一次通訊,那電腦是如何標記着兩次不一樣的通訊過程。那就是經過傳輸層的端口號來標記的。
如下截圖紅框所示表明了微信的兩次通訊過程:
一次:從本地地址172.18.10.9的端口號63223——>到遠端的113.96.209.106的端口號443
另一次:從本地地址172.18.10.9的端口號64723——>到遠端的182.254.34.159的端口號80
也就經過以上的IP+端口號對標記一次通訊過程。
c.傳輸層有兩種協議,分別是TCP和UDP。至於TCP層如何保證通訊質量的內容了,再聽後文分解。
(3)互聯網層
上面提到標記一次通訊過程,使用的是IP+端口號。那爲啥不直接使用MAC+端口號。而且一般咱們聽到更多的是數據流量在網絡中經過路由轉發(路由轉發即經過IP地址轉發),而不是經過MAC地址轉發。具體MAC地址轉發和IP地址轉發的細節和區別,再聽後文分解。在前面咱們已經說到,MAC地址標記的是通訊設備,而IP地址的用處則是用於尋址,基於域的尋址。這就至關於咱們網購後的快遞,MAC地址表明你的名字,而IP地址表明的是你的收穫地址。收穫地址是怎麼寫的?好比 四川省瀘州市成華區A路B小區。當尋址地址,被標記爲樹形結構,中央集權制的體系,找到目標的路徑將變爲惟一。一樣也增長了尋址的速度。好比對於IP地址192.168.1.3,至關因而這樣的類比192(省).168(市).1(路).3(小區)。基於前面提到的數據包的處理機制爲從左往右讀取,當位於192(省).168(市)的路由設備,就能夠將該數據包轉發到1(路)。基於域的,樹形結構的結構,被使用與除了RIP以外,基本全部的IP路由協議,好比OSPF/ISIS/BGP/PIM等。固然更不用說DNS、linux操做系統的ext文件系統等。
其餘:
1.數據鏈路層,因爲有各類類型,基於IP層的工做模式,能夠屏蔽掉數據鏈層的差別性,進行透明傳輸,不會因爲局域網的不一樣,形成沒法兼容,影響彼此的通訊;
2.數據層通訊的數據包,以太網中叫幀(frame);
IP層叫IP報文(IP datagram);
TCP層叫TCP段(TCP segment)
3.網絡層之間,叫點對點服務;
傳輸層之間,叫端到端服務。