TCP UDP作用,用途以及區別

2021-10-10 16:39:51 字數 2687 閱讀 3471

一種傳輸控制協議,提供的是面向連線、可靠的位元組流服務。當客戶和伺服器彼此交換資料前,必須先在雙方之間建立乙個tcp連線,之後才能傳輸資料。tcp提供超時重發,丟棄重複資料,檢驗資料,流量控制等功能,保證資料能從一端傳到另一端。

1. 首先,tcp提供客戶與伺服器之間的連線。tcp客戶先與某個給定伺服器建立乙個連線,然後通過該連線與伺服器交換資料,最後終止該連線。

2. 其次,tcp提供了可靠性超時重傳。當tcp向另一端傳送資料時,要求對端返回乙個確認ack。如果沒有收到確認,tcp就自動重傳資料並等待更長時間。在數次重傳失敗後,tcp才放棄,如此在嘗試傳送資料上所花的時間一般為4~10分鐘(依賴於具體實現)。注意:tcp並不能保證對端一定能接收到資料,因為這是不可能做到的。如果有可能,tcp就把資料遞送給對端,否則就(通過放棄重傳並中斷連線這一手段)通知使用者。這樣來看,tcp也不能看作是100%可靠的協議,它的可靠性體現在資料的可靠遞送和故障的可靠通知。

3.tcp通過給其中每個分節關聯乙個序列號對所傳送資料進行排序如果這些分節非順序到達,接收端tcp將先根據它們的序列號進行重新排序,再把結果資料傳遞給接收應用

4.tcp提供流量控制。tcp總是告知對端在任何時刻它一次能從對端接收多少位元組的資料,即通知視窗確保不會發生緩衝區溢位

5.tcp提供rtt估算。在第二點裡面的重傳時間也會用到rtt估算的時間。rtt估算時間 = syn_recv - established(服務端)

6.tcp連線是全雙工的,兩邊可以相互通訊。

tcp一般用於檔案傳輸(ftp http 對資料準確性要求高,速度可以相對慢),傳送或接收郵件(pop imap smtp 對資料性要求高,非緊急應用),遠端登入(telnet ssh 對資料準確性有一定要求,有鏈結的概念)

一種無連線的計算機傳輸協議,受到internet 協議集支援,這個協議一般被稱為使用者資料報協議(udp,user datagram protocol)。

在internet傳輸層例有著tcp與udp兩種互為補充的主要協議,其中無連線協議就是udp,它一般除了給應用程式發傳送資料報功能並允許它們在所需的層次上架構自己的協議之外沒有做任何事情。其他事情幾乎全部都是面向連線的tcp協議做的。

udp協議為應用程式提供了一種無需建立連線就可以傳送封裝的 ip 資料報的方法。

1. 它是無連線協議,傳輸資料之前不會和源端終端建立連線。所以當它想傳輸時可以隨意的去抓取來自應用程式的資料,並盡可能的以最快速度傳送到網路上。

2. udp協議吞吐量只會受應用軟體生成資料的速率、傳輸頻寬、源端和終端主機效能的限制,不受擁擠控制演算法的調節。

3.因為udp傳輸資料不會建立連線,所以也就不需要維護各種可能出問題的狀態,如連線、收發狀態等,因此使用一台伺服器就可以同時向多個客戶端傳輸相同訊息了。

4.相對tcp協議的20個位元組資訊包而言,udp資訊包的標題短的可憐,只有8個位元組,這樣使得它的額外開銷也比tcp小很多。

5.udp協議是面向報文的。傳送方的udp在面對應用程式交下來的報文時,會在上面新增首部後就向下交付給ip層。它既不拆分,也不合併,而是保留這些報文的邊界,因此,應用程式需要選擇合適的報文大小。

6.udp雖然常被人說是乙個不可靠的協議,但對於分發訊息來說它還是蠻理想的。如在高鐵站報告航班資訊等。udp也適用於在路由資訊協議rip(routing information protocol)中修改路由表。

1)連線與無連線

tcp是面向連線的,udp是面向無連線的。因此導致tcp更適合於訊息的多播發布可以向多個點傳送訊息(因為沒有繁瑣的握手機制與揮手機制)同時也導致udp適用於快速傳輸的協議,對資訊的時實性要求嚴格的協議。

(2)可靠性

tcp是可靠的傳輸協議,udp是不可靠的。

因此導致udp不適合金融支付這方面要求可靠性的專案。(因為udp沒有超時重傳的機制不能保證可靠性)。

(3)有序性

tcp協議可以保證有序性,udp協議不保證。

(訊息將會以從服務端發出的順序傳送給客戶端,儘管訊息可能到網路的另一端時是無順序的,tcp協議會為你排好序)但是即使udp不可靠,無序,但是我們可以將這些要求轉移給上層應用來實現,不僅降低了執行時間,而且使質量得到保證。(例如可以通過給udp協議使用序列號和重傳機制來改善它的這兩個缺點)。

(4)重量級與輕量級

tcp協議是重量級,udp協議是輕量級

因為tcp要保證可靠性和有序性,所以tcp資料報報頭的資訊量大,報頭大小是20個位元組,udp報頭的大小是8個位元組。所以tcp占用的系統的開銷大。

(5)擁塞和流量控制

tcp有流量控制,udp沒有。

tcp通常在傳送包之前會測試網路的快慢情況,就好比我們在linux中投的ping命令,通過往返的時間和丟包率來評估網路的狀況,來調動滑動視窗的大小。(這項機制增加了tcp的可靠性)。

(6)資料邊界

tcp協議沒有資料邊界,udp有

因此tcp容易發生粘包的現象。在udp中資料報是單獨傳送的,只有當他們到達時才會再次整合,包有明確的界限來判斷哪些包已經收到。

cookie的作用,用途

cookies是一種能夠讓 伺服器把少量資料儲存到客戶端的硬碟或記憶體,或是從客戶端的硬碟讀取資料的一種技術。cookies是當你瀏覽某 時,由web伺服器置於你硬碟上的乙個非常小的文字檔案,它可以記錄你的使用者id 密碼 瀏覽過的網頁 停留的時間等資訊。當你再次來到該 時,通過讀取cookies,...

TCP UDP區別以及UDP如何實現可靠傳輸

tcp和udp是osi模型中的運輸層中的協議。tcp提供可靠的通訊傳輸,而udp則常被用於讓廣播和細節控制交給應用的通訊傳輸。udp user datagram protocol udp不提供複雜的控制機制,利用ip提供面向無連線的通訊服務。並且它是將應用程式發來的資料在收到的那一刻,立刻按照原樣傳...

TCP UDP的區別以及TCP如何實現可靠傳輸

1,tcp transmission control protocol tcp充分實現了資料傳輸時各種控制功能,可以進行丟包的重發控制,還可以對次序亂掉的分包進行順序控制。而這些在udp中都沒有。此外,tcp作為一種面向有連線的協議,只有在確認通訊端存在時才會傳送資料,從而可以控制通訊流量的浪費。t...