日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

一、TCP協議

位于傳輸層, 提供可靠的字節流服務。所謂的字節流服務(Byte Stream Service) 是指, 為了方便傳輸, 將大塊數據分割成以報文段(segment) 為單位的數據包進行管理。 而可靠的傳輸服務是指, 能夠把數據準確可靠地傳給對方。 即TCP 協議為了更容易傳送大數據才把數據分割, 而且 TCP 協議能夠確認數據最終是否送達到對方。所以,TCP連接相當于兩根管道(一個用于服務器到客戶端,一個用于客戶端到服務器),管道里面數據傳輸是通過字節碼傳輸,傳輸是有序的,每個字節都是一個一個來傳輸。

 

(1)、三次握手:握手過程中使用了 TCP 的標志(flag) —— SYN(synchronize) 和ACK(acknowledgement) 。

 

第一次握手:建立連接時,客戶端A發送SYN包(SYN=j)到服務器B,并進入SYN_SEND狀態,等待服務器B確認。

第二次握手:服務器B收到SYN包,必須確認客戶A的SYN(ACK=j+1),同時自己也發送一個SYN包(SYN=k),即SYN+ACK包,此時服務器B進入SYN_RECV狀態。

第三次握手:客戶端A收到服務器B的SYN+ACK包,向服務器B發送確認包ACK(ACK=k+1),此包發送完畢,完成三次握手。

TCP和UDP的區別,深入理解TCP三次握手和四次揮手的全過程

 

若在握手過程中某個階段莫名中斷, TCP 協議會再次以相同的順序發送相同的數據包。

 

(2)、四次揮手:由于TCP連接是全雙工的,因此每個方向都必須單獨進行關閉。這個原則是當一方完成它的數據發送任務后就能發送一個FIN來終止這個方向的連接。收到一個 FIN只意味著這一方向上沒有數據流動,一個TCP連接在收到一個FIN后仍能發送數據。先進行關閉的一方將執行主動關閉,而另一方被動關閉。

 

客戶端A發送一個FIN,用來關閉客戶A到服務器B的數據傳送。

服務器B收到這個FIN,它發回一個ACK,確認序號為收到的序號加1。

服務器B關閉與客戶端A的連接,發送一個FIN給客戶端A。

客戶端A發回ACK報文確認,并將確認序號設置為收到序號加1。

 

三次握手和四次揮手:在TCP連接中,服務器端的SYN和ACK向客戶端發送是一次性發送的,而在斷開連接的過程中, B端向A端發送的ACK和FIN是分兩次發送的。因為在B端接收到A端的FIN后, B端可能還有數據要傳輸,所以先發送ACK,等B端處理完自己的事情后就可以發送FIN斷開連接了。

 

(3)、深入理解TCP連接

由于TCP是全雙工的,因此在每一個方向都必須單獨關閉。這原則是當一方完成它的數據發送任務后就能發送一個FIN來終止這個方向的連接。收到一個FIN只意味著這個方向上沒有數據流動,一個TCP連接在接收到一個FIN后仍能發送數據。 首先進行關閉的一方將執行主動關閉,而另一方執行被動關閉。

TCP協議的連接是全雙工連接,一個TCP連接存在雙向的讀寫通道。簡單來說,是“先關讀,再關寫” ,總共需要4個階段。

 

以客戶機發起關閉連接為例:

1.服務器讀通道關閉;

2.客戶端寫通道關閉;

3.客戶端讀通道關閉;

4.服務器寫通道關閉。

關閉行為是在發起方數據發送完畢之后,給對方發出一個FIN(finish)數據段,直到接收到對方發送的FIN,且對方收到了接收確認的ACK之后,雙方的數據通信完全結束,過程中每次都需要返回確認數據段ACK。

 

(4)、TCP使用滑動窗口機制來進行流量控制

建立連接時,各端分配一個緩沖區用來存儲接收的數據,并將緩沖區的尺寸發送給另一端。接收方發送的確認消息中包含了自己剩余的緩沖區尺寸。剩余緩沖區空間的數量叫做窗口。其實就是建立連接的雙虎互相知道彼此剩余的緩沖區大小。

TCP和UDP的區別,深入理解TCP三次握手和四次揮手的全過程

 

