0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

字節(jié)面試:連接一個(gè)不存在的IP地址,會(huì)發(fā)生什么?

dyquk4xk2p3d ? 來源:良許Linux ? 2023-02-21 09:47 ? 次閱讀

分享兩個(gè)字節(jié)面試題,都是基于場(chǎng)景問的網(wǎng)絡(luò)問題。

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

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

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

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

接軌 B 站潮流:省流,我直接給出結(jié)論

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

這個(gè)問題要分兩種情況來思考,不同的情況得到的結(jié)論是不同的。

第一個(gè)情況:目標(biāo) IP 地址和客戶端的 IP 地址是同一個(gè)局域網(wǎng)(網(wǎng)絡(luò)號(hào)相同)。

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

因?yàn)槟繕?biāo)地址不存在 IP 地址,客戶端的內(nèi)核在發(fā) arp 請(qǐng)求的時(shí)候,廣播詢問這個(gè)目標(biāo) IP 地址是誰的,由于網(wǎng)絡(luò)中不存在該目標(biāo) IP 地址,所以沒有設(shè)備應(yīng)答客戶端的 arp 請(qǐng)求。

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

第二個(gè)情況:目標(biāo) IP 地址和客戶端的 IP 地址不在同一個(gè)局域網(wǎng)(網(wǎng)絡(luò)號(hào)不同)。

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

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

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

因?yàn)楫?dāng)目標(biāo) IP 地址和客戶端 IP 地址不在同一個(gè)局域網(wǎng)時(shí),客戶端客通過路由表的判斷,判斷到下一步是要將網(wǎng)絡(luò)報(bào)文發(fā)送給路由器。

ae0b4aac-b177-11ed-bfe3-dac502259ad0.png

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

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

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

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

客戶端連接的目標(biāo) IP 地址是存在的,那么 SYN 報(bào)文就能正確的抵達(dá)到目標(biāo)設(shè)備。

目標(biāo)設(shè)備收到 SYN 報(bào)文后,發(fā)現(xiàn)端口號(hào)并沒有被進(jìn)程監(jiān)聽,這時(shí)候目標(biāo)設(shè)備的內(nèi)核就會(huì)回 RST 報(bào)文。

客戶端收到 RST 報(bào)文后,就會(huì)釋放連接。

.......

至此,結(jié)論已說完。

不知道你們會(huì)不會(huì)覺得信息量很大,如果你覺得信息量大,那么你該補(bǔ)補(bǔ)網(wǎng)絡(luò)知識(shí)啦。

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

最后再提一個(gè)問題:客戶端發(fā)送了一個(gè)目標(biāo) IP 地址存在但是端口不存在的 UDP 報(bào)文,UDP 沒有像 TCP 那樣的 RST 報(bào)文,此時(shí)會(huì)發(fā)生什么?

就醬,溜啦溜啦!

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • IP
    IP
    +關(guān)注

    關(guān)注

    5

    文章

    1579

    瀏覽量

    149141
  • Mac
    Mac
    +關(guān)注

    關(guān)注

    0

    文章

    1085

    瀏覽量

    51274
  • 客戶端
    +關(guān)注

    關(guān)注

    1

    文章

    287

    瀏覽量

    16625

原文標(biāo)題:字節(jié)面試:連接一個(gè)不存在的 IP 地址,會(huì)發(fā)生什么?

