TCP和UDP的區別與聯系
tcp是面向連接的,udp不是面向連接的,就相當于我們生活中打電話或者微信聊天,要先嘟嘟嘟連接,之后才可以打電話聊天,這個就是面向連接的,也是比較可靠的,udp是不用先去做連接的,所以叫做面向非連接,類似生活中發短信,直接發送過去 。

文章插圖
文章插圖

文章插圖
文章插圖
TCP協議面向連接,UDP協議面向非連接;(鏈接)TCP協議傳輸速度慢,UDP協議傳輸速度快;(速度)TCP有丟包重傳機制,UDP沒有;(重傳)TCP協議保證數據正確性,UDP協議可能丟包;(正確性)TCP適合傳遞大量數據,UPD適合傳遞少量數據 。(數據量)
網絡中進程之間如何通信?首要解決的問題是如何唯一標識一個進程,否則通信無從談起!在本地可以通過進程PID來唯一標識一個進程,但是在網絡中這是行不通的 。其實TCP/IP協議族已經幫我們解決了這個問題,網絡層的“ip地址”可以唯一標識網絡中的主機,而傳輸層的“協議+端口”可以唯一標識主機中的應用程序(進程) 。這樣利用三元組(ip地址,協議,端口)就可以標識網絡的進程了,網絡中的進程通信就可以利用這個標志與其它進程進行交互 。
使用TCP/IP協議的應用程序通常采用應用編程接口:UNIX BSD的套接字(socket)和UNIX System V的TLI(已經被淘汰),來實現網絡進程之間的通信 。就目前而言,幾乎所有的應用程序都是采用socket,而現在又是網絡時代,網絡中進程通信是無處不在,這就是我為什么說“一切皆socket” 。
一、TCP工作原理
TCP建立連接的過程
TCP是一種可靠的,面向連接的全雙工傳輸層協議 。TCP連接的建立是一個三次握手的過程 。

文章插圖
文章插圖

文章插圖
文章插圖
1、主機A(通常也稱為客戶端)發送一個標識了SYN的數據段,表示期望與服務器A建立連接,此數據段的序列號(seq)為a 。
2、服務器A回復標識了SYN+ ACK的數據段,此數據段的序列號(seq)為b,確認序列號為主機A的序列號加1(a+1),以此作為對主機A的SYN報文的確認 。
3、主機A發送一個標識了ACK的數據段,此數據段的序列號(seq)為a+1,確認序列號為服務器A的序列號加1(b+1),以此作為對服務器A的SYN報文的確認 。
TCP傳輸過程
TCP的可靠傳輸還體現在TCP使用了確認技術來確保目的設備收到了從源設備發來的數據并且是準確無誤的 。

文章插圖
文章插圖

文章插圖
文章插圖
確認技術的工作原理如下:
目的設備接收到源設備發送的數據段時,會向源端發送確認報文,源設備收到確認報文后繼續發送數據段,如此重復 。
TCP流量控制
滑動窗口機制運用TCP報文段中的窗口大小字段來控制,發送方的發送窗口不可以大于接收方發回的窗口大小 。

文章插圖
文章插圖

文章插圖
文章插圖
考慮一種特殊的情況,就是接收方若沒有緩存足夠使用,就會發送零窗口大小的報文,此時發送放將發送窗口設置為0,停止發送數據 。
TCP關閉連接
主機在關閉連接之前,要確認收到來自對方的ACK 。

文章插圖
文章插圖

文章插圖
文章插圖
TCP支持全雙工模式傳輸數據,這意味著同一時刻兩個方向都可以進行數據的傳輸 。在傳輸數據之前,TCP通過三次握手建立的實際上是兩個方向的連接,因此在傳輸完畢后,兩個方向的連接必須都關閉 。TCP連接的建立是一個三次握手的過程,而TCP連接的終止則要經過四次握手 。
二、UDP工作原理
UDP傳輸過程
【tcp和udp的區別與聯系「tcp和udp的工作原理」】使用UDP傳輸數據時,由應用程序根據需要提供報文到達確認、排序、流量控制等功能 。
通常情況下,UDP采用實時傳輸機制和時間戳來傳輸語音和視頻數據 。

文章插圖
文章插圖

文章插圖
文章插圖
UDP不提供重傳機制,占用資源小,處理效率高 。

文章插圖
文章插圖

文章插圖
文章插圖
- 和好的面團能隔夜嗎,和好的面放冰箱第二天能用嗎
- 如何和喜歡的人聊天
- 和生疏女人第一次聊天怎么打招呼
- 怎么跟喜歡的人聊天找話題
- 跟女的聊天不知道聊什么怎么辦
- 和離婚女人聊天技巧
- 幽默開場白和女生聊天
- 沒話題和女生聊天
- 怎么和生疏女孩聊天開頭
- 田雞是牛蛙嗎
