更多大廠面試內(nèi)容可見 -> http://11come.cn
計(jì)算機(jī)網(wǎng)絡(luò)面試高頻:輸入域名會(huì)發(fā)生那些操作,開放性回答
輸入域名之后,會(huì)發(fā)生哪些操作?
當(dāng)在瀏覽器中輸入www.baidu.com
并按下回車鍵時(shí),會(huì)觸發(fā)一系列復(fù)雜的網(wǎng)絡(luò)過程,包括DNS解析、TCP連接建立、HTTP請求和響應(yīng)等。以下是這個(gè)過程中發(fā)生的詳細(xì)步驟,分層次地說明每一個(gè)環(huán)節(jié),
域名 www.baidu.com
其實(shí)最后還有一個(gè)點(diǎn),即 www.baidu.com.
,域名級別從右到左遞減,根域名為 .
,頂級域名為 .com
,二級域名為 baidu
,三級域名為 www
1、首先會(huì)經(jīng)過通過 DNS 解析 將域名解析為對應(yīng)的 IP 地址
在 DNS 解析之前 ,瀏覽器會(huì)先檢查是否存在 DNS 緩存,存在則返回
如果沒有,之后會(huì)檢查操作系統(tǒng)是否存在 DNS 緩存,存在則返回(Linux 中可以通過 /ets/hosts
文件設(shè)置,可以將域名解析到任意能夠訪問的 IP 地址)
如果都沒有,則會(huì)向本地 DNS 服務(wù)器發(fā)送域名解析請求
DNS 服務(wù)器解析過程: 首先,客戶端發(fā)送一個(gè) DNS 解析請求給【本地 DNS 服務(wù)器】,如果本地 DNS 服務(wù)器中存在域名與 IP 的映射,就直接返回
如果沒有,本地 DNS 服務(wù)器會(huì)去請求【根域名服務(wù)器】解析 www.baidu.com
,根域名服務(wù)器發(fā)現(xiàn)頂級域名為 .com
,于是將 .com
的頂級域名服務(wù)器地址返回
接下來,本地 DNS 服務(wù)器會(huì)再去請求 .com
的【頂級域名服務(wù)器】解析 www.baidu.com
,頂級域名服務(wù)器會(huì)返回 baidu.com
域名服務(wù)器的地址
接下來,本地 DNS 服務(wù)器會(huì)再去請求 baidu.com
的【權(quán)威域名服務(wù)器】,該權(quán)威域名服務(wù)器就會(huì)返回 www.baidu.com
域名對應(yīng)的 IP 地址
經(jīng)過 DNS 域名解析,客戶端就拿到了域名對應(yīng)的 IP 地址,接下來雙方就可以建立 TCP 連接進(jìn)行通信了
2、雙方建立 TCP 連接
客戶端拿到了域名對應(yīng)的 IP 地址,就可以向該 IP 地址發(fā)送 TCP 連接建立的請求了,通過 三次握手 雙方建立了 TCP 連接,之后就可以進(jìn)行網(wǎng)絡(luò)通信了
3、數(shù)據(jù)傳輸
當(dāng)客戶端需要發(fā)送數(shù)據(jù)的時(shí)候,應(yīng)用層會(huì)發(fā)起 HTTP 請求,接下來到了 傳輸層 ,HTTP 請求的數(shù)據(jù)就會(huì)被封裝在 TCP報(bào)文 中,并且添加上 TCP 頭信息(包含了源、目的端口號、序列號、確認(rèn)號等信息)
接下來到了 網(wǎng)絡(luò)層 ,TCP 報(bào)文會(huì)被封裝在 IP 報(bào)文 中,并添加上 IP 頭信息(包含了源 IP、目的 IP 等信息)
接下來到了 數(shù)據(jù)鏈路層 ,IP 報(bào)文會(huì)被封裝在 MAC 報(bào)文 中,并添加上 MAC 頭信息(包含了源 MAC、目的 MAC 等信息)
接下來到了 物理層 ,到了物理層會(huì)將數(shù)字信息轉(zhuǎn)為電信號,電信號通過網(wǎng)線進(jìn)行傳輸,完成數(shù)據(jù)發(fā)送的功能,這一步通過網(wǎng)卡來完成,即網(wǎng)卡收到數(shù)據(jù)包之后,將數(shù)據(jù)轉(zhuǎn)為電信號通過網(wǎng)線發(fā)送出去,之后電信號到達(dá)了 交換機(jī) ,交換機(jī)通過 MAC 報(bào)文 頭部的 MAC 地址進(jìn)行數(shù)據(jù)的轉(zhuǎn)發(fā),之后到達(dá)了 路由器 ,路由器會(huì)根據(jù) IP 報(bào)文 頭部的 IP 地址進(jìn)行數(shù)據(jù)的轉(zhuǎn)發(fā)
之后數(shù)據(jù)包抵達(dá)服務(wù)器,服務(wù)器對數(shù)據(jù)包進(jìn)行一層一層拆分,先將 MAC 報(bào)文 的頭部拿出來,判斷 MAC 地址等信息是否符合,之后將 IP 報(bào)文 的頭部拿出來,判斷 IP 地址等信息是否符合,之后將 TCP 報(bào)文 的頭部拿出來,判斷序列號、端口號等信息是否符合,如果都符合就將這個(gè)數(shù)據(jù)包發(fā)送給服務(wù)端監(jiān)聽這個(gè)端口的應(yīng)用進(jìn)程,這就完成了一次請求數(shù)據(jù)的傳遞了
當(dāng)雙方數(shù)據(jù)傳輸完畢之后,通過 四次揮手 斷開雙方的 TCP 連接即可
擴(kuò)展:可以再添加上 HTTPS 中的 TLS 握手階段
如果使用 HTTPS 通信的話,在 TCP 握手建立 TCP 連接之后,還需要通過 TLS 握手來協(xié)商雙方加密的 對稱密鑰 ,可以將 TLS 握手階段給說一下
那么 TLS 握手的過程總共包含了 4 次通信 ,在 4 次通信之后,TLS 協(xié)議也就建立成功了,可以進(jìn)行 HTTPS 通信了,TLS 握手過程中的 4 次通信如下:
1、第一次通信 ClientHello :客戶端向服務(wù)端發(fā)送加密請求,主要是協(xié)商 TLS 版本、隨機(jī)數(shù)(生成后續(xù)的對稱密鑰)
2、第二次通信 ServerHello :服務(wù)端向客戶端回復(fù),主要協(xié)商 TLS 版本、隨機(jī)數(shù)(生成后續(xù)的對稱密鑰)、數(shù)字證書(包含公鑰)
3、第三次通信 客戶端回應(yīng) :取出數(shù)字證書的公鑰,將用于通信的 對稱密鑰 通過公鑰加密發(fā)送給服務(wù)端
4、第四次通信 服務(wù)端最后回應(yīng) :使用自己本地的密鑰進(jìn)行解密,得到用于通信的 對稱密鑰文章來源:http://www.zghlxwxcb.cn/news/detail-860942.html
通過 TLS 握手階段,雙方就可以拿到對稱密鑰,之后雙方就可以使用這個(gè) 對稱密鑰 進(jìn)行加密通信了文章來源地址http://www.zghlxwxcb.cn/news/detail-860942.html
到了這里,關(guān)于計(jì)算機(jī)網(wǎng)絡(luò)面試高頻:輸入域名會(huì)發(fā)生那些操作,開放性回答的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!