<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          連接不存在的 IP ,會發(fā)生什么?

          共 1494字,需瀏覽 3分鐘

           ·

          2023-03-03 22:54

          魚皮最新原創(chuàng)項目教程,歡迎學習

          大家好,我是魚皮。

          今天給大家分享兩個字節(jié)面試題,都是基于場景問的網(wǎng)絡問題。

          • Q1:客戶端連接一個不存在的 IP 地址,會發(fā)生什么?
          • Q2:客戶端連接一個存在的 IP 地址但是端口不存在,會發(fā)生什么?

          PS:這里的「連接」指的是 TCP 連接。

          這類的場景問題,如果你沒有系統(tǒng)化的網(wǎng)絡知識體系,只靠背八股文的話,你就遭老罪嘍。

          接軌 B 站潮流:省流,我直接給出結論

          Q1:客戶端連接一個不存在的 IP 地址,會發(fā)生什么?

          這個問題要分兩種情況來思考,不同的情況得到的結論是不同的。

          第一個情況:目標 IP 地址和客戶端的 IP 地址是同一個局域網(wǎng)(網(wǎng)絡號相同)。

          第一種情況,客戶端無法發(fā)出 SYN 報文,主要卡在數(shù)據(jù)鏈路層。

          因為目標地址不存在 IP 地址,客戶端的內核在發(fā) arp 請求的時候,廣播詢問這個目標 IP 地址是誰的,由于網(wǎng)絡中不存在該目標 IP 地址,所以沒有設備應答客戶端的 arp 請求。

          由于客戶端無法拿到目標設備的 MAC,這樣就沒辦法組裝 MAC 頭的信息,所以 SYN 報文無法發(fā)送出去。

          第二個情況:目標 IP 地址和客戶端的 IP 地址不在同一個局域網(wǎng)(網(wǎng)絡號不同)。

          第二種情況,客戶端會先將 SYN 報文發(fā)給路由器,然后路由器會繼續(xù)轉發(fā)。

          由于目標 IP 地址是不存在的,該 SYN 報文會在網(wǎng)絡中消亡,因此客戶端是不會收到對 SYN 報文的確認報文的,接著客戶端會觸發(fā)超時重傳,重傳 SYN 報文,直到重傳的次數(shù)達到最大次數(shù)后,客戶端的連接就會被釋放。

          可能有的同學好奇,為什么這種情況客戶端的 SYN 報文可以發(fā)出來?

          因為當目標 IP 地址和客戶端 IP 地址不在同一個局域網(wǎng)時,客戶端客通過路由表的判斷,判斷到下一步是要將網(wǎng)絡報文發(fā)送給路由器。

          這時候數(shù)據(jù)鏈路層的 arp 請求,會廣播詢問 IP 地址(路由器 IP 地址)是誰的,路由器發(fā)現(xiàn)是自己的 IP 地址,于是就會將自己的 MAC 地址告訴客戶端。

          然后客戶端的網(wǎng)絡報文中 MAC 頭的「目標 MAC 地址」填入的就是路由器的 MAC 地址,于是 SYN 報文就可以發(fā)送出去了。

          由于目標 MAC 地址是路由器的,所以就會被路由器接收,然后路由器繼續(xù)通過路由表的判斷,轉發(fā)給下一個路由器,直到找到目標設備。

          Q2:客戶端連接一個存在的 IP 地址但是端口不存在,會發(fā)生什么?

          客戶端連接的目標 IP 地址是存在的,那么 SYN 報文就能正確的抵達到目標設備。

          目標設備收到 SYN 報文后,發(fā)現(xiàn)端口號并沒有被進程監(jiān)聽,這時候目標設備的內核就會回 RST 報文。

          客戶端收到 RST 報文后,就會釋放連接。

          .......

          至此,結論已說完。

          不知道你們會不會覺得信息量很大,如果你覺得信息量大,那么你該補補網(wǎng)絡知識啦。

          第二題不難,難在的是第一題,如果你沒有把兩臺電腦之間是怎么通信的搞清楚,那么你是無從下手回答的,所以建立好體系化的網(wǎng)絡知識,面對這類的場景題目,就能做到舉一反三了。

          最后再提一個問題:戶端發(fā)送了一個目標 IP 地址存在但是端口不存在的 UDP 報文,UDP 沒有像 TCP 那樣的 RST 報文,此時會發(fā)生什么?歡迎在評論區(qū)留言~

          就醬,溜啦溜啦!


          最后,歡迎學編程的朋友們加入魚皮的 編程知識星球 ,魚皮會 1 對 1 解決你的問題,直播帶你做出項目、為你定制學習計劃和求職指導,還能獲取海量編程學習資源,和上萬名學編程的同學共享知識、交流進步。求職季一起加油!

          往期推薦

          我的學習小圈子

          離譜!

          寒假,學弟竟然啃完了我的Java學習路線(

          華為一面,送分題

          系統(tǒng)上線前,被坑了。。

          瀏覽 37
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  操比电影在线观看 | 操逼视频在线观看视频 | 在线观看欧美日韩 | 精品三级国产 | 无码人妻一区二区三区9视频 |