日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

网络编程(五) ———— 万字详解TCP协议

發(fā)布時(shí)間:2023/12/18 编程问答 68 豆豆
生活随笔 收集整理的這篇文章主要介紹了 网络编程(五) ———— 万字详解TCP协议 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • TCP首部格式
  • 1.確認(rèn)應(yīng)答和序列號(hào)
  • 2.超時(shí)重傳
  • 3.連接管理
    • 為啥要三次握手,為啥要建立連接?
    • 如果三次握手,握四次行不行,握兩次行不行?
    • 如果三次握手,握兩次行不行?
    • 四次揮手中的ACK和FIN為啥不合并?
  • 4.滑動(dòng)窗口
    • 如果滑動(dòng)窗口的場(chǎng)景中出現(xiàn)丟包了,咋辦?
    • 快速重傳
  • 5.流量控制
  • 6.擁塞控制
  • 7.延時(shí)應(yīng)答
  • 8.捎帶應(yīng)答
  • 9.面向字節(jié)流
    • 如何解決粘包問(wèn)題?
  • 10.TCP中的一些異常情況(心跳機(jī)制)
  • 11.如何基于UDP協(xié)議實(shí)現(xiàn)可靠傳輸?
  • 啥樣的場(chǎng)景中適合用TCP,啥樣的場(chǎng)景中適合用UDP


TCP首部格式

  • 源端口號(hào)
    表示發(fā)送端端口號(hào),字段長(zhǎng)16位
  • 目標(biāo)端口號(hào)
    表示接收端端口號(hào),字段長(zhǎng) 16位
  • 序列號(hào)

字段長(zhǎng)32位。序列號(hào)(有時(shí)也就序號(hào))是指發(fā)送數(shù)據(jù)的位置。每次發(fā)送一次數(shù)據(jù),就累加一次該數(shù)據(jù)字節(jié)數(shù)的大小
序列號(hào)不會(huì)從0或1開(kāi)始,而是建立連接時(shí)有計(jì)算機(jī)生成的隨機(jī)數(shù)作為其初始值,通過(guò)SYN包傳給接收端主機(jī)。然后再將每轉(zhuǎn)發(fā)過(guò)去的字節(jié)數(shù)累加到初始值上表示數(shù)據(jù)的位置。此外,在建立連接和斷開(kāi)連接時(shí)發(fā)送的SYN包和FIN包雖然并不攜帶數(shù)據(jù),但是也會(huì)作為一個(gè)字節(jié)增加對(duì)應(yīng)的序列號(hào)。

  • 確認(rèn)應(yīng)答號(hào)

確認(rèn)應(yīng)答號(hào)字段長(zhǎng)度32位,是指下一次應(yīng)收到的數(shù)據(jù)的序列號(hào),實(shí)際上,它是指已收到確認(rèn)應(yīng)答號(hào)減一為止的數(shù)據(jù),發(fā)送端收到這個(gè)確認(rèn)應(yīng)答以后可以認(rèn)為在這個(gè)序號(hào)以前的數(shù)據(jù)都已經(jīng)被正常接收

  • 數(shù)據(jù)偏移

這個(gè)字段表示所傳輸?shù)臄?shù)據(jù)部分應(yīng)該從TCP包的哪個(gè)位開(kāi)始計(jì)算,也可以把它看作TCP首部的長(zhǎng)度


1.確認(rèn)應(yīng)答和序列號(hào)

確認(rèn)應(yīng)答也是保證可靠性傳輸?shù)暮诵?br /> 發(fā)送方發(fā)數(shù)據(jù)給接收方了,接收方就回應(yīng)一個(gè)應(yīng)答報(bào)文,如果發(fā)送方收到了這個(gè)應(yīng)答報(bào)文,那么認(rèn)為是對(duì)方已經(jīng)收到了。

由于網(wǎng)絡(luò)上的傳輸,順序是不確定的,可能出現(xiàn)后發(fā)先至的情況,因此不能就單純的通過(guò)收到數(shù)據(jù)的順序來(lái)確定邏輯,就需要對(duì)應(yīng)答進(jìn)行的編號(hào)。

實(shí)際上,TCP傳輸數(shù)據(jù),不論條,而是論字節(jié)(面向字節(jié)流)

實(shí)際上,TCP的序號(hào)和確認(rèn)序號(hào),是以字節(jié)為單位進(jìn)行編號(hào)的

比如下面這張圖,第一個(gè)請(qǐng)求A給B發(fā)送了1000個(gè)字節(jié)的數(shù)據(jù),序號(hào)就是1-1000(假設(shè)從1開(kāi)始編號(hào)了),這個(gè)操作相當(dāng)于是發(fā)了一個(gè)TCP數(shù)據(jù)報(bào),這個(gè)數(shù)據(jù)報(bào),這個(gè)數(shù)據(jù)報(bào)的序號(hào)是1,長(zhǎng)度是1000,確認(rèn)應(yīng)答數(shù)據(jù)報(bào),里面的確認(rèn)序號(hào)是1001(意思就是1001之前的數(shù)據(jù),B已經(jīng)收到了,另外,也可以理解成,B在向A索要1001開(kāi)始的數(shù)據(jù))


針對(duì)每個(gè)字節(jié)分別編號(hào)即為序列號(hào),依次進(jìn)行累加(TCP的序號(hào)的起始不一定是從1開(kāi)始的),每個(gè)ACK都帶有對(duì)應(yīng)的確認(rèn)序列號(hào),意思是告訴發(fā)送者,我已經(jīng)收到了哪些數(shù)據(jù),下一次你從哪里開(kāi)始發(fā)


發(fā)送方,就可以根據(jù)確認(rèn)的應(yīng)答報(bào)文來(lái)確定接收方是否是收到了,只要發(fā)送方收到了應(yīng)答,就認(rèn)為接收方已經(jīng)收到,可靠傳輸就完成了。

反之,在一定時(shí)間內(nèi)沒(méi)有等到確認(rèn)應(yīng)答,發(fā)送端就可以認(rèn)為數(shù)據(jù)已經(jīng)丟失,并進(jìn)行重發(fā)。因此,即使產(chǎn)生了丟包,仍然能夠保證數(shù)據(jù)能夠到達(dá)對(duì)端,實(shí)現(xiàn)可靠傳輸

2.超時(shí)重傳

確認(rèn)應(yīng)答機(jī)制中,這個(gè)是比較順利,但是傳輸過(guò)程中還是可能會(huì)出現(xiàn)丟包的,一旦數(shù)據(jù)發(fā)生丟包,就要進(jìn)入超時(shí)重傳機(jī)制中了。

主機(jī)A發(fā)送數(shù)據(jù)給B之后,可能因?yàn)榫W(wǎng)絡(luò)擁堵等原因,數(shù)據(jù)無(wú)法到達(dá)主機(jī)B
如果主機(jī)A在一個(gè)特定時(shí)間間隔內(nèi)沒(méi)有收到B發(fā)來(lái)的確認(rèn)應(yīng)答,就會(huì)進(jìn)行重發(fā)


