久久国产精品一区二区三区四区,久色婷婷小香蕉久久,国产日韩欧美在线播放不卡,另类av一区二区

環球速訊:剛插上網線,電腦怎么知道自己的IP是什么?
來源:小白debug    時間:2022-10-31 16:08:43

今天這篇文章,很有意思,它來源于我曾經的一次真實面試里的其中一個小問題。當時是終面,面我的是那家公司的技術顧問,在面試前hr還讓我看了他的履歷,是一位1996年就進了麻省理工計算機系的大佬。


【資料圖】

屬實有被震驚到,什么概念?1996年,沒記錯的話那是個用BP機和大哥大的年代?有幾個人能用上電腦?又有幾個人有這種機會能出國深造。

這是哪部爽文小說的主人公劇情?

就算放到現在,這也是非常強的事情。

我這輩子是沒希望了,也不知道我的兒子或者孫子輩有沒有機會能做到。

也就是說,這位大佬,至少領先了我兩代人。

那一天,我感受到了,那種跨越時代的碾壓感。

好了,不講騷話了,直接開始主題吧。

我們知道,如果你知道某臺電腦的IP,就可以向這個IP發起連接請求,建立連接后就可以操作收發數據。

五層網絡協議對應的消息體變化分析

要發送的數據,會在網絡層里加入IP頭。

ip報頭

這里面最重要的是發送端和接收端的IP地址。這個IP地址就像是一個門牌號一樣,有了它,數據包就能在這個紛繁復雜的網絡世界里找到該由誰來接收這個數據包。

所以說上面的網絡通信離不開IP。

假設我有一臺新買的電腦,還沒聯網呢,這時候拿著新買的網線,插入網線口,網線插口亮起來了。

然后就可以開始用它上網了。

那么問題來了。

剛插上網線,電腦怎么知道自己的IP是什么?怎么就突然能上網了呢?

這個話題,我們從DHCP聊起吧。

DHCP是什么

插上網線之后,獲得IP的方式主要有兩種。

第一種是,自己手動在電腦里配。像下圖那樣,是macOS的一個截圖,在選擇手動配置之后,除了IP地址還需要配上子網掩碼和路由器的地址。

手動配IP

這就很不科學了,電腦又不只是賣給程序員,這幾個詞對于大部分普通人來說,比賦能抓手閉環這種黑話還要難理解。

大部分人沒事都不應該去配這玩意。

有沒有辦法可以讓這些IP信息自動獲得?

有,這就是第二種獲取IP的方式,DHCP(DynamicHostConfigurationProtocol,動態主機配置協議)。

DHCP自動生成IP

通過DHCP,在聯網之后可以自動獲取到本機需要的IP地址,子網掩碼還有路由器地址

DHCP的工作原理

DHCP的工作原理也非常簡單。

說白了,就是向某個管IP分配的服務器,也就是DHCP服務器,申請IP地址。其實一般家里用的路由器就自帶這個功能。

整個操作流程分為4個階段。

DHCP協議

DHC?P Discover:在聯網時,本機由于沒有IP,也不知道DHCP服務器的IP地址是多少,所以根本不知道該向誰發起請求,于是索性選擇廣播,向本地網段內所有人發出消息,詢問"誰能給個IP用用"。DHCP Offer:不是DHCP服務器的機子會忽略你的廣播消息,而DHCP服務器收到消息后,會在自己維護的一個IP池里拿出一個空閑IP,通過廣播的形式給回你的電腦。DHCP Request:你的電腦在拿到IP后,再次發起廣播,就說"這個IP我要了"。DHCP ACK:DHCP服務器此時再回復你一個ACK,意思是"ok的"。你就正式獲得這個IP在一段時間(比如24小時)里的使用權了。后續只要IP租約不過期,就可以一直用這個IP進行通信了。

到這里,問題來了

為什么要有第三和第四階段

大家有沒有發現,在Offer階段,其實你的機子就已經拿到了IP了,為什么還要有后面的Request和ACK呢?是不是有些多此一舉?

