摘要:為什么狀態(tài)需要經(jīng)過(guò)最大報(bào)文段生存時(shí)間才能返回到狀態(tài)雖然按道理,四個(gè)報(bào)文都發(fā)送完畢,我們可以直接進(jìn)入狀態(tài)了,但是我們必須假象網(wǎng)絡(luò)是不可靠的,有可以最后一個(gè)丟失。所以狀態(tài)就是用來(lái)重發(fā)可能丟失的報(bào)文。
1、TCP的三次握手和四次揮手 1.1 三次握手:
客戶端請(qǐng)求 -> 服務(wù)器響應(yīng) -> 客戶端確認(rèn)收到響應(yīng),建立連接(保證網(wǎng)絡(luò)正常)
1.2 四次揮手客戶端請(qǐng)求 -> 服務(wù)器響應(yīng)該請(qǐng)求 -> 服務(wù)器確認(rèn)數(shù)據(jù)傳送完畢, 發(fā)送關(guān)閉連接的響應(yīng) -> 客戶端發(fā)送響應(yīng),在2MSL內(nèi)未收到回復(fù)則視為服務(wù)器端已收到該響應(yīng)并關(guān)閉連接接口,客戶端關(guān)閉連接。
1.3 為什么TIME_WAIT狀態(tài)需要經(jīng)過(guò)2MSL(最大報(bào)文段生存時(shí)間)才能返回到CLOSE狀態(tài)?雖然按道理,四個(gè)報(bào)文都發(fā)送完畢,我們可以直接進(jìn)入CLOSE狀態(tài)了,但是我們必須假象網(wǎng)絡(luò)是不可靠的,有可以最后一個(gè)ACK丟失。所以TIME_WAIT狀態(tài)就是用來(lái)重發(fā)可能丟失的ACK報(bào)文。
2、TCP和UDP的區(qū)別、比較UDP | TCP | |
---|---|---|
是否連接 | 無(wú)連接 | 面向連接 |
是否可靠 | 不可靠傳輸,不使用流量控制和擁塞控制 | 可靠傳輸,使用流量控制和擁塞控制 |
連接對(duì)象個(gè)數(shù) | 支持一對(duì)一,一對(duì)多,多對(duì)一和多對(duì)多交互通信 | 只能是一對(duì)一通信 |
傳輸方式 | 面向報(bào)文 | 面向字節(jié)流 |
首部開(kāi)銷 | 首部開(kāi)銷小,僅8字節(jié) | 首部最小20字節(jié),最大60字節(jié) |
適用場(chǎng)景 | 適用于實(shí)時(shí)應(yīng)用(IP電話、視頻會(huì)議、直播等) | 適用于要求可靠傳輸?shù)膽?yīng)用,例如文件傳輸 |
鏈表反轉(zhuǎn)有兩種方法:
就地反轉(zhuǎn)法
//就地反轉(zhuǎn)法 interface ListNode { value: string; next: ListNode; } function reverseList1(head:ListNode) { if (head == null) return head; let dummy = null; dummy.next = head; let prev = dummy.next; let pCur = prev.next; while (pCur != null) { prev.next = pCur.next; pCur.next = dummy.next; dummy.next = pCur; pCur = prev.next; } return dummy.next; }
頭節(jié)點(diǎn)插入法
interface ListNode { value: string; next: ListNode; } function reverseList2(head: ListNode) { let dummy = null; let pCur = head; while (pCur != null) { ListNode pNex = pCur.next; pCur.next = dummy.next; dummy.next = pCur; pCur = pNex; } return dummy.next; }
參考連接
TCP三次握手和四次揮手過(guò)程
TCP和UDP比較
單鏈表反轉(zhuǎn)總結(jié)篇
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/109410.html
摘要:某個(gè)請(qǐng)求任務(wù)耗時(shí)嚴(yán)重,不會(huì)影響到其它連接的正常執(zhí)行如何實(shí)現(xiàn)長(zhǎng)連接 1、sleep函數(shù)該如何實(shí)現(xiàn)的 sleep函數(shù),將程序執(zhí)行掛起一段時(shí)間,阻塞程序的運(yùn)行 ES6方案: function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } async function test() { con...
摘要:這是一次失敗的面經(jīng)但是吃一塹才能長(zhǎng)一智不是嗎字節(jié)跳動(dòng)校招面經(jīng)前端開(kāi)發(fā)崗一介紹以及項(xiàng)目經(jīng)歷吧啦吧啦此處省略字面試官會(huì)從項(xiàng)目經(jīng)歷入手,考察項(xiàng)目中遇到的難題,以及解決方法,強(qiáng)調(diào)個(gè)人的努力以及在解決過(guò)程中扮演的角色是主導(dǎo)還是參與。 這是一次失敗的面經(jīng)……但是吃一塹才能長(zhǎng)一智不是嗎? 字節(jié)跳動(dòng)2019校招面經(jīng) - 前端開(kāi)發(fā)崗(一) 1. 介紹以及項(xiàng)目經(jīng)歷 吧啦吧啦……此處省略10000字 面試官...
摘要:春招前端實(shí)習(xí)面試記錄從就開(kāi)始漸漸的進(jìn)行復(fù)習(xí),月末開(kāi)始面試,到現(xiàn)在四月中旬基本宣告結(jié)束。上海愛(ài)樂(lè)奇一面盒模型除之外的面向?qū)ο笳Z(yǔ)言繼承因?yàn)槭且曨l面試,只記得這么多,只感覺(jué)考察的面很廣,前端后端移動(dòng)端都問(wèn)了,某方面也有深度。 春招前端實(shí)習(xí)面試記錄(2019.3 ~ 2019.5) 從2019.1就開(kāi)始漸漸的進(jìn)行復(fù)習(xí),2月末開(kāi)始面試,到現(xiàn)在四月中旬基本宣告結(jié)束。在3月和4月經(jīng)歷了無(wú)數(shù)次失敗,沮...
摘要:今年歲,畢業(yè)之后進(jìn)入一家小型的互聯(lián)網(wǎng)公司工作,名字就不說(shuō)了,算是熟知的,在這家公司呆了兩年,直至今年才有了跳槽的想法。在眾多大廠中,最終選擇了字節(jié)跳動(dòng)。這樣的調(diào)整,一方面對(duì)自己學(xué)習(xí)有幫助,另一方面讓自己應(yīng)對(duì)面試更從容,更順利。 ...
閱讀 2320·2021-11-10 11:35
閱讀 951·2021-09-26 09:55
閱讀 2436·2021-09-22 15:22
閱讀 2345·2021-09-22 15:17
閱讀 3754·2021-09-09 09:33
閱讀 1849·2019-08-30 11:22
閱讀 997·2019-08-30 10:57
閱讀 674·2019-08-29 16:10