日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

源地址和目的地址理解

 donghailongwag 2023-05-05 發(fā)布于山東

源地址和目的地址理解_網(wǎng)絡(luò)工程師(14):IP地址易容術(shù)

weixin_39661353于 2020-11-21 20:06:39 發(fā)布23415 收藏 43
文章標(biāo)簽: 源地址和目的地址理解

87f8797cd6e16892594b914c5ec8d93b.png

接下來要優(yōu)化的,依然和IP有關(guān)!

IP:“為什么受傷的還是我!!”

別擔(dān)心,不給你好好整整容,你不知道自己有多美!

IP協(xié)議使用IP地址來標(biāo)識網(wǎng)絡(luò)中的節(jié)點,分為IPv4和IPv6。雖然一直在推行IPv6,但目前主流還是IPv4。

IPv4使用32位二進(jìn)制,分為A、B、C類(D類和E類有特殊用途,不用于標(biāo)識網(wǎng)絡(luò)中的節(jié)點),共計大約37億多個可用單播地址。聽上去很多,但是Internet發(fā)展太快了,早在2011年,IANA就宣布IPv4地址耗盡。

等等,既然2011年IPv4地址就沒了,那怎么直到現(xiàn)在,大家都還在高高興興地用著IPv4地址呢?

這要歸功于NAT(Network Address Translation,網(wǎng)絡(luò)地址轉(zhuǎn)換)。

其實,在IPv4地址中,有一些特殊的地址范圍:

A類地址中,10.0.0.0~10.255.255.255;

B類地址中,172.16.0.0~172.31.255.255;

C類地址中,192.168.0.0~192.168.255.255。

這些地址,我們稱之為“私有地址”。

什么是私有地址?就是說,這些地址不會在Internet公網(wǎng)上出現(xiàn),任何人都可以隨便使用,不用花錢!

隨便使用?那不會沖突嗎?

并不會,因為這些地址只限于你所在的局域網(wǎng)內(nèi)部使用,如家庭、企業(yè)、學(xué)校等,公網(wǎng)上并沒有這些地址。就好像你在一個局域網(wǎng)用10.1.1.1,我在另一個局域網(wǎng)也使用10.1.1.1,只要保證各自局域網(wǎng)內(nèi)不沖突就行。

可是,如果我們兩人要通信呢?地址不是沖突了嗎?

不不,私有地址只在局域網(wǎng)內(nèi)部使用,如果要訪問外網(wǎng),需要NAT給你發(fā)的數(shù)據(jù)包整個容!

一般情況下,局域網(wǎng)接入公網(wǎng)的出口設(shè)備上都會配置NAT功能。家庭中常見的“無線路由器”,其實本質(zhì)上不過是一臺“無線NAT”而已!

如果NAT設(shè)備發(fā)現(xiàn)有私有數(shù)據(jù)包要去公網(wǎng),會給它整個容:把里面IP封裝中的私有地址換成公網(wǎng)地址,做好記錄,再發(fā)出去;數(shù)據(jù)包回來時,再把地址換回來,發(fā)回你的電腦。

企業(yè)、學(xué)校的公網(wǎng)地址可以花錢向運營商購買固定地址,便于注冊域名,向外提供網(wǎng)絡(luò)服務(wù);家庭上網(wǎng)一般由運營商動態(tài)分配。

47ef5fa34d0f24f59baca0147742699a.png

圖中電腦的IP地址是私有地址192.168.1.10,出口NAT設(shè)備接入Internet的公網(wǎng)地址是12.34.56.78,假設(shè)公網(wǎng)上有一臺地址為98.76.54.32的www服務(wù)器,內(nèi)網(wǎng)電腦通過瀏覽器訪問它。

電腦產(chǎn)生http報文,向下交給傳輸層TCP協(xié)議。TCP封裝時,源端口在49152~65535間隨機(jī)選擇一個,如60128,目的端口為80。

1a6d6ae6f885cc4d194b9a5f75728763.png

