歡迎來到 常識詞典網 , 一個專業的常識知識學習網站!
[ Ctrl + D 鍵 ]收藏本站
答案 1:
-地址不能用于直接的通信,這是因為-地址是抽象的網絡層地址,不是物理地址以Ping命令為例,實際通信過程如下A和B要發送的人在同一個網段
首先,Ping命令會構建一個固定格式的ICMP請求數據包,然后由ICMP協議將這個數據包連同-地址一起交給-層協議(和ICMP一樣,實際上是一組后臺運行的進程),-層協議將以-地址作為目的地址,本機-地址作為源地址,加上一些其他的控制信息,構建一個-數據包,并想辦法得到與-地址對應的MAC地址(Media Access Control介質訪問控制地址,以太網的物理地址,每一個網卡會有一個全球唯一固定的MAC地址例如:00-23-5A-15-99-42),以便交給數據鏈路層構建一個數據幀。關鍵就在這里,-層協議通過機器B的-地址和自己的子網掩碼,發現它跟自己屬同一網絡,就直接在本網絡內查找這臺機器的MAC,如果以前兩機有過通信,在A機的ARP(地址映射協議,將-地址轉化為MAC地址)緩存表可能會有B機-與其MAC的映射關系,如果沒有,就發一個ARP請求廣播(向本網內所有主機發送)“x.x.x.x的MAC地址是什么”,這個廣播所有主機都能收到,但是只有B才回應,發送自己的MAC地址,得到B機的MAC,一并交給數據鏈路層。后者構建一個數據幀,目的地址是-層傳過來的物理地址,源地址則是本機的物理地址,還要附加上一些控制信息,依據以太網的介質訪問規則,將它們傳送出去?! ≈鳈CB收到這個數據幀后,先檢查它的目的地址,并和本機的物理地址對比,如符合,則接收;否則丟棄。接收后檢查該數據幀,將-數據包從幀中提取出來,交給本機的-層協議。同樣,-層檢查后,將有用的信息提取后交給ICMP協議,后者處理后,馬上構建一個ICMP應答包,發送給主機A,其過程和主機A發送ICMP請求包到主機B一模一樣。A和B不在同一網段內
在主機A上運行“Ping 8.8.8.8”后,開始跟上面一樣,到了怎樣得到MAC地址時,-協議通過計算發現D機與自己不在同一網段內(子網掩碼的計算),就直接將交由路由處理,也就是將路由的MAC取過來(路由器-已知),這被稱作代理ARP,至于怎樣得到路由的MAC,跟1一樣,先在ARP緩存表找,沒有就廣播。路由得到這個數據幀后,再跟主機B進行聯系。對路由器來說,他收到目的-地址后動作如下路由器的某一個接口接收到一個數據包時,會查看包中的目標網絡地址以判斷該包的目的地址在當前的路由表中是否存在(即路由器是否知道到達目標網絡的路徑)。如果發現包的目標地址與本路由器的某個接口所連接的網絡地址相同,那么馬上數據轉發到相應接口;如果發現包的目標地址不是自己的直連網段,路由器會查看自己的路由表,查找包的目的網絡所對應的接口,并從相應的接口轉發出去;如果路由表中記錄的網絡地址與包的目標地址不匹配,則根據路由器配置轉發到默認接口,在沒有配置默認接口的情況下會給用戶返回目標地址不可達的 ICMP 信息。 如此層層查找,直到將消息轉發到目的地。 而對主機來說,其中的過程都由網絡設備完成,主機只要將數據發送到自己的-,剩下的事情就交給網絡設備了。PS:8.8.8.8是GOOGLE提供的免費DNS服務器地址擴展:
OSI七層模型:baike.baidu/view... TCP/-協議:baike.baidu/view... -地址:baike.baidu/view... ICMP:baike.baidu/view... DNS:baike.baidu/view...答案 2:
通過運營商的路由器把tcp包一級一級向上遞歸,直到有路由器的路由表中保存有這個ip,然后8.8.8.8返回tcp包,順著接受路徑返回到你的主機。答案 3:
一臺主機的應用層產生要發送的數據,然后傳給下層,會晤層,網絡層,數據鏈路層,物理層等,具體去看iso制定的osi 7層網絡模型。中間某層使用的協議是TCP或者UDP,下一層是-,要發送的信息,層層封裝,通過ip來確定接受主機的信息,繼續向下,變成比特流,通過電路進行傳輸,中間經過路由器,路由器一般認為三層,層層向上進行處理,然后又下來,繼續發送,中間查了路由表,確定下一步送往哪里。(此處還涉及路由表的各種算法)最后傳到接受主機的物理層,層層向上處理,解封裝,最后整理成應用程序需要的數據,交給應用層。簡單來說,就是,產生數據,傳給路由器,路由器根據路由表和路由算法,確定該把這個包送向哪里,然后送過去,一點點的送到接受主機。具體的過程看下通信網相關文獻吧。具體的東西記不大得了。剛看到具體的提問,補充說下。簡單說,路由器通過查詢路由表,確定8。8。8。8在哪里。具體點的給你幾個概念,你自己去看,ip分為class A class B??等等,網絡中路由器有路由表(他們有自己的算法進行更新,具體參閱communication networks),路由表里面寫明了哪個地址應該送到哪里去,這里涉及很多東西。一兩句說不清楚??答案 4:
簡單的來說,首先查找本機的路由表,但路由表不會告訴你到達目的-地址的完整路徑,只會告訴你下一跳是哪個地址,哪個出口,到達下一跳以后繼續重復上面的查找路由表的動作,直到到達目的-地址。打個比方來說,你找警察問路,但這個警察并不告訴你一條完整的路,而是告訴你你先走到下一個路口,然后那邊有個警察,你再繼續問下一個警察。。。答案 5:
看上面講的基本都不太準確。 互聯網上的路由器是網狀的而非樹狀的,他們依靠路由協議互相交換信息。比如一個簡單的A-B-C網絡,A會發出信息通知自己相鄰的路由器B告知自己的存在,B會發信息告知C自己的存在,以及隔一跳還有一個A。于是,當C需要發給A的時候,查一下路由表,就知道要從這個端口發往B,而B收到后,查一下路由表,就知道由左邊的端口發往A。 A-B | | C-D 如果是這樣一個菱形的網絡,A會通知B和C,B和C再通知D自己的存在,以及他們都隔一跳可以到達A,于是D給A發信息的時候,可以隨機選擇兩條路中的一條發過去。 當然,現實中的還有更多復雜的東西,比如上一個菱形網絡,每條線路可以計算線路容量,如果D到C只有1M,到B有100M,那么優先選擇走B線路到A。另外還有自治系統AS之類的,就不多說了。 由于你在一個局域網內,用route PRINT打印出來的路由表通常只包括局域網內的直接發到網卡,其他的全都發到默認-。數據包到了-后再通過ADSL到電信的網絡里,就可以在整個互聯網內轉悠,找到最優的路徑到達目標-。通過tracert命令可以看到所有經過的路由器。 多次使用tracert 8.8.8.8命令,然后比較了結果,可以看到我這里經過14跳可以到達這個-。另外,最后一跳的-地址在216.239.48.230~216.239.48.239之間變動,這就是通過路由表實現的負載均衡了。下一篇:哪里能夠找到關于國家組織結構的書或者資料? 下一篇 【方向鍵 ( → )下一篇】
上一篇:優質靠譜兒單身盼嫁女青年這個物種到底存在么?哪兒有? 上一篇 【方向鍵 ( ← )上一篇】
快搜