精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

太厲害了,終于有人能把TCP/IP協議講的明明白白了!

開發 前端
從字面意義上講,有人可能會認為 TCP/IP 是指 TCP 和 IP 兩種協議。實際生活當中有時也確實就是指這兩種協議。然而在很多情況下,它只是利用 IP 進行通信時所必須用到的協議群的統稱。具體來說,IP 或 ICMP、TCP 或 UDP、TELNET 或 FTP、以及 HTTP 等都屬于 TCP/IP 協議。

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

一圖看完本文

一、 計算機網絡體系結構分層

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

計算機網絡體系結構分層

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

計算機網絡體系結構分層

不難看出,TCP/IP 與 OSI 在分層模塊上稍有區別。OSI 參考模型注重“通信協議必要的功能是什么”,而 TCP/IP 則更強調“在計算機上實現協議應該開發哪種程序”。

二、 TCP/IP 基礎

1. TCP/IP 的具體含義

從字面意義上講,有人可能會認為 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 就是互聯網的協議。

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

網際協議群

2. 數據包

包、幀、數據包、段、消息

以上五個術語都用來表述數據的單位,大致區分如下:

  • 包可以說是全能性術語;
  • 幀用于表示數據鏈路層中包的單位;
  • 數據包是 IP 和 UDP 等網絡層以上的分層中包的單位;
  • 段則表示 TCP 數據流中的信息;
  • 消息是指應用協議中數據的單位。

每個分層中,都會對所發送的數據附加一個首部,在這個首部中包含了該層必要的信息,如發送的目標地址以及協議相關信息。通常,為協議提供的信息為包首部,所要發送的內容為數據。在下一層的角度看,從上一層收到的包全部都被認為是本層的數據。

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

數據包首部

網絡中傳輸的數據包由兩部分組成:一部分是協議所要用到的首部,另一部分是上一層傳過來的數據。首部的結構由協議的具體規范詳細定義。在數據包的首部,明確標明了協議應該如何讀取數據。反過來說,看到首部,也就能夠了解該協議必要的信息以及所要處理的數據。包首部就像協議的臉。

3. 數據處理流程

下圖以用戶 a 向用戶 b 發送郵件為例子:

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

數據處理流程

① 應用程序處理

首先應用程序會進行編碼處理,這些編碼相當于 OSI 的表示層功能;

編碼轉化后,郵件不一定馬上被發送出去,這種何時建立通信連接何時發送數據的管理功能,相當于 OSI 的會話層功能。

② TCP 模塊的處理

TCP 根據應用的指示,負責建立連接、發送數據以及斷開連接。TCP 提供將應用層發來的數據順利發送至對端的可靠傳輸。為了實現這一功能,需要在應用層數據的前端附加一個 TCP 首部。

③ IP 模塊的處理

IP 將 TCP 傳過來的 TCP 首部和 TCP 數據合起來當做自己的數據,并在 TCP 首部的前端加上自己的 IP 首部。IP 包生成后,參考路由控制表決定接受此 IP 包的路由或主機。

④ 網絡接口(以太網驅動)的處理

從 IP 傳過來的 IP 包對于以太網來說就是數據。給這些數據附加上以太網首部并進行發送處理,生成的以太網數據包將通過物理層傳輸給接收端。

⑤ 網絡接口(以太網驅動)的處理

主機收到以太網包后,首先從以太網包首部找到 MAC 地址判斷是否為發送給自己的包,若不是則丟棄數據。

如果是發送給自己的包,則從以太網包首部中的類型確定數據類型,再傳給相應的模塊,如 IP、ARP 等。這里的例子則是 IP 。

⑥ IP 模塊的處理

IP 模塊接收到 數據后也做類似的處理。從包首部中判斷此 IP 地址是否與自己的 IP 地址匹配,如果匹配則根據首部的協議類型將數據發送給對應的模塊,如 TCP、UDP。這里的例子則是 TCP。

另外嗎,對于有路由器的情況,接收端地址往往不是自己的地址,此時,需要借助路由控制表,在調查應該送往的主機或路由器之后再進行轉發數據。

⑦ TCP 模塊的處理

在 TCP 模塊中,首先會計算一下校驗和,判斷數據是否被破壞。然后檢查是否在按照序號接收數據。***檢查端口號,確定具體的應用程序。數據被完整地接收以后,會傳給由端口號識別的應用程序。

⑧ 應用程序的處理

接收端應用程序會直接接收發送端發送的數據。通過解析數據,展示相應的內容。

三、傳輸層中的 TCP 和 UDP

TCP/IP 中有兩個具有代表性的傳輸層協議,分別是 TCP 和 UDP。

  • TCP 是面向連接的、可靠的流協議。流就是指不間斷的數據結構,當應用程序采用 TCP 發送消息時,雖然可以保證發送的順序,但還是猶如沒有任何間隔的數據流發送給接收端。TCP 為提供可靠性傳輸,實行“順序控制”或“重發控制”機制。此外還具備“流控制(流量控制)”、“擁塞控制”、提高網絡利用率等眾多功能。
  • UDP 是不具有可靠性的數據報協議。細微的處理它會交給上層的應用去完成。在 UDP 的情況下,雖然可以確保發送消息的大小,卻不能保證消息一定會到達。因此,應用有時會根據自己的需要進行重發處理。
  • TCP 和 UDP 的優缺點無法簡單地、絕對地去做比較:TCP 用于在傳輸層有必要實現可靠傳輸的情況;而在一方面,UDP 主要用于那些對高速傳輸和實時性有較高要求的通信或廣播通信。TCP 和 UDP 應該根據應用的目的按需使用。

1. 端口號

數據鏈路和 IP 中的地址,分別指的是 MAC 地址和 IP 地址。前者用來識別同一鏈路中不同的計算機,后者用來識別 TCP/IP 網絡中互連的主機和路由器。在傳輸層也有這種類似于地址的概念,那就是端口號。端口號用來識別同一臺計算機中進行通信的不同應用程序。因此,它也被稱為程序地址。

1.1 根據端口號識別應用

