最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

鎖屏面試題百日百刷-面試必問三次握手

2021-07-14 21:56 作者:zjlala96  | 我要投稿

====運(yùn)行在TCP 或UDP的應(yīng)用層協(xié)議分析?

運(yùn)行在TCP協(xié)議上的協(xié)議:

HTTP(Hypertext Transfer Protocol,超文本傳輸協(xié)議),主要用于普通瀏覽。

HTTPS(HTTP over SSL,安全超文本傳輸協(xié)議),HTTP協(xié)議的安全版本。

FTP(File Transfer Protocol,文件傳輸協(xié)議),用于文件傳輸。

POP3(Post Office Protocol, version 3,郵局協(xié)議),收郵件用。

SMTP(Simple Mail Transfer Protocol,簡單郵件傳輸協(xié)議),用來發(fā)送電子郵件。

TELNET(Teletype over the Network,網(wǎng)絡(luò)電傳),通過一個(gè)終端(terminal)登陸到網(wǎng)

絡(luò)。

SSH(Secure Shell,用于替代安全性差的TELNET),用于加密安全登陸用。

運(yùn)行在UDP協(xié)議上的協(xié)議:

BOOTP(Boot Protocol,啟動(dòng)協(xié)議),應(yīng)用于無盤設(shè)備。

NTP(Network Time Protocol,網(wǎng)絡(luò)時(shí)間協(xié)議),用于網(wǎng)絡(luò)同步。

DHCP(Dynamic Host Configuration Protocol,動(dòng)態(tài)主機(jī)配置協(xié)議),動(dòng)態(tài)配置IP地址。

運(yùn)行在TCP和UDP協(xié)議上:

DNS(Domain Name Service,域名服務(wù)),用于完成地址查找,郵件轉(zhuǎn)發(fā)等工作。

ECHO(Echo Protocol,回繞協(xié)議),用于查錯(cuò)及測(cè)量應(yīng)答時(shí)間(運(yùn)行在TCP和UDP協(xié)議

上)。

SNMP(Simple Network Management Protocol,簡單網(wǎng)絡(luò)管理協(xié)議),用于網(wǎng)絡(luò)信息的

收集和網(wǎng)絡(luò)管理。

DHCP(Dynamic Host Configuration Protocol,動(dòng)態(tài)主機(jī)配置協(xié)議),動(dòng)態(tài)配置IP地址。

?

====什么是ARP協(xié)議 (Address Resolution Protocol)?

ARP協(xié)議完成了IP地址與物理地址的映射。每一個(gè)主機(jī)都設(shè)有一個(gè) ARP 高速緩存,里面有所在的局域網(wǎng)上的各主機(jī)和路由器的 IP 地址到硬件地址的映射表。當(dāng)源主機(jī)要發(fā)送數(shù)據(jù)包到目的主機(jī)時(shí),會(huì)先檢查自己的ARP高速緩存中有沒有目的主機(jī)的MAC地址,如果有,就直接將數(shù)據(jù)包發(fā)到這個(gè)MAC地址,如果沒有,就向所在的局域網(wǎng)發(fā)起一個(gè)ARP請(qǐng)求的廣播包(在發(fā)送自己的 ARP 請(qǐng)求時(shí),同時(shí)會(huì)帶上自己的 IP 地址到硬件地址的映射),收到請(qǐng)求的主機(jī)檢查自己的IP地址和目的主機(jī)的IP地址是否一致,如果一致,則先保存源主機(jī)的映射到自己的ARP緩存,然后給源主機(jī)發(fā)送一個(gè)ARP響應(yīng)數(shù)據(jù)包。源主機(jī)收到響應(yīng)數(shù)據(jù)包之后,先添加目的主機(jī)的IP地址與MAC地址的映射,再進(jìn)行數(shù)據(jù)傳送。如果源主機(jī)一直沒有收到響應(yīng),表示ARP查詢失敗。

如果所要找的主機(jī)和源主機(jī)不在同一個(gè)局域網(wǎng)上,那么就要通過 ARP 找到一個(gè)位于本局域網(wǎng)上的某個(gè)路由器的硬件地址,然后把分組發(fā)送給這個(gè)路由器,讓這個(gè)路由器把分組轉(zhuǎn)發(fā)給下一個(gè)網(wǎng)絡(luò)。剩下的工作就由下一個(gè)網(wǎng)絡(luò)來做。

?

====什么是NAT (Network Address Translation, 網(wǎng)絡(luò)地址轉(zhuǎn)換)?

用于解決內(nèi)網(wǎng)中的主機(jī)要和因特網(wǎng)上的主機(jī)通信。由NAT路由器將主機(jī)的本地IP地址轉(zhuǎn)換為全球IP地址,分為靜態(tài)轉(zhuǎn)換(轉(zhuǎn)換得到的全球IP地址固定不變)和動(dòng)態(tài)NAT轉(zhuǎn)換。