這是因為本地網段內,可能有不止一臺DHCP服務器,在你廣播之后,每個DHCP服務器都有可能給你發Offer。

本著先到先得的原則,你的機子一般會對第一個到的Offer響應DHCP Request,目的是為了確認offer,在你確認Offer這段時間內,DHCP服務器確認這個IP還沒被分出去,你才可以安心使用這個IP。

像不像你找工作的過程?

你海投簡歷(DHCP Discover),然后拿到了多個offer(DHCP Offer)。

這時候事情還沒完,你一般會跟HR說:"你給我兩天時間,我要跟家里人商量下"。

HR也會對你說:"那你盡快確認,我這邊還有不少候選人等著"。

之后你考慮下來覺得不錯,跟HR說要接這個Offer(DHCP Request),HR看了下這個崗位還在,才能確認讓你第二天來上班(DHCP ACK)。如果這個公司的崗位已經招到其他候選人了,第四階段的消息就會改為發DHCP NAK,意思是拒絕了你的接Offer請求。

DHCP抓包

光看原理是有些枯燥,我們可以嘗試下抓包看下數據。

在命令行里執行下面的命令,可以強行讓電腦的en0網卡重新走一遍DHCP流程。

sudo ipconfig set en0 DHCP

en0可以替換成其他網卡,比如eth0啥的。

這時候就可以抓到相關的數據包。

我們可以看到藍色的四個數據包,分別對應上面提到的四個DHCP階段。

其中第二階段中的DHCP Offer里會返回給我們需要的IP、子網掩碼、路由器地址以及DNS服務器地址。

offer階段

另外,通過抓包,我們可以發現DHCP是應用層的協議,基于傳輸層UDP協議進行數據傳輸。

那么問題又來了。

為什么DHCP用UDP,能不能改用TCP?

按道理說,UDP能做到的,TCP一般也能做到。但這次真不行。

主要原因還是因為TCP是面向連接的,而UDP是無連接的。

所謂"連接",他就只有一個發送端和一個接收端,就跟水管一樣。

而DHCP由于一開始并不知道要跟誰建立連接,所以只能通過廣播的形式發送消息,注意,小細節,廣播。

廣播尋找DHCP服務器.drawio

同樣是在本地網段內發廣播消息,UDP只需要發給255.255.255.255。它實際上并不是值某個具體的機器,而是一個特殊地址,這個地址有特殊含義,只要設了這個目的地址,就會在一定本地網段內進行廣播。

而TCP卻不同,它需要先建立連接,但實際上255.255.255.255對應的機器并不存在,因此也不能建立連接。如果同樣要做到廣播的效果,就需要先得到本地網段內所有機器的IP,然后挨個建立連接,再挨個發消息。這就很低效了。

因此DHCP選擇了UDP,而不是TCP。

為什么第二階段不是廣播,而是單播。

另外一個小細節不知道大家注意到沒,上面在提到 DHCP Offer 階段時,提到的是DHCP服務器會使用廣播的形式回復。但抓個包下來卻發現并不是廣播,而是單播。

其實,這是DHCP協議的一個小優化。原則上大家在DHCP offer階段,都用廣播,那肯定是最穩的,目標機器收到后自然就會進入第三階段DHCP Request。而非目標機器,收到后解包后發現目的機器的mac地址跟自己的不同,也會丟掉這個包。

但是問題就出在,這個非目的機器需要每次都在網卡收到包,并解完包,才發現原來這不是給它的消息,這。。。真,有被打擾到。

如果本地網段內這樣的包滿天飛,也浪費機器性能。

如果能用單播,那當然是最好的。但這時候目的機器其實并沒有IP地址,有些系統在這種情況下能收單播包,有些則認為不能收,這個跟系統的實現有關。因此,對于能收單播包的系統,會在發DHCP Discover階段設一個Broadcast flag = 0 (unicast)的標志位,告訴服務器,支持單播回復,于是服務器就會在DHCP Offer階段以單播的形式進行回復。

