一樣的,本文篇幅也比較長,先來一張思惟導圖,帶你們過一遍。前端
從字面意義上講,有人可能會認爲 TCP/IP 是指 TCP 和 IP 兩種協議。實際生活當中有時也確實就是指這兩種協議。然而在不少狀況下,它只是利用 IP 進行通訊時所必須用到的協議羣的統稱。具體來講,IP 或 ICMP、TCP 或 UDP、TELNET 或 FTP、以及 HTTP 等都屬於 TCP/IP 協議。他們與 TCP 或 IP 的關係緊密,是互聯網必不可少的組成部分。TCP/IP 一詞泛指這些協議,所以,有時也稱 TCP/IP 爲網際協議羣。
互聯網進行通訊時,須要相應的網絡協議,TCP/IP 本來就是爲使用互聯網而開發制定的協議族。所以,互聯網的協議就是 TCP/IP,TCP/IP 就是互聯網的協議。編程
包、幀、數據包、段、消息
以上五個術語都用來表述數據的單位,大體區分以下:緩存
每一個分層中,都會對所發送的數據附加一個首部,在這個首部中包含了該層必要的信息,如發送的目標地址以及協議相關信息。一般,爲協議提供的信息爲包首部,所要發送的內容爲數據。在下一層的角度看,從上一層收到的包所有都被認爲是本層的數據。安全
網絡中傳輸的數據包由兩部分組成:一部分是協議所要用到的首部,另外一部分是上一層傳過來的數據。首部的結構由協議的具體規範詳細定義。在數據包的首部,明確標明瞭協議應該如何讀取數據。反過來講,看到首部,也就可以瞭解該協議必要的信息以及所要處理的數據。包首部就像協議的臉。服務器
下圖以用戶 a 向用戶 b 發送郵件爲例子:網絡
TCP/IP 中有兩個具備表明性的傳輸層協議,分別是 TCP 和 UDP。數據結構
數據鏈路和 IP 中的地址,分別指的是 MAC 地址和 IP 地址。前者用來識別同一鏈路中不一樣的計算機,後者用來識別 TCP/IP 網絡中互連的主機和路由器。在傳輸層也有這種相似於地址的概念,那就是端口號。端口號用來識別同一臺計算機中進行通訊的不一樣應用程序。所以,它也被稱爲程序地址。socket
一臺計算機上同時能夠運行多個程序。傳輸層協議正是利用這些端口號識別本機中正在進行通訊的應用程序,並準確地將數據傳輸。函數
下面來看看三次握手的流程圖:性能
下面來看看四次揮手的流程圖:
上面是一方主動關閉,另外一方被動關閉的狀況,實際中還會出現同時發起主動關閉的狀況,
具體流程以下圖:
TCP 以1個段爲單位,每發送一個段進行一次確認應答的處理。這樣的傳輸方式有一個缺點,就是包的往返時間越長通訊性能就越低。
爲解決這個問題,TCP 引入了窗口這個概念。確認應答再也不是以每一個分段,而是以更大的單位進行確認,轉發時間將會被大幅地縮短。也就是說,發送端主機,在發送了一個段之後沒必要要一直等待確認應答,而是繼續發送。以下圖所示:
窗口大小就是指無需等待確認應答而能夠繼續發送數據的最大值。上圖中窗口大小爲4個段。這個機制實現了使用大量的緩衝區,經過對多個段同時進行確認應答的功能。
在使用窗口控制中, 出現丟包通常分爲兩種狀況:
28 | 28 | 28 | 28 | |
---|---|---|---|---|
10101100 | 00010100 | 00000001 | 00000001 | (2進制) |
10101100. | 00010100. | 00000001. | 00000001 | (2進制) |
172. | 20. | 1. | 1 | (10進制) |
相比於廣播,多播既能夠穿透路由器,又能夠實現只給那些必要的組發送數據包。請看下圖:
IP 地址 | 172. | 20. | 100. | 52 |
---|---|---|---|---|
子網掩碼 | 255. | 255. | 255. | 192 |
網絡地址 | 172. | 20. | 100. | 0 |
子網掩碼 | 255. | 255. | 255. | 192 |
廣播地址 | 172. | 20. | 100. | 63 |
子網掩碼 | 255. | 255. | 255. | 192 |
IP 地址 | 172. | 20. | 100. | 52 | / 26 |
---|---|---|---|---|---|
網絡地址 | 172. | 20. | 100. | 0 | / 26 |
廣播地址 | 172. | 20. | 100. | 63 | / 26 |
未定義 | 0000 ... 0000(128比特) | ::/ 128 |
---|---|---|
環回地址 | 0000 ... 0001(128比特) | ::1 / 128 |
惟一本地地址 | 1111 110 | FC00:/ 7 |
鏈路本地單播地址 | 1111 1110 10 | FE80::/ 10 |
多播地址 | 1111 1111 | FF00::/ 8 |
全局單播地址 | (其餘) |