亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Websocket 通信的延遲調試

Websocket 通信的延遲調試

手掌心 2024-01-27 14:53:48
我正在解決 websocket 的調試延遲問題。我正在嘗試通過其 websocket 接口從加密貨幣交易所接收一些價格信息。我們收到的數據包包括交換服務器上生成的時間戳。我記錄了我們在計算機(“客戶端盒子”)上接收報價信息的時間,并比較了到達時間和服務器生成時間之間的延遲。大多數刻度顯示幾十毫秒,這或多或少都不錯。但每天我們都會看到幾次延遲變成幾秒甚至十幾秒,我想弄清楚這些大延遲是從哪里來的。該系統使用Python編程語言,我正在使用的websocket模塊是( https://pypi.org/project/websocket_client/,https://github.com/websocket-client/websocket-client websocket-client),我嘗試在模塊內添加日志,看看是否是由于模塊處理時間造成的,但仍然沒有運氣。目前我腦海中的一個想法是使用tcpdump捕獲網絡流量并記錄tcp數據包到達我的網卡的時間。如果這次仍然存在延遲,我將沒有辦法,只能將程序移至同一位置的服務器。然而,我在這里遇到了困難,因為 websocket 連接是 SSL 加密的。因此我看不到消息中包含的刻度生成時間。這里有人有解決辦法嗎?尤其:websocket-client有沒有辦法從客戶端的python包中檢索SSL的私鑰?(我假設密鑰應該在本地某處可用,否則無法websocket-client解密數據本身。并且 WireShark 應該能夠解密 TSL1.2 協議的消息)如果用包來做到這一點并不容易websocket-client,我很樂意嘗試由 python、C/C++ 編寫的其他 websocket 庫。能否tcpdump獲取服務器發送TCP數據包時的時間戳(即使是服務器時間)?任何其他建議也將受到高度贊賞。多謝!我在 WireShark 中打開的 tcpdump 大部分如下所示 ,我可以在 Can 這些表明什么?中看到 TSval?TCP Option - Timestamps抱歉,可能有一些基本問題,確實缺乏這方面的經驗,再次感謝。
查看完整描述

1 回答

?
慕工程0101907

TA貢獻1887條經驗 獲得超5個贊

編輯

tcpdump能否獲取服務器發送TCP數據包時的時間戳(即使是服務器時間)?

打開您的捕獲并查看數據包是否具有 TCP 時間戳選項(如RFC 1323中定義,但在RFC 7323中有更好的解釋)。如果是這樣,第一個SYN數據包應該已經提到了它。

不幸的是,這些數據包中給出的TSval?(以毫秒為單位的時間戳值)的含義不是真實時鐘,并且并不總是像真實時鐘一樣變化(這取決于計算機使用的實現)。例如,如果與服務器的對話持續 60 秒,請檢查此 TSval 是否也從 60 秒移動,如果是,也許您可以使用此字段來跟蹤數據包的發送時間。



查看完整回答
反對 回復 2024-01-27
  • 1 回答
  • 0 關注
  • 319 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號