一臺計算機上同時可以運行多個程序。傳輸層協議正是利用這些端口號識別本機中正在進行通信的應用程序,并準確地將數據傳輸。

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

通過端口號識別應用

1.2 通過 IP 地址、端口號、協議號進行通信識別

  • 僅憑目標端口號識別某一個通信是遠遠不夠的。

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

通過端口號、IP地址、協議號進行通信識別

① 和② 的通信是在兩臺計算機上進行的。它們的目標端口號相同,都是80。這里可以根據源端口號加以區分。

③ 和 ① 的目標端口號和源端口號完全相同,但它們各自的源 IP 地址不同。

此外,當 IP 地址和端口號全都一樣時,我們還可以通過協議號來區分(TCP 和 UDP)。

1.3 端口號的確定

  • 標準既定的端口號:這種方法也叫靜態方法。它是指每個應用程序都有其指定的端口號。但并不是說可以隨意使用任何一個端口號。例如 HTTP、FTP、TELNET 等廣為使用的應用協議中所使用的端口號就是固定的。這些端口號被稱為知名端口號,分布在 0~1023 之間;除知名端口號之外,還有一些端口號被正式注冊,它們分布在 1024~49151 之間,不過這些端口號可用于任何通信用途。
  • 時序分配法:服務器有必要確定監聽端口號,但是接受服務的客戶端沒必要確定端口號。在這種方法下,客戶端應用程序完全可以不用自己設置端口號,而全權交給操作系統進行分配。動態分配的端口號范圍在 49152~65535 之間。

1.4 端口號與協議

  • 端口號由其使用的傳輸層協議決定。因此,不同的傳輸層協議可以使用相同的端口號。
  • 此外,那些知名端口號與傳輸層協議并無關系。只要端口一致都將分配同一種應用程序進行處理。

2. UDP

  • UDP 不提供復雜的控制機制,利用 IP 提供面向無連接的通信服務。
  • 并且它是將應用程序發來的數據在收到的那一刻,立即按照原樣發送到網絡上的一種機制。即使是出現網絡擁堵的情況,UDP 也無法進行流量控制等避免網絡擁塞行為。
  • 此外,傳輸途中出現丟包,UDP 也不負責重發。
  • 甚至當包的到達順序出現亂序時也沒有糾正的功能。
  • 如果需要以上的細節控制,不得不交由采用 UDP 的應用程序去處理。
  • UDP 常用于一下幾個方面:1.包總量較少的通信(DNS、SNMP等);2.視頻、音頻等多媒體通信(即時通信);3.限定于 LAN 等特定網絡中的應用通信;4.廣播通信(廣播、多播)。

3. TCP

  • TCP 與 UDP 的區別相當大。它充分地實現了數據傳輸時各種控制功能,可以進行丟包時的重發控制,還可以對次序亂掉的分包進行順序控制。而這些在 UDP 中都沒有。
  • 此外,TCP 作為一種面向有連接的協議,只有在確認通信對端存在時才會發送數據,從而可以控制通信流量的浪費。
  • 根據 TCP 的這些機制,在 IP 這種無連接的網絡上也能夠實現高可靠性的通信( 主要通過檢驗和、序列號、確認應答、重發控制、連接管理以及窗口控制等機制實現)。

3.1 三次握手(重點)

  • TCP 提供面向有連接的通信傳輸。面向有連接是指在數據通信開始之前先做好兩端之間的準備工作。
  • 所謂三次握手是指建立一個 TCP 連接時需要客戶端和服務器端總共發送三個包以確認連接的建立。在socket編程中,這一過程由客戶端執行connect來觸發。

下面來看看三次握手的流程圖:

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

三次握手

  • ***次握手:客戶端將標志位SYN置為1,隨機產生一個值seq=J,并將該數據包發送給服務器端,客戶端進入SYN_SENT狀態,等待服務器端確認。
  • 第二次握手:服務器端收到數據包后由標志位SYN=1知道客戶端請求建立連接,服務器端將標志位SYN和ACK都置為1,ack=J+1,隨機產生一個值seq=K,并將該數據包發送給客戶端以確認連接請求,服務器端進入SYN_RCVD狀態。
  • 第三次握手:客戶端收到確認后,檢查ack是否為J+1,ACK是否為1,如果正確則將標志位ACK置為1,ack=K+1,并將該數據包發送給服務器端,服務器端檢查ack是否為K+1,ACK是否為1,如果正確則連接建立成功,客戶端和服務器端進入ESTABLISHED狀態,完成三次握手,隨后客戶端與服務器端之間可以開始傳輸數據了。

3.2 四次揮手(重點)

  • 四次揮手即終止TCP連接,就是指斷開一個TCP連接時,需要客戶端和服務端總共發送4個包以確認連接的斷開。在socket編程中,這一過程由客戶端或服務端任一方執行close來觸發。
  • 由于TCP連接是全雙工的,因此,每個方向都必須要單獨進行關閉,這一原則是當一方完成數據發送任務后,發送一個FIN來終止這一方向的連接,收到一個FIN只是意味著這一方向上沒有數據流動了,即不會再收到數據了,但是在這個TCP連接上仍然能夠發送數據,直到這一方向也發送了FIN。首先進行關閉的一方將執行主動關閉,而另一方則執行被動關閉。

下面來看看四次揮手的流程圖:

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

四次揮手

  • 中斷連接端可以是客戶端,也可以是服務器端。
  • ***次揮手:客戶端發送一個FIN=M,用來關閉客戶端到服務器端的數據傳送,客戶端進入FIN_WAIT_1狀態。意思是說"我客戶端沒有數據要發給你了",但是如果你服務器端還有數據沒有發送完成,則不必急著關閉連接,可以繼續發送數據。
  • 第二次揮手:服務器端收到FIN后,先發送ack=M+1,告訴客戶端,你的請求我收到了,但是我還沒準備好,請繼續你等我的消息。這個時候客戶端就進入FIN_WAIT_2 狀態,繼續等待服務器端的FIN報文。
  • 第三次揮手:當服務器端確定數據已發送完成,則向客戶端發送FIN=N報文,告訴客戶端,好了,我這邊數據發完了,準備好關閉連接了。服務器端進入LAST_ACK狀態。
  • 第四次揮手:客戶端收到FIN=N報文后,就知道可以關閉連接了,但是他還是不相信網絡,怕服務器端不知道要關閉,所以發送ack=N+1后進入TIME_WAIT狀態,如果Server端沒有收到ACK則可以重傳。服務器端收到ACK后,就知道可以斷開連接了。客戶端等待了2MSL后依然沒有收到回復,則證明服務器端已正常關閉,那好,我客戶端也可以關閉連接了。最終完成了四次握手。

