久久伊人一区二区三区四区-久久伊人影视-久久伊人影院-久久伊人中文字幕-亚洲成在人色婷婷-亚洲大成色www永久网

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

當前位置:首頁  >  技術(shù)干貨  > 網(wǎng)絡(luò)層協(xié)議 ——— IP協(xié)議

網(wǎng)絡(luò)層協(xié)議 ——— IP協(xié)議

來源:千鋒教育
發(fā)布人:wjy
時間: 2022-12-29 11:40:00 1672285200

  IP 協(xié)議

  IP 協(xié)議全稱為 “網(wǎng)際互連協(xié)議(Internet Protocol)”,IP 協(xié)議是 TCP/IP 體系中的網(wǎng)絡(luò)層協(xié)議。

  基本概念

  網(wǎng)絡(luò)層解決的問題

  TCP 作為傳輸層控制協(xié)議,其保證的是數(shù)據(jù)傳輸?shù)目煽啃院蛡鬏斝剩?TCP 提供的僅僅是數(shù)據(jù)傳輸?shù)牟呗裕嬲撠煍?shù)據(jù)在網(wǎng)絡(luò)中傳輸?shù)膭t傳輸層之下的網(wǎng)絡(luò)層和鏈路層。

  雙方在進行網(wǎng)絡(luò)通信時,發(fā)送的數(shù)據(jù)并不是直接從一方的傳輸層直接發(fā)送到了另一方的傳輸層,而是需要傳輸層將數(shù)據(jù)繼續(xù)向下進行交付,在網(wǎng)絡(luò)層和鏈路層經(jīng)過數(shù)據(jù)封裝后再通過網(wǎng)絡(luò)發(fā)送到對方主機,對方主機收到數(shù)據(jù)后也同樣需要在鏈路層和網(wǎng)絡(luò)層進行數(shù)據(jù)解包,此時對方的傳輸層才拿到了發(fā)送過來的數(shù)據(jù),然后再繼續(xù)將該數(shù)據(jù)向上進行交付。

  網(wǎng)絡(luò)通信的過程,就像兩個人在送互相送數(shù)據(jù),這兩個人分別在兩棟樓的四樓,如果一個人要將數(shù)據(jù)交給對方,那么這個人就必須先從四樓走到一樓,然后再在路上經(jīng)過路徑選擇到達對方樓下,最后再上到四樓將數(shù)據(jù)交給對方。

IP協(xié)議1

  其中,送數(shù)據(jù)的這個人從四樓下來的過程就是數(shù)據(jù)封裝的過程,這個人在路上經(jīng)過路徑選擇到達對方樓下的過程就是數(shù)據(jù)路由的過程,而這個人再上到四樓將數(shù)據(jù)交給對方的過程就是數(shù)據(jù)解包的過程。

  而網(wǎng)絡(luò)層要解決的問題就是,將數(shù)據(jù)從一臺主機送到另一臺主機,也就是數(shù)據(jù)的路由。

  保證數(shù)據(jù)可靠的從一臺主機送到另一臺主機的前提

  當雙方在進行基于 TCP 的網(wǎng)絡(luò)通信時,要保證將數(shù)據(jù)可靠的從一臺主機送到另一臺主機,前提是發(fā)送方要有將數(shù)據(jù)送到對方主機的能力,要是發(fā)送方連將數(shù)據(jù)發(fā)送給對方的能力都沒有,那就更不用談可靠的將數(shù)據(jù)送給對方主機了。

  需要注意的是,發(fā)送方有將數(shù)據(jù)送到對方主機的能力,并不意味著發(fā)送方每次發(fā)送的數(shù)據(jù)都能夠成功的發(fā)送到對方,但如果發(fā)送方連將數(shù)據(jù)發(fā)送給對方的能力都沒有,那發(fā)送方基本就不可能將數(shù)據(jù)發(fā)送給對方。

  一旦發(fā)送方有了將數(shù)據(jù)發(fā)送給對方的能力,就算發(fā)送方某次發(fā)送的數(shù)據(jù)沒有成功到達對方,此時上層 TCP 由于沒有收到對應(yīng)數(shù)據(jù)的應(yīng)答,此時上層 TCP 會要求進行數(shù)據(jù)重發(fā),直到數(shù)據(jù)成功發(fā)送到對方主機為止。

  也就是說,在網(wǎng)絡(luò)層有能力將數(shù)據(jù)送到對方主機的情況下,雖然網(wǎng)絡(luò)層不能保證每次都能將數(shù)據(jù)成功送到對方主機,但在 TCP 提供的可靠性策略的保證下,最終網(wǎng)絡(luò)層就一定能夠?qū)?shù)據(jù)可靠的發(fā)送到對方主機。

  說明一下:

  網(wǎng)絡(luò)層解決的問題是,將數(shù)據(jù)從一臺主機送到另一臺主機,因此網(wǎng)絡(luò)層解決的是主機到主機的問題。

  一方傳輸層從上方進程拿到數(shù)據(jù)后,該數(shù)據(jù)貫穿網(wǎng)絡(luò)協(xié)議棧進行封裝和解包,最終到達對方傳輸層,此時對方傳輸層也會將數(shù)據(jù)向上交給對應(yīng)的進程,因此傳輸層解決的是進程到進程的問題。

  路徑選擇

  數(shù)據(jù)進行的網(wǎng)絡(luò)傳輸一般都是跨網(wǎng)絡(luò)的,而路由器就是連接多個網(wǎng)絡(luò)的硬件設(shè)備,因此數(shù)據(jù)在進行跨網(wǎng)絡(luò)傳輸時一定需要經(jīng)過多個路由器。

IP協(xié)議2

  數(shù)據(jù)路由就像我們旅游一樣,當確定了要到達的目標主機后,就需要尋找最短的路徑到達該目的地。

  目的地的確定是非常重要的,因為目的地直接決定了數(shù)據(jù)路由時的路徑選擇,這也是跨網(wǎng)絡(luò)找到目標主機的根本。

  只有數(shù)據(jù)經(jīng)過了較為正確的路徑選擇,最終才可能慢慢趨近于目標網(wǎng)絡(luò)或目標主機。

  確定數(shù)據(jù)路由的目的地后,數(shù)據(jù)就可以在網(wǎng)絡(luò)中進行路由了,但數(shù)據(jù)在路由時無法自行進行路徑選擇,因為這個數(shù)據(jù)本身是 “不認識路” 的,因此數(shù)據(jù)在路由的過程中需要不斷 “找路人問路”,而這里所謂的“路人” 就是網(wǎng)絡(luò)當中的一臺臺路由器。

  網(wǎng)絡(luò)當中的路由器是 “認識路的”,它們將自己的“認路經(jīng)驗” 都記錄到路由表當中,因此路由器可以通過查路由表找到去特定點的最短路徑。因此數(shù)據(jù)在路由時,會不斷通過路由器來進行路徑選擇,以此來一步步靠近目標網(wǎng)絡(luò)或目標主機。

IP協(xié)議3

  主機和路由器

  主機:配有 IP 地址,但是不進行路由控制的設(shè)備。但實際現(xiàn)在幾乎不存在不進行路由控制的設(shè)備了,就連你的筆記本也會進行路由控制。

  路由器:既配有 IP 地址,又能進行路由控制。實際現(xiàn)在主流的路由器已經(jīng)不僅僅具有路由的功能了,它甚至具備某些應(yīng)用層的功能。

  節(jié)點:主機和路由器的統(tǒng)稱。

  IP 協(xié)議格式

  IP 協(xié)議格式如下:

IP協(xié)議4

  4 位版本號(version):指定 IP 協(xié)議的版本(IPv4/IPv6),對于 IPv4 來說,就是 4。

  4 位首部長度(header length):表示 IP 報頭的長度,以 4 字節(jié)為單位。

  8 位服務(wù)類型(Type Of Service):3 位優(yōu)先權(quán)字段(已經(jīng)棄用),4 位 TOS 字段,和 1 位保留字段(必須置為 0)。4 位 TOS 分別表示:最小延時,最大吞吐量,最高可靠性,最小成本。這四者相互沖突,只能選擇一個。比如對于 ssh/telnet 這樣的應(yīng)用程序,最小延時比較重要,而對于 ftp 這樣的程序,最大吞吐量比較重要。

  16 位總長度(total length):IP 報文(IP 報頭 + 有效載荷)的總長度,用于將各個 IP 報文進行分離。

  16 位標識(id):唯一的標識主機發(fā)送的報文,如果數(shù)據(jù)在 IP 層進行了分片,那么每一個分片對應(yīng)的 id 都是相同的。

  3 位標志字段:第一位保留,表示暫時沒有規(guī)定該字段的意義。第二位表示禁止分片,表示如果報文長度超過 MTU,IP 模塊就會丟棄該報文。第三位表示 “更多分片”,如果報文沒有進行分片,則該字段設(shè)置為 0,如果報文進行了分片,則除了最后一個分片報文設(shè)置為 0 以外,其余分片報文均設(shè)置為 1。

  13 位片偏移(framegament offset):分片相對于原始數(shù)據(jù)開始處的偏移,表示當前分片在原數(shù)據(jù)中的偏移位置,實際偏移的字節(jié)數(shù)是這個值× 8 \times 8×8 得到的。因此除了最后一個報文之外,其他報文的長度必須是 8 的整數(shù)倍,否則報文就不連續(xù)了。

  8 位生存時間(Time To Live,TTL):數(shù)據(jù)報到達目的地的最大報文跳數(shù),一般是 64,每經(jīng)過一個路由,TTL -= 1,一直減到 0 還沒到達,那么就丟棄了,這個字段主要是用來防止出現(xiàn)路由循環(huán)。

  8 位協(xié)議:表示上層協(xié)議的類型。

  16 位首部檢驗和:使用 CRC 進行校驗,來鑒別數(shù)據(jù)報的首部是否損壞,但不檢驗數(shù)據(jù)部分。

  32 位源 IP 地址和 32 位目的 IP 地址:表示發(fā)送端和接收端所對應(yīng)的 IP 地址。

  選項字段:不定長,最多 40 字節(jié)。

  IP 報頭在內(nèi)核當中本質(zhì)就是一個位段類型,給數(shù)據(jù)封裝 IP 報頭時,實際上就是用該位段類型定義一個變量,然后填充 IP 報頭當中的各個屬性字段,最后將這個 IP 報頭拷貝到數(shù)據(jù)的首部,至此便完成了 IP 報頭的封裝。

  IP 如何將報頭與有效載荷進行分離?

  IP 分離報頭與有效載荷的方法與 TCP 是一模一樣的,當 IP 從底層獲取到一個報文后,雖然 IP 不知道報頭的具體長度,但 IP 報文的前 20 個字節(jié)是 IP 的基本報頭,并且這 20 字節(jié)當中涵蓋 4 位首部長度。

  因此 IP 是這樣分離報頭與有效載荷的:

  當 IP 從底層獲取到一個報文后,首先讀取報文的前 20 個字節(jié),并從中提取出 4 位的首部長度,此時便獲得了 IP 報頭的大小s i z e sizesize。

  如果s i z e sizesize 的值大于 20 字節(jié),則需要繼續(xù)從報文當中讀取s i z e − 20 size-20size−20 字節(jié)的數(shù)據(jù),這部分數(shù)據(jù)就是 IP 報頭當中的選項字段。

  讀取完 IP 的基本報頭和選項字段后,剩下的就是有效載荷了。

  IP 就是通過這種 “定長報頭 + 自描述字段” 的方式進行報頭和有效載荷的分離的。但需要注意的是,IP 報頭當中的 4 位首部長度描述的基本單位與 TCP 報頭當中的 4 位首部長度一樣,都是以 4 字節(jié)為單位進行描述的,這也恰好是報文的寬度。

  4 位二進制的取值范圍是 0000 ~ 1111,因此 IP 報頭的最大長度為15 × 4 = 60 15\times 4=6015×4=60 字節(jié),因為基本報頭的長度是 20 字節(jié),所以 IP 報頭中選項字段的長度最多是 40 字節(jié)。如果 IP 報頭當中不攜帶選項字段,那么 IP 報頭的長度就是 20 字節(jié),此時報頭當中的 4 位首部長度字段所填的值就是20 ÷ 4 = 5 20\div 4=520÷4=5,即 0101。

  IP 如何決定將有效載荷交付給上層的哪一個協(xié)議?

  基于 IP 協(xié)議的傳輸層協(xié)議不止一種,因此當 IP 從底層獲取到一個報文并對其進行解包后,IP 需要知道應(yīng)該將分離后得到的有效載荷交付給上層的哪一個協(xié)議。

  在 IP 報頭當中有一個字段叫做 8 位協(xié)議,該字段表示的就是上層協(xié)議的類型,IP 就是根據(jù)該字段判定應(yīng)該將分離出來的有效載荷交付給上層的哪一個協(xié)議的。該字段是發(fā)送方的 IP 層從上層傳輸層獲取到數(shù)據(jù)后填充的,比如是上層 TCP 交給 IP 層的數(shù)據(jù),那么該數(shù)據(jù)在封裝 IP 報頭時的 8 位協(xié)議填充的就是 TCP 對應(yīng)的編號。

  32 位源 IP 地址和 32 位目的 IP 地址

  IP 報頭當中的 32 位源 IP 地址和 32 位目的 IP 地址,分別代表的就是該報文的發(fā)送端和接收端對應(yīng)的 IP 地址。

  數(shù)據(jù)在網(wǎng)絡(luò)傳輸過程中會遇到一個個的路由器,這些路由器會幫助網(wǎng)絡(luò)當中的數(shù)據(jù)進行路由轉(zhuǎn)發(fā),使得網(wǎng)絡(luò)中的數(shù)據(jù)慢慢趨近于目標主機。路由器在幫助數(shù)據(jù)進行路由轉(zhuǎn)發(fā)時,會提取出該數(shù)據(jù)的 IP 報頭當中的目的 IP 地址,并以此作為數(shù)據(jù)路由轉(zhuǎn)發(fā)的重要依據(jù)。

  當接收端收到了發(fā)送端發(fā)來的數(shù)據(jù)后,接收端可能也想要給發(fā)送端發(fā)送數(shù)據(jù),因此發(fā)送端在發(fā)送數(shù)據(jù)時除了需要指明該數(shù)據(jù)的目的 IP 地址,還需要指明該數(shù)據(jù)的源 IP 地址,也就是發(fā)送端的 IP 地址。即便接收端收到數(shù)據(jù)后沒有數(shù)據(jù)想要發(fā)送給發(fā)送端,但至少接收端需要向發(fā)送端發(fā)送一個響應(yīng)報文,表明發(fā)送端發(fā)送的數(shù)據(jù)已經(jīng)被接收端可靠的收到了,因此發(fā)送出去的數(shù)據(jù)除了需要指明該數(shù)據(jù)的目的 IP 地址,還需要指明該數(shù)據(jù)的源 IP 地址。

  理解 socket 編程:

  在進行 socket 編程的時候,當一端想要發(fā)送數(shù)據(jù)給另一端時,必須要指明對端的 IP 地址和端口號,也就是發(fā)送數(shù)據(jù)的目的 IP 地址和目的端口號。

  其中這里的 IP 地址就是給網(wǎng)絡(luò)層的 IP 用的,用于數(shù)據(jù)在網(wǎng)絡(luò)傳輸過程中的路由轉(zhuǎn)發(fā),而這里的端口號就是給傳輸層的 TCP 或 UDP 用的,用于指明該數(shù)據(jù)應(yīng)該交給上層的哪一個進程。

  發(fā)送數(shù)據(jù)時我們不需要指明發(fā)送數(shù)據(jù)的源 IP 地址和源端口號,因為傳輸層和網(wǎng)絡(luò)層都是在操作系統(tǒng)內(nèi)核當中實現(xiàn)的,數(shù)據(jù)在進行封裝時操作系統(tǒng)會自行填充上對應(yīng)的源 IP 地址和源端口號。

  8 位生存時間

  報文在網(wǎng)絡(luò)傳輸過程中,可能因為某些原因?qū)е聢笪臒o法到達目標主機,比如報文在路由時出現(xiàn)了環(huán)路路由的情況,或者目標主機已經(jīng)異常離線了,此時這個報文就成了一個廢棄的游離報文。

  為了避免網(wǎng)絡(luò)當中出現(xiàn)大量的游離報文,于是在 IP 的報頭當中就出現(xiàn)了一個字段,叫做 8 位生存時間(Time To Live,TTL)。8 位生存時間代表的是報文到達目的地的最大報文跳數(shù),每當報文經(jīng)過一次路由,這里的生存時間就會減一,當生存時間減為 0 時該報文就會被自動丟棄,此時這個報文就會在網(wǎng)絡(luò)中消散。

  分片與組裝

  數(shù)據(jù)鏈路層解決的問題

  IP 能夠?qū)?shù)據(jù)跨網(wǎng)絡(luò)從一臺主機送到另一臺主機,而數(shù)據(jù)在進行跨網(wǎng)絡(luò)傳送時,需要經(jīng)過一個個的路由器進行路由轉(zhuǎn)發(fā),最終才能到達目標主機。

  比如要將數(shù)據(jù)從主機 B 跨網(wǎng)絡(luò)傳送到主機 C,那么主機 B 需要先將數(shù)據(jù)交給路由器 F,路由器 F 再將數(shù)據(jù)交給路由器 G,…,最終由路由器 D 將數(shù)據(jù)交給主機 C。

IP協(xié)議5

  因此 IP 進行數(shù)據(jù)跨網(wǎng)絡(luò)傳送的前提是,需要先將數(shù)據(jù)從一個節(jié)點傳送到和自己相連的下一個節(jié)點,這個問題實際就是由 IP 之下的數(shù)據(jù)鏈路層解決的,其中數(shù)據(jù)鏈路層最典型的代表協(xié)議就是 MAC 幀。

  而兩個節(jié)點直接相連也就意味著這兩個節(jié)點是在同一個局域網(wǎng)當中的,因此要討論兩個相鄰節(jié)點的數(shù)據(jù)傳送時,實際討論的就是局域網(wǎng)通信的問題。

  最大傳輸單元 MTU

  MAC 幀作為數(shù)據(jù)鏈路層的協(xié)議,它會將 IP 傳下來的數(shù)據(jù)封裝成數(shù)據(jù)幀,然后發(fā)送到網(wǎng)絡(luò)當中。但 MAC 幀攜帶的有效載荷的最大長度是有限制的,也就是說 IP 交給 MAC 幀的報文不能超過某個值,這個值就叫做最大傳輸單元(Maximum Transmission Unit,MTU),這個值的大小一般是 1500 字節(jié)。

  在 Linux 下使用ifconfig命令可以查看對應(yīng)的 MTU。

IP協(xié)議6

  由于 MAC 幀無法發(fā)送大于 1500 字節(jié)的數(shù)據(jù),因此 IP 層向下交付的數(shù)據(jù)的長度不能超過 1500 字節(jié),這里所說的數(shù)據(jù)包括 IP 的報頭和 IP 的有效載荷。

  分片與組裝

  如果 IP 層要傳送的數(shù)據(jù)超過了 1500 字節(jié),那么就需要先在 IP 層對該數(shù)據(jù)進行分片,然后再將分片后的數(shù)據(jù)交給下層 MAC 幀進行發(fā)送。

