日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

ip数据报的转发

發(fā)布時(shí)間:2025/3/15 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ip数据报的转发 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

IP數(shù)據(jù)包經(jīng)由路由轉(zhuǎn)發(fā)的時(shí)候源IP,目的ip是否改變?

這是個(gè)搞網(wǎng)絡(luò)的基礎(chǔ)問(wèn)題,答案是不能改變的,除非做了nat轉(zhuǎn)換才能改變。否則,數(shù)據(jù)包在整個(gè)傳輸過(guò)程中,源IP和目的IP不會(huì)發(fā)生改變。

不過(guò)MAC地址是變化的,因?yàn)榘l(fā)送端開(kāi)始不知道目的主機(jī)的MAC地址,所以每經(jīng)過(guò)一個(gè)路由器,MAC地址都會(huì)發(fā)生變化。

目的MAC地址是如何得到的?



TCP/IP里面是用的ARP協(xié)議。比如新建了一個(gè)內(nèi)網(wǎng),如果一臺(tái)機(jī)器A找機(jī)器B,封裝Fram時(shí)(OSI的第二層用的數(shù)據(jù)格式),要封裝對(duì)方的 MAC,開(kāi)始時(shí)A不知道B的MAC,只知道IP,它就發(fā)一個(gè)ARP包,源IP是自己的,目的IP是B的,源MAC是自己的,目的MAC是廣播的。然后這個(gè)ARP請(qǐng)求包在內(nèi)網(wǎng)內(nèi)被廣播,當(dāng)其他機(jī)器接到這個(gè)包時(shí),用目的IP和自己的IP比較,不是的話就丟棄。是的話,B接到時(shí),發(fā)現(xiàn)IP與自己的一樣,就答應(yīng)這個(gè)包的請(qǐng)求,把自己的MAC送給A。如果B是其他子網(wǎng)的機(jī)器,那么路由器會(huì)判斷出B是其他子網(wǎng),然后路由器把自己的MAC返回給A,A以后再給B發(fā)包時(shí),目的MAC封裝 的是路由器的。

路由轉(zhuǎn)發(fā)過(guò)程:

當(dāng)主機(jī)A發(fā)向主機(jī)B的數(shù)據(jù)流在網(wǎng)絡(luò)層封裝成IP數(shù)據(jù)包,IP數(shù)據(jù)包的首部包含了源地址和目標(biāo)地址。主機(jī)A會(huì)用本機(jī)配置的24位IP網(wǎng)絡(luò)掩碼255.255.255.0與目標(biāo)地址進(jìn)行與運(yùn)算,得出目標(biāo)網(wǎng)絡(luò)地址與本機(jī)的網(wǎng)絡(luò)地址是不是在同一個(gè)網(wǎng)段中。如果不是將IP數(shù)據(jù)包轉(zhuǎn)發(fā)到網(wǎng)關(guān)。

在發(fā)往網(wǎng)關(guān)前主機(jī)A還會(huì)通過(guò)ARP的請(qǐng)求獲得默認(rèn)網(wǎng)關(guān)的MAC地址。在主機(jī)A數(shù)據(jù)鏈路層IP數(shù)據(jù)包封裝成以太網(wǎng)數(shù)據(jù)幀,然后才發(fā)住到網(wǎng)關(guān)……也就是路由器上的一個(gè)端口。

當(dāng)網(wǎng)關(guān)路由器接收到以太網(wǎng)數(shù)據(jù)幀時(shí),發(fā)現(xiàn)數(shù)據(jù)幀中的目標(biāo)MAC地址是自己的某一個(gè)端口的物理地址,這時(shí)路由器會(huì)把以太網(wǎng)數(shù)據(jù)幀的封裝去掉。路由器認(rèn)為這個(gè)IP數(shù)據(jù)包是要通過(guò)自己進(jìn)行轉(zhuǎn)發(fā),接著它就在匹配路由表。匹配到路由項(xiàng)后,它就將包發(fā)往下一條地址。

路由器轉(zhuǎn)發(fā)數(shù)據(jù)包就是這樣,所以它始終是不會(huì)改IP地址的。只會(huì)改MAC.

當(dāng)有數(shù)據(jù)包傳到路由器時(shí),路由器首先將其的目的地址與路由表進(jìn)行對(duì)比,如果是本地網(wǎng)絡(luò),將不會(huì)進(jìn)行轉(zhuǎn)發(fā)到外網(wǎng)絡(luò),而是直接轉(zhuǎn)發(fā)給本地網(wǎng)內(nèi)的目的主機(jī);但是如果目的地址經(jīng)路由表對(duì)比,發(fā)現(xiàn)不是在本網(wǎng)中,有nat就將改變?cè)吹刂返腎P(原源地址的Ip地址改為了路由器的IP地址),路由器將數(shù)據(jù)包轉(zhuǎn)發(fā)到相應(yīng)的端口,進(jìn)行通信。

舉個(gè)例子,如:A訪問(wèn)B:
首先對(duì)比是否同一子網(wǎng),如果是,檢查ARP表,有B的MAC就直接發(fā)送,沒(méi)有就發(fā)送ARP請(qǐng)求.如果否,發(fā)送到默認(rèn)網(wǎng)關(guān)C,源IP為A,源MAC為A,目的IP為B,目的MAC地址為C,
C接收到這個(gè)包,檢查路由表,發(fā)送到下一跳D,源IP為A,源MAC為C,目的IP為B,目的MAC為D……
如此循環(huán),直到發(fā)送到B.

NAT為特殊應(yīng)用,會(huì)修改源IP為網(wǎng)關(guān)自己外網(wǎng)IP。
需要注意的是:ARP高速緩存中存儲(chǔ)的是本局域網(wǎng)內(nèi),mac地址與ip地址的映射。
原文鏈接:https://blog.csdn.net/weixin_33953384/article/details/85066699

總結(jié)

以上是生活随笔為你收集整理的ip数据报的转发的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。