Discover要求使用單播回復

是不是每次聯網都要經歷DHCP四個階段?

只要想聯網,就需要IP,要用IP,就得走DHCP協議去分配。

但大家也發現了,DHCP第一階段和第二階段都可能會發廣播消息。對于家用電腦還好,插個網線,之后就雷打不動。但像手機這樣的移動設備,是要帶著到處跑的,坐個地鐵,進個電梯,公司里到處走走,都可能會涉及到網絡切換。

這每次都要來一個完整的四階段,各種廣播消息滿天飛,其實對網絡環境不太友好。

于是問題叒來了,是不是每次聯網都要經歷DHCP四個階段?

當然不需要。

我們會發現每次斷開wifi再打開wifi時,機子會經歷一個從沒網到有網的過程。

這時候去抓個包,會發現。

其實只發生了DHCP的第三和第四階段。這是因為機子記錄了曾經使用過192.168.31.170這個IP,重新聯網后,會優先再次請求這個IP,這樣就省下了第一第二階段的廣播了。

另外需要注意的是,抓包圖里DHCP Request之所以出現兩次,是因為第一次Request發出后太久沒得到回應,因此重發。

DHCP分配下來的IP一定不會重復嗎?

一般來說DHCP服務器會在它維護的IP池里找到一個沒人用的IP分配給機子,

這個IP如果重復分配了,那本地網段內就會出現兩個同樣的IP,這個IP下面卻對應兩個不同的mac地址。但其他機器上的ARP緩存中卻只會記錄其中一條mac地址到IP的映射關系。

于是,數據在傳遞的過程中就會出錯。

因此本地網段內IP必須唯一。

那么DHCP分配下來的IP有沒有可能跟別的IP是重復的?

都這么問了,那肯定是可能的。

有兩個常見的情況會出現IP重復。

文章開頭提到,IP是可以自己手動配的,自己配的IP是有可能跟其他DHCP分配下來的IP是相同的。解決方案也很簡單,盡量不要手動去配IP,統一走DHCP?;蛘咴贒HCP服務器里維護的IP范圍里,將這條IP剔除。一個本地網段內,是可以有多個DHCP服務器的,而他們維護的IP地址范圍是有?可能重疊的,于是就有可能將相同的IP給到不同的機子。解決方案也很簡單,修改兩臺DHCP服務器的維護的IP地址范圍,讓它們不重疊就行了。

不過吧,上面的解決方案,都需要有權限去修改DHCP服務器。

得到DHCP ACK之后立馬就能使用這個IP了嗎?

這就好像在問,拿到offer之后你是第一時間就去上班嗎?

不。

你會先告訴你的同事同學朋友,甚至會發朋友圈。

你的機子也一樣。

在得到DHCP ACK之后,機子不會立刻就用這個IP。

而是會先發三條ARP消息。

大家知道ARP消息的目的是通過IP地址去獲得mac地址。所以普通的ARP消息里,是填了IP地址,不填mac地址的。

但這三條ARP協議,比較特殊,它們叫無償ARP(Gratuitous ARP),特點是它會把IP和mac地址都填好了,而且填的還是自己的IP和mac地址。

目的有兩個。

一個是為了告訴本地網段內所有機子,從現在起,xx IP地址屬于xx mac地址,讓大家記錄在ARP緩存中。另一個就是看下本地網段里有沒有其他機子也用了這個IP,如果有沖突的話,那需要重新再走一次DHCP流程。

在三次無償ARP消息之后,確認沒有沖突了,才會開始使用這個IP地址進行通信。

這種行為,實際上就跟你拿了offer之后發了這么個朋友圈沒啥區別。

而且,還連發了三條。

別罵了,圖是P的,我沒這么發過

秀offer,offer沖突了不可怕。秀對象秀沖突了才可怕。

如果你朋友圈里有這種人,答應我,刪了吧。