(5)、擁塞控制

擁塞控制:防止過多的數據注入到網路中,這樣可以使網絡中的路由器或鏈路不至于阻塞。擁塞控制是一個全局性的過程,和流量控制不同,流量控制是點對點的控制。

 

1、慢開始:發送方維持一個叫做擁塞窗口cwnd(congestion window)的狀態變量。擁塞窗口的大小取決于網絡的擁塞程度,并且動態的變化。發送方讓自己的發送窗口等于擁塞窗口,另外考慮到接收方的接收能力,發送窗口可能小于擁塞窗口。思路就是:不要一開始就發送大量的數據,先試探一下網絡的擁塞程度,也就是說由小到大增加擁塞窗口的大小。

TCP和UDP的區別,深入理解TCP三次握手和四次揮手的全過程

 

為了防止cwnd增長過大引起網絡擁塞,還需要設置一個慢開始門限ssthresh狀態變量。 ssthresh的方法如下:

當cwnd < ssthresh時,開始使用慢開始算法;當cwnd > ssthresh, 改用擁塞避免算法;當cwnd = ssthresh時,慢開始與擁塞算法任意。

 

2.擁塞避免:

擁塞避免算法讓擁塞窗口緩慢增長,即每經過一個往返時間RTT就把發送方的擁塞窗口cwnd加1,而不是加倍,這樣擁塞窗口按照線性規律緩慢增長。無論是在慢開始階段還是在擁塞避免階段,只要發送方判斷網絡出現擁塞(其根據就是沒有收到確認,雖然沒有收到確認可能是其他原因的分組丟失,但是因為?法判定,所以都當作擁塞處理),就把慢開始門限設置為出現擁塞時的發送窗口的一半,然后把擁塞窗口設置為1,執行慢開始算法:

TCP和UDP的區別,深入理解TCP三次握手和四次揮手的全過程

 

此外,還有快速重傳和快速恢復,停止-等待協議,回退N幀協議,選擇重傳協議等。

 

二、UDP協議:

無連接協議,也稱透明協議,也位于傳輸層。

 

TCP和UDP協議的區別

1) TCP提供面向連接的傳輸,通信前要先建立連接(三次握手機制); UDP提供無連接的傳輸,通信前不需要建立連接。

2) TCP提供可靠的傳輸(有序,無差錯,不丟失,不重復); UDP提供不可靠的傳輸。

3) TCP面向字節流的傳輸,因此它能將信息分割成組,并在接收端將其重組; UDP是面向數據報的傳輸,沒有分組開銷。

4) TCP提供擁塞控制和流量控制機制; UDP不提供擁塞控制和流量控制機制。

 

三、長連接和短連接

HTTP的長連接和短連接本質上是TCP長連接和短連接。HTTP屬于應用層協議,在傳輸層使用TCP協議,在網絡層使用IP協議。 IP協議主要解決網絡路由和尋址問題,TCP協議主要解決如何在IP層之上可靠地傳遞數據包,使得網絡上接收端收到發送端所發出的所有包,并且順序與發送順序一致。TCP協議是可靠的、面向連接的。

 

在HTTP/1.0中默認使用短連接。也就是說,客戶端和服務器每進行一次HTTP操作,就建立一次連接,任務結束就中斷連接。當客戶端瀏覽器訪問的某個html或其他類型的Web頁中包含有其他的Web資源(如JAVAScript文件、圖像文件、css文件等),每遇到這樣一個Web資源,瀏覽器就會重新建立一個HTTP會話。

 

而從HTTP/1.1起,默認使用長連接,用以保持連接特性。使用長連接的HTTP協議,會在響應頭加入這行代碼:

Connection:keep-alive

 

在使用長連接的情況下,當一個網頁打開完成后,客戶端和服務器之間用于傳輸HTTP數據的TCP連接不會關閉,客戶端再次訪問這個服務器時,會繼續使用這一條已經建立的連接。Keep-Alive不會永久保持連接,它有一個保持時間,可以在不同的服務器軟件(如Apache)中設定這個時間。實現長連接需要客戶端和服務端都支持長連接。

 

HTTP協議的長連接和短連接,實質上是TCP協議的長連接和短連接。

分享到:
標簽:TCP
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定