国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

面試計算機網(wǎng)絡(luò)框架八股文十問十答第七期

這篇具有很好參考價值的文章主要介紹了面試計算機網(wǎng)絡(luò)框架八股文十問十答第七期。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

面試計算機網(wǎng)絡(luò)框架八股文十問十答第七期

作者:程序員小白條,個人博客

相信看了本文后,對你的面試是有一定幫助的!關(guān)注專欄后就能收到持續(xù)更新!

?點贊?收藏?不迷路!?文章來源地址http://www.zghlxwxcb.cn/news/detail-826002.html

1)UDP協(xié)議為什么不可靠?

UDP(用戶數(shù)據(jù)報協(xié)議)是一種無連接的、不可靠的傳輸協(xié)議。它的不可靠性主要體現(xiàn)在以下幾個方面:

  • 無連接性: UDP 不需要在發(fā)送數(shù)據(jù)之前建立連接,也不維護連接狀態(tài),因此不會進行握手和維持連接的開銷。這使得 UDP 更加輕量級,但也使得它無法保證數(shù)據(jù)的可靠傳輸。
  • 不保證數(shù)據(jù)的到達順序: 由于 UDP 不會對數(shù)據(jù)包進行排序和重組,因此發(fā)送的數(shù)據(jù)包的到達順序不一定與發(fā)送順序一致。在網(wǎng)絡(luò)中,數(shù)據(jù)包可能會因為不同的路由和網(wǎng)絡(luò)擁塞情況而以不同的順序到達目的地。
  • 不提供重傳機制: UDP 協(xié)議本身不提供重傳機制。如果一個數(shù)據(jù)包在傳輸過程中丟失,UDP 協(xié)議不會負責重新發(fā)送該數(shù)據(jù)包,而是由應(yīng)用層自行處理丟失的情況。

因此,盡管 UDP 在一些對實時性要求高、數(shù)據(jù)丟失對應(yīng)用影響不大的場景下表現(xiàn)出色,但在對數(shù)據(jù)完整性和可靠性要求較高的場景下,通常會選擇使用 TCP 協(xié)議。

2)TCP的重傳機制

TCP(傳輸控制協(xié)議)是一種面向連接的、可靠的傳輸協(xié)議。TCP 通過以下機制來保證數(shù)據(jù)的可靠傳輸:

  • 序列號和確認應(yīng)答: TCP 在發(fā)送的數(shù)據(jù)包中會包含序列號,接收方收到數(shù)據(jù)后會發(fā)送確認應(yīng)答,告知發(fā)送方已經(jīng)收到了哪些數(shù)據(jù)。如果發(fā)送方在合理的超時時間內(nèi)沒有收到確認應(yīng)答,就會認為數(shù)據(jù)丟失,進行重傳。
  • 超時重傳: 如果發(fā)送方在一定時間內(nèi)沒有收到確認應(yīng)答,就會重新發(fā)送相同的數(shù)據(jù)包。TCP 會動態(tài)調(diào)整重傳的超時時間,以適應(yīng)網(wǎng)絡(luò)的變化。
  • 快速重傳: 如果發(fā)送方收到了對同一數(shù)據(jù)包的三個重復的確認應(yīng)答,就會認為接收方已經(jīng)丟失了后續(xù)的數(shù)據(jù),立即進行快速重傳,而不必等待超時時間到期。

3)TCP的擁塞控制機制

TCP 的擁塞控制是為了避免過多的數(shù)據(jù)注入到網(wǎng)絡(luò)中,導致網(wǎng)絡(luò)擁塞,從而影響網(wǎng)絡(luò)性能。TCP 的擁塞控制主要包括以下幾個機制:

  • 慢啟動: 發(fā)送方在連接剛建立時,會以指數(shù)增長的速率增加發(fā)送窗口大小,以快速填滿網(wǎng)絡(luò)的帶寬。
  • 擁塞避免: 一旦發(fā)送方開始遇到丟包,就會進入擁塞避免階段,發(fā)送窗口大小會線性增長,而不是指數(shù)增長,以降低發(fā)送速率。
  • 快速重傳和快速恢復: 當發(fā)送方收到對同一數(shù)據(jù)包的三個重復的確認應(yīng)答時,會觸發(fā)快速重傳和快速恢復機制,以快速調(diào)整發(fā)送窗口大小,避免繼續(xù)注入更多的數(shù)據(jù)到網(wǎng)絡(luò)中。

通過這些擁塞控制機制,TCP 能夠在一定程度上適應(yīng)網(wǎng)絡(luò)的擁塞情況,保證網(wǎng)絡(luò)的穩(wěn)定性和公平性。

4)TCP的流量控制機制

TCP 的流量控制是為了防止發(fā)送方發(fā)送過多的數(shù)據(jù),導致接收方無法處理。流量控制主要通過滑動窗口(Sliding Window)機制來實現(xiàn):

  • 接收窗口(rwnd): 接收方在通信的過程中會通知發(fā)送方自己當前的接收窗口大小,即能夠接收的數(shù)據(jù)量。發(fā)送方根據(jù)這個信息來控制發(fā)送的數(shù)據(jù)量,保證不會超過接收方的處理能力。
  • 滑動窗口: 發(fā)送方維護一個發(fā)送窗口,表示可以發(fā)送但還未收到確認的數(shù)據(jù)段的范圍?;瑒哟翱诘拇笮∈艿浇邮辗酵ㄖ慕邮沾翱诖笮『途W(wǎng)絡(luò)的實際情況的影響。

通過動態(tài)調(diào)整滑動窗口的大小,TCP 實現(xiàn)了流量控制,確保在通信過程中不會因為發(fā)送方速度過快而導致接收方無法處理。

5)TCP的可靠傳輸機制

TCP 的可靠傳輸機制主要包括以下幾個方面:

  • 序列號和確認應(yīng)答: 發(fā)送方會為每個數(shù)據(jù)包分配一個序列號,接收方通過確認應(yīng)答來告知發(fā)送方已經(jīng)正確接收到數(shù)據(jù)。如果發(fā)送方在一定時間內(nèi)未收到確認應(yīng)答,會進行重傳。
  • 超時重傳: 如果發(fā)送方在合理的超時時間內(nèi)未收到確認應(yīng)答,會認為數(shù)據(jù)包丟失,進行超時重傳。
  • 快速重傳和快速恢復: 當發(fā)送方收到對同一數(shù)據(jù)包的三個重復的確認應(yīng)答時,會觸發(fā)快速重傳和快速恢復機制,以快速調(diào)整發(fā)送窗口大小。
  • 選擇性重傳: 發(fā)送方能夠選擇性地重傳丟失的數(shù)據(jù)包,而不是重新傳輸所有的數(shù)據(jù)。

這些機制使得 TCP 在不可靠的網(wǎng)絡(luò)環(huán)境中能夠保證數(shù)據(jù)的可靠傳輸。

6)TCP的三次握手和四次揮手

TCP 的連接建立和斷開分別通過三次握手和四次揮手來完成:

三次握手(Connection Establishment):

  1. 客戶端發(fā)送 SYN: 客戶端發(fā)送一個帶有 SYN(同步)標志的數(shù)據(jù)包,表示請求建立連接。
  2. 服務(wù)端發(fā)送 SYN + ACK: 服務(wù)端收到客戶端的請求后,回復一個帶有 SYN 和 ACK(確認)標志的數(shù)據(jù)包,表示同意建立連接。
  3. 客戶端發(fā)送 ACK: 客戶端收到服務(wù)端的確認后,發(fā)送一個帶有 ACK 標志的數(shù)據(jù)包,表示連接建立完成。

四次揮手(Connection Termination):

  1. 客戶端發(fā)送 FIN: 客戶端發(fā)送一個帶有 FIN(結(jié)束)標志的數(shù)據(jù)包,表示要關(guān)閉連接。
  2. 服務(wù)端發(fā)送 ACK: 服務(wù)端收到客戶端的關(guān)閉請求后,發(fā)送一個帶有 ACK 標志的數(shù)據(jù)包,表示接收到關(guān)閉請求。
  3. 服務(wù)端發(fā)送 FIN: 服務(wù)端發(fā)送一個帶有 FIN 標志的數(shù)據(jù)包,表示服務(wù)端也準備關(guān)閉連接。
  4. 客戶端發(fā)送 ACK: 客戶端收到服務(wù)端的關(guān)閉請求后,發(fā)送一個帶有 ACK 標志的數(shù)據(jù)包,表示確認關(guān)閉。此時連接徹底關(guān)閉。

這樣的握手和揮手機制確保了雙方在建立和關(guān)閉連接時的可靠性和同步性。

7)TCP粘包是怎么回事,如何處理?

TCP粘包是指發(fā)送方發(fā)送的若干小數(shù)據(jù)包到達接收方時,接收方可能會將它們合并成一個大的數(shù)據(jù)包,從而導致接收方處理時難以區(qū)分原始的數(shù)據(jù)邊界。這可能會引發(fā)一些問題,比如數(shù)據(jù)解析錯誤或應(yīng)用層處理混亂。

原因:

  1. 緩沖機制: 操作系統(tǒng)或中間網(wǎng)絡(luò)設(shè)備的緩沖機制可能會導致多個小數(shù)據(jù)包在傳輸過程中被合并成一個大的數(shù)據(jù)包。
  2. 發(fā)送速率: 發(fā)送方連續(xù)發(fā)送數(shù)據(jù)包的速率比接收方處理的速率快,導致多個數(shù)據(jù)包在傳輸過程中組成一個大的數(shù)據(jù)包。

處理方法:

  1. 消息長度標識: 在傳輸?shù)臄?shù)據(jù)中增加消息長度的信息,接收方通過解析長度信息來拆分數(shù)據(jù)。
  2. 特殊字符標識: 在消息之間增加特殊字符標識,接收方根據(jù)特殊字符來切分數(shù)據(jù)。
  3. 定長消息: 固定長度的消息,不足長度時用空格或其他填充。
  4. 使用消息邊界標記: 在數(shù)據(jù)包的開頭或結(jié)尾添加標記表示消息的開始或結(jié)束。
  5. 應(yīng)用層協(xié)議設(shè)計: 在應(yīng)用層設(shè)計協(xié)議時,可以采用更復雜的協(xié)議規(guī)定來避免粘包問題。

8)為什么udp不會粘包?

UDP是無連接的、不可靠的協(xié)議,它對數(shù)據(jù)包的傳輸不做任何拆分或合并的處理,因此不存在TCP粘包的問題。每個UDP數(shù)據(jù)包都是獨立的,不會受到底層協(xié)議的影響而被合并,接收方能夠按照發(fā)送方發(fā)送的數(shù)據(jù)包一一接收。

UDP的簡單性和無連接性使得它不會進行復雜的緩沖和組包操作,也就不會出現(xiàn)TCP粘包的情況。然而,正因為UDP不保證可靠傳輸,應(yīng)用層需要自行處理丟包、重復和順序等問題。

9)對 WebSocket 的理解

WebSocket是一種在單個TCP連接上進行全雙工通信的協(xié)議,它允許客戶端和服務(wù)器之間進行實時、雙向的數(shù)據(jù)傳輸。相比于傳統(tǒng)的HTTP協(xié)議,WebSocket的優(yōu)勢在于降低了通信的延遲,提高了效率。

特點和優(yōu)勢:

  • 全雙工通信: 可以同時在同一個連接上進行雙向通信,服務(wù)器可以向客戶端推送數(shù)據(jù),而不需要等待客戶端的請求。
  • 低延遲: 由于建立一次連接后可以持久存在,避免了HTTP協(xié)議中頻繁的連接建立和斷開,降低了通信的延遲。
  • 輕量級: WebSocket協(xié)議的頭部較小,通信時的數(shù)據(jù)幀相對較小,減少了網(wǎng)絡(luò)傳輸?shù)拈_銷。
  • 跨域通信: 支持跨域通信,通過一定的握手過程建立連接,使得客戶端和服務(wù)器可以跨域進行實時通信。

10)即時通訊的實現(xiàn):短輪詢、長輪詢、SSE 和 WebSocket 間的區(qū)別?

即時通訊的實現(xiàn)方式有多種,其中常見的包括短輪詢(Short Polling)、長輪詢(Long Polling)、SSE(Server-Sent Events)和WebSocket。

  1. 短輪詢(Short Polling):
    • 客戶端定期發(fā)送HTTP請求詢問是否有新消息。
    • 服務(wù)器響應(yīng)時,返回當前可用的消息。
    • 缺點:頻繁的HTTP請求可能造成不必要的開銷,延遲高。
  2. 長輪詢(Long Polling):
    • 客戶端發(fā)送HTTP請求到服務(wù)器,服務(wù)器保持連接打開,直到有新消息才響應(yīng)給客戶端。
    • 客戶端收到響應(yīng)后立即再次發(fā)起請求。
    • 缺點:仍然存在較高的延遲,但相較于短輪詢減少了請求的頻率。
  3. SSE(Server-Sent Events):
    • 使用單個HTTP連接,服務(wù)器可以主動推送數(shù)據(jù)給客戶端。
    • 基于事件流的機制,通過EventSource對象在客戶端接收服務(wù)器的推送。
    • 缺點:僅支持單向通信,不適合需要雙向通信的場景。
  4. WebSocket:
    • 建立在單個TCP連接上,支持全雙工通信。
    • 通過握手過程建立連接,之后可以雙向發(fā)送消息。
    • 優(yōu)點:低延遲,支持雙向通信,適用于實時性要求高的場景。

總的來說,短輪詢和長輪詢通過HTTP請求,存在較高的延遲和開銷;SSE是基于HTTP的單向通信,適用于服務(wù)器向客戶端推送數(shù)據(jù);WebSocket是全雙工通信,延遲低,適用于實時性要求高的即時通訊場景。選擇哪種方式取決于具體的需求和場景。

開源項目地址:https://gitee.com/falle22222n-leaves/vue_-book-manage-system

已 300 + Star!

?點贊?收藏?不迷路!?

到了這里,關(guān)于面試計算機網(wǎng)絡(luò)框架八股文十問十答第七期的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 一天吃透計算機網(wǎng)絡(luò)八股文

    計算機網(wǎng)絡(luò)體系大致分為三種,OSI七層模型、TCP/IP四層模型和五層模型。一般面試的時候考察比較多的是五層模型。最全面的Java面試網(wǎng)站 五層模型 :應(yīng)用層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層、物理層。 應(yīng)用層 :為應(yīng)用程序提供交互服務(wù)。在互聯(lián)網(wǎng)中的應(yīng)用層協(xié)議很多,如域

    2023年04月09日
    瀏覽(28)
  • 三天吃透計算機網(wǎng)絡(luò)八股文

    計算機網(wǎng)絡(luò)體系大致分為三種,OSI七層模型、TCP/IP四層模型和五層模型。一般面試的時候考察比較多的是五層模型。最全面的Java面試網(wǎng)站 五層模型 :應(yīng)用層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層、物理層。 應(yīng)用層 :為應(yīng)用程序提供交互服務(wù)。在互聯(lián)網(wǎng)中的應(yīng)用層協(xié)議很多,如域

    2023年04月16日
    瀏覽(25)
  • 【java八股文】之計算機網(wǎng)絡(luò)系列篇

    【java八股文】之計算機網(wǎng)絡(luò)系列篇

    TCP/IP分層(4層): 應(yīng)用層,傳輸層,網(wǎng)絡(luò)層,數(shù)據(jù)鏈路層 網(wǎng)絡(luò)的七層架構(gòu) (7層) :應(yīng)用層,表示層,會話層,傳輸層,網(wǎng)絡(luò)層,數(shù)據(jù)鏈路層,物理層 五層協(xié)議 (5層): 物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、運輸層、 應(yīng)用層 TCP/IP是面向連接的協(xié)議,發(fā)送數(shù)據(jù)前要先建立好連接

    2024年01月16日
    瀏覽(34)
  • 算法/后端計算機基礎(chǔ)課程如何學?——八股文基礎(chǔ)(數(shù)據(jù)結(jié)構(gòu)、計算機網(wǎng)絡(luò)、算法導論、操作系統(tǒng))

    UCB CS61B 數(shù)據(jù)結(jié)構(gòu) Stanford CS144 計網(wǎng) MIT 6.006 算法導論 6.S081 操作系統(tǒng) 配合國內(nèi)外名校的開源課件和lab 浙大 數(shù)據(jù)結(jié)構(gòu) 哈工大 計網(wǎng)/計組/操作系統(tǒng)/數(shù)據(jù)庫 [b站/慕課] MIT 6.824分布式系統(tǒng) 6.830/6.814:數(shù)據(jù)庫系統(tǒng) fault tolerance/心跳/選舉/日志復制都是如何實現(xiàn)的 ? 做完labs你就有答案啦

    2024年02月02日
    瀏覽(22)
  • 計算機網(wǎng)絡(luò)面試八股復習:常見的Http狀態(tài)碼

    計算機網(wǎng)絡(luò)面試八股復習:常見的Http狀態(tài)碼

    面試被問到過一次。自己最近使用Gin框架,在 Response 的時候有時候也會用到一個自定義的狀態(tài)碼。因此歸納一下這方面,供自己日后面試復習以及開發(fā)時候參考。 全名“超文本傳輸協(xié)議”(我也不懂為什么面試官問這個…) 屬于應(yīng)用層 狀態(tài)碼在記憶時候按系列來記。 信息

    2024年01月21日
    瀏覽(21)
  • 計算機網(wǎng)絡(luò)面試八股復習:常見的7/5/4層網(wǎng)絡(luò)模型、各層協(xié)議以及鍵入網(wǎng)址到顯示頁面的流程

    計算機網(wǎng)絡(luò)面試八股復習:常見的7/5/4層網(wǎng)絡(luò)模型、各層協(xié)議以及鍵入網(wǎng)址到顯示頁面的流程

    OSI七層模型 TCP/IP四層模型 五層模型 精簡部分,完整版見上圖 ARP 和 RARP ,在TCP/IP模型中屬于IP層(網(wǎng)絡(luò)層), 在OSI 模型中屬于 鏈路層。 逐層加東西。圖源-小林codding 1、輸入URL,解析URL,生成Http請求 2、逐級查看緩存(瀏覽器緩存、系統(tǒng)緩存、路由器緩存),若有則直接顯

    2024年01月22日
    瀏覽(19)
  • 【計算機網(wǎng)絡(luò)八股】計算機網(wǎng)絡(luò)(一)

    【計算機網(wǎng)絡(luò)八股】計算機網(wǎng)絡(luò)(一)

    計算機網(wǎng)絡(luò)體系可以大致分為一下三種,OSI七層模型、TCP/IP四層模型和五層模型。 OSI七層模型:大而全,但是比較復雜、而且是先有了理論模型,沒有實際應(yīng)用。 TCP/IP四層模型:是由實際應(yīng)用發(fā)展總結(jié)出來的,從實質(zhì)上講,TCP/IP只有最上面三層,最下面一層沒有什么具體內(nèi)

    2024年02月11日
    瀏覽(65)
  • 計算機網(wǎng)絡(luò)八股

    計算機網(wǎng)絡(luò)八股

    TCP是面向連接的,UDP是面向無連接的; TCP只能一對一通信,UDP支持一對一,一對多,多對一和多對多交互通信; TCP是面向字節(jié)流的,UDP是面向報文的; TCP是可靠傳輸,使用流量控制和擁塞控制;UDP是不可靠傳輸 TCP首部最小20字節(jié),最大60字節(jié);UDP首部僅8字節(jié)。 物理層:建立

    2024年03月21日
    瀏覽(25)
  • 【八股】2023秋招八股復習筆記5(計算機網(wǎng)絡(luò)-CN)

    【八股】2023秋招八股復習筆記5(計算機網(wǎng)絡(luò)-CN)

    八股目錄 HTTP 1、協(xié)議參數(shù) HTTP 是什么? HTTP 常見的狀態(tài)碼有哪些? HTTP 常見字段有哪些? GET 和 POST 有什么區(qū)別? GET 和 POST 方法都是安全和冪等的嗎? HTTP 緩存有哪些實現(xiàn)方式? 什么是強制緩存? 什么是協(xié)商緩存? 2、HTTP版本特性 HTTP/1.1 的優(yōu)點有哪些? HTTP/1.1 的缺點有哪

    2024年02月11日
    瀏覽(22)
  • 【面試題】計算機網(wǎng)絡(luò)面試實戰(zhàn)

    version:1.8【新增DNS,GET,POST請求,修改部分語言表述】 version:1.0

    2024年02月06日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包