上面是一方主動關閉,另一方被動關閉的情況,實際中還會出現同時發起主動關閉的情況。

具體流程如下圖:

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

同時揮手

3.3 通過序列號與確認應答提高可靠性

  • 在 TCP 中,當發送端的數據到達接收主機時,接收端主機會返回一個已收到消息的通知。這個消息叫做確認應答(ACK)。當發送端將數據發出之后會等待對端的確認應答。如果有確認應答,說明數據已經成功到達對端。反之,則數據丟失的可能性很大
  • 在一定時間內沒有等待到確認應答,發送端就可以認為數據已經丟失,并進行重發。由此,即使產生了丟包,仍然能夠保證數據能夠到達對端,實現可靠傳輸。
  • 未收到確認應答并不意味著數據一定丟失。也有可能是數據對方已經收到,只是返回的確認應答在途中丟失。這種情況也會導致發送端誤以為數據沒有到達目的地而重發數據。
  • 此外,也有可能因為一些其他原因導致確認應答延遲到達,在源主機重發數據以后才到達的情況也屢見不鮮。此時,源主機只要按照機制重發數據即可。
  • 對于目標主機來說,反復收到相同的數據是不可取的。為了對上層應用提供可靠的傳輸,目標主機必須放棄重復的數據包。為此我們引入了序列號。
  • 序列號是按照順序給發送數據的每一個字節(8位字節)都標上號碼的編號。接收端查詢接收數據 TCP 首部中的序列號和數據的長度,將自己下一步應該接收的序列號作為確認應答返送回去。通過序列號和確認應答號,TCP 能夠識別是否已經接收數據,又能夠判斷是否需要接收,從而實現可靠傳輸。

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

序列號和確認應答

3.4 重發超時的確定

  • 重發超時是指在重發數據之前,等待確認應答到來的那個特定時間間隔。如果超過這個時間仍未收到確認應答,發送端將進行數據重發。最理想的是,找到一個最小時間,它能保證“確認應答一定能在這個時間內返回”。
  • TCP 要求不論處在何種網絡環境下都要提供高性能通信,并且無論網絡擁堵情況發生何種變化,都必須保持這一特性。為此,它在每次發包時都會計算往返時間及其偏差。將這個往返時間和偏差時間相加,重發超時的時間就是比這個總和要稍大一點的值。
  • 在 BSD 的 Unix 以及 Windows 系統中,超時都以0.5秒為單位進行控制,因此重發超時都是0.5秒的整數倍。不過,最初其重發超時的默認值一般設置為6秒左右。
  • 數據被重發之后若還是收不到確認應答,則進行再次發送。此時,等待確認應答的時間將會以2倍、4倍的指數函數延長。
  • 此外,數據也不會被***、反復地重發。達到一定重發次數之后,如果仍沒有任何確認應答返回,就會判斷為網絡或對端主機發生了異常,強制關閉連接。并且通知應用通信異常強行終止。

3.5 以段為單位發送數據

  • 在建立 TCP 連接的同時,也可以確定發送數據包的單位,我們也可以稱其為“***消息長度”(MSS)。最理想的情況是,***消息長度正好是 IP 中不會被分片處理的***數據長度。
  • TCP 在傳送大量數據時,是以 MSS 的大小將數據進行分割發送。進行重發時也是以 MSS 為單位。
  • MSS 在三次握手的時候,在兩端主機之間被計算得出。兩端的主機在發出建立連接的請求時,會在 TCP 首部中寫入 MSS 選項,告訴對方自己的接口能夠適應的 MSS 的大小。然后會在兩者之間選擇一個較小的值投入使用。

3.6 利用窗口控制提高速度

  • TCP 以1個段為單位,每發送一個段進行一次確認應答的處理。這樣的傳輸方式有一個缺點,就是包的往返時間越長通信性能就越低。
  • 為解決這個問題,TCP 引入了窗口這個概念。確認應答不再是以每個分段,而是以更大的單位進行確認,轉發時間將會被大幅地縮短。也就是說,發送端主機,在發送了一個段以后不必要一直等待確認應答,而是繼續發送。如下圖所示:

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

  • 窗口控制
  • 窗口大小就是指無需等待確認應答而可以繼續發送數據的***值。上圖中窗口大小為4個段。這個機制實現了使用大量的緩沖區,通過對多個段同時進行確認應答的功能。

3.7 滑動窗口控制

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

 

滑動窗口

  • 上圖中的窗口內的數據即便沒有收到確認應答也可以被發送出去。不過,在整個窗口的確認應答沒有到達之前,如果其中部分數據出現丟包,那么發送端仍然要負責重傳。為此,發送端主機需要設置緩存保留這些待被重傳的數據,直到收到他們的確認應答。
  • 在滑動窗口以外的部分包括未發送的數據以及已經確認對端已收到的數據。當數據發出后若如期收到確認應答就可以不用再進行重發,此時數據就可以從緩存區清除。
  • 收到確認應答的情況下,將窗口滑動到確認應答中的序列號的位置。這樣可以順序地將多個段同時發送提高通信性能。這種機制也別稱為滑動窗口控制。

3.8 窗口控制中的重發控制

在使用窗口控制中, 出現丟包一般分為兩種情況:

① 確認應答未能返回的情況。在這種情況下,數據已經到達對端,是不需要再進行重發的,如下圖:

太厲害了,終于有人能把TCP/IP 協議講的明明白白了 

部分確認應答丟失