IP協(xié)議7

  如果發(fā)送數(shù)據(jù)時在 IP 層進行了分片,那么當這些分片數(shù)據(jù)到達對端主機的 IP 層后就需要先進行組裝,然后再將組裝好的數(shù)據(jù)交付給上層傳輸層。

IP協(xié)議8

  注意:

  數(shù)據(jù)的分片不是經(jīng)常需要做的,實際在網(wǎng)絡(luò)通信過程中不分片才是常態(tài),因為數(shù)據(jù)分片會存在一些潛在的問題,比如分片可能會增加丟包的概率。

  數(shù)據(jù)的分片和組裝發(fā)生在 IP 層,不僅源端主機可能會對數(shù)據(jù)進行分片,數(shù)據(jù)在路由過程中的路由器也可能對數(shù)據(jù)進行分片。因為不同網(wǎng)絡(luò)的 MTU 是不一樣的,如果傳輸路徑上的某個網(wǎng)絡(luò)的 MTU 比源端網(wǎng)絡(luò)的 MTU 小,那么路由器就可能對 IP 數(shù)據(jù)報再次進行分片。

  分片數(shù)據(jù)的組裝只會發(fā)生在目的端的 IP 層。

  在分片的數(shù)據(jù)中,每一個分片在 IP 層都會被添加上對應(yīng)的 IP 報頭,而傳輸層添加的報頭只會出現(xiàn)在第一個分片中,因此網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)包可能沒有傳輸層的報頭。

  數(shù)據(jù)的分片和組裝都是由 IP 層完成的

  數(shù)據(jù)的分片和組裝都是在 IP 層完成的,上層的傳輸層和下層的鏈路層并不關(guān)心。

  傳輸層只負責為數(shù)據(jù)傳送提供可靠性保證,比如當數(shù)據(jù)傳送失敗后,傳輸層的 TCP 協(xié)議可以組織進行數(shù)據(jù)重傳。

  當 TCP 將待發(fā)送的數(shù)據(jù)交給 IP 后,TCP 并不關(guān)心該數(shù)據(jù)是否會在 IP 層進行分片,即 TCP 并不關(guān)心數(shù)據(jù)具體的發(fā)送過程。

  當 TCP 從 IP 獲取到數(shù)據(jù)后,TCP 也不關(guān)心該數(shù)據(jù)是否在 IP 層經(jīng)過了組裝。而鏈路層的 MAC 幀只負責,將數(shù)據(jù)從一個節(jié)點傳送到和自己相連的下一個節(jié)點。

  當 IP 將待發(fā)送的數(shù)據(jù)交給 MAC 幀后,MAC 幀并不知道該數(shù)據(jù)是 IP 經(jīng)過分片后的某個分片數(shù)據(jù),還是一個沒有經(jīng)過分片的數(shù)據(jù),MAC 幀只知道它一次最多只能發(fā)送 MTU 大小的數(shù)據(jù),如果 IP 交給 MAC 幀大于 MTU 字節(jié)的數(shù)據(jù),那 MAC 幀就無法進行發(fā)送。

  當 MAC 幀從網(wǎng)絡(luò)中獲取到數(shù)據(jù)后,MAC 幀也不關(guān)心這個數(shù)據(jù)是否需要進行組裝,MAC 幀只需要將該數(shù)據(jù)的 MAC 幀報頭去掉后直接上交給上層 IP 就行了,而至于該數(shù)據(jù)的組裝問題則是 IP 需要解決的。

  因此,數(shù)據(jù)的分片和組裝完全是由 IP 協(xié)議自己完成的,傳輸層和鏈路層不必關(guān)心也不需要關(guān)心。

  分片的過程

  假設(shè) IP 層要發(fā)送 4500 字節(jié)的數(shù)據(jù),由于該數(shù)據(jù)超過了 MAC 幀規(guī)定的 MTU,因此 IP 需要先將該數(shù)據(jù)進行分片,然后再將一個個的分片交給 MAC 幀進行發(fā)送。

  IP 報頭如果不攜帶選項字段,那么其大小就是 20 字節(jié),假設(shè) IP 層添加的 IP 報頭的長度就是 20 字節(jié),并按下列方式將數(shù)據(jù)分片后形成了四個分片報文:

IP協(xié)議9

  需要注意的是,分片后的每一個分片數(shù)據(jù)都需要封裝上對應(yīng)的 IP 報頭,因此 4500 字節(jié)的數(shù)據(jù)至少需要分為四個分片報文進行發(fā)送。

  分片報文到達對方的 IP 層后需要被重新組裝起來,因此 IP 層在對數(shù)據(jù)進行分片時需要記錄分片的信息,而 IP 報頭當中的 16 位標識、3 位標志和 13 位片偏移實際就是與數(shù)據(jù)分片相關(guān)的字段。

  16 位標識:唯一標識主機發(fā)送的報文,如果數(shù)據(jù)在 IP 層進行了分片,那么每一個分片報文的 16 位標識是相同的。

  3 位標志:第一位保留,表示暫時沒有規(guī)定該字段的意義。第二位表示禁止分片,表示如果報文長度超過 MTU,IP 模塊就會丟棄該報文。第三位表示 “更多分片”,如果報文沒有進行分片,則該字段設(shè)置為 0,如果報文進行了分片,則除了最后一個分片報文設(shè)置為 0 以外,其余分片報文均設(shè)置為 1。

  13 位片偏移:分片相對于原始數(shù)據(jù)開始處的偏移,表示當前分片在原數(shù)據(jù)中的偏移位置,實際偏移的字節(jié)數(shù)是這個值× 8 \times 8×8 得到的。因此除了最后一個報文之外,其他報文的長度必須是 8 的整數(shù)倍,否則報文就不連續(xù)了。

  因此上述四個分片報文對應(yīng)的 16 位標識都是一樣的,假設(shè)四個分片報文的 16 位標識都是 123,則這四個報文對應(yīng)的 16 位標識、3 位標志中的 “更多分片” 和 13 位片偏移分別如下:

IP協(xié)議10

  需要注意的是,13 位片偏移當中記錄的字節(jié)數(shù)是當前分片在原數(shù)據(jù)開始處的偏移字節(jié)數(shù)的值÷ 8 \div 8÷8 得到的,比如分片報文 2 在原始數(shù)據(jù)開始處的偏移字節(jié)數(shù)是 1480,其對應(yīng)的 13 位片偏移的值就是1480 ÷ 8 = 185 1480\div 8=1851480÷8=185。

