1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        IP 基礎知識總結

        共 8311字,需瀏覽 17分鐘

         ·

        2020-12-22 22:25


        點擊藍色“程序員cxuan?”關注我喲

        加個“星標”,及時接收最新文章


        這是程序員cxuan的第50期原創(chuàng)分享

        更多文章見?

        https://github.com/crisxuan/bestJavaer



        本文預計閱讀 15?分鐘

        IP 協(xié)議

        路由器對分組進行轉發(fā)后,就會把數(shù)據(jù)包傳到網(wǎng)絡上,數(shù)據(jù)包最終是要傳遞到客戶端或者服務器上的,那么數(shù)據(jù)包怎么知道要發(fā)往哪里呢?起到關鍵作用的就是 IP 協(xié)議。

        IP 主要分為三個部分,分別是?IP 尋址、路由和分包組包。下面我們主要圍繞這三點進行闡述。

        IP 地址

        既然一個數(shù)據(jù)包要在網(wǎng)絡上傳輸,那么肯定需要知道這個數(shù)據(jù)包到底發(fā)往哪里,也就是說需要一個目標地址信息,IP 地址就是連接網(wǎng)絡中的所有主機進行通信的目標地址,因此,在網(wǎng)絡上的每個主機都需要有自己的 IP 地址。

        在 IP 數(shù)據(jù)報發(fā)送的鏈路中,有可能鏈路非常長,比如說由中國發(fā)往美國的一個數(shù)據(jù)報,由于網(wǎng)絡抖動等一些意外因素可能會導致數(shù)據(jù)報丟失,這時我們在這條鏈路中會放入一些?中轉站,一方面能夠確保數(shù)據(jù)報是否丟失,另一方面能夠控制數(shù)據(jù)報的轉發(fā),這個中轉站就是我們前面聊過的路由器,這個轉發(fā)過程就是?路由控制。

        路由控制(Routing)?是指將分組數(shù)據(jù)發(fā)送到最終目標地址的功能,即使網(wǎng)絡復雜多變,也能夠通過路由控制到達目標地址。因此,一個數(shù)據(jù)報能否到達目標主機,關鍵就在于路由器的控制。

        這里有一個名詞,就是?,因為在一條鏈路中可能會布滿很多路由器,路由器和路由器之間的數(shù)據(jù)報傳送就是跳,比如你和隔壁老王通信,中間就可能會經(jīng)過路由器 A-> 路由器 B -> 路由器 C 。

        那么一跳的范圍有多大呢?

        一跳是指從源 MAC 地址到目標 MAC 地址之間傳輸幀的區(qū)間,這里引出一個新的名詞,MAC 地址是啥?

        MAC 地址指的就是計算機的物理地址(Physical Address),它是用來確認網(wǎng)絡設備位置的地址。在 OSI 網(wǎng)絡模型中,網(wǎng)絡層負責 IP 地址的定位,而數(shù)據(jù)鏈路層負責 MAC 地址的定位。MAC 地址用于在網(wǎng)絡中唯一標示一個網(wǎng)卡,一臺設備若有一或多個網(wǎng)卡,則每個網(wǎng)卡都需要并會有一個唯一的 MAC 地址,也就是說 MAC 地址和網(wǎng)卡是緊密聯(lián)系在一起的。

        路由器的每一跳都需要詢問當前中轉的路由器,下一跳應該跳到哪里,從而跳轉到目標地址。而不是數(shù)據(jù)報剛開始發(fā)送后,網(wǎng)絡中所有的通路都會顯示出來,這種多次跳轉也叫做多跳路由

        IP 地址定義

        現(xiàn)如今有兩個版本的 IP 地址,IPv4 和 IPv6,我們首先探討一下現(xiàn)如今還在廣泛使用的 IPv4 地址,后面再考慮 IPv6 。

        IPv4 由 32 位正整數(shù)來表示,在計算機內部會轉化為二進制來處理,但是二進制不符合人類閱讀的習慣,所以我們根據(jù)易讀性的原則把 32 位的 IP 地址以 8 位為一組,分成四組,每組之間以?.?進行分割,再將每組轉換為十進制數(shù)。如下圖所示

        那么上面這個 32 位的 IP 地址就會被轉換為十進制的 156.197.1.1。

        除此之外,從圖中我們還可以得到如下信息

        每個這樣 8 位位一組的數(shù)字,自然是非負數(shù),其取值范圍是 [0,255]。

        IP 地址的總個數(shù)有 2^32 次冪個,這個數(shù)值算下來是?4294967296?,大概能允許 43 億臺設備連接到網(wǎng)絡。實際上真的如此嗎?

        實際上 IP 不會以主機的個數(shù)來配置的,而是根據(jù)設備上的?網(wǎng)卡(NIC)?進行配置,每一塊網(wǎng)卡都會設置一個或者多個 IP 地址,而且通常一臺路由器會有至少兩塊網(wǎng)卡,所以可以設置兩個以上的 IP 地址,所以主機的數(shù)量遠遠達不到 43 億。

        IP 地址構造和分類

        IP 地址由?網(wǎng)絡標識?和?主機標識?兩部分組成,網(wǎng)絡標識代表著網(wǎng)絡地址,主機標識代表著主機地址。網(wǎng)絡標識在數(shù)據(jù)鏈路的每個段配置不同的值。網(wǎng)絡標識必須保證相互連接的每個段的地址都不重復。而相同段內相連的主機必須有相同的網(wǎng)絡地址。IP 地址的?主機標識?則不允許在同一網(wǎng)段內重復出現(xiàn)。

        舉個例子來說:比如說我在石家莊(好像不用比如昂),我所在的小區(qū)的某一棟樓就相當于是網(wǎng)絡標識,某一棟樓的第幾戶就相當于是我的主機標識,當然如果你有整棟樓的話,那就當我沒說。你可以通過xx省xx市xx區(qū)xx路xx小區(qū)xx棟來定位我的網(wǎng)絡標識,這一棟的第幾戶就相當于是我的主機標識。

        IP 地址分為四類,分別是?A類、B類、C類、D類、E類,它會根據(jù) IP 地址中的第 1 位到第 4 位的比特對網(wǎng)絡標識和主機標識進行分類。

        • A 類:(1.0.0.0 - 126.0.0.0)(默認子網(wǎng)掩碼:255.0.0.0 或 0xFF000000)第一個字節(jié)為網(wǎng)絡號,后三個字節(jié)為主機號。該類 IP 地址的最前面為 0 ,所以地址的網(wǎng)絡號取值于 1~126 之間。一般用于大型網(wǎng)絡。

        • B 類:(128.0.0.0 - 191.255.0.0)(默認子網(wǎng)掩碼:255.255.0.0 或 0xFFFF0000)前兩個字節(jié)為網(wǎng)絡號,后兩個字節(jié)為主機號。該類 IP 地址的最前面為 10 ,所以地址的網(wǎng)絡號取值于 128~191 之間。一般用于中等規(guī)模網(wǎng)絡。

        • C 類:(192.0.0.0 - 223.255.255.0)(子網(wǎng)掩碼:255.255.255.0 或 0xFFFFFF00)前三個字節(jié)為網(wǎng)絡號,最后一個字節(jié)為主機號。該類 IP 地址的最前面為 110 ,所以地址的網(wǎng)絡號取值于 192~223 之間。一般用于小型網(wǎng)絡。

        • D 類:是多播地址。該類 IP 地址的最前面為 1110 ,所以地址的網(wǎng)絡號取值于 224~239 之間。一般用于多路廣播用戶。

        • E 類:是保留地址。該類 IP 地址的最前面為 1111 ,所以地址的網(wǎng)絡號取值于 240~255 之間。

        為了方便理解,我畫了一張 IP 地址分類圖,如下所示

        根據(jù)不同的 IP 范圍,有下面不同的地總空間分類

        子網(wǎng)掩碼

        子網(wǎng)掩碼(subnet mask)?又叫做網(wǎng)絡掩碼,它是一種用來指明一個 IP 地址的哪些位標識的是主機所在的網(wǎng)絡。子網(wǎng)掩碼是一個 32位 地址,用于屏蔽 IP 地址的一部分以區(qū)別網(wǎng)絡標識和主機標識。

        一個 IP 地址只要確定了其分類,也就確定了它的網(wǎng)絡標識和主機標識,由此,各個分類所表示的網(wǎng)絡標識范圍如下

        用?1?表示 IP 網(wǎng)絡地址的比特范圍,0?表示 IP 主機地址的范圍。將他們用十進制表示,那么這三類的表示如下

        保留地址

        在IPv4 的幾類地址中,有幾個保留的地址空間不能在互聯(lián)網(wǎng)上使用。這些地址用于特殊目的,不能在局域網(wǎng)外部路由。

        IP 協(xié)議版本

        目前,全球 Internet 中共存有兩個IP版本:IP 版本 4(IPv4)和?IP 版本6(IPv6)。IP 地址由二進制值組成,可驅動 Internet 上所有數(shù)據(jù)的路由。IPv4 地址的長度為 32 位,而 IPv6 地址的長度為 128 位。

        Internet IP 資源由?Internet 分配號碼機構(IANA)分配給區(qū)域 Internet 注冊表(RIR),例如 APNIC,該機構負責根 DNS ,IP 尋址和其他 Internet 協(xié)議資源。

        下面我們就一起認識一下 IP 協(xié)議中非常重要的兩個版本 IPv4 和 IPv6。

        IPv4

        IPv4 的全稱是?Internet Protocol version 4,是 Internet 協(xié)議的第四版。IPv4 是一種無連接的協(xié)議,這個協(xié)議會盡最大努力交付數(shù)據(jù)包,也就是說它不能保證任何數(shù)據(jù)包能到達目的地,也不能保證所有的數(shù)據(jù)包都會按照正確的順序到達目標主機,這些都是由上層比如傳輸控制協(xié)議控制的。也就是說,單從 IP 看來,這是一個不可靠的協(xié)議。

        前面我們講過網(wǎng)絡層分組被稱為?數(shù)據(jù)報,所以我們接下來的敘述也會圍繞著數(shù)據(jù)報展開。

        IPv4 的數(shù)據(jù)報格式如下

        IPv4 數(shù)據(jù)報中的關鍵字及其解釋

        • 版本字段(Version)占用 4 bit,通信雙方使用的版本必須一致,對于 IPv4 版本來說,字段值是 4。

        • 首部長度(Internet Header Length)?占用 4 bit,首部長度說明首部有多少 32 位(4 字節(jié))。由于 IPv4 首部可能包含不確定的選項,因此這個字段被用來確定數(shù)據(jù)的偏移量。大多數(shù) IP 不包含這個選項,所以一般首部長度設置為 5, 數(shù)據(jù)報為 20 字節(jié) 。

        • 服務類型(Differential Services Codepoint,DSCP)?占用 6 bit,以便使用不同的 IP 數(shù)據(jù)報,比如一些低時延、高吞吐量和可靠性的數(shù)據(jù)報。服務類型如下表所示

        • 擁塞通告(Explicit Congestion Notification,ECN)?占用 2 bit,它允許在不丟棄報文的同時通知對方網(wǎng)絡擁塞的發(fā)生。ECN 是一種可選的功能,僅當兩端都支持并希望使用,且底層網(wǎng)絡支持時才被使用。最開始 DSCP 和 ECN 統(tǒng)稱為 TOS,也就是區(qū)分服務,但是后來被細化為了 DSCP 和 ECN。

        • 數(shù)據(jù)報長度(Total Length)?占用 16 bit,這 16 位是包括在數(shù)據(jù)在內的總長度,理論上數(shù)據(jù)報的總長度為 2 的 16 次冪 - 1,最大長度是 65535 字節(jié),但是實際上數(shù)據(jù)報很少有超過 1500 字節(jié)的。IP 規(guī)定所有主機都必須支持最小 576 字節(jié)的報文,但大多數(shù)現(xiàn)代主機支持更大的報文。當下層的數(shù)據(jù)鏈路協(xié)議的最大傳輸單元(MTU)字段的值小于 IP 報文長度時,報文就必須被分片。

        • 標識符(Identification)?占用 16 bit,這個字段用來標識所有的分片,因為分片不一定會按序到達,所以到達目標主機的所有分片會進行重組,每產(chǎn)生一個數(shù)據(jù)報,計數(shù)器加1,并賦值給此字段。

        • 標志(Flags)?占用 3 bit,標志用于控制和識別分片,這 3 位分別是

        • 0 位:保留,必須為0;

        • 1 位:禁止分片(Don’t Fragment,DF),當 DF = 0 時才允許分片;

        • 2 位:更多分片(More Fragment,MF),MF = 1 代表后面還有分片,MF = 0 代表已經(jīng)是最后一個分片。

          如果 DF 標志被設置為 1 ,但是路由要求必須進行分片,那么這條數(shù)據(jù)報回丟棄

        • 分片偏移(Fragment Offset)?占用 13 位,它指明了每個分片相對于原始報文開頭的偏移量,以 8 字節(jié)作單位。

        • 存活時間(Time To Live,TTL)?占用 8 位,存活時間避免報文在互聯(lián)網(wǎng)中迷失,比如陷入路由環(huán)路。存活時間以秒為單位,但小于一秒的時間均向上取整到一秒。在現(xiàn)實中,這實際上成了一個跳數(shù)計數(shù)器:報文經(jīng)過的每個路由器都將此字段減 1,當此字段等于 0 時,報文不再向下一跳傳送并被丟棄,這個字段最大值是 255。

        • 協(xié)議(Protocol)?占用 8 位,這個字段定義了報文數(shù)據(jù)區(qū)使用的協(xié)議。協(xié)議內容可以在 https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml 官網(wǎng)上獲取。

        • 首部校驗和(Header Checksum)?占用 16 位,首部校驗和會對字段進行糾錯檢查,在每一跳中,路由器都要重新計算出的首部檢驗和并與此字段進行比對,如果不一致,此報文將會被丟棄。

        • 源地址(Source address)?占用 32 位,它是 IPv4 地址的構成條件,源地址指的是數(shù)據(jù)報的發(fā)送方

        • 目的地址(Destination address)占用 32 位,它是 IPv4 地址的構成條件,目標地址指的是數(shù)據(jù)報的接收方

        • 選項(Options)?是附加字段,選項字段占用 1 - 40 個字節(jié)不等,一般會跟在目的地址之后。如果首部長度 > 5,就應該考慮選項字段。

        • 數(shù)據(jù)?不是首部的一部分,因此并不被包含在首部檢驗和中。

        在 IP 發(fā)送的過程中,每個數(shù)據(jù)報的大小是不同的,每個鏈路層協(xié)議能承載的網(wǎng)絡層分組也不一樣,有的協(xié)議能夠承載大數(shù)據(jù)報,有的卻只能承載很小的數(shù)據(jù)報,不同的鏈路層能夠承載的數(shù)據(jù)報大小如下。

        IPv4 分片

        一個鏈路層幀能承載的最大數(shù)據(jù)量叫做最大傳輸單元(Maximum Transmission Unit, MTU),每個 IP 數(shù)據(jù)報封裝在鏈路層幀中從一臺路由器傳到下一臺路由器。因為每個鏈路層所支持的最大 MTU 不一樣,當數(shù)據(jù)報的大小超過 MTU 后,會在鏈路層進行分片,每個數(shù)據(jù)報會在鏈路層單獨封裝,每個較小的片都被稱為?片(fragement)

        每個片在到達目的地后會進行重組,準確的來說是在運輸層之前會進行重組,TCP 和 UDP 都會希望發(fā)送完整的、未分片的報文,出于性能的原因,分片重組不會在路由器中進行,而是會在目標主機中進行重組。

        當目標主機收到從發(fā)送端發(fā)送過來的數(shù)據(jù)報后,它需要確定這些數(shù)據(jù)報中的分片是否是由源數(shù)據(jù)報分片傳遞過來的,如果是的話,還需要確定何時收到了分片中的最后一片,并且這些片會如何拼接一起成為數(shù)據(jù)報。

        針對這些潛在的問題,IPv4 設計者將?標識、標志和片偏移放在 IP 數(shù)據(jù)報首部中。當生成一個數(shù)據(jù)報時,發(fā)送主機會為該數(shù)據(jù)報設置源和目的地址的同時貼上標識號。發(fā)送主機通常將它發(fā)送的每個數(shù)據(jù)報的標識 + 1。當某路由器需要對一個數(shù)據(jù)報分片時,形成的每個數(shù)據(jù)報具有初始數(shù)據(jù)報的源地址、目標地址和標識號。當目的地從同一發(fā)送主機收到一系列數(shù)據(jù)報時,它能夠檢查數(shù)據(jù)報的標識號以確定哪些數(shù)據(jù)是由源數(shù)據(jù)報發(fā)送過來的。由于 IP 是一種不可靠的服務,分片可能會在網(wǎng)路中丟失,鑒于這種情況,通常會把分片的最后一個比特設置為 0 ,其他分片設置為 1,同時使用偏移字段指定分片應該在數(shù)據(jù)報的哪個位置。

        IPv4 尋址

        IPv4 支持三種不同類型的尋址模式,分別是

        • 單播尋址模式:在這種模式下,數(shù)據(jù)只發(fā)送到一個目的地的主機。

        • 廣播尋址模式:在此模式下,數(shù)據(jù)包將被尋址到網(wǎng)段中的所有主機。這里客戶端發(fā)送一個數(shù)據(jù)包,由所有服務器接收:

        • 組播尋址模式:此模式是前兩種模式的混合,即發(fā)送的數(shù)據(jù)包既不指向單個主機也不指定段上的所有主機

        IPv6

        隨著端系統(tǒng)接入的越來越多,IPv4 已經(jīng)無法滿足分配了,所以,IPv6 應運而生,IPv6 就是為了解決 IPv4 的地址耗盡問題而被標準化的網(wǎng)際協(xié)議。IPv4 的地址長度為 4 個 8 字節(jié),即 32 比特, 而 IPv6 的地址長度是原來的四倍,也就是 128 比特,一般寫成 8 個 16 位字節(jié)。

        從 IPv4 切換到 IPv6 及其耗時,需要將網(wǎng)絡中所有的主機和路由器的 IP 地址進行設置,在互聯(lián)網(wǎng)不斷普及的今天,替換所有的 IP 是一個工作量及其龐大的任務。我們后面會說。

        我們先來看一下 IPv6 的地址是怎樣的

        • 版本與 IPv4 一樣,版本號由 4 bit 構成,IPv6 版本號的值為 6。

        • 流量類型(Traffic Class)?占用 8 bit,它就相當于 IPv4 中的服務類型(Type Of Service)。

        • 流標簽(Flow Label)?占用 20 bit,這 20 比特用于標識一條數(shù)據(jù)報的流,能夠對一條流中的某些數(shù)據(jù)報給出優(yōu)先權,或者它能夠用來對來自某些應用的數(shù)據(jù)報給出更高的優(yōu)先權,只有流標簽、源地址和目標地址一致時,才會被認為是一個流。

        • 有效載荷長度(Payload Length)?占用 16 bit,這 16 比特值作為一個無符號整數(shù),它給出了在 IPv6 數(shù)據(jù)報中跟在鼎昌 40 字節(jié)數(shù)據(jù)報首部后面的字節(jié)數(shù)量。

        • 下一個首部(Next Header)?占用 8 bit,它用于標識數(shù)據(jù)報中的內容需要交付給哪個協(xié)議,是 TCP 協(xié)議還是 UDP 協(xié)議。

        • 跳限制(Hop Limit)?占用 8 bit,這個字段與 IPv4 的 TTL 意思相同。數(shù)據(jù)每經(jīng)過一次路由就會減 1,減到 0 則會丟棄數(shù)據(jù)。

        • 源地址(Source Address)?占用 128 bit (8 個 16 位 ),表示發(fā)送端的 IP 地址。

        • 目標地址(Destination Address)?占用 128 bit (8 個 16 位 ),表示接收端 IP 地址。

        可以看到,相較于 IPv4 ,IPv6 取消了下面幾個字段

        • 標識符、標志和比特偏移:IPv6 不允許在中間路由器上進行分片和重新組裝。這種操作只能在端系統(tǒng)上進行,IPv6 將這個功能放在端系統(tǒng)中,加快了網(wǎng)絡中的轉發(fā)速度。

        • 首部校驗和:因為在運輸層和數(shù)據(jù)鏈路執(zhí)行了報文段完整性校驗工作,IP 設計者大概覺得在網(wǎng)絡層中有首部校驗和比較多余,所以去掉了。IP 更多專注的是快速處理分組數(shù)據(jù)

        • 選項字段:選項字段不再是標準 IP 首部的一部分了,但是它并沒有消失,而是可能出現(xiàn)在 IPv6 的擴展首部,也就是下一個首部中。

        IPv6 擴展首部

        IPv6 首部長度固定,無法將選項字段加入其中,取而代之的是 IPv6 使用了擴展首部

        擴展首部通常介于 IPv6 首部與 TCP/UDP 首部之間,在 IPv4 中可選長度固定?40 字節(jié),在 IPv6 中沒有這樣的限制。IPv6 的擴展首部可以是任意長度。擴展首部中還可以包含擴展首部協(xié)議和下一個擴展字段。

        IPv6 首部中沒有標識和標志字段,對 IP 進行分片時,需要使用到擴展首部。

        具體的擴展首部表如下所示

        下面我們來看一下 IPv6 都有哪些特點

        IPv6 特點

        IPv6 的特點在 IPv4 中得以實現(xiàn),但是即便實現(xiàn)了 IPv4 的操作系統(tǒng),也未必實現(xiàn)了 IPv4 的所有功能。而 IPv6 卻將這些功能大眾化了,也就表明這些功能在 IPv6 已經(jīng)進行了實現(xiàn),這些功能主要有

        • 地址空間變得更大:這是 IPv6 最主要的一個特點,即支持更大的地址空間。

        • 精簡報文結構: IPv6 要比 IPv4 精簡很多,IPv4 的報文長度不固定,而且有一個不斷變化的選項字段;IPv6 報文段固定,并且將選項字段,分片的字段移到了 IPv6 擴展頭中,這就極大的精簡了 IPv6 的報文結構。

        • 實現(xiàn)了自動配置:IPv6 支持其主機設備的狀態(tài)和無狀態(tài)自動配置模式。這樣,沒有?DHCP 服務器不會停止跨段通信。

        • 層次化的網(wǎng)絡結構:IPv6 不再像 IPv4 一樣按照 A、B、C等分類來劃分地址,而是通過 IANA -> RIR -> ISP 這樣的順序來分配的。IANA 是國際互聯(lián)網(wǎng)號碼分配機構,RIR 是區(qū)域互聯(lián)網(wǎng)注冊管理機構,ISP 是一些運營商(例如電信、移動、聯(lián)通)。

        • IPSec:IPv6 的擴展報頭中有一個認證報頭、封裝安全凈載報頭,這兩個報頭是 IPsec 定義的。通過這兩個報頭網(wǎng)絡層自己就可以實現(xiàn)端到端的安全,而無需像 IPv4 協(xié)議一樣需要其他協(xié)議的幫助。

        • 支持任播:IPv6 引入了一種新的尋址方式,稱為任播尋址。

        IPv6 地址

        我們知道,IPv6 地址長度為 128 位,他所能表示的范圍是 2 ^ 128 次冪,這個數(shù)字非常龐大,幾乎涵蓋了你能想到的所有主機和路由器,那么 IPv6 該如何表示呢?

        一般我們將 128 比特的 IP 地址以每 16 比特為一組,并用?:?號進行分隔,如果出現(xiàn)連續(xù)的 0 時還可以將 0 省略,并用?::?兩個冒號隔開,記住,一個 IP 地址只允許出現(xiàn)一次兩個連續(xù)的冒號。

        下面是一些 IPv6 地址的示例

        • 二進制數(shù)表示

        • 用十六進制數(shù)表示

        • 出現(xiàn)兩個冒號的情況

        如上圖所示,A120 和 4CD 中間的 0 被 :: 所替換了。

        總結

        這篇文章我們主要介紹了 IP 地址等相關內容,也為你引出了 IPv4 和 IPv6 的報文構造和基本特征。

        如果你覺得本文還不錯的話,歡迎點贊、在看、分享、留言!

        我是 cxuan,我們下篇文章見!







        ?往期推薦?

        ?

        閱片無數(shù)的 cxuan 給你推薦比某 hub 更爽的網(wǎng)站

        路由器你竟然是這樣的...

        搞懂這 10 張腦圖后,我膨脹了。

        程序員cxuan 原來不是寫代碼的。

        40 張圖帶你搞懂 TCP 和 UDP

        拿下計網(wǎng)協(xié)議后,我就是公園里最靚的仔

        TCP/IP 基礎知識總結

        計算機網(wǎng)絡基礎知識總結


        另外,cxuan 肝了六本 PDF,公號回復 cxuan ,領取全部。




        瀏覽 29
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            台湾在线无码视频 | 亚洲久操 | 女人高潮天天躁夜夜躁 | 97一期涩涩97片久久久久久久 | 东京热中文网 | 国产字幕av | 色婷婷电影 | 黄色福利| 亚洲 欧美 视频 | 好硬c我快难受好硬 |