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

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

鎖屏面試題百日百刷-面試必問(wèn)四次揮手

2021-07-15 23:43 作者:zjlala96  | 我要投稿

鎖屏面試題百日百刷,每個(gè)工作日?qǐng)?jiān)持更新面試題。接下來(lái)的是今日的面試題:

====講一講TCP中的四次揮手?

?


1). 第一次揮手:Client將FIN置為1,發(fā)送一個(gè)序列號(hào)seq給Server;進(jìn)入FIN_WAIT_1狀態(tài);

2). 第二次揮手:Server收到FIN之后,發(fā)送一個(gè)ACK=1,acknowledge number=收到的序列號(hào)+1;進(jìn)入CLOSE_WAIT狀態(tài)。此時(shí)客戶端已經(jīng)沒(méi)有要發(fā)送的數(shù)據(jù)了,但仍可以接受服務(wù)器發(fā)來(lái)的數(shù)據(jù)。

3). 第三次揮手:Server將FIN置1,發(fā)送一個(gè)序列號(hào)給Client;進(jìn)入LAST_ACK狀態(tài);

4). 第四次揮手:Client收到服務(wù)器的FIN后,進(jìn)入TIME_WAIT狀態(tài);接著將ACK置1,發(fā)送一個(gè)acknowledge number=序列號(hào)+1給服務(wù)器;服務(wù)器收到后,確認(rèn)acknowledge number后,變?yōu)镃LOSED狀態(tài),不再向客戶端發(fā)送數(shù)據(jù)??蛻舳说却?*MSL(報(bào)文段最長(zhǎng)壽命)時(shí)間后,也進(jìn)入CLOSED狀態(tài)。完成四次揮手。

?

====TCP四次揮手中為什么不能把服務(wù)器發(fā)送的ACK和FIN合并起來(lái),變成三次揮手(CLOSE_WAIT狀態(tài)意義是什么)?

因?yàn)榉?wù)器收到客戶端斷開連接的請(qǐng)求時(shí),可能還有一些數(shù)據(jù)沒(méi)有發(fā)完,這時(shí)先回復(fù)ACK,表示接收到了斷開連接的請(qǐng)求。等到數(shù)據(jù)發(fā)完之后再發(fā)FIN,斷開服務(wù)器到客戶端的數(shù)據(jù)傳送。

?

====TCP四次揮手中如果第二次揮手時(shí)服務(wù)器的ACK沒(méi)有送達(dá)客戶端,會(huì)怎樣?

客戶端沒(méi)有收到ACK確認(rèn),會(huì)重新發(fā)送FIN請(qǐng)求。

?

====客戶端TIME_WAIT狀態(tài)的意義是什么?

第四次揮手時(shí),客戶端發(fā)送給服務(wù)器的ACK有可能丟失,TIME_WAIT狀態(tài)就是用來(lái)重發(fā)可能丟失的ACK報(bào)文。如果Server沒(méi)有收到ACK,就會(huì)重發(fā)FIN,如果Client在2*MSL的時(shí)間內(nèi)收到了FIN,就會(huì)重新發(fā)送ACK并再次等待2MSL,防止Server沒(méi)有收到ACK而不斷重發(fā)FIN。 MSL(Maximum?Segment Lifetime),指一個(gè)片段在網(wǎng)絡(luò)中最大的存活時(shí)間,2MSL就是一個(gè)發(fā)送和一個(gè)回復(fù)所需的最大時(shí)間。如果直到2MSL,Client都沒(méi)有再次收到FIN,那么Client推斷ACK已經(jīng)被成功接收,則結(jié)束TCP連接。

?

====什么是Socket?

網(wǎng)絡(luò)上的兩個(gè)程序通過(guò)一個(gè)雙向的通訊連接實(shí)現(xiàn)數(shù)據(jù)的交換,這個(gè)雙向鏈路的一端稱為一個(gè)

Socket。Socket通常用來(lái)實(shí)現(xiàn)客戶方和服務(wù)方的連接。Socket是TCP/IP協(xié)議的一個(gè)十分流行的編程界面,一個(gè)Socket由一個(gè)IP地址和一個(gè)端口號(hào)唯一確定。

但是,Socket所支持的協(xié)議種類也不光TCP/IP、UDP,因此兩者之間是沒(méi)有必然聯(lián)系的。在Java環(huán)境下,Socket編程主要是指基于TCP/IP協(xié)議的網(wǎng)絡(luò)編程。

socket連接就是所謂的長(zhǎng)連接,客戶端和服務(wù)器需要互相連接,理論上客戶端和服務(wù)器端一旦建立起連接將不會(huì)主動(dòng)斷掉的,但是有時(shí)候網(wǎng)絡(luò)波動(dòng)還是有可能的

Socket偏向于底層。一般很少直接使用Socket來(lái)編程,框架底層使用Socket比較多。

?

====Socket通訊的過(guò)程?

1)基于TCP:服務(wù)器端先初始化Socket,然后與端口綁定(bind),對(duì)端口進(jìn)行監(jiān)聽(listen),調(diào)用accept阻塞,等待客戶端連接。在這時(shí)如果有個(gè)客戶端初始化一個(gè)Socket,然后連接服務(wù)器(connect),如果連接成功,這時(shí)客戶端與服務(wù)器端的連接就建立了??蛻舳税l(fā)送數(shù)據(jù)請(qǐng)求,服務(wù)器端接收請(qǐng)求并處理請(qǐng)求,然后把回應(yīng)數(shù)據(jù)發(fā)送給客戶端,客戶端讀取數(shù)據(jù),最后關(guān)閉連接,一次交互結(jié)束。

2)基于UDP:UDP 協(xié)議是用戶數(shù)據(jù)報(bào)協(xié)議的簡(jiǎn)稱,也用于網(wǎng)絡(luò)數(shù)據(jù)的傳輸。雖然 UDP 協(xié)議是一種不太可靠的協(xié)議,但有時(shí)在需要較快地接收數(shù)據(jù)并且可以忍受較小錯(cuò)誤的情況下,UDP 就會(huì)表現(xiàn)出更大的優(yōu)勢(shì)。我客戶端只需要發(fā)送,服務(wù)端能不能接收的到我不管

?

====java中基于TCP協(xié)議的socket代碼?

1)服務(wù)端


2)客戶端


?

====java中基于UDP協(xié)議的socket代碼?

1)服務(wù)端


2)客戶端


更多面試題或?qū)W習(xí)資源可查看我主頁(yè)或評(píng)論獲取


鎖屏面試題百日百刷-面試必問(wèn)四次揮手的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
永兴县| 江安县| 新竹市| 武平县| 日喀则市| 青川县| 平舆县| 枣庄市| 会东县| 大埔区| 南充市| 宁津县| 桦川县| 松阳县| 平和县| 文登市| 二连浩特市| 江华| 乐山市| 阳春市| 海阳市| 德兴市| 望江县| 蒙城县| 宁海县| 靖安县| 克山县| 河津市| 崇左市| 吴桥县| 腾冲县| 固安县| 辛集市| 鹤峰县| 新竹县| 黑龙江省| 阿坝| 双城市| 运城市| 军事| 泰安市|