總結電腦插上網線,聯網后會通過DHCP協議動態申請一個IP,同時獲得子網掩碼,路由器地址等信息。DHCP分為四個階段,分別是 Discover,Offer, Request和ACK。如果曾經連過這個網,機器會記錄你上次使用的IP,再次連接時優先使用原來的那個IP,因此只需要經歷第三第四階段。DHCP是應用層協議,考慮到需要支持廣播功能,底層使用的是UDP協議,而不是TCP協議。DHCP分配下來的IP是有可能跟某臺手動配置的IP地址重復的。DHCP得到IP之后還會發3次無償ARP通告,在確認沒有沖突后開始使用這個IP。

最后給大家留個問題吧。我們上面的IP都是從DHCP服務器上申請的,在服務器返回DHCP Offer的時候,可以看到上面寫了DHCP服務器的IP。比如192.168.31.1,這明顯是個局域網內的IP,但這能說明,你的DHCP服務器一定在這個局域網里嗎?

關鍵詞: 服務器的 第二階段 子網掩碼 解決方案 開始使用

上一篇:

下一篇:

X 關閉

X 關閉

久久国产精品一区二区三区四区,久色婷婷小香蕉久久,国产日韩欧美在线播放不卡,另类av一区二区
狠狠色丁香婷婷综合影院| 亚洲一区二区在线免费观看视频| 亚洲国产精品久久91精品| 欧美日韩激情网| 久久综合影音| 午夜欧美不卡精品aaaaa| 欧美激情综合五月色丁香| 国产精品腿扒开做爽爽爽挤奶网站| 国产精品jvid在线观看蜜臀| 欧美一区午夜视频在线观看| 麻豆国产va免费精品高清在线| 在线免费观看视频一区| 美日韩在线观看| 午夜天堂精品久久久久| 国产精品久久久久影院色老大| 久久成人精品一区二区三区| 一区二区日韩免费看| 欧美一区激情| 欧美中文字幕在线视频| 免费观看日韩| 欧美日韩国产成人在线免费| 午夜亚洲性色福利视频| 1000部精品久久久久久久久| 久久久.com| 国内精品福利| 久久久噜久噜久久综合| 欧美日韩成人激情| 亚洲国产高清自拍| 欧美经典一区二区| 国模精品一区二区三区| 宅男噜噜噜66一区二区66| 99国产精品99久久久久久粉嫩| 日韩小视频在线观看专区| 欧美精品久久久久久久久久| 欧美人与性动交a欧美精品| 亚洲福利视频一区二区| 日韩亚洲欧美高清| 国产精品盗摄一区二区三区| 极品尤物一区二区三区| 欧美日韩在线另类| 国产精品99一区二区| 欧美日韩精选| 欧美日韩一区在线观看| 欧美另类久久久品| 欧美激情国产高清| 欧美视频福利| 亚洲美女性视频| 亚洲美女视频在线观看| 国产精品永久| 国产午夜精品全部视频在线播放| 9国产精品视频| 另类综合日韩欧美亚洲| 欧美精品国产一区二区| 亚洲无线视频| 一区二区三区蜜桃网| 99视频精品全部免费在线| 国产精品国产三级国产a| 久久精精品视频| 国产欧美一区二区精品秋霞影院| 禁断一区二区三区在线| 久久在线91| 在线播放一区| 欧美亚洲视频在线看网址| 国产伦精品一区二区三| 欧美色欧美亚洲另类二区| 国产午夜精品视频免费不卡69堂| 日韩一级视频免费观看在线| 老司机一区二区三区| 欧美日韩视频| 欧美一区二视频在线免费观看| 亚洲欧洲综合另类在线| 久久麻豆一区二区| 久久久久久国产精品一区| 国产精品私拍pans大尺度在线| 国产精品影音先锋| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲日本在线视频观看| 国产一区二区日韩精品欧美精品| 国产伦精品一区二区三区视频黑人| 午夜电影亚洲| 国产伦精品一区二区三区四区免费| aa级大片欧美| 免费观看成人网| 久久蜜桃精品| 亚洲精品免费在线| 日韩午夜激情电影| 国产日韩欧美在线播放不卡| 激情婷婷久久| 欧美成人xxx| 亚洲免费观看在线视频| 欧美日本韩国一区| 欧美不卡视频一区| 欧美精品亚洲二区| 国产精品美女在线观看| 亚洲午夜高清视频| 精品成人一区二区三区| 亚洲观看高清完整版在线观看| 欧美日韩一区高清| 久久久久久久国产| 国产精品久久久久久久久久ktv| 欧美伊人久久| 看欧美日韩国产| 精品粉嫩aⅴ一区二区三区四区| 亚洲乱码精品一二三四区日韩在线| 久久综合电影| 1000精品久久久久久久久| 日韩亚洲成人av在线| 免费亚洲一区| 欧美一区2区视频在线观看| 久久亚洲私人国产精品va| 国产亚洲毛片在线| 亚洲成人自拍视频| 久久九九精品99国产精品| 国产精品极品美女粉嫩高清在线| 免费欧美日韩国产三级电影| 欧美视频亚洲视频| 亚洲作爱视频| 久久久久一区| 国产欧美亚洲精品| 欧美日韩精品伦理作品在线免费观看| 欧美激情1区2区3区| 亚洲精品资源| 久久只精品国产| 999在线观看精品免费不卡网站| 亚洲一级特黄| 欧美精品久久一区二区| 久久精品久久综合| 欧美激情精品久久久久久| 久久国产夜色精品鲁鲁99| 亚洲欧美日韩国产综合| 亚洲欧美日韩国产一区二区| 欧美视频在线观看一区| 一区二区福利| 在线视频你懂得一区二区三区| 国产欧美精品一区二区三区介绍| 国产亚洲欧美日韩一区二区| 亚洲第一黄色网| 久久五月婷婷丁香社区| 在线日韩av永久免费观看| 欧美国产日韩a欧美在线观看| 亚洲少妇最新在线视频| 久久久在线视频| 国产精品自在欧美一区| 亚洲国产一区二区三区高清| 一个人看的www久久| 国产欧美日韩综合精品二区| 国产精品视频免费| 欧美了一区在线观看| 亚洲与欧洲av电影| 蜜桃av噜噜一区| 欧美区视频在线观看| 欧美区一区二| 伊人色综合久久天天五月婷| 一区二区三区在线免费视频| 欧美日韩一区二区视频在线| 欧美福利网址| 在线一区观看| 国产精品成av人在线视午夜片| 欧美一区二区播放| 日韩一级二级三级| 国产精品二区在线观看| 亚洲欧美国产精品专区久久| 在线免费不卡视频| 国产精品夜夜夜| 欧美成人免费一级人片100| 欧美日本视频在线| 亚洲欧美日韩精品久久久久| 91久久中文字幕| 欧美一级夜夜爽| 亚洲第一成人在线| 国产精品狠色婷| 欧美激情成人在线视频| 香蕉成人久久| 欧美xart系列在线观看| 欧美视频中文在线看| 亚洲全部视频| 欧美体内谢she精2性欧美| 久久久久国产一区二区三区四区| 99综合精品| 国产精品爽爽ⅴa在线观看| 亚洲欧美中文在线视频| 91久久精品国产| 欧美激情精品久久久久久久变态| 欧美激情一区二区三区在线| 伊人激情综合| 国产目拍亚洲精品99久久精品| 日韩午夜在线视频| 亚洲高清av| 欧美日韩美女一区二区| 国产乱码精品一区二区三| 在线播放国产一区中文字幕剧情欧美| 久久午夜色播影院免费高清| 亚洲午夜日本在线观看| 在线观看国产一区二区| 日韩午夜av电影| 国产一区二区黄色| 欧美精品一区二区高清在线观看| 亚洲成人资源| 久久久伊人欧美| 9l国产精品久久久久麻豆|