日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UDT的连接建立和释放

發布時間:2023/12/14 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UDT的连接建立和释放 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

連接的建立和釋放

UDT有兩種建立連接的方式,C/S模式和聚合模式,在聚合模式中,各UDT Socket會同時向各方發出連接請求,類似于P2P模式。
在建立連接的過程中,UDT Client(聚合模式中的節點都是Client)會向UDT Server或者對端節點發出握手請求,握手請求報文是一個類型為0的控制包,其帶有如下的信息(假設A向B發握手):

1. UDT 版本:用于兼容性處理,目前版本是4。 2. Socket 類型:Socket類型,0代表Stream,1代表數據包。 3. 初始化序列號:第一個數據包的序列號,隨機值。 4. 包大小:數據包包含頭部信息的完整大小,一般設置為MTU的值。 5. 最大滑動窗口Flow Window大小:不是必須,但是在目前的實現里需要該值。 6. 連接類型:區分建立連接的方式 以及 request/response。 7. Socket ID:客戶端的UDT Socket ID。 8. Cookie:避免SYN洪水攻擊。 9. 對端IP地址:B的IP地址。

C/S模型建連

  • UDT Server首先啟動監聽器并接收request,為每個新的UDT Socket創建一個連接。
  • UDT Client以固定周期發送握手包,直到從Server收到握手的 response,或者超時結束。
  • UDT Server收到建連請求后,根據客戶端地址和自身密鑰生成一個cookie,然后將cookie送回客戶端,后續客戶端請求需要附帶該cookie
  • UDT Server收到握手包和正確的cookie后,將握手包中數據包大小值,滑動窗口值和自身設置的數據包大小,滑動窗口值進行比較,將其小者設置為后續使用值,然后將其同 “服務器版本”,”初始化序列號” 返回給客戶端。完成后UDT Server將開始準備接收數據,同時對收到的任意握手包,服務器都必須響應。
  • UDT Client在收到握手響應后即可開始發送數據,后續再收到的握手響應都拋棄掉。
  • UDT Client發出的連接類型為1,響應包為-1。
  • UDT Client需要檢查響應包的Server是否對應于請求包的Server。
  • 聚合模式(P2P模式)建連

  • 該模式下,各節點會同時向對方請求連接,初始的連接類型設置為0,當某節點收到類型為0的請求時,其返回類型為-1的響應。如果收到類型為-1的請求時(即上一步節點返回的-1類型),其返回類型為-2的響應。對于類型為-2的請求,不返回響應。
  • 各節點需對握手報文進行檢查,此處可以參考C/S模型。節點只會處理它已發送請求的對端所發送過來的請求。
  • 聚合模式的建連請求應當被UDT Server拒絕掉。
  • 節點在收到-1的響應時初始化連接
  • 該模式適用于有防火墻的網絡環境,并且在沒有UDT Server的情況下能提供較好的安全性和可用性。
  • 關閉連接

    如果一個UDT連接中的某節點想要關閉,則其會發送shutdown信息給對方,對方收到信息后也進行關閉操作。shutdown信息使用UDP進行傳遞,無法保證達到,此時會采取超時機制進行關閉,在16次連續 EXP 超時事件發生后,對端節點也會同樣進行關閉操作。在目前的實現中,總超時時間的上限為30秒,下限為3秒。

    總結

    以上是生活随笔為你收集整理的UDT的连接建立和释放的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。