前兩篇文章講解了tcp協議。
接下來來介紹一下udp,從udp協議的報文結構開始說起相對於tcp,udp報文結構簡單了很多:源埠、目標埠、資料報長度和奇偶校驗值和使用者資料組成。
結構簡單,少了很多tcp具有的功能,其中有:
不支援錯誤重傳;
不支援滑動視窗。
udp特點:
面向無連線;
不維護連線狀態,支援同時向多個客戶端傳輸相同的資訊;
資料報報頭只有8個位元組,額外的開銷比較小;
吞吐量只受限於資料生成率、傳輸速率以及機器效能;
盡量大努力交付,不保證可靠交付,不需要維持複雜的鏈結狀態表;
面向報文,不對應用程式提交的報文資訊進行拆分或者合併。
結論:
tcp和udp都是運輸層協議;
tcp提供可靠的通訊傳輸,udp常被用於讓網路和細節的應用交給應用層通訊傳輸;
tcp面向連線的,udp面向無連線;
tcp有三次握手連線過程,udp適合訊息的多波發布從單點向多點傳輸;
tcp具備可靠性存在三次握手和四次揮手,udp存在資料丟失可能性;
tcp利用序列號保證有序性,保證了資料報的資訊互動,udp可能無序;
tcp速度慢,udp速度快;
tcp屬於重量級是20位元組,udp屬於輕量級是8個位元組。
劍指offer 遞迴和迴圈
遞迴雖然比較簡潔,但他同時也有顯著的缺點。遞迴由於是函式呼叫自身,而函式呼叫是有時間和空間的消耗的,每一次函式呼叫都需要在記憶體棧中分配空間以儲存引數 返回位址及臨時變數,而且往棧裡壓入資料和彈出資料都需要時間。1 斐波那契數列 0,1,1,2,3,5,8,13 遞迴 缺陷 重複計算的太多 int ...
棧和佇列 劍指offer
題目 定義棧的資料結構,請在該型別中實現乙個能夠得到棧最小元素的 min函式。class solution def init self self.elem def push self,node def pop self return self.elem.pop def top self return...
《劍指offer》 遞迴和迴圈
記錄一下牛客網上,劍指 offer 分割槽的考點為 遞迴和迴圈 的題,都很簡單,共 4 題 1 斐波那契數列 2 跳台階 3 跳台階 4 矩形覆蓋 1 斐波那契數列 int fibonacci int n return b 遞迴方式 很容易想到 但是ac不了,因為遞迴次數過多,棧溢位了 int fi...