② 某個報文段丟失的情況。接收主機如果收到一個自己應該接收的序列號以外的數據時,會針對當前為止收到數據返回確認應答。如下圖所示,當某一報文段丟失后,發送端會一直收到序號為1001的確認應答,因此,在窗口比較大,又出現報文段丟失的情況下,同一個序列號的確認應答將會被重復不斷地返回。而發送端主機如果連續3次收到同一個確認應答,就會將其對應的數據進行重發。這種機制比之前提到的超時管理更加高效,因此也被稱為高速重發控制。

太厲害了,終于有人能把TCP/IP 協議講的明明白白了 

高速重發控制

四、網絡層中的 IP 協議

  • IP(IPv4、IPv6)相當于 OSI 參考模型中的第3層——網絡層。網絡層的主要作用是“實現終端節點之間的通信”。這種終端節點之間的通信也叫“點對點通信”。
  • 網絡的下一層——數據鏈路層的主要作用是在互連同一種數據鏈路的節點之間進行包傳遞。而一旦跨越多種數據鏈路,就需要借助網絡層。網絡層可以跨越不同的數據鏈路,即使是在不同的數據鏈路上也能實現兩端節點之間的數據包傳輸。
  • IP 大致分為三大作用模塊,它們是 IP 尋址、路由(最終節點為止的轉發)以及 IP 分包與組包。

1. IP 地址

1.1 IP 地址概述

  • 在計算機通信中,為了識別通信對端,必須要有一個類似于地址的識別碼進行標識。在數據鏈路中的 MAC 地址正是用來標識同一個鏈路中不同計算機的一種識別碼。
  • 作為網絡層的 IP ,也有這種地址信息,一般叫做 IP 地址。IP 地址用于在“連接到網絡中的所有主機中識別出進行通信的目標地址”。因此,在 TCP/IP 通信中所有主機或路由器必須設定自己的 IP 地址。
  • 不論一臺主機與哪種數據鏈路連接,其 IP 地址的形式都保持不變。
  • IP 地址(IPv4 地址)由32位正整數來表示。IP 地址在計算機內部以二進制方式被處理。然而,由于我們并不習慣于采用二進制方式,我們將32位的 IP 地址以每8位為一組,分成4組,每組以 “.” 隔開,再將每組數轉換成十進制數。如下:

太厲害了,終于有人能把TCP/IP 協議講的明明白白了 

1.2 IP 地址由網絡和主機兩部分標識組成

  • 如下圖,網絡標識在數據鏈路的每個段配置不同的值。網絡標識必須保證相互連接的每個段的地址不相重復。而相同段內相連的主機必須有相同的網絡地址。IP 地址的“主機標識”則不允許在同一個網段內重復出現。由此,可以通過設置網絡地址和主機地址,在相互連接的整個網絡中保證每臺主機的 IP 地址都不會相互重疊。即 IP 地址具有了唯一性。

太厲害了,終于有人能把TCP/IP 協議講的明明白白了 

IP地址的主機標識

  • 如下圖,IP 包被轉發到途中某個路由器時,正是利用目標 IP 地址的網絡標識進行路由。因為即使不看主機標識,只要一見到網絡標識就能判斷出是否為該網段內的主機。

太厲害了,終于有人能把TCP/IP 協議講的明明白白了 

IP地址的網絡標識

1.3 IP 地址的分類

  • IP 地址分為四個級別,分別為A類、B類、C類、D類。它根據 IP 地址中從第 1 位到第 4 位的比特列對其網絡標識和主機標識進行區分。
  • A 類 IP 地址是首位以 “0” 開頭的地址。從第 1 位到第 8 位是它的網絡標識。用十進制表示的話,0.0.0.0~127.0.0.0 是 A 類的網絡地址。A 類地址的后 24 位相當于主機標識。因此,一個網段內可容納的主機地址上限為16,777,214個。
  • B 類 IP 地址是前兩位 “10” 的地址。從第 1 位到第 16 位是它的網絡標識。用十進制表示的話,128.0.0.0~191.255.0.0 是 B 類的網絡地址。B 類地址的后 16 位相當于主機標識。因此,一個網段內可容納的主機地址上限為65,534個。
  • C 類 IP 地址是前三位為 “110” 的地址。從第 1 位到第 24 位是它的網絡標識。用十進制表示的話,192.0.0.0~223.255.255.0 是 C 類的網絡地址。C 類地址的后 8 位相當于主機標識。因此,一個網段內可容納的主機地址上限為254個。
  • D 類 IP 地址是前四位為 “1110” 的地址。從第 1 位到第 32 位是它的網絡標識。用十進制表示的話,224.0.0.0~239.255.255.255 是 D 類的網絡地址。D 類地址沒有主機標識,常用于多播。
  • 在分配 IP 地址時關于主機標識有一點需要注意。即要用比特位表示主機地址時,不可以全部為 0 或全部為 1。因為全部為 0 只有在表示對應的網絡地址或 IP 地址不可以獲知的情況下才使用。而全部為 1 的主機通常作為廣播地址。因此,在分配過程中,應該去掉這兩種情況。這也是為什么 C 類地址每個網段最多只能有 254( 28 - 2 = 254)個主機地址的原因。

1.4 廣播地址

  • 廣播地址用于在同一個鏈路中相互連接的主機之間發送數據包。將 IP 地址中的主機地址部分全部設置為 1,就成了廣播地址。
  • 廣播分為本地廣播和直接廣播兩種。在本網絡內的廣播叫做本地廣播;在不同網絡之間的廣播叫做直接廣播。

1.5 IP 多播

  • 多播用于將包發送給特定組內的所有主機。由于其直接使用 IP 地址,因此也不存在可靠傳輸。
  • 相比于廣播,多播既可以穿透路由器,又可以實現只給那些必要的組發送數據包。請看下圖:

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

  • IP 多播
  • 多播使用 D 類地址。因此,如果從首位開始到第 4 位是 “1110”,就可以認為是多播地址。而剩下的 28 位可以成為多播的組編號。
  • 此外, 對于多播,所有的主機(路由器以外的主機和終端主機)必須屬于 224.0.0.1 的組,所有的路由器必須屬于 224.0.0.2 的組。