IP協(xié)議11

  組裝的過程

  MAC 幀交給 IP 層的數(shù)據(jù)可能來自世界各地,這些數(shù)據(jù)可能是經(jīng)過分片后發(fā)送的,也可能是沒有經(jīng)過分片直接發(fā)送的,因此 IP 必須要通過某種方式來區(qū)分收到的各個數(shù)據(jù)。

  IP 報頭當中有 32 位源 IP 地址,源 IP 地址記錄了發(fā)送端所對應(yīng)的 IP 地址,因此通過 IP 報頭當中的 32 位源 IP 地址就可以區(qū)分來自不同主機的數(shù)據(jù)。

  IP 報頭當中有 16 位標識,未分片的數(shù)據(jù)各自的 16 位標識都是不同的,而由同一個數(shù)據(jù)分片得到的各個分片報文所對應(yīng)的 16 位標識都是相同的,因此通過 IP 報頭當中 16 位標識就可以判斷哪些報文是沒有經(jīng)過分片的獨立報文,哪些報文是經(jīng)過分片后的分片報文。因此 IP 可以通過 IP 報頭當中的 32 位源 IP 地址和 16 位標識,將經(jīng)過分片的數(shù)據(jù)各自聚合在一起,聚合在一起后就可以開始進行組裝了。

  對于各個分片報文來說:

  第一個分片報文中的 13 位片偏移的值一定為 0。

  最后一個分片報文中的 “更多分片” 標志位一定為 0。

  對于每一個分片報文來說,當前報文的 13 位片偏移加上當前報文的數(shù)據(jù)字節(jié)數(shù) ÷ \div÷ 8 所得到的值,就是下一個分片報文的所對應(yīng)的 13 位片偏移。

  根據(jù)分片報文的這三個特點就能夠?qū)⒎制瑘笪暮侠淼慕M裝起來。

  先找到分片報文中 13 位片偏移為 0 的分片報文,然后提取出其 IP 報頭當中的 16 位總長度字段,通過計算即可得出下一個分片報文所對應(yīng)的 13 位片偏移,按照此方式依次將各個分片報文拼接起來。

  直到拼接到一個 “更多分片” 標志位為 0 的分片報文,此時表明分片報文組裝完畢。

  分片報文丟包的問題

  分片后的報文在網(wǎng)絡(luò)傳輸過程中也可能會出現(xiàn)丟包問題,但接收端有能力判斷是否收到了全部分片報文,比如假設(shè)某組分片報文對應(yīng)的 16 位標識值為 x:

  如果分片報文中的第一個分片報文丟包了,那么接收端收到的分片報文中就找不到對應(yīng) 16 位標識為 x,并且 13 位片偏移為 0 的分片報文。

  如果分片報文中的最后一個分片報文丟包了,那么接收端收到的分片報文中就找不到對應(yīng) 16 為標識為 x,并且 “更多分片” 標志位為 0 的分片報文。

  如果分片報文中的其它分片報文丟包了,那么接收端在進行分片報文的組裝時就會找不到對應(yīng) 13 位片偏移為特定值的分片報文。

  需要注意的是,未分片報文的 “更多分片” 標志位為 0,最后一個分片報文的 “更多分片” 標志位也為 0,但當接收端只收到分片報文中的最后一個分片報文時,接收端不會將其識別成一個未分片的報文,因為未分片的報文所對應(yīng)的 13 位片偏移的值也應(yīng)該是 0,而最后一個分片報文所對應(yīng)的 13 位片偏移的值不為 0。

  因此只有當一個報文的 13 位片偏移為 0,并且該報文的 “更多分片” 標志位也為 0 時,該報文才會被識別成一個沒有被分片的獨立報文,否則該報文就會被識別成一個分片報文。

  為什么不建議進行分片?

  雖然傳輸層并不關(guān)心 IP 層的分片問題,但分片對傳輸層也是有影響的。

  如果一個數(shù)據(jù)在網(wǎng)絡(luò)傳輸過程中沒有經(jīng)過分片,那么只要接收端收到了這一個報文,我們就可以認為該數(shù)據(jù)被對方可靠的收到了。

  而如果一個數(shù)據(jù)在網(wǎng)絡(luò)傳輸過程中進行了分片,那么只有當接收端收到了全部的分片報文并將其成功組裝起來,這時我們才認為該數(shù)據(jù)被對方可靠的收到了。但如果眾多的分片報文當中有一個報文出現(xiàn)了丟包,就會導(dǎo)致接收端就無法將報文成功組裝起來,這時接收端會將收到的分片報文全部丟棄,此時傳輸層 TCP 會因為收不到對方應(yīng)答而進行超時重傳。

  假設(shè)在網(wǎng)絡(luò)傳輸時丟包的概率是萬分之一,如果將數(shù)據(jù)拆分為一百份進行發(fā)送,那么此時丟包的概率就上升到了百分之一。因為只要有一個分片報文丟包了也就等同于這個報文整體丟失了,因此分片會增加傳輸層重傳數(shù)據(jù)的概率。

  需要注意的是,只要分片報文當中的某一個出現(xiàn)了丟包,此時傳輸層都需要將數(shù)據(jù)整體進行重傳,因為傳輸層并不知道底層 IP 對數(shù)據(jù)進行了分片,當傳輸層發(fā)送出去的數(shù)據(jù)得不到應(yīng)答時傳輸層就只能將數(shù)據(jù)整體進行重傳,因此數(shù)據(jù)在發(fā)送時不建議進行分片。

  如何盡可能避免分片?

  實際數(shù)據(jù)分片的根本原因在于傳輸層一次向下交付的數(shù)據(jù)太多了,導(dǎo)致 IP 無法直接將數(shù)據(jù)向下交給 MAC 幀,如果傳輸層控制好一次交給 IP 的數(shù)據(jù)量不要太大,那么數(shù)據(jù)在 IP 層自然也就不需要進行分片。

  因此 TCP 作為傳輸控制協(xié)議,它需要控制一次向下交付數(shù)據(jù)不能超過某一閾值,這個閾值就叫做 MSS(Maximum Segment Size,最大報文段長度)。

  通信雙方在建立 TCP 連接時,除了需要協(xié)商自身窗口大小等概念之外,還會協(xié)商后續(xù)通信時每一個報文段所能承載的最大報文段長度 MSS。

  MAC 幀的有效載荷最大為 MTU,TCP 的有效載荷最大為 MSS,由于 TCP 和 IP 常規(guī)情況下報頭的長度都是 20 字節(jié),因此一般情況下 MSS = MTU - 20 - 20,而 MTU 的值一般是 1500 字節(jié),因此 MSS 的值一般就是 1460 字節(jié)。

  所以一般建議 TCP 將發(fā)送的數(shù)據(jù)控制在 1460 字節(jié)以內(nèi),此時就能夠降低數(shù)據(jù)分片的可能性。之所以說是降低數(shù)據(jù)分片的可能性,是因為每個網(wǎng)絡(luò)的鏈路層對應(yīng)的 MTU 可能是不同的,如果數(shù)據(jù)在傳輸過程中進入到了一個 MTU 較小的網(wǎng)絡(luò),那么該數(shù)據(jù)仍然可能需要在路由器中進行分片。

  網(wǎng)段劃分

  IP 地址的構(gòu)成

  IP 地址由網(wǎng)絡(luò)號和主機號兩部分構(gòu)成:

  網(wǎng)絡(luò)號:保證相互連接的兩個網(wǎng)段具有不同的標識。

  主機號:同一網(wǎng)段內(nèi),主機之間具有相同的網(wǎng)絡(luò)號,但是必須有不同的主機號。可以在 IP 地址的后面加一個 /,并在 / 后面加上一個數(shù)字,這就表示從頭數(shù)到第幾位為止屬于網(wǎng)絡(luò)標識。

  例如,下圖中路由器連接了兩個網(wǎng)段。對于網(wǎng)絡(luò)標識來講,同一網(wǎng)段內(nèi)主機的網(wǎng)絡(luò)標識是相同的,不同網(wǎng)段內(nèi)主機的網(wǎng)絡(luò)標識是不同的。而對于主機標識來講,同一網(wǎng)段內(nèi)主機的主機標識是不同的,不同網(wǎng)段內(nèi)主機的主機標識是可以相同的。

IP協(xié)議12

  不同的子網(wǎng)其實就是把網(wǎng)絡(luò)號相同的主機放到一起。

  如果在子網(wǎng)中新增一臺主機,則這臺主機的網(wǎng)絡(luò)號和這個子網(wǎng)的網(wǎng)絡(luò)號一致,但是主機號必須不能和子網(wǎng)中的其他主機重復(fù)。

  DHCP 協(xié)議

  實際手動管理 IP 地址是一個非常麻煩的事情,當子網(wǎng)中新增主機時需要給其分配一個 IP 地址,當子網(wǎng)當中有主機斷開網(wǎng)絡(luò)時又需要將其 IP 地址進行回收,便于分配給后續(xù)新增的主機使用。

  因此對于 IP 地址的分配和回收一般不會手動進行,而是采用 DHCP(Dynamic Host Configuration Protocol,動態(tài)主機配置協(xié)議)技術(shù)。

  DHCP 通常被應(yīng)用在大型的局域網(wǎng)環(huán)境中,其主要作用就是集中地址管理、分配 IP 地址,使網(wǎng)絡(luò)環(huán)境中的主機動態(tài)獲得 IP 地址、Gateway 地址、DNS 服務(wù)器地址等信息,并能夠提升地址的使用率。

  DHCP 是一個基于 UDP 的應(yīng)用層協(xié)議,一般的路由器都帶有 DHCP 功能,因此路由器也可以看作一個 DHCP 服務(wù)器。

  當我們連接 WiFi 時需要輸入密碼,本質(zhì)就是因為路由器需要驗證你的賬號和密碼,如果驗證通過,那么路由器就會給你動態(tài)分配了一個 IP 地址,然后你就可以基于這個 IP 地址進行各種上網(wǎng)動作了。

  先找目標網(wǎng)絡(luò),再找目標主機

  當 IP 要將數(shù)據(jù)跨網(wǎng)絡(luò)從一臺主機發(fā)送到另一臺主機時,其實不是直接將數(shù)據(jù)發(fā)送到了目標主機,而是先將數(shù)據(jù)發(fā)送到目標主機所在的網(wǎng)絡(luò),然后再將數(shù)據(jù)發(fā)送到目標主機。

  因此數(shù)據(jù)在路由時的第一目的并不是找到目標主機,而是找到目標網(wǎng)絡(luò)所在的網(wǎng)絡(luò),然后再在目標網(wǎng)絡(luò)當中找到目標主機。

  數(shù)據(jù)路由時之所以不一開始就以找目標主機為目的,因為這樣效率太低了。

  找主機的過程本質(zhì)是排除的過程,如果一開始就以找目標主機為目的,那么在查找的過程中一次只能排除一個主機。

  而如果一開始先以找目標網(wǎng)絡(luò)為目的,那么在查找過程中就能一次排除大量和目標主機不在同一網(wǎng)段的主機,這樣就可以大大提高檢索的效率。

  因此,為了提高數(shù)據(jù)路由的效率,我們對網(wǎng)絡(luò)進行了網(wǎng)段劃分。

  網(wǎng)段劃分

  過去曾經(jīng)提出一種劃分網(wǎng)絡(luò)號和主機號的方案,就是把所有 IP 地址分為五類,如下圖所示:

IP協(xié)議13

  因此,各類 IP 地址的取值范圍如下:

  A 類:0.0.0.0 到 127.255.255.255。

  B 類:128.0.0.0 到 191.255.255.255。

  C 類:192.0.0.0 到 223.255.255.255。

  D 類:224.0.0.0 到 239.255.255.255。

  E 類:240.0.0.0 到 247.255.255.255。當要判斷一個 IP 地址是屬于哪一類時,只需要遍歷 IP 地址的前五個比特位,第幾個比特位最先出現(xiàn) 0 值,那么這個 IP 地址對應(yīng)就屬于 A、B、C、D、E 類地址。

  子網(wǎng)劃分

  但隨著網(wǎng)絡(luò)的飛速發(fā)展,這種劃分方案的局限性很快就顯現(xiàn)出來了。

  比如一些學(xué)校、公司、實驗室等組織想要申請自己的局域網(wǎng),由于 A 類地址的網(wǎng)絡(luò)號只占 7 個比特位,因此 A 類地址可申請的網(wǎng)絡(luò)只有2 7 2^727 個,于是大多數(shù)組織都選擇申請 B 類地址。

  由于 B 類地址的主機號占 16 個比特位,因此理論上一個 B 類網(wǎng)絡(luò)當中允許有 65536 臺主機。

  但實際網(wǎng)絡(luò)架設(shè)中,一般不會存在一個局域網(wǎng)當中有這么多主機的情況,也就意味著大量的 IP 地址實際都被浪費掉了。

  為了避免這種情況,于是又提出了新的劃分方案,稱為 CIDR(Classless Interdomain Routing):

  在原有的五類網(wǎng)絡(luò)的基礎(chǔ)上繼續(xù)進行子網(wǎng)劃分,這也就意味著需要借用主機號當中的若干位來充當網(wǎng)絡(luò)號,此時為了區(qū)分 IP 地址中的網(wǎng)絡(luò)號和主機號,于是引入了子網(wǎng)掩碼(subnet mask)的概念。

  每一個子網(wǎng)都有自己的子網(wǎng)掩碼,子網(wǎng)掩碼實際就是一個 32 位的正整數(shù),通常用一串 “0” 來結(jié)尾。

  將 IP 地址與當前網(wǎng)絡(luò)的子網(wǎng)掩碼進行 “按位與” 操作,就能夠得到當前所在網(wǎng)絡(luò)的網(wǎng)絡(luò)號。

  此時一個網(wǎng)絡(luò)就被更細粒度的劃分成了一個個更小的子網(wǎng),通過不斷的子網(wǎng)劃分,子網(wǎng)中 IP 地址對應(yīng)的主機號就越來越短,因此子網(wǎng)當中可用 IP 地址的個數(shù)也就越來越少,這也就避免了 IP 地址被大量浪費的情況。

  比如在某一子網(wǎng)中將 IP 地址的前 24 位作為網(wǎng)絡(luò)號,那么該網(wǎng)絡(luò)對應(yīng)的子網(wǎng)掩碼的 32 個比特位中的前 24 位就為 1,剩下的 8 個比特位為 0,將其用點分十機制表示就是 255.255.255.0。

  假設(shè)該子網(wǎng)當中有一臺主機對應(yīng)的 IP 地址是 192.168.128.10,那么將這個 IP 地址與該網(wǎng)絡(luò)對應(yīng)的子網(wǎng)掩碼進行 “按位與” 操作后得到的就是 192.168.128.0,這就是這個子網(wǎng)對應(yīng)的網(wǎng)絡(luò)號。

  實際在用子網(wǎng)掩碼與子網(wǎng)當中主機的 IP 地址進行 “按位與” 操作時,本質(zhì)就是保留了主機 IP 地址中前 24 個比特位的原貌,將剩下的 8 個比特位的值清 0 了而已,也就是將主機號清 0 了,所以 “按位與” 后的結(jié)果就是該網(wǎng)絡(luò)對應(yīng)的網(wǎng)絡(luò)號。

  需要注意的是,子網(wǎng)劃分不是只能進行一次,我們可以在劃分出來的子網(wǎng)的基礎(chǔ)上繼續(xù)進行子網(wǎng)劃分。

  因此一個數(shù)據(jù)在路由的時候,隨著數(shù)據(jù)不斷路由進入更小的子網(wǎng),其網(wǎng)絡(luò)號的位數(shù)是在不斷變化的,準確來說其網(wǎng)絡(luò)號的位數(shù)是在不斷增加的,這也就意味著 IP 地址當中的主機號的位數(shù)在不斷減少。最終當數(shù)據(jù)路由到達目標主機所在的網(wǎng)絡(luò)時,就可以在該網(wǎng)絡(luò)當中找到對應(yīng)的目標主機并將數(shù)據(jù)交給該主機,此時該數(shù)據(jù)的路由也就結(jié)束了。

  特殊的 IP 地址

  并不是所有的 IP 地址都能夠作為主機的 IP 地址,有些 IP 地址本身就是具有特殊用途的。

  將 IP 地址中的主機地址全部設(shè)為 0,就成為了網(wǎng)絡(luò)號,代表這個局域網(wǎng)。

  將 IP 地址中的主機地址全部設(shè)為 1,就成為了廣播地址,用于給同一個鏈路中相互連接的所有主機發(fā)送數(shù)據(jù)包。

  127.* 的 IP 地址用于本機環(huán)回(loop back)測試,通常是 127.0.0.1。

  也就是說,IP 地址中主機號為全 0 的代表的是當前局域網(wǎng)的網(wǎng)絡(luò)號,IP 地址中主機號為全 1 的代表的是廣播地址,這兩個 IP 地址都是不能作為主機的 IP 地址的。因此在某個局域網(wǎng)中最多能存在的主機個數(shù)是 2 主機號位數(shù) − 2 2^{主機號位數(shù)}-22主機號位數(shù)−2。

  本機環(huán)回基本原理

  本機環(huán)回會將數(shù)據(jù)貫穿網(wǎng)絡(luò)協(xié)議棧,但最終并不會將數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)當中,相當于本機環(huán)回時不會將數(shù)據(jù)寫到網(wǎng)卡上面。

  本機環(huán)回的目的就是將數(shù)據(jù)自頂向下貫穿協(xié)議棧,進行一次數(shù)據(jù)封裝的過程的過程,然后再自底向上貫穿協(xié)議棧,進行一次數(shù)據(jù)的解包和分用,用于測試本地的網(wǎng)絡(luò)功能是否正常。

  本機環(huán)回的基本原理:

  當數(shù)據(jù)到達 IP 層需要繼續(xù)向下交付時,如果是環(huán)回程序,那么 IP 輸出函數(shù)會將該數(shù)據(jù)放入到 IP 輸入隊列當中,然后再由 IP 輸入函數(shù)讀取上去。

  而 IP 輸入函數(shù)將數(shù)據(jù)讀取上去的本應(yīng)該是鏈路層交付上來的數(shù)據(jù),因此該數(shù)據(jù)后續(xù)就會被當作從網(wǎng)絡(luò)中讀取上來的數(shù)據(jù)看待,各層協(xié)議會對該數(shù)據(jù)依次進行解包和分用。

  如果不是環(huán)回程序的話,那么接下來就會判斷該數(shù)據(jù)對應(yīng)的目的 IP 地址是否為廣播或多播地址,或者目的 IP 地址是否與本主機的 IP 地址相同,如果是則也會將該數(shù)據(jù)放入到 IP 輸入隊列當中,等待 IP 輸入函數(shù)將其讀走。

  只有判斷程序不是環(huán)回程序,并且也不是廣播或多播,或發(fā)給本主機的數(shù)據(jù)后,才會用 ARP 獲取該數(shù)據(jù)目的主機的以太網(wǎng)地址并進行后續(xù)數(shù)據(jù)發(fā)送的操作。

  loopback 設(shè)備:

  

IP協(xié)議14

  IP 地址的數(shù)量限制

  IP 地址數(shù)量不足問題

  我們知道,IP 地址(IPv4)是一個 4 字節(jié) 32 位的正整數(shù),因此一共有2 32 2^{32}232 個 IP 地址,也就是將近 43 億個 IP 地址。但 TCP/IP 協(xié)議規(guī)定,每個主機都需要有一個 IP 地址。

  現(xiàn)在全世界人口已經(jīng)有 70 多億了,就算有一半的人沒有智能手機,算下來也有 30 多億臺智能手機需要 IP 地址。

  隨著科技的發(fā)展,我們使用的電腦、智能手表、智能冰箱、智能洗衣機等設(shè)備如果要入網(wǎng)也是需要 IP 地址的。

  另外,IP 地址并不是按照主機臺數(shù)來配置的,因此一個主機可能需要多個 IP 地址,更別談還有很多組網(wǎng)的路由設(shè)備也需要 IP 地址,以及一些特殊的 IP 地址不能使用的問題。所以 43 億個 IP 地址其實早就不夠用了,因此才提出了 CIDR 的方案對已經(jīng)劃分好的五類網(wǎng)絡(luò)繼續(xù)進行子網(wǎng)劃分,其目的就是為了減少 IP 地址的浪費,根本原因就是 IP 地址本來就不夠了,所以不能夠再浪費了。

  CIDR 雖然在一定程度上緩解了 IP 地址不夠用的問題,因為 CIDR 提高了 IP 地址的利用率,減少了浪費,但 IP 地址的絕對上限并沒有增加。

  如何解決 IP 地址不足問題

  解決 IP 地址不足有以下幾種方式:

  動態(tài)分配 IP 地址:只給接入網(wǎng)絡(luò)的設(shè)備分配 IP 地址,因此同一個 MAC 地址的設(shè)備,每次接入互聯(lián)網(wǎng)中,得到的 IP 地址不一定是相同的,避免了 IP 地址強綁定于某一臺設(shè)備。

  NAT 技術(shù):能夠讓不同局域網(wǎng)當中同時存在兩個相同的 IP 地址,NAT 技術(shù)不僅能解決 IP 地址不足的問題,而且還能夠有效地避免來自網(wǎng)絡(luò)外部的攻擊,隱藏并保護網(wǎng)絡(luò)內(nèi)部的計算機。

  IPv6:IPv6 用 16 字節(jié) 128 位來表示一個 IP 地址,能夠大大緩解 IP 地址不足的問題。但 IPv6 并不是 IPv4 的簡單升級版,它們是互不相干的兩個協(xié)議,彼此并不兼容,因此目前 IPv6 還沒有普及。

  私網(wǎng) IP 地址和公網(wǎng) IP 地址

  私網(wǎng) IP 地址的種類

  如果一個組織內(nèi)部組建局域網(wǎng),IP 地址只用于局域網(wǎng)內(nèi)的通信,而不直接連到 Internet 上,理論上使用任意的 IP 地址都可以,但是 RFC 1918 規(guī)定了用于組建局域網(wǎng)的私有 IP 地址。

  10.*,前 8 位是網(wǎng)絡(luò)號,共 16,777,216 個地址。

  172.16.* 到 172.31.*,前 12 位是網(wǎng)絡(luò)號,共 1,048,576 個地址。

  192.168.*,前 16 位是網(wǎng)絡(luò)號,共 65,536 個地址。

  包含在這個范圍中的,都稱為私網(wǎng) IP,其余的則稱為公網(wǎng) IP(或全局 IP)。

  我們連接云服務(wù)器時,連接的這個 IP 地址就是云服務(wù)器的公網(wǎng) IP 地址。

