常見面試題 TCP和UDP的區別?

2022-05-16 08:28:40 字數 789 閱讀 2679

關於tcp和udp的區別,是乙個老生常談的問題了。在面試的時候很容易被問到,那麼兩者到底有什麼區別呢?首先看我從網上找的乙個圖。

而tcp呢,是乙個面向連線的服務,也就是說只有先建立連線,才能傳送資料,同樣在結束時還要釋放連線,同樣tco不提供廣播或者多播服務。那麼為什麼tcp傳輸時可靠的呢?

1.應用資料被分割成tcp認味最適合傳送的資料塊。

2.tcp給每個包進行了編號,接收方把資料報進行排序,然後講將有序資料傳送給應用層。

3.校檢和:tcp將保持他首部和資料的校檢和,這是乙個端到端的校檢和,目的是為了檢測資料在傳輸過程中的變化,如果校檢和出現了差錯,tcp將丟棄這個報文段,並不確認收到此報文段。

4.tcp的接收端會丟棄重複的資料。

5.流量控制:tcp連線的每一方都有乙個固定的大小緩衝空間,tcp的接收端只允許傳送端傳送接收端緩衝區能接納的資料,當接收方來不及處理傳送方的資料時,就能提示傳送方降低傳送速率,防止包的丟失。tcp使用的流量控制協議時可變大小的華東視窗協議。

6.擁塞控制:當網路擁塞時,減少資料的傳送

8.超時重傳:當tcp發出乙個段後,它啟動乙個定時器,等待目的端確認收到這個報文段。如果不能即使確認,就將重發這個報文段。

tcp在傳輸資料之前要還會有三次握手時來建立連線,而且在資料傳輸時,還會有確認,視窗,重傳,擁塞這些控制機制,在資料傳完之後,還會斷開連線來節約資源。這也就增加了很大的資源消耗,所以tcp一般用於遠端登陸,傳送郵件,檔案傳輸等場景。

TCP和UDP的常見面試題

問題1 為什麼連線的時候是三次握手,關閉的時候卻是四次握手?答 因為當server端收到client端的syn連線請求報文後,可以直接傳送syn ack報文。其中ack報文是用來應答的,syn報文是用來同步的。但是關閉連線時,當server端收到fin報文時,很可能並不會立即關閉socket,所以只...

TCP與UDP的區別(常見面試題)

1 tcp是面向連線的,可靠性高 udp是基於非連線的,可靠性低 2 由於tcp是連線的通訊,需要有三次握手 重新確認等連線過程,會有延時,實時性差,同時過程複雜,也使其易於攻擊 udp沒有建立連線的過程,因而實時性較強,也稍安全 3 在傳輸相同大小的資料時,tcp首部開銷20位元組 udp首部開銷...

常見面試題

1.get和post的區別 1 本質區別 get是向伺服器請求資料,post是向伺服器傳送資料。2 伺服器獲取值的方式 get方式提交的資料,伺服器端使用request.querystring獲取變數的值。post方式提交的資料,伺服器端使用request.form獲取資料。3 安全性 get安全效...