1.6 子網掩碼

  • 現在一個 IP 地址的網絡標識和主機標識已不再受限于該地址的類別,而是由一個叫做“子網掩碼”的識別碼通過子網網絡地址細分出比 A 類、B 類、C 類更小粒度的網絡。這種方式實際上就是將原來 A 類、B 類、C 類等分類中的主機地址部分用作子網地址,可以將原網絡分為多個物理網絡的一種機制。
  • 子網掩碼用二進制方式表示的話,也是一個 32 位的數字。它對應 IP 地址網絡標識部分的位全部為 “1”,對應 IP 地址主機標識的部分則全部為 “0”。由此,一個 IP 地址可以不再受限于自己的類別,而是可以用這樣的子網掩碼自由地定位自己的網絡標識長度。當然,子網掩碼必須是 IP 地址的首位開始連續的 “1”。
  • 對于子網掩碼,目前有兩種表示方式。***種是,將 IP 地址與子網掩碼的地址分別用兩行來表示。以 172.20.100.52 的前 26 位是網絡地址的情況為例,如下:

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

  • 第二種表示方式是,在每個 IP 地址后面追加網絡地址的位數用 “/ ” 隔開,如下:

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

2. 路由

  • 發送數據包時所使用的地址是網絡層的地址,即 IP 地址。然而僅僅有 IP 地址還不足以實現將數據包發送到對端目標地址,在數據發送過程中還需要類似于“指明路由器或主機”的信息,以便真正發往目標地址。保存這種信息的就是路由控制表。
  • 該路由控制表的形成方式有兩種:一種是管理員手動設置,另一種是路由器與其他路由器相互交換信息時自動刷新。前者也叫做靜態路由控制,而后者叫做動態路由控制。
  • IP 協議始終認為路由表是正確的。然后,IP 本身并沒有定義制作路由控制表的協議。即 IP 沒有制作路由控制表的機制。該表示由一個叫做“路由協議”的協議制作而成。

2.1 IP 地址與路由控制

  • IP 地址的網絡地址部分用于進行路由控制。
  • 路由控制表中記錄著網絡地址與下一步應該發送至路由器的地址。
  • 在發送 IP 包時,首先要確定 IP 包首部中的目標地址,再從路由控制表中找到與該地址具有相同網絡地址的記錄,根據該記錄將 IP 包轉發給相應的下一個路由器。如果路由控制表中存在多條相同網絡地址的記錄,就選擇一個最為吻合的網絡地址。

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

路由控制表與 IP 包發送

3. IP 分包與組包

  • 每種數據鏈路的***傳輸單元(MTU)都不盡相同,因為每個不同類型的數據鏈路的使用目的不同。使用目的不同,可承載的 MTU 也就不同。
  • 任何一臺主機都有必要對 IP 分片進行相應的處理。分片往往在網絡上遇到比較大的報文無法一下子發送出去時才會進行處理。
  • 經過分片之后的 IP 數據報在被重組的時候,只能由目標主機進行。路由器雖然做分片但不會進行重組。

3.1 路徑 MTU 發現

  • 分片機制也有它的不足。如路由器的處理負荷加重之類。因此,只要允許,是不希望由路由器進行 IP 數據包的分片處理的。
  • 為了應對分片機制的不足,“路徑 MTU 發現” 技術應運而生。路徑 MTU 指的是,從發送端主機到接收端主機之間不需要分片是*** MTU 的大小。即路徑中存在的所有數據鏈路中最小的 MTU 。
  • 進行路徑 MTU 發現,就可以避免在中途的路由器上進行分片處理,也可以在 TCP 中發送更大的包。

4. IPv6

  • IPv6(IP version 6)是為了根本解決 IPv4 地址耗盡的問題而被標準化的網際協議。IPv4 的地址長度為 4 個 8 位字節,即 32 比特。而 IPv6 的地址長度則是原來的 4 倍,即 128 比特,一般寫成 8 個 16 位字節。

4.1 IPv6 的特點

  • IP 得知的擴大與路由控制表的聚合。
  • 性能提升。包首部長度采用固定的值(40字節),不再采用首部檢驗碼。簡化首部結構,減輕路由器負擔。路由器不再做分片處理。
  • 支持即插即用功能。即使沒有DHCP服務器也可以實現自動分配 IP 地址。
  • 采用認證與加密功能。應對偽造 IP 地址的網絡安全功能以及防止線路竊聽的功能。
  • 多播、Mobile IP 成為擴展功能。

4.2 IPv6 中 IP 地址的標記方法

  • 一般人們將 128 比特 IP 地址以每 16 比特為一組,每組用冒號(“:”)隔開進行標記。
  • 而且如果出現連續的 0 時還可以將這些 0 省略,并用兩個冒號(“::”)隔開。但是,一個 IP 地址中只允許出現一次兩個連續的冒號。

4.3 IPv6 地址的結構

  • IPv6 類似 IPv4,也是通過 IP 地址的前幾位標識 IP 地址的種類。
  • 在互聯網通信中,使用一種全局的單播地址。它是互聯網中唯一的一個地址,不需要正式分配 IP 地址。

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

4.4 全局單播地址

  • 全局單播地址是指世界上唯一的一個地址。它是互聯網通信以及各個域內部通信中最為常用的一個 IPv6 地址。
  • 格式如下圖所示,現在 IPv6 的網絡中所使用的格式為,n = 48,m = 16 以及 128 - n - m = 64。即前 64 比特為網絡標識,后 64 比特為主機標識。

太厲害了,終于有人能把TCP/IP 協議講的明明白白了 

全局單播地址

4.5 鏈路本地單播地址

  • 鏈路本地單播地址是指在同一個數據鏈路內唯一的地址。它用于不經過路由器,在同一個鏈路中的通信。通常接口 ID 保存 64 比特版的 MAC 地址。

太厲害了,終于有人能把TCP/IP 協議講的明明白白了 

鏈路本地單播地址