?

====從輸入址到獲得頁面的過程?(重點(diǎn)常問)

1). 瀏覽器查詢 DNS,獲取域名對(duì)應(yīng)的IP地址:具體過程包括瀏覽器搜索自身的DNS緩存、搜索操作系統(tǒng)的DNS緩存、讀取本地的Host文件和向本地DNS服務(wù)器進(jìn)行查詢等。對(duì)于向本地DNS服務(wù)器進(jìn)行查詢,如果要查詢的域名包含在本地配置區(qū)域資源中,則返回解析結(jié)果給客戶機(jī),完成域名解析(此解析具有權(quán)威性);如果要查詢的域名不由本地DNS服務(wù)器區(qū)域解析,但該服務(wù)器已緩存了此網(wǎng)址映射關(guān)系,則調(diào)用這個(gè)IP地址映射,完成域名解析(此解析不具有權(quán)威性)。如果本地域名服務(wù)器并未緩存該網(wǎng)址映射關(guān)系,那么將根據(jù)其設(shè)置發(fā)起遞歸查詢或者迭代查詢;

2). 瀏覽器獲得域名對(duì)應(yīng)的IP地址以后,瀏覽器向服務(wù)器請(qǐng)求建立鏈接,發(fā)起三次握手;

3). TCP/IP鏈接建立起來后,瀏覽器向服務(wù)器發(fā)送HTTP請(qǐng)求;

4). 服務(wù)器接收到這個(gè)請(qǐng)求,并根據(jù)路徑參數(shù)映射到特定的請(qǐng)求處理器進(jìn)行處理,并將處理結(jié)果及相應(yīng)的視圖返回給瀏覽器;

5). 瀏覽器解析并渲染視圖,若遇到對(duì)js文件、css文件及圖片等靜態(tài)資源的引用,則重復(fù)上述步驟并向服務(wù)器請(qǐng)求這些資源;

6). 瀏覽器根據(jù)其請(qǐng)求到的資源、數(shù)據(jù)渲染頁面,最終向用戶呈現(xiàn)一個(gè)完整的頁面。

?

====講一講TCP的三次握手(重點(diǎn)常問)?

在網(wǎng)絡(luò)數(shù)據(jù)傳輸中,傳輸層協(xié)議TCP是要建立連接的可靠傳輸,TCP建立連接的過程,我們稱為三次握手。

三次握手


1. 第一次握手:Client將SYN置1,隨機(jī)產(chǎn)生一個(gè)初始序列號(hào)seq發(fā)送給Server,進(jìn)入SYN_SENT狀態(tài);

2. 第二次握手:Server收到Client的SYN=1之后,知道客戶端請(qǐng)求建立連接,將自己的SYN置1,ACK置1,產(chǎn)生一個(gè)acknowledge number=sequence number+1,并隨機(jī)產(chǎn)生一個(gè)自己的初始序列號(hào),發(fā)送給客戶端;進(jìn)入SYN_RCVD狀態(tài);

3. 第三次握手:客戶端檢查acknowledge number是否為序列號(hào)+1,ACK是否為1,檢查正確之后將自己的ACK置為1,產(chǎn)生一個(gè)acknowledge number=服務(wù)器發(fā)的序列號(hào)+1,發(fā)送給服務(wù)器;進(jìn)入ESTABLISHED狀態(tài);服務(wù)器檢查ACK為1和acknowledge number為序列號(hào)+1之后,也進(jìn)入ESTABLISHED狀態(tài);完成三次握手,連接建立。

簡單來說就是:

1). 客戶端向服務(wù)端發(fā)送SYN

2). 服務(wù)端返回SYN,ACK

3). 客戶端發(fā)送ACK

?

====建立連接可以兩次握手嗎?為什么?

不可以。

因?yàn)榭赡軙?huì)出現(xiàn)已失效的連接請(qǐng)求報(bào)文段又傳到了服務(wù)器端。 > client 發(fā)出的第一個(gè)連接請(qǐng)求報(bào)文段并沒有丟失,而是在某個(gè)網(wǎng)絡(luò)結(jié)點(diǎn)長時(shí)間的滯留了,以致延誤到連接釋放以后的某個(gè)時(shí)間才到達(dá)server。本來這是一個(gè)早已失效的報(bào)文段。但 server 收到此失效的連接請(qǐng)求報(bào)文段后,就誤認(rèn)為是 client 再次發(fā)出的一個(gè)新的連接請(qǐng)求。于是就向 client 發(fā)出確認(rèn)報(bào)文段,同意建立連接。假設(shè)