舉個(gè)列子:

  • A發(fā)消息給B,A發(fā)的消息丟了,B壓根沒(méi)看見(jiàn)
  • A發(fā)的消息過(guò)去了,B也看見(jiàn)了,也回復(fù)了,但是B回復(fù)的消息丟了
    發(fā)送方無(wú)法區(qū)分,當(dāng)前是發(fā)的數(shù)據(jù)丟了,還是應(yīng)答數(shù)據(jù)丟了,發(fā)送方能做的事情,就是在一段時(shí)間之后,重發(fā)一條數(shù)據(jù)
  • 超時(shí)的時(shí)間怎么確定呢?

    • 最理想的情況下,找到一個(gè)最小的時(shí)間,保證 “確認(rèn)應(yīng)答一定能在這個(gè)時(shí)間內(nèi)返回”
    • 但是這個(gè)時(shí)間的長(zhǎng)短,隨著網(wǎng)絡(luò)環(huán)境的不同,是有差異的 。
    • 如果超時(shí)時(shí)間設(shè)的太長(zhǎng),會(huì)影響整體的重傳效率
    • 如果超時(shí)時(shí)間設(shè)的太短,有可能會(huì)頻繁發(fā)送重復(fù)的包

    TCP為了保證無(wú)論在任何環(huán)境下都能比較高性能的通信,因此會(huì)動(dòng)態(tài)計(jì)算這個(gè)最大超時(shí)時(shí)間

    這個(gè)等待,不同的系統(tǒng)實(shí)現(xiàn)的方式不一樣,數(shù)據(jù)在網(wǎng)絡(luò)上傳輸過(guò)程,是需要一定的時(shí)間的,不能說(shuō)數(shù)據(jù)剛發(fā)出去,就期望得到回應(yīng),可能要經(jīng)歷一段時(shí)間之后,才能得到回應(yīng)

    Linux中(BSD Unix和Windows也是如此),超時(shí)以500ms為一個(gè)單位進(jìn)行控制,每次判定超時(shí)重發(fā)的超時(shí)時(shí)間都是500ms的整數(shù)倍 ,發(fā)送方,把數(shù)據(jù)發(fā)出去之后,等待500ms,如果沒(méi)有收到應(yīng)答就認(rèn)為是丟包了。
    如果重發(fā)一次之后,仍然得不到應(yīng)答,等待 2500ms 后再進(jìn)行重傳。
    如果仍然得不到應(yīng)答,等待 4500ms 進(jìn)行重傳。依次類推,以指數(shù)形式遞增
    累計(jì)到一定的重傳次數(shù),TCP認(rèn)為網(wǎng)絡(luò)或者對(duì)端主機(jī)出現(xiàn)異常,強(qiáng)制關(guān)閉連接

    超時(shí)時(shí)間會(huì)動(dòng)態(tài)變化,不是一成不變的。
    等待時(shí)間會(huì)逐漸延長(zhǎng),延長(zhǎng)也就意味著讓重試的頻率盡量降低,只要重傳也失敗,其實(shí)就認(rèn)為,大概率這個(gè)傳輸是通不了的。達(dá)到一定重發(fā)次數(shù)以后,如果仍沒(méi)有任何回應(yīng),就會(huì) 判斷為網(wǎng)絡(luò)或?qū)Χ酥鳈C(jī)發(fā)生了異常,強(qiáng)制關(guān)閉連接,并且通知應(yīng)用通信異常強(qiáng)行終止。

    在超時(shí)重傳的時(shí)候,無(wú)法區(qū)分是發(fā)送過(guò)去的數(shù)據(jù)丟了,還是返回的ACK丟了,就一視同仁了,都要進(jìn)行重傳 ,以500ms為單位,依次增加、

    如果數(shù)據(jù)重復(fù)了怎么辦?

    接收方收到的數(shù)據(jù)會(huì)先放在內(nèi)核的”接收緩沖區(qū)中“,

    接收緩沖區(qū)是一段內(nèi)存,每個(gè)socket都有,按照序號(hào)來(lái)進(jìn)行去重,此時(shí)在應(yīng)用程序中讀取的數(shù)據(jù),讀到的結(jié)果就是不帶重復(fù)的

    3.連接管理

    UDP是一種面向無(wú)連接的通信協(xié)議,因此不檢查對(duì)端是否可以通信,直接將UDP包發(fā)出去,TCP與此相反
    TCP是有連接的,連接管理就是,如何建立連接(三次握手),如何斷開(kāi)連接(四次揮手)

    • 三次握手本質(zhì)上就是:A向B請(qǐng)求連接,B給與回應(yīng),B也向A請(qǐng)求連接,A也給與回應(yīng)

    • 本來(lái)應(yīng)該是“四次握手”,但是中間兩次操作,是可以合在一起的,這兩個(gè)操作在時(shí)間上是同時(shí)發(fā)生的

    • 當(dāng)A的SYN到達(dá)B的時(shí)候,B的內(nèi)核就會(huì)第一時(shí)間進(jìn)行應(yīng)答ACK,同時(shí)也會(huì)第一時(shí)間發(fā)起SYN,這兩件事同時(shí)觸發(fā),于是就沒(méi)有必要分成兩次傳輸,直接一步到位

    為啥要三次握手,為啥要建立連接?

    主要有兩個(gè)目的

  • 投石問(wèn)路,通過(guò)三次握手的過(guò)程,來(lái)確認(rèn)A和B之間的傳輸是通暢的,尤其是要確認(rèn),A和B各自的發(fā)送能力以及接收能力
  • 協(xié)商參數(shù):通過(guò)三次握手,讓A和B之間通通氣,選擇一些傳輸中合適的參數(shù),列如:TCP的序列號(hào)從幾開(kāi)始
  • 如果網(wǎng)絡(luò)出現(xiàn)了問(wèn)題,此時(shí),三次握手都會(huì)難以成功,此時(shí)也就沒(méi)有必要進(jìn)行后續(xù)的傳輸了

    如果三次握手,握四次行不行,握兩次行不行?

    握四次,完全可以。沒(méi)有必要,效果和3次是一樣的。
    中間的ACK和SYN是可以合并在一起的,如果分成兩個(gè),傳輸?shù)拈_(kāi)銷(xiāo)就比一個(gè)大。

    如果三次握手,握兩次行不行?

    握兩次是肯定不行的,A 給 B發(fā)送一個(gè) SYN,B再給A同時(shí)發(fā)送一個(gè)ACK和SYN就完成了兩次握手。

    此時(shí)A知道自己發(fā)送和接收能力沒(méi)有問(wèn)題,也知道B的發(fā)送和接收能力沒(méi)問(wèn)題

    但是B只知道自己的接收能力沒(méi)問(wèn)題,但不知道自己的發(fā)送能力有沒(méi)有問(wèn)題

    B只知道A的發(fā)送能力沒(méi)有問(wèn)題,并不知道A的接收能力有沒(méi)有問(wèn)題。所以并不能進(jìn)行傳輸。


    服務(wù)器和客戶端

    四次揮手中的ACK和FIN為啥不合并?

    對(duì)于B來(lái)說(shuō) ACK 和 FIN 的觸發(fā)時(shí)機(jī)是不一樣的。

  • B只要收到FIN就會(huì)立即觸發(fā)ACK,這個(gè)事事內(nèi)核完成的
  • B發(fā)送FIN的時(shí)機(jī)是用戶代碼控制的(比如代碼中出現(xiàn)了socket,close() 這樣的操作的時(shí)候,才會(huì)觸發(fā)FIN),有可能B的代碼寫(xiě)出問(wèn)題了,有可能一直不調(diào)用close。
    • CLOSE_WAIT:服務(wù)器收到FIN之后,進(jìn)入的狀態(tài),等待用戶代碼調(diào)用close,來(lái)發(fā)送FIN
    • TIME_WAIT:表示的客戶端收到了FIN之后進(jìn)入了TIME_WAIT,這個(gè)狀態(tài)存在的意義主要就是為了處理最后一個(gè)ACK包


    在三次握手和四次揮手的過(guò)程中,同樣可能會(huì)丟包,一旦丟包就會(huì)觸發(fā)超時(shí)重傳

  • 第一個(gè)FIN丟了,A遲遲收不到ACK,就會(huì)重傳FIN
  • 第一個(gè)ACK丟了,A遲遲收不到ACK,就還會(huì)重傳FIN
  • 第二個(gè)FIN丟了,B遲遲收不到ACK,就還是會(huì)重傳FIN
  • 第二個(gè)ACK丟了,B遲遲收不到ACK,還是會(huì)重傳FIN
  • 假設(shè),如果A收到FIN,并返回ACK之后,連接就銷(xiāo)毀,而不是進(jìn)入TIME_WAIT狀態(tài),會(huì)咋樣?

    此時(shí)一旦最后一個(gè)ACK丟了,此時(shí)就無(wú)法重傳ACK了(連接已經(jīng)銷(xiāo)毀了)

    TINE_WAIT即使進(jìn)程已經(jīng)退出了,TIME_WAIT狀態(tài)仍然會(huì)存在(TCP連接不會(huì)立即銷(xiāo)毀),TIME_WAIT 會(huì)等待一定時(shí)間,如果一定時(shí)間之內(nèi)也沒(méi)有重傳的FIN過(guò)來(lái),才會(huì)真正銷(xiāo)毀

    這個(gè)等待時(shí)間為2*MSI

    MSI理論上是,主機(jī)A和B之間最長(zhǎng)的一次通信時(shí)間

    通常在Linux中這個(gè)MSL默認(rèn)是1min,這個(gè)MSL默認(rèn)是1min,當(dāng)然這個(gè)MSL都是可以配置的

    如果服務(wù)器上出現(xiàn)大量的CLOSE_WAIT,是啥情況?

    這是代碼出現(xiàn)bug,close,沒(méi)有及時(shí)被調(diào)用到,

    如果服務(wù)器上出現(xiàn)大量的TIME_WAIT,是啥情況?

    主動(dòng)發(fā)起FIN的一方會(huì)進(jìn)入TIME_WAIT,就需要排查服務(wù)器是否應(yīng)該主動(dòng)斷開(kāi)連接

    這個(gè)也可能是代碼bug,但是不能石錘

    哪方先斷開(kāi)連接,哪方就會(huì)進(jìn)入TIME_WAIT,進(jìn)程退出之后,TIME_WAIT狀態(tài)仍然存在,TCP連接仍然存在

    如果讓服務(wù)器先退出,服務(wù)器這邊就會(huì)進(jìn)入到 TIME_WAIT狀態(tài)(原來(lái)的連接占據(jù)著端口),接下來(lái)如果服務(wù)器立即啟動(dòng),新的進(jìn)程又會(huì)嘗試重新綁定這個(gè)端口可能

    會(huì)存在端口綁定失敗的情況,如果使用原生的socket來(lái)試效果會(huì)非常明顯,第二次啟動(dòng)就會(huì)啟動(dòng)失敗。

    在Java socket,一般來(lái)說(shuō)第二次啟動(dòng)也是能成功的

    在socket api 里有一個(gè) REUSE ADDR 選項(xiàng),如果把這個(gè)選項(xiàng)加上,就能夠讓我們綁定端口的時(shí)候復(fù)用TIME_WAIT狀態(tài)中的端口,(Java socket里面應(yīng)該是默認(rèn)就設(shè)置了這個(gè)選項(xiàng))

    • LISTEN:手機(jī)開(kāi)機(jī) ,信號(hào)良好,隨時(shí)可以打入電話,服務(wù)器的狀態(tài),當(dāng)我們創(chuàng)建好ServerSocket實(shí)例的時(shí)候,就進(jìn)入了LISTEN狀態(tài)
    • ESTABLISHED:接通了電話,雙方可說(shuō)話了,代碼中accept放回了,得到了一個(gè)clientSocke
    • stable:穩(wěn)定的

    四次揮手一定是四次嘛?是否可能是三次呢?

    有可能的,后面的:延時(shí)應(yīng)答和捎帶應(yīng)答雖然ACK和FIN是不同時(shí)機(jī),但是在延時(shí)應(yīng)答和捎帶應(yīng)答的情況下是可能合并在一起的

    四次揮手一定會(huì)執(zhí)行嘛?也不一定

    四次揮手是一個(gè)TCP正常斷開(kāi)的流程,但是實(shí)際上,有的時(shí)候TCP連接也會(huì)異常斷開(kāi)(比如網(wǎng)斷了)

    4.滑動(dòng)窗口

    TCP不僅僅是為了保證可靠性,還要盡可能的提高傳輸效率。
    其實(shí)可靠性和效率,是矛盾的。TCP努力的在可靠性的前提下,又做出了很多性能優(yōu)化的手段

    下圖的這個(gè)發(fā)送過(guò)程,發(fā)送方需要花很多時(shí)間來(lái)等,這個(gè)等待其實(shí)就浪費(fèi)了大量時(shí)間


    現(xiàn)在通過(guò)批量發(fā)送,一次發(fā)送一波,一次等一波的ACK,把多組數(shù)據(jù)的ACK的等待時(shí)間給重疊起來(lái)了。

    一次批量發(fā)的數(shù)據(jù)的長(zhǎng)度,就稱為“窗口大小”

    如果沒(méi)有批量發(fā)送數(shù)據(jù)的長(zhǎng)度限制(窗口無(wú)限大,完全不等,ACK就一頓發(fā)),其實(shí)就沒(méi)有可靠性而言

    如果窗口越大,其實(shí)整體的效率就越高

    如果窗口越小,整體的效率就越低


    當(dāng)前窗口范圍是1001 - 5000,也就意味著,發(fā)送方現(xiàn)在同時(shí)發(fā)送了(1001 - 2000;2001-3000;3001-4000;4001-5000),同時(shí)再等待著四組數(shù)據(jù)的ACK

    假設(shè),2001這個(gè)ACK先到,發(fā)送方就知道了1001-2000這個(gè)數(shù)據(jù)已經(jīng)被對(duì)方收到了

    發(fā)送方也就不用繼續(xù)等這個(gè)數(shù)據(jù)了,接下來(lái)就立即再發(fā)一個(gè)5001 - 6000,仍然保證窗口大小時(shí)4份數(shù)據(jù),仍然保證當(dāng)前同時(shí)等待4份數(shù)據(jù)的ack

    并不是把4份ack都等到,才發(fā)新的數(shù)據(jù),而是隨著收到ack,就隨著往后發(fā)送。

    假設(shè)有后發(fā)先至的情況

    ack 2001,3001,4001,5001 都在網(wǎng)絡(luò)上傳輸呢,不一定非得是2001先到,是否可能3001先到呢?

    這是非常有可能的。

    確認(rèn)序號(hào)表示,從該序號(hào)之前,前面的數(shù)據(jù)都收到了

    如果收到了3001這個(gè)ack,意思就是 1001-2000 和 2001-3000都被對(duì)方收到了,此時(shí)2001這個(gè)ack收或者不收,已經(jīng)不關(guān)鍵。

    如果滑動(dòng)窗口的場(chǎng)景中出現(xiàn)丟包了,咋辦?

    情況1:數(shù)據(jù)包已經(jīng)抵達(dá),ACK丟失了

    這種情況沒(méi)有關(guān)系,只要不是全部ACK丟失就好了,哪怕丟個(gè)50%也沒(méi)事

    發(fā)送方:1001-2000,2001-3000

    接收方:2001,3001

    如果2001這個(gè)acck丟了,3001這個(gè)ack到了

    此時(shí)發(fā)送方也就知道了,3001前面的數(shù)據(jù)都被正確收到了

    此時(shí)1001-2000這個(gè)數(shù)據(jù)報(bào)也得到了一個(gè)確認(rèn)應(yīng)答

    實(shí)際上,TCP為了偷懶(提高效率),滑動(dòng)窗口下,并不是每一條數(shù)據(jù)都有ACK,會(huì)隔幾條數(shù)據(jù)才有一個(gè)ACK

    快速重傳

    快速重傳,效率很高,尤其是不需要重復(fù)傳輸數(shù)據(jù)


    如上圖,因?yàn)?001丟包了,主機(jī)B就會(huì)一直索要1001,確認(rèn)序號(hào)就仍然是1001

    1001-2000這個(gè)數(shù)據(jù)丟了,2001-3000,3001-4000…還在繼續(xù)發(fā)

    發(fā)送方這邊,如果連續(xù)看到幾次1001這個(gè)ACK,就知道了是1001這個(gè)數(shù)據(jù)丟失了,接下來(lái)就會(huì)重傳1001

    前面的2001-7000這些數(shù)據(jù)已經(jīng)到達(dá)了接收端了,值不過(guò)是在接收緩沖區(qū)里待著,當(dāng)1001-2000這個(gè)數(shù)據(jù)到達(dá)的時(shí)候,B就知道了,7001之前的數(shù)據(jù)就都到齊了,此時(shí)就繼續(xù)索要7001這個(gè)數(shù)據(jù)即可

    5.流量控制

    流量控制,本質(zhì)上就是在控制滑動(dòng)窗口的大小,也是保證可靠性的。

    窗口大小決定了傳輸?shù)男?#xff0c;窗口越大,效率就越高,窗口越小,效率就越低。

    既然如此,窗口大小取多少合適呢?

    窗口越大,為了保證可靠性,資源開(kāi)銷(xiāo)就得越多

    窗口太小,速度也得不到保證

    流量控制是基于接收方的處理能力來(lái)限制窗口大小的

    TCP這個(gè)傳輸數(shù)據(jù)的過(guò)程,其實(shí)也就類似于一個(gè)生產(chǎn)者消費(fèi)者模型

    主機(jī)A發(fā)送的數(shù)據(jù)就到達(dá)了主機(jī)B的接收緩沖區(qū),此時(shí)主機(jī)A就是生產(chǎn)者,主機(jī)B的應(yīng)用程序,通過(guò)socket api 來(lái)讀取數(shù)據(jù)。被soket api 讀到的數(shù)據(jù)就從緩沖區(qū)中刪掉了,應(yīng)用程序就是消費(fèi)者,接收緩沖區(qū)就是交易場(chǎng)所(類似于一個(gè)隊(duì)列)

    所說(shuō)的窗口大小,是指發(fā)送發(fā)(主機(jī)A)批量發(fā)多少數(shù)據(jù),比如,主機(jī)A發(fā)的數(shù)據(jù)很快,窗口很大,此時(shí)接收緩沖區(qū)的數(shù)據(jù)也會(huì)增長(zhǎng)很快,如果主機(jī)B的應(yīng)用程序讀取數(shù)據(jù)讀的不快,隨著時(shí)間的推移,接收緩沖區(qū)逐漸就滿了,如果不加任何限制,主機(jī)A還是按照一樣的速度發(fā),此時(shí)新來(lái)的數(shù)據(jù)沒(méi)有地方保存,就被內(nèi)核丟了。

    類似于一個(gè)水池,一邊注水,一邊出水,如果注水速度比出水大,池子很快就滿了

    流量控制這個(gè)機(jī)制,就是為了解決這個(gè)問(wèn)題的,根據(jù)接收方的處理能力(接收緩沖區(qū)的剩余空間大小),來(lái)動(dòng)態(tài)決定發(fā)送方的發(fā)送速率(控制窗大小)


    接收緩沖區(qū)大小是4000

    1-1000數(shù)據(jù)到達(dá)的時(shí)候,緩沖區(qū)這里面用了1000,還剩3000,返回的ack中就會(huì)把3000這個(gè)信息告訴發(fā)送方

    發(fā)送方再次發(fā)送數(shù)據(jù)的時(shí)候,就按照3000作為窗口大小來(lái)進(jìn)行發(fā)送

    窗口大小(接收緩沖區(qū)的剩余空間)是如何放回給發(fā)送方的?

    如果窗口大小為0 了(接收端這邊滿了),然后發(fā)送方就停了嗎?

    此時(shí)發(fā)送方式不再繼續(xù)發(fā)數(shù)據(jù)了,但是為了能夠查詢當(dāng)前接收方的窗口大小。每隔一段時(shí)間,還會(huì)再來(lái)觸發(fā)一個(gè)窗口探測(cè)包,通過(guò)這個(gè)包(不傳輸具體的業(yè)務(wù)數(shù)據(jù)),觸發(fā)ACK,在這個(gè)ACK中就能知道當(dāng)前窗口的大小了

    那么問(wèn)題來(lái)了,16位數(shù)字最大表示65535,那么TCP窗口最大就是65535字節(jié)么?

    64K窗口大小夠嗎?

    TCP首部40字節(jié)選項(xiàng)中還包含了一個(gè)窗口擴(kuò)大因子,實(shí)際窗口大小是 窗口字段的值 左移M位(左移以為相當(dāng)于*2)

    6.擁塞控制

    擁塞控制是站在另外一個(gè)角度來(lái)限制發(fā)送方的窗口大小,站在一個(gè)宏觀角度來(lái)看待這個(gè)問(wèn)題,把整個(gè)中間鏈路都看成了一個(gè)整體,只看結(jié)果。


    先使用一個(gè)比較小的窗口來(lái)傳輸數(shù)據(jù),看看是否丟包,

    如果不丟包,說(shuō)明網(wǎng)絡(luò)比較通暢,如果丟包,說(shuō)明網(wǎng)絡(luò)發(fā)送擁堵

    當(dāng)網(wǎng)絡(luò)通暢的時(shí)候,就逐漸加大發(fā)送速率。當(dāng)網(wǎng)絡(luò)出現(xiàn)丟包的時(shí)候,就立即降低發(fā)送速率。

    通過(guò)這樣的方式,就可以逐漸實(shí)驗(yàn)出一個(gè)比較合適的窗口大小

    真實(shí)的發(fā)送窗口大小 = min(流量控制的窗口,擁塞控制的窗口)

    慢啟動(dòng):剛開(kāi)始啟動(dòng)的時(shí)候,給一個(gè)較小的窗口(比較慢的發(fā)送速率)


    這個(gè)圖描述了擁塞控制中,窗口大小的變化規(guī)則

    指數(shù)增長(zhǎng)速度是非常快的,由于剛開(kāi)始啟動(dòng)的時(shí)候,窗口比較小,此時(shí)通過(guò)指數(shù)增長(zhǎng),就能在很少的輪次中就能把窗口大小給頂上去

    如果達(dá)到閾值就從指數(shù)增長(zhǎng)變成線性增長(zhǎng)

    7.延時(shí)應(yīng)答

    延時(shí)應(yīng)答也是用來(lái)提高效率的(琢磨窗口大小)

    讓窗口大小,在保證可靠的基礎(chǔ)之上,能盡量再大一點(diǎn)

    流量控制來(lái)說(shuō),窗口大小就是接收緩沖區(qū)的剩余空間大小


    主機(jī)A給主機(jī)B發(fā)送數(shù)據(jù),如果接收方立刻放回ACK,此時(shí)放回的窗口大小,就是當(dāng)下這個(gè)緩沖區(qū)剩余的空間。

    但是如果接收方稍等一會(huì),再返回ACK,稍等這個(gè)時(shí)間里,應(yīng)用程序可能就會(huì)消費(fèi)一部分?jǐn)?shù)據(jù),此時(shí)緩沖區(qū)的剩余空間就更大了

    8.捎帶應(yīng)答

    在延時(shí)應(yīng)答的基礎(chǔ)之上

    很多的客戶端/服務(wù)器的通信服務(wù)器的通信模式,都是這種“一問(wèn)一答”

    但是由于有了延時(shí)應(yīng)答,返回的ACK不是立即返回,而是等一會(huì)。

    正好等一會(huì)之后,服務(wù)器要返回業(yè)務(wù)上的response了,此時(shí)就可以把這個(gè)ACK和response合二為一,把兩個(gè)包變成一個(gè)包

    網(wǎng)絡(luò)通信涉及到大量的封裝和分用,針對(duì)每個(gè)包都要一頓封裝,收到之后再一頓解析。


    針對(duì)四次揮手來(lái)說(shuō),確實(shí)是可能四次變成三次的

    捎帶應(yīng)答,是可能吧中間的ACK和FIN給合并成一個(gè),于是四次揮手就變成了三次揮手。

    四次揮手啥時(shí)候能變成三次?這是不能確定的。


    捎帶應(yīng)答本身就是一個(gè)“概率性的機(jī)制”,當(dāng)前ACK延時(shí)的時(shí)間正好要比接下來(lái)發(fā)業(yè)務(wù)數(shù)據(jù)的時(shí)間要更長(zhǎng)一些。

    列如,服務(wù)器收到請(qǐng)求到返回響應(yīng),這個(gè)過(guò)程消耗時(shí)間50ms

    但是延時(shí)應(yīng)答假設(shè)最多等20ms,這個(gè)情況就無(wú)法觸發(fā)捎帶應(yīng)答了

    但是延時(shí)應(yīng)答假設(shè)是最多等60ms

    第50ms的時(shí)候,此時(shí)觸發(fā)了響應(yīng),ACK就可以和這個(gè)響應(yīng)一起過(guò)去了,也就是觸發(fā)了延時(shí)應(yīng)答

    9.面向字節(jié)流

    在這種面向字節(jié)流的情況下,需要注意一個(gè)重要的問(wèn)題:粘包問(wèn)題(指的是應(yīng)用層的數(shù)據(jù)報(bào))

    應(yīng)用程序從接收緩沖區(qū)讀數(shù)據(jù)的時(shí)候,就不知道從哪里到哪里是一個(gè)完整的應(yīng)用層數(shù)據(jù)報(bào)

    應(yīng)用程序此時(shí)只能看到接收緩沖區(qū)中的一個(gè)一個(gè)字節(jié),無(wú)法區(qū)分當(dāng)前接收緩沖區(qū)里有多少個(gè)應(yīng)用層數(shù)據(jù)報(bào),以及從哪到哪是一個(gè)完整的應(yīng)用層數(shù)據(jù)報(bào)

    如何解決粘包問(wèn)題?

    通過(guò)設(shè)計(jì)一個(gè)合理的應(yīng)用層協(xié)議來(lái)解決

  • 給應(yīng)用層數(shù)據(jù)設(shè)定“結(jié)束符”/“分隔符”
  • 給應(yīng)用層數(shù)據(jù)設(shè)定“長(zhǎng)度”
  • 方式一:設(shè)定結(jié)束符,約定每個(gè)應(yīng)用層數(shù)據(jù)報(bào)一定以 ; 結(jié)尾

    方式二:設(shè)定包的長(zhǎng)度,約定每個(gè)應(yīng)用層數(shù)據(jù)報(bào)的前4個(gè)字節(jié),存儲(chǔ)數(shù)據(jù)報(bào)的長(zhǎng)度

    在UDP中是不存在粘包問(wèn)題的

    10.TCP中的一些異常情況(心跳機(jī)制)

    常見(jiàn)的異常情況

  • 進(jìn)程終止

    不管進(jìn)程是咋終止的,本質(zhì)上都會(huì)釋放對(duì)應(yīng)的PCB,也會(huì)釋放對(duì)應(yīng)的文件描述符,一樣會(huì)觸發(fā) 四次揮手

    "進(jìn)程終止"不代表連接就終止,進(jìn)程終止其實(shí)就相當(dāng)于調(diào)用了 soket.close() 方法而已

  • 機(jī)器重啟

    機(jī)器重啟的時(shí)候,其實(shí)也是先殺進(jìn)程,仍然是進(jìn)行四次揮手

  • 機(jī)器掉電、網(wǎng)線斷開(kāi)

    突發(fā)情況,機(jī)器來(lái)不及進(jìn)行任何動(dòng)作的

    如果掉電的是接收方,

    此時(shí)另外一邊還在發(fā)送數(shù)據(jù),此時(shí)顯然發(fā)送方不會(huì)再有ACK,于是就會(huì)超時(shí)重傳.

    重傳幾次之后,就會(huì)嘗試重置連接,這個(gè)時(shí)候,RST(復(fù)位報(bào)文段)就會(huì)設(shè)置為1

    再然后發(fā)送方就會(huì)放棄這個(gè)連接,把連接對(duì)應(yīng)的資源就回收了。

    如果掉電的是發(fā)送方(心跳機(jī)制)

    此時(shí)另外一方在嘗試接收數(shù)據(jù),此時(shí)接收不到任何數(shù)據(jù)

    接收方如何知道,發(fā)送方式掛了?還是說(shuō)發(fā)送方暫時(shí)還沒(méi)發(fā)呢?

    此時(shí)接收方采取的策略,就是"心跳包"機(jī)制(也叫做“?;睢?

    每隔一段時(shí)間,向?qū)Ψ桨l(fā)送一個(gè) PING包,期待對(duì)方返回一個(gè)PONG包。

    如果PING包發(fā)故去,過(guò)了很久還沒(méi)有PONG,并且重試幾次也不行,此時(shí)就認(rèn)為對(duì)方已經(jīng)掛了

    心跳包是一個(gè)應(yīng)用非常廣泛的機(jī)制,不僅僅是在TCP

    在微服務(wù)中,如果某個(gè)主機(jī)宕機(jī)了,此時(shí)入口服務(wù)器就得即使發(fā)現(xiàn)這個(gè)事情,就需要把請(qǐng)求切走

    就可以使用心跳包機(jī)制,直接使用一個(gè)TCP連接時(shí)不行的,雖然使用TCP連接能夠感知是哪個(gè)主機(jī)掛了,但是TCP感知的不夠及時(shí),如果希望能夠更加及時(shí)更快速的發(fā)現(xiàn)問(wèn)題

    就需要在應(yīng)用層實(shí)現(xiàn)心跳機(jī)制

  • 11.如何基于UDP協(xié)議實(shí)現(xiàn)可靠傳輸?

    這個(gè)問(wèn)題其實(shí)是在考TCP

  • 實(shí)現(xiàn)確認(rèn)應(yīng)答機(jī)制,把每個(gè)數(shù)據(jù)接收到了之后,都要反饋一個(gè)ACK(這就不是內(nèi)核返回的了,而是應(yīng)用程序自己定義了一個(gè)ack包發(fā)送過(guò)去)
  • 實(shí)現(xiàn)序號(hào)、確認(rèn)序號(hào),以及實(shí)現(xiàn)去重
  • 實(shí)現(xiàn)超時(shí)重傳
  • 實(shí)現(xiàn)連接管理
  • 想要提高效率,實(shí)現(xiàn)滑動(dòng)窗口
  • 為了限制滑動(dòng)窗口,實(shí)現(xiàn)流量控制、擁塞控制
  • 實(shí)現(xiàn)延時(shí)應(yīng)答,捎帶應(yīng)答,心跳機(jī)制…
  • 啥樣的場(chǎng)景中適合用TCP,啥樣的場(chǎng)景中適合用UDP

  • 如果需要可靠傳輸,肯定首選TCP

  • 如果傳輸單個(gè)數(shù)據(jù)報(bào)比較長(zhǎng)(超過(guò)64K),還是首選TCP

  • 如果特別注重效率,優(yōu)先考慮UDP

    典型的場(chǎng)景:機(jī)房?jī)?nèi)部的主機(jī)通信

    網(wǎng)絡(luò)環(huán)境簡(jiǎn)單,帶寬充裕,丟包的概率不大

    機(jī)房?jī)?nèi)部主機(jī)之間的通信,往往傳輸數(shù)據(jù)量更大,更需要速度

    尤其是在當(dāng)下的"微服務(wù)"這樣的環(huán)境中,其實(shí)特別需要

  • 如果需要廣播,優(yōu)先考慮UDP

    一份數(shù)據(jù)同時(shí)發(fā)給多個(gè)主機(jī)

    UDP自身就支持廣播的

    但是TPC自身不支持廣播,就只能在應(yīng)用程序中,通過(guò)多個(gè)連接,輪詢的方式給每個(gè)主機(jī)發(fā)送數(shù)據(jù)(偽廣播)

  • 除了TPC和UDP之外還有很多其它協(xié)議,有的協(xié)議就可以盡可能的兼顧到可靠性和效率(兼顧可靠性和效率,付出的代價(jià)可能激素會(huì)更多的機(jī)器資源)

    總結(jié)

    以上是生活随笔為你收集整理的网络编程(五) ———— 万字详解TCP协议的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    亚洲精品88欧美一区二区 | 国产成人精品亚洲日本在线观看 | 精品国产一区二 | 中文字幕第一页在线视频 | 在线亚州 | 久久久久久久久久毛片 | 久久99免费观看 | 天天操天天色天天射 | 国产视频色 | 美女视频a美女大全免费下载蜜臀 | 91豆花在线| 狠狠躁夜夜躁人人爽超碰91 | 日韩欧美aaa | 2024国产在线 | 欧美色图东方 | 99精品免费视频 | 97色资源 | 久久国产精品久久精品国产演员表 | 一区二区三区在线免费观看视频 | 亚洲成人黄色网址 | 久久开心激情 | 91爱爱免费观看 | 在线成人国产 | 欧美福利视频一区 | 国产精品美女在线观看 | 亚州成人av在线 | 成人黄色电影视频 | av电影中文字幕 | 色婷婷综合久久久久 | 丰满少妇在线观看 | 九色91在线视频 | 欧美做受高潮 | 黄色片视频免费 | 国产美女久久久 | 在线观看中文字幕亚洲 | 97在线观看视频国产 | 精品9999 | 不卡视频在线 | 国产精品videoxxxx | 日本特黄一级片 | 国产免费二区 | 97精品国自产拍在线观看 | 天天躁天天躁天天躁婷 | 亚洲激情国产精品 | 亚洲精品九九 | 日韩中文字幕一区 | 国产美女网站视频 | 成人影视免费看 | 国产精品视频全国免费观看 | 国产高清av免费在线观看 | 精品主播网红福利资源观看 | 99性视频| 国产亚洲精品久久19p | 午夜影视剧场 | 成人一区不卡 | 久久久精品成人 | 欧美狠狠操 | 欧美日韩高清一区二区 国产亚洲免费看 | 天天插夜夜操 | 青青久视频| 丁香花五月 | 久久夜色精品国产欧美乱 | 91尤物国产尤物福利在线播放 | 98涩涩国产露脸精品国产网 | 国产99久久九九精品 | 三级毛片视频 | 成人av片免费观看app下载 | 免费黄色网址大全 | www.久久久精品 | 久久久亚洲网站 | 欧美一二三区播放 | 国产精品久久精品国产 | 婷婷五综合| 色婷婷狠狠五月综合天色拍 | 欧美 亚洲 另类 激情 另类 | 在线观看 国产 | 久久视频这里只有精品 | 91亚色免费视频 | 日韩在线视频免费观看 | 人人澡人人爽欧一区 | 国产视频资源在线观看 | 亚洲无在线 | 免费在线激情电影 | 香蕉视频亚洲 | 欧美另类xxx| 久久视频在线观看 | 一区二区三区免费在线观看视频 | 亚洲毛片在线观看. | 精品亚洲欧美无人区乱码 | 激情图片久久 | www久草| 国产一区二区在线免费视频 | 久久精彩 | 免费看的毛片 | 成人av日韩 | 日韩一二三在线 | 51久久成人国产精品麻豆 | 69国产精品成人在线播放 | 亚洲最新在线视频 | 色婷婷a | 欧美日韩一区二区三区视频 | 日韩女同一区二区三区在线观看 | 在线亚洲欧美日韩 | 视频一区二区视频 | 免费黄色在线播放 | 欧美日韩国产综合一区二区 | 黄色毛片电影 | av电影在线观看完整版一区二区 | 久久视频在线观看 | 欧美日韩高清一区二区 | 色国产精品一区在线观看 | 欧美成人中文字幕 | 日本精品视频在线 | 极品中文字幕 | 国产精品久久一区二区无卡 | 国产精品久久久久久久久久久杏吧 | 日韩视频一二三区 | 婷婷久久丁香 | 在线观看mv的中文字幕网站 | 久精品在线 | 日韩精品一区二区三区电影 | 欧美日韩高清在线 | 不卡av免费在线观看 | 国产小视频在线观看 | 亚洲欧美日韩一级 | 日韩大片在线播放 | 午夜手机电影 | 中文字幕资源网 | 国产精品入口麻豆www | 日韩精品不卡在线观看 | 二区三区在线视频 | 五月激情天 | 三级动态视频在线观看 | 四虎在线观看精品视频 | 国产精品久久久久影院日本 | 亚洲国产精品一区二区久久,亚洲午夜 | 在线导航av | 亚州精品天堂中文字幕 | 在线观看亚洲 | 毛片永久新网址首页 | 久久久精品网站 | 国产综合视频在线观看 | 视频国产 | 国产淫a| 黄色在线观看免费网站 | 久草视频观看 | 麻豆传媒一区二区 | 亚洲高清av在线 | 在线一区观看 | 永久免费毛片 | 婷婷夜夜 | 97超碰精品| 一区 二区电影免费在线观看 | 久久超级碰视频 | 国产精品美女 | 丁香网婷婷 | 黄a网 | 久久久久久久久免费视频 | 天天爽夜夜爽人人爽曰av | 深爱激情亚洲 | 日韩久久一区二区 | av免费看在线 | 国产成人精品一区二区三区在线 | 天天射天天搞 | 97在线看| 91传媒免费在线观看 | 精品99免费 | 久久99精品久久久久久清纯直播 | 午夜精品剧场 | 国产精品一区一区三区 | 97碰在线视频 | 国产精品免费久久久 | 96香蕉视频 | 久久99精品热在线观看 | 在线免费日韩 | 97视频免费观看 | 国产精品999久久久 久产久精国产品 | 中文字幕视频观看 | 丝袜美腿亚洲综合 | 国产一级一级国产 | 日韩精品一区二区在线观看 | 亚洲日本va在线观看 | 9草在线 | 天天操天天爱天天爽 | 国产精品福利一区 | 蜜臀av性久久久久蜜臀av | 欧美精品小视频 | 日本精品视频一区二区 | 亚洲国产中文字幕在线 | 国产中文字幕一区二区三区 | 少妇视频一区 | 欧美精品资源 | 亚洲精品乱码久久久久久 | 国产黄在线 | 欧美一区二区免费在线观看 | 国产精品av免费 | 亚洲区视频在线 | 久久国产精品免费看 | 成年人免费看 | 99色婷婷| 一区二区成人国产精品 | 欧美另类亚洲 | 欧美日韩亚洲在线 | 二区三区精品 | 日韩高清一 | 亚洲免费观看视频 | 色狠狠操 | 免费观看www7722午夜电影 | 丁香六月婷婷 | 亚洲国产偷 | 国产精品自产拍在线观看蜜 | 日韩免费久久 | 亚洲国产小视频在线观看 | 久久久久在线 | 免费在线观看av的网站 | 亚洲精品三级 | 日日夜夜噜 | 成人小视频在线观看免费 | 九色精品免费永久在线 | 成 人 免费 黄 色 视频 | av免费网站观看 | 久久久久久国产精品999 | 99欧美 | 久久草在线视频国产 | 欧美成人h版 | 欧美日韩国产精品一区 | 国产精品欧美久久久久天天影视 | 精品国产综合区久久久久久 | 91精品啪在线观看国产 | 欧美日韩久久久 | 97在线视频免费看 | 久久精品艹 | av一本久道久久波多野结衣 | 欧美少妇bbwhd | 特级西西人体444是什么意思 | 麻豆国产网站入口 | 最新中文字幕在线播放 | 免费69视频 | 天天操操操操操操 | 一级性av| 久久99久国产精品黄毛片入口 | 久久久国产高清 | 国产成人精品一区二区三区福利 | www.亚洲黄| 在线激情小视频 | 天天操天天操 | 免费在线观看av网址 | 狠狠色伊人亚洲综合成人 | 久久精品一二三区白丝高潮 | 色婷婷综合久久久 | 日韩在线观看第一页 | 欧美日韩精品免费观看视频 | 亚洲天堂网视频 | 久久精品在线视频 | 免费下载高清毛片 | 欧美在线aa | 国产精品原创视频 | 亚洲精品久久久久久中文传媒 | av在线精品 | 91精品国产亚洲 | 久久久久久高清 | 婷婷亚洲五月 | 亚洲精品在线二区 | 福利久久久 | 97精品国产| 久久久国产精品视频 | 欧美日韩精品二区第二页 | 久久久久久视频 | 精品一区二区av | 97成人资源站 | 日韩中文字幕91 | 欧美成人h版电影 | 91精品国产三级a在线观看 | 国产精品久久久久久久av大片 | 四虎成人精品在永久免费 | 亚洲精品2区 | 国产一区二三区好的 | 久久夜夜爽 | 日韩精品一区二区在线视频 | 亚洲精品videossex少妇 | 久久免费一 | 成人精品国产 | 久久久久久毛片精品免费不卡 | 久久久久久毛片精品免费不卡 | 国产精品人成电影在线观看 | 欧美大片mv免费 | 91色国产 | 婷婷五天天在线视频 | 丁香电影小说免费视频观看 | 91av官网| 亚洲区另类春色综合小说 | 五月婷婷六月丁香在线观看 | 日韩av免费在线电影 | 久久99久久久久 | 在线观看亚洲免费视频 | 91看片黄色| 色无五月 | 国产日韩在线观看一区 | 国产精品毛片网 | 国产青春久久久国产毛片 | 午夜天使| 亚洲天堂视频在线 | 欧美久久精品 | 欧美日韩一区二区视频在线观看 | 日韩精品无码一区二区三区 | 在线观看精品黄av片免费 | 伊人天天色 | 日韩在线精品 | 97超碰资源站 | 中文字幕高清免费日韩视频在线 | 91桃色免费观看 | 久久精视频 | 亚洲精品中文字幕视频 | 日韩视频一区二区三区在线播放免费观看 | 久久久免费看片 | 超碰97公开 | 久久精品高清视频 | 欧美韩国日本在线观看 | 亚洲一区二区三区精品在线观看 | 黄色大全视频 | 一二三区在线 | 国产视频一二三 | 黄色片免费在线 | av中文资源在线 | 久久久污| 99视频在线免费观看 | av在线免费不卡 | 男女视频久久久 | 波多野结衣在线中文字幕 | 在线观看日韩国产 | 久久狠狠亚洲综合 | 天天射天天操天天干 | 在线免费观看av网站 | 激情偷乱人伦小说视频在线观看 | 国产精品成人一区二区三区 | 国产精品96久久久久久吹潮 | 日韩午夜一级片 | 91热视频在线观看 | 丁香五婷| av在线h | 一二三区在线 | 久久综合九色综合欧美狠狠 | 国产亚洲精品女人久久久久久 | 日韩av高潮 | 五月天激情综合 | 免费看国产一级片 | 日本一区二区三区免费观看 | 欧美一级日韩三级 | 超碰免费公开 | 国产免费国产 | 婷婷5月色 | 九九热免费精品视频 | 免费在线黄网 | avwww在线 | 91av色 | 久久久精品国产免费观看一区二区 | 91av播放| 韩国在线视频一区 | 日韩成片 | 久草视频99 | 精品毛片一区二区免费看 | 精品一区二区在线看 | 国产高清在线观看av | www.福利视频 | 国产精品久久久久高潮 | 国产在线播放观看 | 88av网站| 天天干天天综合 | 久久精品电影院 | av在线收看 | av网站免费在线 | 久久夜色精品国产亚洲aⅴ 91chinesexxx | 久久国产精品系列 | 不卡中文字幕在线 | 人人干狠狠操 | 99久久精品一区二区成人 | 亚洲精品美女在线 | 国产精品99久久久久久大便 | 久精品视频在线观看 | 狠狠地操| 亚洲国产小视频在线观看 | 97精品国自产拍在线观看 | 天天色.com | 国产最新精品视频 | 六月色婷 | 色先锋资源网 | 亚洲成人一二三 | 欧美视频网址 | 久久免费看毛片 | 亚洲资源在线 | 久久撸在线视频 | 精品v亚洲v欧美v高清v | 日韩区欠美精品av视频 | 一区二区三区四区精品视频 | 97超碰人人澡人人爱学生 | 久久久蜜桃 | 国产视频一区在线 | 成人一区在线观看 | 国产精品九九久久久久久久 | 亚洲国产精品一区二区久久,亚洲午夜 | 亚洲色综合 | 深爱激情五月网 | 97视频网站 | 日韩h在线观看 | 国内精品久久久久久久97牛牛 | 美国av大片 | 成人动漫一区二区三区 | 久久久精品| 久久9999久久 | 探花视频在线版播放免费观看 | 国产精品一区二区在线免费观看 | 国产一区二区高清视频 | 国产一级性生活 | 亚洲视频一区二区三区在线观看 | 久久在线电影 | 国产不卡片 | 日韩在线观看的 | 丝袜少妇在线 | 国产拍揄自揄精品视频麻豆 | 狠狠干我| 国产91丝袜在线播放动漫 | 亚洲最大激情中文字幕 | 8x成人免费视频 | 久草视频在线新免费 | 国产专区一 | 国产亚洲精品久久久久久久久久 | 欧美精品乱码久久久久久按摩 | 91丨九色丨蝌蚪丰满 | 2022国产精品视频 | 日日夜夜天天 | 免费福利片 | 日韩欧美在线观看 | 亚洲国产丝袜在线观看 | 婷婷精品在线 | 91成人精品在线 | 国产精品亚洲片夜色在线 | 亚洲国产精品视频 | 91chinese在线 | 亚洲精品理论 | 69av视频在线观看 | 久久xx视频 | 九草视频在线 | 欧美一区二区三区免费观看 | 精品在线免费视频 | 亚洲精品玖玖玖av在线看 | 亚洲婷婷综合色高清在线 | 国产高清在线免费观看 | 手机av在线不卡 | 国产99久久久久久免费看 | 久久狠狠一本精品综合网 | 午夜精品一区二区三区可下载 | 激情网五月 | 久久九九久久九九 | 99热这里只有精品在线观看 | 免费在线观看污网站 | 91麻豆精品一区二区三区 | 成人av在线影视 | freejavvideo日本免费 | 黄色影院在线播放 | 亚洲欧美日韩精品久久奇米一区 | 亚洲黄网站 | 97人人超| 看国产黄色大片 | 92中文资源在线 | 亚洲精品在线免费 | 精品国产欧美一区二区三区不卡 | 九九视频精品在线 | 日本精品一区二区在线观看 | 日韩视频在线一区 | 亚洲网站在线 | 99精品在线视频播放 | 成片人卡1卡2卡3手机免费看 | 国产成人精品av在线观 | 国产精品手机在线 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 99视频这里只有 | 日韩免费视频在线观看 | 91在线中字 | 国产亚洲综合精品 | 亚洲成人国产 | 久久综合久久鬼 | 国产成人精品免高潮在线观看 | 精品欧美一区二区三区久久久 | 日韩av男人的天堂 | av线上免费观看 | 亚洲乱码国产乱码精品天美传媒 | 九九久久视频 | 国产精品久久在线观看 | 亚洲成av人影院 | 亚洲视频久久久 | 国产一区二区在线精品 | 欧美视频国产视频 | www在线免费观看 | 日本久久免费电影 | 九九爱免费视频在线观看 | 中文字幕在线观看第一页 | 欧美精品视 | 黄色三级在线观看 | 中文字幕亚洲在线观看 | 最近字幕在线观看第一季 | 99re久久资源最新地址 | 在线免费av播放 | 91精品久久久久久粉嫩 | 国产精品三级视频 | 777视频在线观看 | 中文字幕免费 | 日韩欧美在线观看一区二区三区 | 欧美精品久久久久久久久老牛影院 | 欧美激情综合五月 | 日本久久久久久久久 | 91精品夜夜| 色婷婷视频在线 | 国产一区二区三区四区大秀 | 日日日操操 | 91av在线免费看 | 97国产大学生情侣酒店的特点 | 91视频在线观看下载 | 久久久噜噜噜久久久 | 五月婷婷激情五月 | 插插插色综合 | 精品在线你懂的 | 国产一二区视频 | 久青草视频在线观看 | 婷婷免费在线视频 | 亚洲最快最全在线视频 | a天堂免费 | 欧美日韩亚洲第一页 | 国产高h视频 | 欧美精品一区在线发布 | 91精品一区二区三区蜜桃 | 91最新国产 | 日本乱码在线 | 欧美一区,二区 | 国产在线观看你懂得 | 丝袜制服综合网 | zzijzzij日本成熟少妇 | 婷婷色综合 | 天天色影院| 亚洲欧美日韩精品一区二区 | 精品高清美女精品国产区 | 黄色国产在线 | 人人爽久久久噜噜噜电影 | 精品久久网 | 亚洲黄色一级视频 | 国产清纯在线 | 欧美另类调教 | 91欧美国产 | 久久视频这里有久久精品视频11 | 中文字幕在线不卡国产视频 | 狠狠色综合欧美激情 | 中文在线a天堂 | 午夜免费福利视频 | 91视频91色 | 一本到视频在线观看 | 在线观看av免费观看 | 婷婷色在线观看 | 伊人中文字幕在线 | 99色在线播放 | av成人免费在线 | 91插插影库| 国产伦理久久精品久久久久_ | 欧美日韩天堂 | 在线观看国产www | 国产资源精品在线观看 | 亚洲视频每日更新 | 久久精品中文字幕一区二区三区 | www久久九 | 久久久久免费精品国产 | 91免费观看网站 | 久久9视频 | 91在线看黄| 国产成人精品日本亚洲999 | 久久人人爽人人片av | 亚洲国产日韩在线 | 亚洲国产黄色 | 五月天婷婷视频 | 91成人免费看 | 欧美精品在线观看免费 | 成人97视频 | 国产精品久久久久久久久婷婷 | 一区二区三区免费在线观看 | 91久久国产综合精品女同国语 | 91精品人成在线观看 | 国产成人精品av | 黄色资源在线观看 | 91黄色成人 | 国产精品日韩欧美一区二区 | 中文字幕一区二区三区在线播放 | 亚洲精品中文在线 | 国产精品乱码久久久久 | 热久久视久久精品18亚洲精品 | 在线观看91视频 | 欧美色噜噜噜 | 久久久久久免费毛片精品 | 国产欧美日韩一区 | 麻豆传媒在线视频 | 日批视频在线 | 懂色av一区二区三区蜜臀 | 国产剧情在线一区 | 91亚洲国产成人 | 视频成人永久免费视频 | 最近中文字幕免费av | www.狠狠干| 亚洲精品视频www | 在线免费视频你懂的 | 精品亚洲欧美一区 | 久久a久久 | 国产三级在线播放 | 在线国产中文字幕 | 亚洲精品三级 | 色偷偷97 | 精品一区二区免费在线观看 | 91理论电影 | 日韩高清国产精品 | 色综合色综合色综合 | 福利视频入口 | 国产最新在线视频 | 特级西西444www大胆高清无视频 | 久久久久久久久影视 | 九九九热精品免费视频观看 | 91成人精品一区在线播放 | 91av在线播放 | 日韩一区二区三区在线看 | 97av影院| 国产一级性生活视频 | 久久久久久久久久久久久久电影 | 亚洲激情免费 | 五月婷婷,六月丁香 | 国产拍揄自揄精品视频麻豆 | 日韩久久在线 | 亚洲国产一区在线观看 | 性日韩欧美在线视频 | 天天做综合网 | 韩国三级一区 | 在线 高清 中文字幕 | 国产a高清 | 一区二区三区污 | 在线观看黄色大片 | 日韩欧美在线视频一区二区三区 | 国产 日韩 欧美 在线 | 国产精品理论视频 | 亚洲一区二区黄色 | 99精品视频免费观看视频 | 欧美巨大荫蒂茸毛毛人妖 | 六月丁香在线观看 | 国产一区二区三区久久久 | 日韩中文字幕电影 | 免费久久网站 | 亚洲黄色小说网 | 免费看wwwwwwwwwww的视频 久久久久久99精品 91中文字幕视频 | 中文字幕 欧美性 | 超碰在线97国产 | 丁香九月激情综合 | 日韩黄在线观看 | 99久久久久久久久 | 免费a视频 | 国产理伦在线 | 天天草av | 亚洲精品毛片一级91精品 | 国产在线小视频 | 五月天激情婷婷 | 久久精品人 | 精品uu | 香蕉蜜桃视频 | 香蕉在线播放 | 中文字幕精品在线 | 欧美性色黄大片在线观看 | 婷婷综合国产 | 亚洲天堂网视频在线观看 | 91亚洲综合 | 天天操天天射天天爱 | 中文字幕欧美三区 | 国产成人a v电影 | 久久人视频 | 婷婷激情欧美 | 91丨九色丨91啦蝌蚪老版 | 九九视频精品免费 | 国产成人一区二 | 免费的黄色av | 天天躁日日躁狠狠躁av中文 | 亚洲 综合 激情 | 国产做a爱一级久久 | 久久久免费国产 | 大荫蒂欧美视频另类xxxx | www.com.日本一级 | av爱干 | 欧美韩国日本在线观看 | 五月天婷亚洲天综合网精品偷 | 女人18毛片a级毛片一区二区 | 伊人婷婷久久 | 中文字幕一区二区在线播放 | 人人玩人人添人人 | 久久久精品欧美 | 国产精品久久久久久久久毛片 | 日本高清中文字幕有码在线 | 91综合视频在线观看 | 中文字幕 国产精品 | 麻豆免费视频观看 | 亚洲永久精品一区 | 亚洲国产精品人久久电影 | 中文字幕视频播放 | 国产精品一区二区三区在线看 | 色在线视频网 | 在线观看你懂的网址 | 在线观看亚洲国产精品 | 美女网站视频免费都是黄 | 国产永久免费高清在线观看视频 | 免费观看一区二区三区视频 | 91网免费看 | av天天色| 国产精品免费观看国产网曝瓜 | 亚洲精品美女免费 | 国产精品久久久av久久久 | 日日爱视频 | 日本久久影视 | 国产精品国产三级国产不产一地 | 在线不卡a | 日本在线精品视频 | 黄色影院在线播放 | 久久综合精品一区 | 999色视频| 涩av在线 | 久久99婷婷| 最新国产精品久久精品 | 成人a级黄色片 | 欧美aaa视频 | 国产日产av | 在线成人av | 日日干夜夜操视频 | 日韩在线无 | 成年人免费av | 久久精品国产亚洲精品 | 免费高清av在线看 | 国产成人免费网站 | 在线观看一区视频 | 成人免费在线视频观看 | 激情久久五月 | 中文字幕在线免费播放 | 国产+日韩欧美 | 国产成人精品一区二区三区免费 | www.一区二区三区 | 国产精品久久久久国产精品日日 | 日日干天天爽 | 日韩中字在线 | 国产1区在线 | 99色网站 | 国产又粗又硬又爽视频 | 午夜三级影院 | 久久精品一二三 | 手机成人在线电影 | 园产精品久久久久久久7电影 | 97视频播放 | www黄色| 国产精品久久久久久久久软件 | 色91av | 91香蕉国产在线观看软件 | 色吊丝av中文字幕 | 欧美日韩视频在线播放 | jizzjizzjizz亚洲 | 国产亚洲精品久久久久久无几年桃 | 日本九九视频 | 婷婷色狠狠 | 亚洲最大av网 | 在线一区观看 | 国产美女在线观看 | 亚洲网站在线看 | 三级视频国产 | 日韩在线高清视频 | 青青草视频精品 | 日韩精品在线看 | 国产成人一区二区啪在线观看 | 日本中文字幕在线播放 | 国产精品视频内 | www.69xx| 成人精品99 | 久久成 | 97理论片| 一区二区三区高清不卡 | 天天操网站 | 久草在线| 激情在线网站 | 色婷婷狠狠五月综合天色拍 | 国产精品久久久久久久久大全 | 91网址在线观看 | 99久久婷婷国产一区二区三区 | 久久久资源 | 国内毛片毛片 | 国产精品一区二区在线观看免费 | av高清影院 | 成人在线播放av | 久久狠狠亚洲综合 | 日本中文字幕在线看 | 91porny九色91啦中文 | 久久精品视频网站 | a在线视频v视频 | 超碰在线公开免费 | 天天草天天草 | 欧美激情第28页 | 久久99视频免费观看 | 黄色一集片 | 午夜精品一二三区 | 五月天婷婷视频 | 精品久久久久久久久久久久久久久久久久 | 69久久夜色精品国产69 | 中文字幕在线不卡国产视频 | 日韩国产精品一区 | 国产第一页在线播放 | 草樱av | 18女毛片 | 中文字幕av专区 | 99免费国产| 国产中文字幕视频在线 | 久久久毛片 | 九九视频这里只有精品 | 亚洲色影爱久久精品 | 一级黄色在线免费观看 | 99久久精品国产观看 | 综合网久久 | 黄色三级免费片 | 9999亚洲| 91伊人久久大香线蕉蜜芽人口 | 91理论片午午伦夜理片久久 | 91探花国产综合在线精品 | 亚洲国产成人精品在线观看 | 欧美激精品 | 九九电影在线 | 99久久夜色精品国产亚洲 | 91资源在线播放 | 精品久久国产一区 | 91精品国产自产在线观看永久 | 免费在线观看国产黄 | 国产一区二区三区免费在线观看 | 91精品天码美女少妇 | 香蕉在线观看视频 | 国产一区欧美一区 | 五月天亚洲综合 | 国产精品热视频 | 免费视频你懂得 | 国产免费片 | 午夜精品久久久久久久久久久久久久 | 精品自拍网 | 国产一区福利在线 | 人人射人人爽 | 久久久久久久久福利 | 国产专区日韩专区 | 亚洲黄色区 | 色视频在线免费观看 | 午夜天使 | 国产一级一片免费播放放 | 午夜久久精品 | 久久97久久 | 久久久999免费视频 日韩网站在线 | 在线看国产视频 | 国内精品久久久久久久久久清纯 | 午夜的福利 | 精品欧美一区二区在线观看 | 这里只有精品视频在线 | 超碰人人舔 | 亚洲激情婷婷 | 狠狠色综合欧美激情 | 热久久视久久精品18亚洲精品 | 国产91在线看 | 99在线观看视频网站 | 狠狠gao | 亚洲综合成人专区片 | 国产精品免费高清 | 日韩久久精品一区二区三区下载 | 韩国av在线播放 | 久久久麻豆精品一区二区 | 精品国产免费观看 | 在线免费观看亚洲视频 | 成年人免费看片网站 | 亚州成人av在线 | 粉嫩高清一区二区三区 | 毛片无卡免费无播放器 | 午夜电影 电影 | 亚洲精品影视在线观看 | 在线欧美日韩 | 欧美日韩一区二区免费在线观看 | 96视频在线 | 久久久一本精品99久久精品 | 麻豆一区在线观看 | 国际精品久久久久 | 日韩成人免费在线观看 | 国产精品无av码在线观看 | 91在线视频免费播放 | 亚洲精品久久久蜜臀下载官网 | 中文字幕高清视频 | 天天插夜夜操 | 日韩一区二区三区高清在线观看 | 欧美在线日韩在线 | 精选久久| 狠狠狠狠狠狠天天爱 | 97国产大学生情侣酒店的特点 | 精品久久精品 | 超碰人人99 | 亚洲综合网| 成人免费在线观看入口 | 精品久久久亚洲 | 久久精品日产第一区二区三区乱码 | 91精品久久久久久久久久入口 | 日韩精品中文字幕在线 | 亚洲成人一区 | 美女黄频视频大全 | 国产精品久久久久影院日本 | 国产一区二区在线播放 | 国产成人精品亚洲 | 成人在线免费视频 | 天堂入口网站 | 日韩欧美国产激情在线播放 | 人人干人人干人人干 | 日韩黄色免费 | 精品在线播放视频 | 国产麻豆精品95视频 | 久久久免费看 | 日本视频不卡 | 日韩黄色免费在线观看 | 伊人午夜 | 色丁香婷婷 | 久久精品一区二区三区视频 | 欧美日韩性视频在线 | 中文字幕av影院 | 精品久久久久久久久亚洲 | 久久爱992xxoo| 久久理论电影网 | 97在线影院 | 亚洲伊人av| av福利在线导航 | 日本中文在线播放 | 日本久热| 97视频总站 | 免费美女久久99 | 亚洲国产欧美在线看片xxoo | 伊人婷婷久久 | 亚洲日韩中文字幕 | 有码一区二区三区 | 亚洲精品在线观看免费 | 97超碰国产精品女人人人爽 | 高清av在线免费观看 | 免费在线黄色av | 丁香婷婷色综合亚洲电影 | 91福利视频免费 | 美女av免费看 | 久久久这里有精品 | 天天色天天 | 久久综合九色综合97婷婷女人 | 在线观看av中文字幕 | 一区二区三区高清在线 | 日韩免费电影网 | 精品产品国产在线不卡 | 99精品视频免费全部在线 | 在线国产观看 | 色综合久久综合网 | 久久人人爽人人爽人人 | 色成人亚洲 | av天天在线观看 | 美女很黄免费网站 | 国产精品久久久久久久久久东京 | 国产精品理论在线观看 | 日本视频不卡 | 国产精品国产精品 | 欧美日韩aaaa | 在线免费观看成人 | wwwwwww黄| 五月激情婷婷丁香 | 中文字幕在线观看网址 | 97精品国产97久久久久久免费 | a黄色片在线观看 | 国产精品嫩草影院99网站 | 日本黄色免费在线 | 超碰99在线| 国产亚洲精品美女 | 欧美精品在线视频 | 波多野结衣视频一区二区三区 | 91在线免费观看网站 | 国产亚洲欧美在线视频 | 中文字幕在线免费97 | 96国产在线 | 欧美经典久久 | 日本免费久久高清视频 | 国产精品入口麻豆www | 欧日韩在线视频 | 四虎影视精品永久在线观看 | 日韩xxxbbb | 国产五月天婷婷 | 中文字幕国产一区二区 | 91精品中文字幕 | 玖玖爱在线观看 | 欧美另类sm图片 | 国产乱对白刺激视频在线观看女王 | 中文字幕在线视频一区二区 | 亚洲精品视频在线免费 | 高清久久久| 91麻豆精品国产91久久久久久 | 亚洲一级黄色片 | 毛片网站免费在线观看 | 久久久久在线视频 | 99热这里精品 |