4.6 唯一本地地址

  • 唯一本地地址是不進行互聯網通信時所用的地址。
  • 唯一本地地址雖然不會與互聯網連接,但是也會盡可能地隨機生成一個唯一的全局 ID。
  • L 通常被置為 1
  • 全局 ID 的值隨機決定
  • 子網 ID 是指該域子網地址
  • 接口 ID 即為接口的 ID

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

唯一本地地址

4.7 IPv6 分段處理

  • IPv6 的分片處理只在作為起點的發送端主機上進行,路由器不參與分片。
  • IPv6 中最小 MTU 為 1280 字節,因此,在嵌入式系統中對于那些有一定系統資源限制的設備來說,不需要進行“路徑 MTU 發現”,而是在發送 IP 包時直接以 1280 字節為單位分片送出。

4.8 IP 首部(暫略)

5. IP 協議相關技術

  • IP 旨在讓最終目標主機收到數據包,但是在這一過程中僅僅有 IP 是無法實現通信的。必須還有能夠解析主機名稱和 MAC 地址的功能,以及數據包在發送過程中異常情況處理的功能。

5.1 DNS

  • 我們平常在訪問某個網站時不適用 IP 地址,而是用一串由羅馬字和點號組成的字符串。而一般用戶在使用 TCP/IP 進行通信時也不使用 IP 地址。能夠這樣做是因為有了 DNS (Domain Name System)功能的支持。DNS 可以將那串字符串自動轉換為具體的 IP 地址。
  • 這種 DNS 不僅適用于 IPv4,還適用于 IPv6。

5.2 ARP

  • 只要確定了 IP 地址,就可以向這個目標地址發送 IP 數據報。然而,在底層數據鏈路層,進行實際通信時卻有必要了解每個 IP 地址所對應的 MAC 地址。
  • ARP 是一種解決地址問題的協議。以目標 IP 地址為線索,用來定位下一個應該接收數據分包的網絡設備對應的 MAC 地址。不過 ARP 只適用于 IPv4,不能用于 IPv6。IPv6 中可以用 ICMPv6 替代 ARP 發送鄰居探索消息。
  • RARP 是將 ARP 反過來,從 MAC 地址定位 IP 地址的一種協議。

5.3 ICMP

  • ICMP 的主要功能包括,確認 IP 包是否成功送達目標地址,通知在發送過程當中 IP 包被廢棄的具體原因,改善網絡設置等。
  • IPv4 中 ICMP 僅作為一個輔助作用支持 IPv4。也就是說,在 IPv4 時期,即使沒有 ICMP,仍然可以實現 IP 通信。然而,在 IPv6 中,ICMP 的作用被擴大,如果沒有 ICMPv6,IPv6 就無法進行正常通信。

5.4 DHCP

  • 如果逐一為每一臺主機設置 IP 地址會是非常繁瑣的事情。特別是在移動使用筆記本電腦、只能終端以及平板電腦等設備時,每移動到一個新的地方,都要重新設置 IP 地址。
  • 于是,為了實現自動設置 IP 地址、統一管理 IP 地址分配,就產生了 DHCP(Dynamic Host Configuration Protocol)協議。有了 DHCP,計算機只要連接到網絡,就可以進行 TCP/IP 通信。也就是說,DHCP 讓即插即用變得可能。
  • DHCP 不僅在 IPv4 中,在 IPv6 中也可以使用。

5.5 NAT

  • NAT(Network Address Translator)是用于在本地網絡中使用私有地址,在連接互聯網時轉而使用全局 IP 地址的技術。
  • 除轉換 IP 地址外,還出現了可以轉換 TCP、UDP 端口號的 NAPT(Network Address Ports Translator)技術,由此可以實現用一個全局 IP 地址與多個主機的通信。
  • NAT(NAPT)實際上是為正在面臨地址枯竭的 IPv4 而開發的技術。不過,在 IPv6 中為了提高網絡安全也在使用 NAT,在 IPv4 和 IPv6 之間的相互通信當中常常使用 NAT-PT。

5.6 IP 隧道

太厲害了,終于有人能把TCP/IP 協議講的明明白白了

夾著 IPv4 網絡的兩個 IPv6 網絡

  • 如上圖的網絡環境中,網絡 A 與網絡 B 之間無法直接進行通信,為了讓它們之間正常通信,這時必須得采用 IP 隧道的功能。
  • IP 隧道可以將那些從網絡 A 發過來的 IPv6 的包統合為一個數據,再為之追加一個 IPv4 的首部以后轉發給網絡 C。
  • 一般情況下,緊接著 IP 首部的是 TCP 或 UDP 的首部。然而,現在的應用當中“ IP 首部的后面還是 IP 首部”或者“ IP 首部的后面是 IPv6 的首部”等情況與日俱增。這種在網絡層的首部后面追加網絡層首部的通信方法就叫做“ IP 隧道”。
責任編輯:龐桂玉 來源: 今日頭條
相關推薦

2020-02-10 19:42:01

CPIP 協議,

2021-09-30 09:59:23

OSPF網絡協議網絡技術

2010-09-06 17:35:03

PPPOE配置

2011-11-04 16:49:26

Action BarAndroid

2011-04-27 17:05:39

2012-02-20 21:59:08

無線路由設置

2010-10-08 15:05:00

無線路由設置

2021-10-27 10:57:17

TelnetSNMP網絡

2021-02-23 08:10:18

Nginx反向代理負載均衡器

2010-08-03 09:17:00

2021-09-26 07:38:39

組合問題數據結構算法

2010-06-29 14:38:14

Linux服務器

2010-07-05 15:33:49

2010-10-15 10:01:19

無線網絡構建

2010-09-09 09:52:03

Linux服務器

2010-07-14 09:55:12

2010-08-25 09:09:58

2025-10-31 02:25:00

TomcatContainer代碼

2013-05-23 11:16:28

大數據技術大數據AdTime

2010-01-13 17:07:21

防輻射機箱選購
點贊
收藏

51CTO技術棧公眾號

