簡體   English   中英

消息大小在RTT上的意義:簡單的Java Server / Client Socket程序

[英]Significance of Message Size on RTT: Simple Java Server/Client Socket program

我有一個簡單的Java服務器/客戶端TCP套接字程序,可以計算rtt。 我這樣做的方法是,讓客戶端為其外發消息加上時間戳,然后服務器在收到消息時為其添加時間戳,最后,當消息返回至客戶端時,服務器為其添加另一個時間戳。

好吧,我最終得到的結果有點奇怪。 我繪制了消息大小與往返時間的關系圖,最后得到一條直線,而不是線性增加。

有人可以解釋為什么會這樣嗎?

首先,我認為您不需要在服務器端對消息進行時間戳記。 您只需要在發送數據包時添加發送時間,然后您就可以計算出與響應返回給客戶端的當前時間的差(當然,服務器需要在回復中復制send_time)。

注意: 如果您的服務器需要“很長時間”執行,那么服務器將需要在數據包中添加某種“處理時間”信息。

RTT = (cur_clientTime_when_response_is_received - time_sent) - time_to_server_process

該公式的優點是不必關心客戶端和服務器時鍾之間的時間差異。

直線是可以解釋的,因為發送數據的時間差異在統計上與克服網絡層中引入的隨機性無關,因為它不是實時媒體,並且因為與其他應用程序和主機共享(如果您使用的是虛擬機)網絡交換機。 無論如何,不​​要費心增加字母的數量,底層協議將為每個TCP數據包占用最多MTU (通常為1500)字節:仍然不夠。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM