UDP與TCP

一:前言

網絡傳輸也是前端開發優化的一部分,尤爲是傳輸圖片視頻等資源佔用帶寬較大。當請求數量比較大,爲了保證併發性和用戶體驗,瞭解網絡傳輸原理,進行網絡優化成爲必不可少的步驟。前段時間去今日頭條面試,考到了這樣一道題:"UDP和TCP的區別?什麼是擁塞控制?" 有不少人學過相關內容,可是未必能考慮的比較充分。因而回去以後翻閱書籍《計算機網絡》(第六版)謝希仁編著,將相關內容總結摘錄。前端

二:主要內容

1.運輸層

運輸層向它上面的應用層提供通訊服務。IP協議還停留在主機中的網絡層,沒有交付主機中的應用程序。通訊的真正端點並非主機而是主機中的進程,也就是說端到端通訊是應用進程之間的通訊。
運輸層有一個很重要的功能——複用和分用。複用是指在發送方不一樣的應用進程均可以使用同一個運輸層協議傳遞數據(固然要加上適當的首部)。分用是指接收方的運輸層在剝去報文首部後可以將這些數據正確交付目的應用進程。
運輸層的倆個主要協議:
(1)用戶數據報協議UDP
(2)傳輸控制協議TCP面試

2.UDP特色

(1)UDP是無鏈接的
發送數據以前不須要創建鏈接,發送數據結束以後也沒有釋放。
(2)UDP使用盡最大努力交付
不保證可靠交付,主機不須要維護複雜的鏈接狀態表。
(3)UDP是面向報文的
發送方對應用程序交下來的報文,在添加首部以後就向下交付IP層。UDP對應用層交下來的報文既不合並也不拆分,而是保留這些報文的邊界。也就是說應用層交付多長的報文,UDP就照樣發送,即一次發送一個報文。
(4)UDP沒有擁塞控制
這樣網絡出現擁塞不會使源主機的發送速率下降。容許網絡在擁塞時丟失一些數據的應用是能夠的。
(5)UDP支持一對一,一對多,多對一,多對多的交互通訊
(6)UDP的首部開銷小
只有8個字節,比TCP的20個字節的首部要短。
圖片描述算法

3.TCP特色

(1)TCP是面向鏈接的運輸層協議
應用程序在使用TCP協議以前必須先創建TCP鏈接。數據傳輸完以後,必須釋放已經創建的鏈接。
(2)每一條TCP鏈接只能有兩個端點,每一條TCP鏈接只能是點對點的(一對一)
(3)TCP提供可靠交付的服務
經過TCP鏈接傳送的數據,無差錯、不丟失、不重複、而且按序到達。
(4)TCP提供全雙工通訊
TCP容許通訊雙方的應用進程在任什麼時候候都能發送數據。TCP的兩端都有發送緩存和接收緩存。
(5)面向字節流
TCP中的「流」是指流入到進程或者從進程流出的字節序列。「面向字節流」的含義是:雖然應用程序和TCP的交互是一次一個數據塊(大小不等),可是TCP把應用程序交下來的數據當作僅僅是一連串的無結構的字節流。
TCP並不關心應用程序一次把多長的報文發送到TCP的緩存中,而是根據對方給出的窗口值和當前網絡的擁塞狀況來決定一條報文段應包含多少字節(UDP發送的報文程度應該是應用進程給出的)。緩存

4.擁塞控制

(1)擁塞控制的通常原理
在計算機網絡中的鏈路容量(即帶寬)、交換結點中的緩存和處理機等,都是網絡的資源。
在某段時間,若對網絡中某一資源的需求超過了該資源所能提供的可用部分,網絡的性能就要變壞。這種狀況就叫擁塞。
若網絡中許多資源同時呈現供應不足,網絡的性能就要明顯變壞,整個網絡的吞吐量將隨輸入負荷的增大而降低。
(2)擁塞控制
所謂擁塞控制,就是防止過多的數據注入到網絡中,這樣可使網絡中的路由器或鏈路不至於過載。
擁塞控制都有一個前提就是:網絡可以承受現有的網絡負荷。擁塞控制是一個全局過程。
圖片描述
(3)擁塞控制方法
①慢開始和避免擁塞
慢開始算法思路:由小到大逐漸增大擁塞窗口值cwnd。每通過一個傳輸輪次,擁塞窗口值cwnd就加倍。
避免擁塞算法思路:讓擁塞窗口值cwnd緩慢增大,每通過一個傳輸輪次就加1而不是加倍。
②快重傳和快恢復網絡

三:後記

等到工做了遇到問題的時候才發現不少東西均可以從大學裏學過的一些書籍中獲得解決方案,只是當時簡單學習了理論知識並無和實際應用聯繫起來。全部建議在讀大學的同窗仍是要注重理論基礎知識學習,聯繫實際。爲之後的應用打下基礎。併發

相關文章
相關標籤/搜索