TCP與UDP的區別

2021-09-06 13:40:12 字數 2498 閱讀 9541

1.理解:視窗和滑動視窗tcp的流量控制

tcp使用視窗機制進行流量控制

什麼是視窗?

連線建立時,各端分配一塊緩衝區用來儲存接收的資料,並將緩衝區的尺寸傳送給另一端

接收方傳送的確認資訊中包含了自己剩餘的緩衝區尺寸

剩餘緩衝區空間的數量叫做視窗

2. tcp的流控過程(滑動視窗)

2.tcp 與udp的區別

很多文章都說tcp協議可靠,udp協議不可靠!為什麼前者可靠,後者不可靠呢?既然udp協議不可靠,為什麼還要使用它呢?所謂的tcp協議是面向連線的協議,面向連線是什麼呢?   

tcp和udp都是傳輸層的協議!從程式設計的角度看,就是兩個模組(模組就是**的集合,一系列**的組合提供相應的功能!模組化最終目的就是:分工協作!模組化好處:便於擴充套件開發以及維護!)。   

先說tcp協議:   

這個協議,是面向的連線!面向連線這個概念,我們要從物理層看起。大家都知道,因為「通道復用技術」的迅猛發展,才促使了計算機網路的發展!如果沒有「通道復用技術」,那麼單條線路上(這裡的線路指物理傳輸介質,例如:雙絞線、光纖、**線)單位時間內只能供一台計算機使用!還是舉例說明:就拿你自己的計算機來說,你跟同學「小明」聊天的時候,就不能跟另外一位同學「小強」聊天,如果你想同時跟兩位同學聊天,那麼你就得裝兩條線路!那麼同時與第三位、第四位同學。。。第n位同學聊天的時候,你需要裝幾根線路?全世界人民聊天的時候,又需要裝幾根線路?   

「通道復用技術」實現了,在同一條線路上,單位時間內可供x臺計算機同時通訊!toad知道以下幾種復用技術:   

1、頻分復用    2、時分復用    3、波分復用    4、碼分復用    5、空分復用    6、統計復用    7、極化波復用   

關於「通道復用技術」更深層次的問題,需要你自己去研究!   

上面我們提到了「通道復用技術」!知道了這一點,我們就很容易明白「物理通道」上的「虛擬通道」概念了!不同的通道復用技術,使用不同的復用技術,目的就是建立「虛擬通道」。   

乙個tcp協議連線其實就是在物理線路上建立的一條「虛擬通道」。這條「虛擬通道」建立後,在tcp協議發出fin包之前(兩個終端都會向對方傳送乙個fin包),是不會釋放的。正因為這一點,tcp協議被稱為面向連線的協議!   

udp協議,一樣會在物理線路上建立一條「虛擬通道」,否則udp協議無法傳輸資料!但是,當udp協議傳完資料後,這條「虛擬通道」就被立即登出了!因此,稱udp是不面向連線的協議! 

tcp協議和udp協議為什麼會共存?

1. 大家要知道,一種物理線路,單位時間內,能夠建立的「虛擬通道」是有限的!

2. 使用tcp協議傳輸資料,當資料從a端傳到b端後,b端會傳送乙個確認包(ack包)給a端,告知a端資料我已收到!udp協議就沒有這種確認機制!這就是為什麼說tcp協議可靠,udp協議不可靠. 

qq普通會員就是使用的udp協議進行傳輸資料!既然udp協議自身沒有確認機制,這個工作可以交給應用層的程序來完成(qq)!大家使用qq的時候,感覺出錯的機率還是非常小吧!當然,把這個確認工作完全交給qq自身來做,就直接導致了,qq軟體體積增大!   

有些應用,對資料傳輸可靠性要求非常高,例如大家瀏覽網頁,通過網頁註冊帳號、轉帳等服務,這是不容許出錯的,使用tcp協議能把出錯的可能性降到最低(當然,網路自身很糟糕,tcp協議也沒辦法)。但是,提供這種可靠服務,會加大網路頻寬的開銷,因為「虛擬通道」是持續存在的,同時網路中還會出現大量的ack和fin包!  

因此,魚和熊掌不可兼得,需根據實際情況選擇傳輸協議.tcp協議提供了可靠的資料傳輸,但是其擁塞控制、資料校驗、重傳機制的網路開銷很大,不適合實時通訊,所以選擇開銷很小的udp協議來傳輸資料。   

非面向連線的傳輸協議在資料傳輸之前不建立連線,而是在每個中間節點對非面向連線的包和資料報進行路由。沒有點到點的連線,非面向連線的協議,如udp,是不可靠的連線。當乙個udp資料報在網路中移動時,傳送過程並不知道它是否到達了目的地,除非應用層已經確認了它已到達的事實。非面向連線的協議也不能探測重複的和亂序的包。標準的專業術語用「不可靠」來描述udp。在現代網路中,udp並不易於導致傳輸失敗,但是你也不能肯定地說它是可靠的

tcp和udp都是傳輸層的協議!

應用層 (qq)

物理連線層

各自協議使用的常用埠:如http, https, tcp, udp, ftp等等

TCP與UDP的區別

面向連線的tcp 面向連線 就是在正式通訊前必須要與對方建立起連線。比如你給別人打 必須等線路接通了 對方拿起話筒才能相互通話。tcp協議能為應用程式提供可靠的通訊連線,使一台計算機發出的位元組流無差錯地發往網路上的其他計算機,對可靠性要求高的資料通訊系統往往使用tcp協議傳輸資料。面向非連線的ud...

tcp 與udp 的區別

tcp提供面向連線 可靠的位元組流服務。udp提供面向資料報的傳輸層協議。1.tcp 提供客戶與伺服器之間的連線。tcp客戶與某個伺服器建立乙個連線,再跨跨該連線與伺服器交換資料,最後終止連線。2.tcp提供可靠性。當tcp向對端傳送資料時,要求對端返回乙個確認。如果沒收到確認,tcp就自動重傳資料...

TCP與UDP的區別

tcp transmission control protocol,傳輸控制協議 是基於連線的協議,也就是說,在正式收發資料前,必須和對方建立可靠的連線。乙個tcp連線必須要經過三次 對話 才能建立起來,其中的過程非常複雜,我們這裡只做簡單 形象的介紹,你只要做到能夠理解這個過程即可。我們來看看這三...