TCP封裝后,交給網(wǎng)絡(luò)層IP協(xié)議,IP封裝源地址為內(nèi)網(wǎng)電腦的私網(wǎng)地址192.168.1.10,目的地址為公網(wǎng)服務(wù)器的地址98.76.54.32,協(xié)議號為6。

bd98b0d396632fda9b7e094172594967.png

鏈路層的封裝和前面文章所述一樣,這里我們省略。這個報文發(fā)到NAT設(shè)備后,NAT設(shè)備將源地址修改為12.34.56.78,做好記錄“內(nèi)網(wǎng)地址192.168.1.10映射到外網(wǎng)地址12.34.56.78”,然后將報文發(fā)到公網(wǎng)。

fff7f7b947c151a4f8a6abb7ae045d5e.png

公網(wǎng)根據(jù)報文中的目的地址98.76.54.32,將報文準(zhǔn)確送達(dá)服務(wù)器。

服務(wù)器返回的信息,數(shù)據(jù)是這樣封裝的:

063b9c7a1eaf3781bb8940ed0cb590d1.png

源和目的端口號、IP地址互換位置,公網(wǎng)會根據(jù)目的地址12.34.56.78,把報文送達(dá)NAT設(shè)備。NAT根據(jù)記錄“內(nèi)網(wǎng)地址192.168.1.10映射到外網(wǎng)地址12.34.56.78”,把目的地址12.34.56.78換回192.168.1.10,然后根據(jù)內(nèi)網(wǎng)地址192.168.1.10把報文送達(dá)電腦。

但這樣的轉(zhuǎn)換方式并不妥當(dāng),因為一個內(nèi)網(wǎng)地址需要對應(yīng)轉(zhuǎn)換為一個外網(wǎng)地址,內(nèi)網(wǎng)電腦數(shù)量多就會消耗大量外網(wǎng)地址,并沒有起到節(jié)省地址的作用。

因此,我們所使用的NAT,叫做NAPT(Network Address Port Translation,網(wǎng)絡(luò)地址端口轉(zhuǎn)換)。

NAT只轉(zhuǎn)換IP封裝中的IP地址,而NAPT則把傳輸層的端口號和IP地址一起轉(zhuǎn)換,可以實現(xiàn)一個公網(wǎng)地址的復(fù)用。

假設(shè)內(nèi)網(wǎng)有兩臺電腦,地址分別為192.168.1.10和192.168.1.20,NAT設(shè)備地址和服務(wù)器地址和上例相同。假設(shè)兩臺電腦同時訪問外網(wǎng)服務(wù)器,電腦A發(fā)出的報文封裝是:

1f5104bf92f444f3a7a86cb126c0e7e1.png

電腦B發(fā)出的報文封裝是:

62f5a68b940786205a53b3c1a8a38dc5.png

兩個數(shù)據(jù)報文到達(dá)NAT設(shè)備后,NAT設(shè)備做個記錄:

5538953bb8dd9459aaab2645a71f11d4.png

然后,NAT把電腦A的報文修改為:

46dc0b434e5166fcdef77efa91d97985.png

而電腦B的報文也被NAT修改為:

b0508c147152740d94948550b76a6e95.png

可以看到,NAT把兩臺內(nèi)網(wǎng)電腦發(fā)出去的報文轉(zhuǎn)換后,僅傳輸層的源端口號不同,IP的封裝完全相同。這樣一來,就可以實現(xiàn)同一個公網(wǎng)地址被不同內(nèi)網(wǎng)電腦重復(fù)使用,只需通過端口號區(qū)別開就可以。外網(wǎng)返回的數(shù)據(jù)報文回到NAT設(shè)備后,NAT根據(jù)之前記錄的信息再轉(zhuǎn)換回內(nèi)網(wǎng)地址和內(nèi)網(wǎng)端口號,即可把報文送達(dá)不同的內(nèi)網(wǎng)電腦。

小Q:對于沒有傳輸層的報文,如ICMP,無法進(jìn)行端口號轉(zhuǎn)換,NAT會怎么處理呢?

歡迎大家留言討論。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多