不采用 “三次握手”,那么只要 server 發(fā)出確認(rèn),新的連接就建立了。由于現(xiàn)在 client 并沒有發(fā)出建立連接的請(qǐng)求,因此不會(huì)理睬 server 的確認(rèn),也不會(huì)向 server 發(fā)送數(shù)據(jù)。但 server 卻以為新的運(yùn)輸連接已經(jīng)建立,并一直等待 client 發(fā)來數(shù)據(jù)。這樣,server 的很多資源就白白浪費(fèi)掉了。采用 “三次握手” 的辦法可以防止上述現(xiàn)象發(fā)生。例如剛才那種情況,client 不會(huì)向 server 的確認(rèn)發(fā)出確認(rèn)。server 由于收不到確認(rèn),就知道 client 并沒有要求建立連接。而且,兩次握手無法保證Client正確接收第二次握手的報(bào)文(Server無法確認(rèn)Client是否收到),也無法保證Client和Server之間成功互換初始序列號(hào)。

?

====可以采用四次握手嗎?為什么?

這個(gè)肯定可以。三次握手都可以保證連接成功了,何況是四次,但是會(huì)降低傳輸?shù)男省?/p>

?

====第三次握手中,如果客戶端的ACK未送達(dá)服務(wù)器,會(huì)怎樣?

Server端:由于Server沒有收到ACK確認(rèn),因此會(huì)每隔 3秒 重發(fā)之前的SYN+ACK(默認(rèn)重發(fā)五次,之后自動(dòng)關(guān)閉連接進(jìn)入CLOSED狀態(tài)),Client收到后會(huì)重新傳ACK給Server。

Client端,會(huì)出現(xiàn)兩種情況:

1). 在Server進(jìn)行超時(shí)重發(fā)的過程中,如果Client向服務(wù)器發(fā)送數(shù)據(jù),數(shù)據(jù)頭部的ACK是為1的,所以服務(wù)器收到數(shù)據(jù)之后會(huì)讀取 ACK number,進(jìn)入 establish 狀態(tài)

2). 在Server進(jìn)入CLOSED狀態(tài)之后,如果Client向服務(wù)器發(fā)送數(shù)據(jù),服務(wù)器會(huì)以RST包應(yīng)答。

?

==== TCP三次握手中如果已經(jīng)建立了連接,但客戶端出現(xiàn)了故障怎么辦?

服務(wù)器每收到一次客戶端的請(qǐng)求后都會(huì)重新復(fù)位一個(gè)計(jì)時(shí)器,時(shí)間通常是設(shè)置為2小時(shí),若兩小時(shí)還沒有收到客戶端的任何數(shù)據(jù),服務(wù)器就會(huì)發(fā)送一個(gè)探測(cè)報(bào)文段,以后每隔75秒鐘發(fā)送一次。若一連發(fā)送10個(gè)探測(cè)報(bào)文仍然沒反應(yīng),服務(wù)器就認(rèn)為客戶端出了故障,接著就關(guān)閉連接。

?

====TCP三次握手只能初始序列號(hào)是什么?

TCP連接的一方A,隨機(jī)選擇一個(gè)32位的序列號(hào)(Sequence Number)作為發(fā)送數(shù)據(jù)的初始序列號(hào)(Initial Sequence Number,ISN),比如為1000,以該序列號(hào)為原點(diǎn),對(duì)要傳送的數(shù)據(jù)進(jìn)行編號(hào):1001、1002...三次握手時(shí),把這個(gè)初始序列號(hào)傳送給另一方B,以便在傳輸數(shù)據(jù)時(shí),B可以確認(rèn)什么樣的數(shù)據(jù)編號(hào)是合法的;同時(shí)在進(jìn)行數(shù)據(jù)傳輸時(shí),A還可以確認(rèn)B收到的每一個(gè)字節(jié),如果A收到了B的確認(rèn)編號(hào)(acknowledge number)是2001,就說明編號(hào)為1001-2000的數(shù)據(jù)已經(jīng)被B成功接受。

更多面試題請(qǐng)看評(píng)論區(qū)或我的主頁

鎖屏面試題百日百刷-面試必問三次握手的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
柳河县| 东港市| 临泉县| 乌恰县| 灵山县| 荆门市| 丹凤县| 石家庄市| 富宁县| 襄城县| 阳新县| 百色市| 通化市| 平阳县| 巴彦县| 项城市| 谷城县| 涞源县| 西安市| 开阳县| 丰城市| 杂多县| 清丰县| 平顶山市| 会理县| 浠水县| 安乡县| 蛟河市| 上犹县| 宜昌市| 静安区| 和龙市| 甘泉县| 定远县| 湘阴县| 剑阁县| 天等县| 涞水县| 黑龙江省| 遂平县| 两当县|