文章出處:【微信號(hào):良許Linux,微信公眾號(hào):良許Linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    觀點(diǎn):沒有標(biāo)準(zhǔn),物聯(lián)網(wǎng)其實(shí)還不存在

    并沒有物聯(lián)網(wǎng)這種東西──關(guān)于物聯(lián)網(wǎng),是太多的炒作以及紙上談兵,但它其實(shí)還不存在。不過市面上倒是有數(shù)種針對(duì)不同應(yīng)用領(lǐng)域的“物連網(wǎng)(Networks of Things)”;這種網(wǎng)路的節(jié)點(diǎn)通常不知道該怎么與其他網(wǎng)路上的節(jié)點(diǎn)溝通,除非是出產(chǎn)自同樣的公司或是由同一個(gè)人安裝。
    發(fā)表于 08-16 09:29 ?1413次閱讀

    端口不存在??

    用stc打開個(gè)燒寫程序顯示如下,求解正在嘗試與 MCU/單片機(jī) 握手連接 ... 打開串口失敗!Chinese:串口已被其它程序打開或該串口不存在。
    發(fā)表于 07-28 16:28

    CC3000通信往不存在IP地址發(fā)送UDP數(shù)據(jù)報(bào)的問題?

    ? ? ? ? 我在測(cè)試UDP通信的時(shí)候發(fā)現(xiàn)個(gè)問題。就是用UDP向個(gè)不存在IP
    發(fā)表于 06-23 03:34

    下載harmony 2.06不存在?

    嗨,我昨晚試過了,我有個(gè)錯(cuò)誤:你想下載的文件不存在。請(qǐng)稍后再試。我今天早上試過了,我仍然有同樣的錯(cuò)誤。我嘗試從MPLABX插件管理器,我沒有看到
    發(fā)表于 09-12 14:40

    labview生成exe提示不存在vi

    個(gè)報(bào)表vi單獨(dú)生成exe可以正常運(yùn)行,但是把他作為個(gè)子菜單的子vi界面可以打開但是不能運(yùn)行,提示不存在
    發(fā)表于 10-29 13:56

    請(qǐng)問為什么運(yùn)放中不存在白色以上的噪聲?

    查閱資料得知,由于運(yùn)放內(nèi)部的寄生參數(shù)以及補(bǔ)償元件,使得白色以上的噪聲不存在。為什么?
    發(fā)表于 01-25 11:17

    初始化BRAM警告coe文件不存在

    coe文件,這步成功。第二,我重新重新打包IP,并且警告coe文件不存在。但該文件確實(shí)存在于該文件夾中。有人可以幫我解決問題嗎?謝謝!以上來自于谷歌翻譯以下為原文Hello ever
    發(fā)表于 04-17 09:47

    在獨(dú)立運(yùn)行應(yīng)用程序代碼時(shí)添加不存在的Bootloader的簡(jiǎn)單跳轉(zhuǎn)問題

    跳轉(zhuǎn),跳轉(zhuǎn)到9D009000的新應(yīng)用程序重置地址,繞過不存在的引導(dǎo)加載程序。我已經(jīng)設(shè)法在那里獲得跳轉(zhuǎn)指令,但是它似乎沒有實(shí)際工作——應(yīng)用程序代碼從來沒有運(yùn)行。AR與PIC32 MX,但不是與低級(jí)匯編等
    發(fā)表于 03-10 07:44

    文件不存在

    嗨!我使用的是X V4.01。我右擊->New->C Header File添加了幾個(gè)頭文件。該文件確實(shí)存在于目錄樹中,但是不存在于文件文件夾中,這使我不能包含它。謝謝。
    發(fā)表于 03-13 10:08

    Harmony TCP/IP沒獲得IP地址

    ,狀態(tài)機(jī)顯示所有東西初始化正常,我到達(dá)APP_TCPIP_TRANSACT,但是它似乎從來沒有得到IP地址。當(dāng)我檢查路由器時(shí),它不存在,而且發(fā)現(xiàn)器軟件也找不到它。RJ45連接器上的燈以
    發(fā)表于 03-26 07:55

    多晶硅的生產(chǎn) 不存在高能耗和高污染

    多晶硅的生產(chǎn) 不存在高能耗和高污染  新聞事件:     發(fā)改委能源研究所副所長(zhǎng)李俊峰表示多晶硅生產(chǎn)不存在高能耗和高污染     事件詳
    發(fā)表于 11-19 10:44 ?1166次閱讀

    AI生成出不存在于世界的人臉

    大家看到的這張人臉是完全不存在于地球上的,為什么這么說呢?因?yàn)樗怯葾I合成的張?zhí)摂M的臉。如果你仔細(xì)看就會(huì)發(fā)現(xiàn)些缺陷,比如說皮膚的紋路、頭發(fā)的形狀、背景很怪等等,但如果不仔細(xì)看的話
    發(fā)表于 03-27 17:02 ?4120次閱讀

    10倍程序員到底存不存在

    最近關(guān)于 10 倍程序員的事又開始在各個(gè)社交平臺(tái)火了起來,CODING 作為國(guó)內(nèi)領(lǐng)先的站式 DevOps 解決方案,今天也來討論下 10 倍程序員到底存不存在和這個(gè)概念到底意味著什么。
    的頭像 發(fā)表于 11-08 16:13 ?2508次閱讀

    連接個(gè)未知的IP如何可以獲取IP地址

    IP地址是每一個(gè)連接到網(wǎng)絡(luò)中的設(shè)備都需要的個(gè)邏輯性的地址
    的頭像 發(fā)表于 02-15 13:08 ?9791次閱讀
    <b class='flag-5'>連接</b><b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>未知的<b class='flag-5'>IP</b>如何可以獲取<b class='flag-5'>IP</b><b class='flag-5'>地址</b>

    ping不存在地址會(huì)咋樣?ping和誰都不在個(gè)網(wǎng)段的IP又會(huì)如何?

    :當(dāng)ping個(gè)不存在地址時(shí),如果網(wǎng)絡(luò)連接沒有問題,通常會(huì)收到“無法訪問目標(biāo)主機(jī)”或“請(qǐng)求超時(shí)”的錯(cuò)誤消息。這表示沒有主機(jī)
    的頭像 發(fā)表于 02-04 11:21 ?1222次閱讀