IP協(xié)議15

  我們可以通過ifconfig命令來查看我們這臺機器的私網(wǎng) IP,其中網(wǎng)絡(luò)接口 lo(loop)代表的是本地環(huán)回,而 eth0 代表的就是我這臺機器的網(wǎng)絡(luò)接口,可以看到我的私網(wǎng) IP 地址是 172.21.0.15。

IP協(xié)議16

  需要注意的是,這里連接云服務(wù)器時的 IP 地址 49.232.66.206,是云服務(wù)器的公網(wǎng) IP,由于我使用的是騰訊云,因此這里的 172.21.0.15 是我這個云服務(wù)器在騰訊內(nèi)部的私網(wǎng) IP,可以看到這個 IP 正好在第二種私網(wǎng) IP 范圍內(nèi)。

  此外,打開 Windows 當中的 cmd 窗口,通過ipconfig命令可以看到大量以 192.168 開頭的私網(wǎng) IP。

IP協(xié)議17

  我們?yōu)槭裁匆o運營商交錢?

  我們享受的是互聯(lián)網(wǎng)公司提供服務(wù),但為什么需要向運營商交錢呢?

  實際網(wǎng)絡(luò)通信的基礎(chǔ)設(shè)施都是運營商搭建的,我們訪問服務(wù)器的數(shù)據(jù)并不是直接發(fā)送到了對應(yīng)的服務(wù)器,而是需要經(jīng)過運營商建設(shè)的各種基站以及各種路由器,最終數(shù)據(jù)才能到達對應(yīng)的服務(wù)器。

  因為運營商為我們提供了通信的基礎(chǔ)設(shè)施,所以我們交網(wǎng)費實際就相當于購買入網(wǎng)許可一樣。

  沒有運營商提供的這些基礎(chǔ)設(shè)施,就不會誕生所謂的互聯(lián)網(wǎng)公司,因為互聯(lián)網(wǎng)公司是誕生在網(wǎng)絡(luò)通信基礎(chǔ)之上的。

  也就是說,用戶上網(wǎng)的數(shù)據(jù)首先必須經(jīng)過運營商的相關(guān)網(wǎng)絡(luò)設(shè)備,然后才能發(fā)送到互聯(lián)網(wǎng)公司對應(yīng)的服務(wù)器。因此所謂的網(wǎng)段劃分、子網(wǎng)劃分等工作實際都是運營商做的。

  數(shù)據(jù)是如何發(fā)送到服務(wù)器的

  路由器是連接兩個或多個網(wǎng)絡(luò)的硬件設(shè)備,在路由器上有兩種網(wǎng)絡(luò)接口,分別是 LAN 口和 WAN 口:

  LAN 口(Local Area Network):表示連接本地網(wǎng)絡(luò)的端口,主要與家庭網(wǎng)絡(luò)中的交換機、集線器或 PC 相連。

  WAN 口(Wide Area Network):表示連接廣域網(wǎng)的端口,一般指互聯(lián)網(wǎng)。

  我們將 LAN 口的 IP 地址叫做 LAN 口 IP,也叫做子網(wǎng) IP,將 WAN 口的 IP 地址叫做 WAN 口 IPO,也叫做外網(wǎng) IP。

  我們使用的電腦、家用路由器、運營商路由器、廣域網(wǎng)以及我們要訪問的服務(wù)器之間的關(guān)系大致如下:

IP協(xié)議18

  不同的路由器,子網(wǎng) IP 其實都是一樣的(通常都是 192.168.1.1),子網(wǎng)內(nèi)的主機 IP 地址不能重復(fù),但是子網(wǎng)之間的 IP 地址就可以重復(fù)了。

  每一個家用路由器,其實又作為運營商路由器的子網(wǎng)中的一個節(jié)點,這樣的運營商路由器可能會有很多級,最外層的運營商路由器的 WAN 口 IP 就是一個公網(wǎng) IP 了。

  如果希望我們自己實現(xiàn)的服務(wù)器程序,能夠在公網(wǎng)上被訪問到,就需要把程序部署在一臺具有外網(wǎng) IP 的服務(wù)器上,這樣的服務(wù)器可以在阿里云 / 騰訊云上進行購買。

  由于私網(wǎng) IP 不能出現(xiàn)在公網(wǎng)當中,因此子網(wǎng)內(nèi)的主機在和外網(wǎng)進行通信時,路由器會不斷將數(shù)據(jù)包 IP 首部中的源 IP 地址替換成路由器的 WAN 口 IP,這樣逐級替換,最終數(shù)據(jù)包中的源 IP 地址成為一個公網(wǎng) IP,這種技術(shù)成為 NAT(Network Address Translation,網(wǎng)絡(luò)地址轉(zhuǎn)換)。

  為什么私網(wǎng) IP 不能出現(xiàn)在公網(wǎng)當中?

  不同的局域網(wǎng)中主機的 IP 地址可能是相同的,所以私網(wǎng) IP 無法唯一標識一臺主機,因此不能讓私網(wǎng) IP 出現(xiàn)在公網(wǎng)上,因為 IP 地址要能唯一標識公網(wǎng)上的一臺主機。

  但由于 IP 地址不足的原因,我們不能讓主機直接使用公網(wǎng) IP 而讓主機使用私網(wǎng) IP,因為私網(wǎng) IP 可以重復(fù)也就意味著我們可以在不同的局域網(wǎng)使用相同的 IP 地址,緩解了 IP 的不足。

  此外,我們不能直接使用公網(wǎng) IP 還有一個原因就是,因為我們的數(shù)據(jù)包必須要經(jīng)過運營商的路由器,如果我們發(fā)送的數(shù)據(jù)直接到了公網(wǎng),那也就意味著我們再也不用交網(wǎng)費了,這是不現(xiàn)實的。

  兩個局域網(wǎng)當中的主機不能不跨公網(wǎng)進行通信

  兩個局域網(wǎng)當中的主機理論上是不能不跨公網(wǎng)進行通信的,因為一個主機要將數(shù)據(jù)發(fā)送給另一臺主機的前提是得先知道另一臺主機的 IP 地址。

  即便現(xiàn)在這個主機知道了另一臺主機的 IP 地址,但有可能這兩臺主機的 IP 地址是一樣的,因為它們的 IP 地址都是私網(wǎng) IP 地址。

  當這一臺主機發(fā)送數(shù)據(jù)時將目的 IP 地址填成和自己相同的 IP 地址,操作系統(tǒng)就會認為這個數(shù)據(jù)就是要發(fā)給自己的,而不會向外進行發(fā)送了。

  所以數(shù)據(jù)要從一個局域網(wǎng)發(fā)送到另一個局域網(wǎng),如果不經(jīng)過公網(wǎng)是基本上不可能的。我們在和別人聊天的時候,也不是直接將數(shù)據(jù)從一個局域網(wǎng)直接發(fā)送到了另一個局域網(wǎng),而是先將數(shù)據(jù)經(jīng)過公網(wǎng)發(fā)送到了服務(wù)器,然后再由服務(wù)器將數(shù)據(jù)經(jīng)過公網(wǎng)轉(zhuǎn)發(fā)到了另一個局域網(wǎng)。

  但實際確實存在一些技術(shù)能夠使數(shù)據(jù)包在發(fā)送過程中不進行公網(wǎng) IP 的替換,而將數(shù)據(jù)正確送到目標主機,這種技術(shù)叫做內(nèi)網(wǎng)穿透,也叫做 NAT 穿透。

  路由

  數(shù)據(jù) “問路” 的過程

  數(shù)據(jù)在路由的過程中,實際就是一跳一跳(Hop by Hop)“問路”的過程。所謂 “一跳” 就是數(shù)據(jù)鏈路層中的一個區(qū)間,具體在以太網(wǎng)中指從源 MAC 地址到目的 MAC 地址之間的幀傳輸區(qū)間。

IP協(xié)議19

  IP 數(shù)據(jù)包的傳輸過程中會遇到很多路由器,這些路由器會幫助數(shù)據(jù)包進行路由轉(zhuǎn)發(fā),每當數(shù)據(jù)包遇到一個路由器后,對應(yīng)路由器都會查看該數(shù)據(jù)的目的 IP 地址,并告知該數(shù)據(jù)下一跳應(yīng)該往哪跳。

  路由器的查找結(jié)果可能有以下三種:

  路由器經(jīng)過路由表查詢后,得知該數(shù)據(jù)下一跳應(yīng)該跳到哪一個子網(wǎng)。

  路由器經(jīng)過路由表查詢后,沒有發(fā)現(xiàn)匹配的子網(wǎng),此時路由器會將該數(shù)據(jù)轉(zhuǎn)發(fā)給默認路由。

  路由器經(jīng)過路由表查詢后,得知該數(shù)據(jù)的目標網(wǎng)絡(luò)就是當前所在的網(wǎng)絡(luò),此時路由器就會將該數(shù)據(jù)轉(zhuǎn)給當前網(wǎng)絡(luò)中對應(yīng)的主機。

  路由表查詢的具體過程

  每個路由器內(nèi)部會維護一個路由表,我們可以通過route命令查看云服務(wù)器上對應(yīng)的路由表。