久久精品30| 日本欧美三级| 亚洲综合色区另类av| 国产精品swag| 中文字幕在线日本| 中文在线日韩| 一区二区三区精品99久久 | 中文字幕免费在线看线人动作大片| 日韩成人高清| 亚洲综合在线视频| 日韩精品国内| 日本成人动漫在线观看| 日本不卡一二三区黄网| 欧美激情小视频| 美女100%露胸无遮挡| 粉嫩久久久久久久极品| 欧美精品粉嫩高潮一区二区| 伊人成色综合网| 国产一区久久精品| 久久久久久毛片| 国产富婆一区二区三区| 中文字幕一区二区三区人妻四季 | 日本激情视频网站| 韩国v欧美v亚洲v日本v| 国产97色在线| 国产精品suv一区二区| 99久久九九| 国产亚洲一区精品| aa一级黄色片| 国产精品色在线网站| 67194成人在线观看| av在线无限看| xx欧美视频| 亚洲国产精品一区二区久久恐怖片| 亚洲一区bb| 都市激情在线视频| 国产亚洲欧美激情| 欧洲在线视频一区| 青青久草在线| 91麻豆国产福利精品| 精品毛片久久久久久| 亚洲成人av综合| 国产福利电影一区二区三区| 成人a免费视频| 又骚又黄的视频| 喷白浆一区二区| 国产精品成人久久久久| 久久亚洲天堂网| 国产精品亚洲产品| 91超碰中文字幕久久精品| 久久精品视频6| 国产精品二区影院| 色综合久久悠悠| 中文字幕影音先锋| 国内精品久久久久久久影视蜜臀| 久久综合免费视频影院| 久久高清内射无套| 欧美私人啪啪vps| 欧美精品xxx| 国产五月天婷婷| 国产欧美亚洲一区| 日本欧美国产在线| 成年人晚上看的视频| 蜜臀久久99精品久久久久宅男| 国产精品免费一区豆花| 一区二区三区免费在线| 国产精品91一区二区| 懂色一区二区三区av片| 成人av手机在线| av高清不卡在线| 欧美二区三区在线| 91在线直播| 亚洲激情av在线| 日本午夜激情视频| 欧美一级大片| 欧美美女黄视频| 成人啪啪18免费游戏链接| 国产精品x8x8一区二区| 亚洲免费福利视频| 国产精品麻豆免费版现看视频| 亚洲最大av| 91精品国产99| 一本色道久久综合亚洲| 国产成人av电影免费在线观看| 国产视频99| 成人性生交大片免费看午夜| 亚洲日本欧美天堂| 男女视频网站在线观看| 欧洲成人一区| 精品三级在线看| 四虎国产精品成人免费入口| 亚洲精品国产首次亮相| 91成人精品网站| 一本一道精品欧美中文字幕| 国产99久久精品| 日韩电影免费观看高清完整| 91亚洲天堂| 日韩欧美在线视频观看| 九九九九九九九九| 亚洲都市激情| 久久国产色av| 亚洲无码精品一区二区三区| 国产成人精品在线看| 欧美精品亚洲精品| 亚洲色图美国十次| 在线国产亚洲欧美| av漫画在线观看| 999国产精品视频| 57pao国产精品一区| 999国产精品视频免费| 久久久久久97三级| 免费拍拍拍网站| 四虎影视精品永久在线观看| 精品呦交小u女在线| 久久久久亚洲AV成人| 日韩精品一二三区| 国产一区免费在线| 一色桃子av在线| 欧美日高清视频| 亚洲人成人无码网www国产| 韩国在线视频一区| 91视频国产一区| 国模精品一区二区| 红桃av永久久久| 国产又黄又嫩又滑又白| 色综合久久网| 国产精品第一第二| 深夜福利视频一区| 亚洲国产人成综合网站| 天天久久综合网| 欧美mv日韩| 国产精品高潮粉嫩av| 五月天婷婷激情网| 亚洲一区在线电影| 久久久久久国产精品日本| 久久一区二区三区喷水| 国产精品久久久久久久av电影 | 亚洲av无码不卡| 91视频免费看| 欧美亚洲精品一区二区| 国产主播性色av福利精品一区| 久久av在线播放| 国产视频在线观看视频| 亚洲视频 欧洲视频| 在线观看国产一级片| 精品国产欧美日韩| 国产精品免费一区豆花| av每日在线更新| 欧美日韩免费高清一区色橹橹| 女人裸体性做爰全过| 奇米888四色在线精品| 五月天亚洲综合| 国产69精品久久久久9999人| 中文字幕日韩在线视频| 夜夜骚av一区二区三区| 亚洲欧美日本韩国| 中文字幕在线视频一区二区| 欧美日本二区| 精品国产乱码久久久久久108| 色戒汤唯在线观看| 亚洲欧洲国产一区| 中文字幕 日韩有码| 国产精品久久久一本精品| 手机av在线网| 欧美韩日精品| 国产亚洲情侣一区二区无| 午夜影院在线播放| 一区二区三区视频在线| 国产精品欧美亚洲| 有坂深雪av一区二区精品| 岛国精品一区二区三区| 亚洲专区一区二区三区| 区一区二区三区中文字幕| 成人性片免费| 欧美精品videossex性护士| 青青视频在线观| 欧美天堂亚洲电影院在线播放| 色婷婷在线视频观看| 成人18视频日本| 免费激情视频在线观看| 99久久久久国产精品| 国产精品二区三区四区| 欧美极品免费| 久久6免费高清热精品| 神马久久精品| 日韩欧美高清视频| sm捆绑调教视频| 成人h动漫精品| 狠狠躁狠狠躁视频专区| 欧美人成在线| 亚洲高清视频一区二区| 视频精品二区| 国产精品成人播放| 爱情岛论坛亚洲品质自拍视频网站| 亚洲免费一在线| av网站在线免费看| 91激情五月电影| 久久精品波多野结衣| 国产午夜久久久久| 亚洲av无码专区在线播放中文| 日日骚欧美日韩| 大荫蒂性生交片| 第四色成人网| 久久爱av电影| 精品中文字幕一区二区三区| 国产精品91视频| 欧美1—12sexvideos| 中文字幕国内精品| 色吊丝在线永久观看最新版本| 91精品啪在线观看国产60岁| 国产污视频网站| 激情久久av一区av二区av三区 | 激情亚洲一区二区三区四区| 在线视频这里只有精品| 久久蜜桃av一区二区天堂| 日本中文字幕精品| 久久成人免费网| 黑森林福利视频导航| 精品福利电影| 水蜜桃在线免费观看| 日韩激情一区| 欧洲久久久久久| 天堂日韩电影| 高清av免费一区中文字幕| 电影一区二区三区久久免费观看| 日韩女优人人人人射在线视频| 国产第一页在线| 久久97精品久久久久久久不卡| 黄网站免费在线播放| 正在播放欧美视频| 国产色a在线| 亚洲欧美在线免费观看| 日本韩国在线观看| 亚洲成色777777在线观看影院| 99在线小视频| 欧美久久久久久久久中文字幕| 波多野结衣高清视频| 色狠狠综合天天综合综合| 久久久久久91亚洲精品中文字幕| 亚洲国产综合人成综合网站| 久久精品这里有| 一区二区三区欧美久久| 欧美做爰爽爽爽爽爽爽| 亚洲视频在线观看一区| 国产真实乱在线更新| 亚洲视频狠狠干| 久久久91视频| 亚洲国产一区二区a毛片| 久久精品视频久久| 亚洲高清久久久| 国产精品第9页| 精品久久久久久久久久ntr影视| 国产成人精品一区二三区| 欧美日韩一二三四五区| www.色国产| 欧美日韩在线观看一区二区| 一本到在线视频| 欧美成人三级在线| 日韩一级在线播放| 精品亚洲一区二区三区| 黄色小视频在线观看| 尤物yw午夜国产精品视频明星| h网站视频在线观看| 日韩一二三在线视频播| 日本在线视频网址| 97精品久久久| 欧美亚洲大片| 亚洲mm色国产网站| 激情视频极品美女日韩| 欧美二级三级| 欧美疯狂party性派对| 国内自拍中文字幕| 99国内精品| 精品久久久噜噜噜噜久久图片| 久久99精品久久只有精品| 国产调教打屁股xxxx网站| 26uuu精品一区二区| 懂色av粉嫩av浪潮av| 亚洲美女免费视频| 特级做a爱片免费69| 欧美日韩综合色| 免费观看黄一级视频| 亚洲欧洲日产国产网站| 黄色免费在线网站| 欧美夜福利tv在线| 成人久久精品| 久久精品国产99精品国产亚洲性色| 欧美在线电影| 日韩一级性生活片| 免费黄网站欧美| 荫蒂被男人添免费视频| 欧美国产一区在线| 精品无码黑人又粗又大又长| 在线观看成人免费视频| 亚洲精品18p| 在线午夜精品自拍| 美女高潮在线观看| 91沈先生作品| 欧美精品一二| 国产精品999视频| 国内精品伊人久久久久av影院| www.88av| 一区二区成人在线观看| 五月激情丁香网| 亚洲精品mp4| caopo在线| 国产精品一区二区久久久| 黑色丝袜福利片av久久| 在线观看福利一区| 视频一区二区不卡| 久久久老熟女一区二区三区91| 国产精品国产三级国产有无不卡| 日韩精品人妻中文字幕| 欧美一区二区视频观看视频 | 欧美freesex8一10精品| 熟妇熟女乱妇乱女网站| 久久最新视频| 在线观看国产网站| 亚洲第一综合色| 国产视频一区二区三| 深夜福利91大全| 欧美日韩视频网站| 久久精品日韩精品| 欧美日韩久久| 国内精品国产三级国产aⅴ久| 国产精品污污网站在线观看| 国产免费av一区| 日韩大陆欧美高清视频区| 成人av影院在线观看| 91福利视频导航| 亚洲综合小说| 免费看的av网站| 亚洲精品菠萝久久久久久久| 国产一区二区麻豆| 久久精品视频在线| 亚洲精品三区| 一区二区免费在线观看| 毛片av一区二区三区| 538精品视频| 欧美亚洲动漫精品| yes4444视频在线观看| 国产精品96久久久久久| 国内亚洲精品| 日本熟妇人妻中出| 亚洲国产成人午夜在线一区| 中文字幕在线播放日韩| 日韩在线视频观看正片免费网站| julia一区二区三区中文字幕| 日韩av电影免费在线观看| 日韩av一级片| 国产人与禽zoz0性伦| 欧美美女一区二区在线观看| 黄色av电影在线观看| 91日韩在线播放| 欧美日本二区| 熟妇人妻久久中文字幕| 色综合久久中文综合久久牛| 免费成人av电影| 国产精品女视频| 天天射综合网视频| 18深夜在线观看免费视频| 亚洲国产成人高清精品| 亚洲色大成网站www| 日韩av手机在线观看| 久久高清精品| 老司机av网站| 欧美日韩在线看| av在线中文| 51蜜桃传媒精品一区二区| 亚洲麻豆视频| 国产伦精品一区二区三区视频女| 欧美日韩精品专区| 日本动漫同人动漫在线观看| 久久久久一区二区| 免费久久精品视频| 免费中文字幕视频| 亚洲精品在线看| crdy在线观看欧美| 少妇高潮喷水在线观看| 国产欧美精品一区二区色综合| 国产乱码精品一区二区| 高清一区二区三区日本久| 红桃成人av在线播放| 特黄特黄一级片| 色综合天天天天做夜夜夜夜做| 欧美日韩视频在线播放| 国产高清自拍一区| 日本视频免费一区| 国产亚洲精品久久久久久无几年桃| 亚洲欧美国内爽妇网| 国产精品xnxxcom| 91传媒久久久| 亚洲精品视频免费看| 欧美精品a∨在线观看不卡| 91亚洲精品在线观看| 免播放器亚洲| 私库av在线播放| 亚洲午夜精品视频| 一区二区三区欧洲区| 日本爱爱免费视频|