IP協(xié)議20

  Destination代表的是目的網(wǎng)絡(luò)地址。

  Gateway代表的是下一跳地址。

  Genmask代表的是子網(wǎng)掩碼。

  Flags中,U 標志表示此條目有效(可以禁用某些條目)G 標志表示此條目的下一跳地址是某個路由器的地址,沒有 G 標志的條目表示目的網(wǎng)絡(luò)地址是與本機接口直接相連的網(wǎng)絡(luò),不必經(jīng)路由器轉(zhuǎn)發(fā)。

  Iface代表的是發(fā)送接口。

  當 IP 數(shù)據(jù)包到達路由器時,路由器就會用該數(shù)據(jù)的目的 IP 地址,依次與路由表中的子網(wǎng)掩碼 Genmask進行 “按位與” 操作,然后將結(jié)果與子網(wǎng)掩碼對應(yīng)的目的網(wǎng)絡(luò)地址Destination進行比對,如果匹配則說明該數(shù)據(jù)包下一跳就應(yīng)該跳去這個子網(wǎng),此時就會將該數(shù)據(jù)包通過對應(yīng)的發(fā)送接口Iface發(fā)出。

  如果將該數(shù)據(jù)包的目的 IP 地址與子網(wǎng)掩碼進行 “按位與” 后,沒有找到匹配的目的網(wǎng)絡(luò)地址,此時路由器就會將這個數(shù)據(jù)包發(fā)送到默認路由,也就是路由表中目標網(wǎng)絡(luò)地址中的default。可以看到默認路由對應(yīng)的Flags是UG,實際就是將該數(shù)據(jù)轉(zhuǎn)給了另一臺路由器,讓該數(shù)據(jù)在另一臺路由器繼續(xù)進行路由。

  數(shù)據(jù)包不斷經(jīng)過路由器路由后,最終就能到達目標主機所在的目標網(wǎng)絡(luò),此時就不再根據(jù)該數(shù)據(jù)包目的 IP 地址當中的網(wǎng)絡(luò)號進行路由了,而是根據(jù)目的 IP 地址當中的主機號進行路由,最終根據(jù)該數(shù)據(jù)包對應(yīng)的主機號就能將數(shù)據(jù)發(fā)送給目標主機了。

  路由表生成算法

  路由可分為靜態(tài)路由和動態(tài)路由:

  靜態(tài)路由:是指由網(wǎng)絡(luò)管理員手工配置路由信息。

  動態(tài)路由:是指路由器能夠通過算法自動建立自己的路由表,并且能夠根據(jù)實際情況進行調(diào)整。

  路由表相關(guān)生成算法:距離向量算法、LS 算法、Dijkstra 算法等。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
主站蜘蛛池模板: 成人无码H动漫在线播放| 国精产品一区一区三区M | 亚洲妇女无套内射精| 日韩一区无码视频| 国产寡妇XXXX猛交| 亚洲色大成网站WWW永久一区 | 岳女四人共侍一夫婷婷| 久久精品国产一区二区三区肥胖| 日本JAPANESE丰满白浆| 天美传媒MV免费观看完整| 婷婷五月综合色视频| 欧洲美女与动交ZOZ0Z| 国产精品电影久久久久电影网| 全球AV集中精品导航福利| 久久久综合九色综合鬼色 | 小浪货腿打开水真多真紧| 丰满的女房东6剧情| 色视频WWW在线播放国产人成| 人妻无码熟妇乱又视频| 又黄又硬又湿又刺激视频免费| 玩弄少妇秘书人妻系列| 综合无码精品人妻一区二区三区| 秋霞鲁丝片AⅤ无码入口| 精品九九人人做人人爱| 漂亮人妻洗澡被公强 日日躁| 国产成人精品一区二区视频| 久久精品人妻一区二区三区一| 无码人妻精品一区二区三区99仓| 亚洲VA欧美VA国产VA综合| 国产成人综合久久精品| 高清一区二区三区免费视频| 国产精品自在拍一区二区不卡 | 精品久久久久久国产潘金莲| 青青国产揄拍视频| 欧美午夜精品一区二区蜜桃| 日本适合18岁以上的护肤品| 少妇人妻无码精品视频APP| 西方37大但人文艺术任汾A级| 亚洲AV无码国产在丝袜线观看| 亚洲AV中文无码字幕色本草| 日韩无码2021| 亚洲色大成网站WWW永久一区| 秋霞国产午夜伦午夜福利片| 成年无码AV片在线| 精品一区二区三区在线播放视频| 成人年无码AV片在线观看| 午夜私人电影院在线观看| 女人18毛片水真多免费看| 久久久久久人妻精品一区二区三区 | 亚洲欧美精品午睡沙发| 亚洲国产欧美在线人成最新| 无码少妇一区二区三区免费| 狠色狠色狠狠色综合久久| 亚洲午夜无码片在线观看影院| 漂亮人妻中文字幕丝袜| 天天摸天天摸色综合舒服网| 亚洲无人区码一码二码三码的含义 | 狠狠色综合久久久久尤物| 成人无码精品1区2区3区免费看| 无线乱码A区B区C区| 宝贝小嫩嫩好紧好爽H在线视频| 欧美性猛交XXXX乱大交丰满| 男人GAY自慰吞精网站| 天堂√中文最新版在线中文| 窝窝人体色WWW聚色窝| 婷婷成人丁香五月综合激情| 欧美综合自拍亚洲综合图| 欧美丰满熟妇BBB久久久| 日韩人妻精品无码一区二区三区 | 精品无码人妻一区二区三区四| 日韩无码视频三区| 久久国产加勒比精品无码| 嗯…啊 摸 湿 奶头免费视频| 成为人视频人的APP有哪些软件| 丰满人妻被公侵犯日本| 无码人妻丰满熟妇区毛片18 | 久久久久亚洲AV综合仓井空 | 国产精品偷窥熟女精品视频| 久久久久久久久久国产精品免费| 草木影视在线视频免费观看| 欧美亚洲一区二区三区| 亚洲 日韩 丝袜 熟女 变态| 和朋友换娶妻野外夫妇3| 唔嗯啊欧美一级作爱网站| 国产精品美女久久久| 玩弄少妇秘书人妻系列| 亚洲无码成人av| 丰满人妻熟妇乱又伦精品视| 丝瓜秋葵草莓香蕉榴莲绿| 国产AV无码专区亚洲AV麻豆丫| 小东西好几天没弄了还能吃吗 | 欧美极品在线观看| 亚洲A级成人无码网站| 绯色AV一区二区三区蜜臀| 国产高潮刺激叫喊视频| 国产精品人人做人人爽人人添| 漂亮人妻熟睡中被公侵犯中文版 | 午夜A级理论片在线播放不卡| 丰满的继牳3中文字幕系列免费| 无码99久热只有精品视频在线观 | 好男人资源在线WWW免费| 精品推荐国产AV剧情| 国产精品自在拍一区二区不卡| 好男人好资源电影在线播放| 国产成人久久精品一区二区三区| 高清欧美性猛交XXXX黑人猛交| 亚洲综合成人婷婷五月网址| 少妇粉嫩小泬喷水视频在线观看| 国产妇女馒头高清泬20P多毛 | 全部免费A级毛片| 豆奶视频在线观看免费高清版| 午夜无码伦费影视在线观看果冻 | 女刑警被两个黑人挺进| 国产精品99久久久久久人| 真实国产乱子伦沙发睡午觉| 久久综合九色综合欧美婷婷| 午马视频影院1区2区3区4区| 综合无码精品人妻一区二区三区| 豆国产97在线 | 亚洲| 赤裸人妻撅起肥白大屁股| 国产成人无码精品XXXX| 欧美人与牲动交XXXⅩ| 永久免费看照片的聊骚软件| 久久久久久久精品成人热蜜桃| 少妇人妻无码精品视频APP| 手机看片AV永久免费无| 亚洲A∨国产AV综合AV网站| 哦┅┅快┅┅用力啊┅警花少妇| 亚洲精品无码久久千人斩| 精品国产第一国产综合精品| 国产V亚洲V天堂A无码久久蜜桃| 欧美大波少妇在厨房被| 欧美XXXXX高潮喷水麻豆| 久拍国产在线观看| 宝贝你的奶好大我想吃| 偷看自己婆给别人玩经过| 久久精品第一国产久精国产宅男6 久久精品高清一区二区三区 | 亚洲国产精品无码第一区二区三区 | 小SB是不是想被C了| 久久久久久精品免费S| 久久99国产精品久久99软件| 久久中文字幕人妻丝袜| 无码人妻精品一区二区三区免费看| 色欲AV永久无码精品无码蜜桃| 久久精品丝袜高跟鞋| 小寡妇一夜要了六次| 国产公妇仑乱在线观看| 少妇厨房愉情理伦片BD在线观看| 国产精品爽爽V在线观看无码| 亚洲AV中文无码4区| 成年美女黄网站色大片免费看 | 伊人色综合一区二区三区| 日本熟妇人妻XXXXX中文| 国产精品电影久久久久电影网| 欧美精品亚洲精品日韩传电影| 亚洲AV之男人的天堂| 白嫩少妇激情无码| 岳打开双腿开始配合交换| 宝贝乖女你的奶真大水真多| 野花在线高清视频| 人妻少妇无码专视频在线| 日韩AV无码成人网站| 性一交一乱一色一视频| 欧洲熟妇色XXXXX老妇| 国产美女丝袜一级肛交蜜桃| 隔壁人妻偷人BD中字| 中国丰满熟妇XXXX| 久久精品国产一区二区三区肥胖| 精品国产AⅤ一区二区三区在线看| 国内精品久久久久精品爽爽| 极品无码AV国模在线观看| 国产国语对白又大又粗又爽| 女人无遮挡无内衣内裤网站| 久久97超碰色中文字幕总站| 秋霞鲁丝AV一区二区三区| XXXXFREE少妇过瘾| 国语第一次处破女| 色视频WWW在线播放国产人成| 粉嫩av.一区二区三区免费| 日韩不卡手机视频在线观看| 征服贵妇内射在线| 疯狂做受XXXX国产| 粗大从后面狠狠贯穿H| 狠狠干2015最新版| 高清一区二区三区免费视频| 国产精品99久久久久久人| 欧美熟妇搡BBBB搡BBBB| 久久久久久精品免费免费R| 天天爽夜夜爽人人爽一区二区| 肥胖BMGBMGBMG多毛图片| 东北老熟女疯狂作爱视频| 丰满妇女强高潮18ⅩXXX在线| 日本处ⅩⅩ人╳护士19| 亚洲AV自慰白浆喷水网站| 在线欧美精品一区二区三区| 国内AI明星造梦鞠婧祎MV| 久久人妻无码一区二区三区AV| 女儿的朋友5中汉字晋通话| 久久久久久精品国产亚洲AV麻豆| 啪啪男女爱高潮GIF| 国产精品成人一区二区三区视频| 野花香电视剧全集免费观看| 宝贝张开腿嗯啊高潮了视频| 玩弄粉嫩少妇高潮出白浆AⅤ| 日本狂喷奶水在线播放212| 国产精品亚洲精品日韩动图| 精品露脸国产偷人在视频 | 国产综合18久久久久久| 久久99精品久久久久久野外 | 久久久久久久久精品无码中文字幕| 亚洲AV无码专区亚洲猫咪| 蜜臀AV无码一区二区三区| 丰满妇女强高潮ⅩXXX| 人人妻人人澡人人爽人人爱看| 东北老熟女疯狂作爱视频| 欧美高清视频手机在在线| 亚洲综合国产一区二区三区| 把腿张开老子臊烂你的漫画| 公的粗大挺进了我的密道视频| 欧美XXXX做受欧美88HD| 女人张开腿让男人桶爽的| 欧美熟VIDEOS肥婆| 国产一区二区三区久久精品| 久久久久久久99精品国产片| 久久大香伊蕉在人线国产H| 久久精品人妻一区二区三区一| 欧美成人性生活视频| 久久99精品免费一区二区| 娇妻强被迫伦姧惨叫 在线| 国产精品亚洲精品日韩已方| W永久939W78W78W乳液| 首页 综合国产 亚洲 丝袜日本| 午夜无码伦费影视在线观看 | А√天堂BT中文在线| 永久免费精品精品永久-夜色| 日产2021免费一二三四| 国产精品亚洲片夜色在线| 又粗又硬又大又爽免费视频播放| 人人爽人人模人人人爽人人爱| 国产精品无码久久综合网| 日本毛多水多做受视频| 岳的奶大又白又紧| 超清纯白嫩大学生无码网站| 色婷婷五月综合亚洲影院| 国产成人8X视频网站| 国色天香在线观看全集免费播放| 少妇人妻无码精品视频APP| 拔萝卜影视剧免费观看| 国产精品内射后入合集| 男阳茎进女阳道啪啪| 无码人妻AV一区二区三区蜜臀| 高潮喷视频在线无码| 国产成人无码免费看片软件| 极品尤物一区二区三区| 国产精品久久久久久无遮挡| 久久精品欧美日韩精品| 国产精品亚洲产品一区二区三区| 牛牛本精品99久久精品66| 四川丰满少妇被弄到高潮| 差差差无掩盖30分钟79集| YIN荡到骨子里的SAO货| 无码人妻精品一区二区三区99仓 | 亚洲AV永久中文无码精品综合| 成年免费手机毛片免费看无码 | 日本乱偷互换人妻中文字幕| 女人扒开屁股桶爽6O分钟| 国产裸拍裸体女网站链接在线观看| 教官在我腿间疯狂驰聘视频| YELLOW在线观看| 男友把舌头都伸进我的嘴巴里了 | 亚洲 熟 图片 小说 乱 妇 | 寂寞视频一对一视频APP| 丰满人妻无码使劲张开双腿AV| 日日碰日日摸夜夜爽无码| 国产成人精品一区二三区| 无码人妻精品一区二区三区免费 | 成 人 A V免费视频在线观看| 亚洲AV无码国产一区二区三区 | 秋霞鲁丝片AⅤ无码入口| 国产成人牲交在线观看视频| 少妇被又大又粗又爽毛片久久黑人| 国产成人AV免费观看| 国产精品成人VA在线播放| 久久夜色撩人精品国产小说| 国产精品99久久精品爆乳| 高清拍拍拍无挡国产精品| 解开人妻的裙子猛烈进入| 日本狂喷奶水在线播放212| 成人无码A区在线观看视频| 年级老师的滋味4| 久久精品伊人一区二区三区| 久久精品无码一区二区日韩AV| 久久精品国产一区二区三区肥胖| 欧美孕妇XXXXBBBB| 韩国19禁床震无遮掩免费 | 差差漫画在线观看登录页面弹窗| 黑人狂虐中国人妻陈艳| 放在里面边顶边吃饭H| 一个上面一个下面嘴巴| 人妻中文字幕制服丝袜| 二三四五六七无产乱码| 少妇厨房愉情理伦片BD在线观看 | 熟女少妇内射日韩亚洲| 无码视频免费一区二三区| 蜜桃av一区二区三区| 亚A∨国AV综AV涩涩涩| 黑人巨茎迎战白嫩少妇| 女人扒下裤让男人桶到爽| 亚洲国产精品嫩草影院久久| 久久久久久久精品成人热蜜桃| 一区二区欧美视频| 抖抈探探APP入口免费| 国模GOGO大尺度尿喷人体| 色视频WWW在线播放国产人成| 成人无码区免费A∨直播| 免费无码成人AV在线播| 人妻中文字幕制服丝袜| 强开少妇嫩苞又嫩又紧小说| 差差漫画页面免费漫画欢迎你 | 纯肉无遮挡H肉动漫在线观看国产| 又粗又黄又爽视频免费看| 国产精彩乱子真实视频| 成人爽A毛片免费| 亚洲AV无码一区二区三区观看| 赤裸人妻撅起肥白大屁股| 差差差无掩盖30分钟79集| 粉嫩粉嫩的18在线免免费观看| 亚洲AV无码片一区二区三区| 去部队探亲晚上叫太大声| 久久99精品免费一区二区| 公和熄洗澡三级中文字幕| 一边做饭一边躁狂怎么办呢69| 乳荡的小痍子免费播放| 非洲黑人妇女XXXXXHD| 人人妻人人澡人人爽人人精直播| 日韩乱码人妻无码中文视频| 极品新婚夜少妇真紧| 中国自产一战二战三战来源 | 国产亚洲精品线观看K频道| 免费看成人AV片| 亚洲综合日韩久久成人AV| 久久精品影视免费观看| 天美传媒国产电视推荐| 亚洲熟妇无码乱子AV电影| 国产精品亚洲专区无码破解版| 锕锕锕锕锕锕锕好痛免费网址| 国产日产欧产精品精品蜜芽 | 欧美私人家庭影院| 午夜爽爽爽男女免费观看影院| 成人熟女视频一区二区三区| 女人被狂躁高潮啊的视频在线看| 色婷婷亚洲六月婷婷中文字幕| 无线乱码A区B区C区| 岳打开双腿开始配合交换| 国产成人亚洲综合网站| 国产成人三级在线视频网站观看| 国精产品砖一区二区三区糖心| 国内精品乱码卡一卡2卡三卡新区| 挺进绝色老师的紧窄小肉六视频| 奇米综合四色77777久久| 久久精品国产99精品最新| 国产高清在线精品一本大道| 成片人卡1卡2卡3手机免费看| XXXXX18日本人HDXX| 日本国产一区二区三区在线观看| 少妇被又大又粗又爽毛片久久黑人| 女人被弄到高潮的免费视频| 国产精品色视频ⅩXXX| 无码人妻精品一区二区三区66| 狠狠躁天天躁无码中文字幕图| 国产AV无码专区亚洲AV麻豆丫| 无码AV在线一区二区| А√天堂网WWW在线搜索| 欧美婷婷六月丁香综合色| 成片人卡1卡2卡3手机免费看| 男女啪啪摸下面喷水网站| 在线观看韩国电影| XXXX娇小10另类| 高清拍拍拍无挡国产精品| 久久久久久人妻精品一区 | 精品国产第一国产综合精品| 韩漫嘿啾漫画进入| 亚洲AV午夜成人片精品| 极品新婚夜少妇真紧| 天堂√中文最新版在线中文| 嗯啊开小嫩苞HHH好深男男| 挺进邻居丰满少妇的身体| 岳又紧又嫩又多水好爽| 又大又粗欧美成人网站| 久久99精品久久只有精品| 欧美私人家庭影院| 伊人久久精品无码麻豆一区| 成人免费无码H黄网站WWW| 精品乱码久久久久久中文字幕| 欧美私人家庭影院| 丰满大爆乳波霸奶| 伊人久久大香线蕉AV网| 成人无码区免费A∨视频| 国产激情久久久久久熟女老人| 九月婷婷亚洲综合成人| 国产成人精品一区二三区| 国产美女丝袜高潮白浆| 国产成人无码精品XXXX网站| 幼儿HIPHOP仙踪林的| 破了亲妺妺的处免费视频国产| 精品露脸国产偷人在视频| 丰满丝袜熟女HD| 国产精品无码无卡在线观看久| 永久免费男同AV无码入口| 儿子第一次送妈妈母亲节礼物|