第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何測(cè)量在 Go 語言中創(chuàng)建的并發(fā) UDP 服務(wù)器和客戶端中的 RTT/延遲?

如何測(cè)量在 Go 語言中創(chuàng)建的并發(fā) UDP 服務(wù)器和客戶端中的 RTT/延遲?

Go
慕絲7291255 2022-12-05 17:27:37
我能夠運(yùn)行并發(fā) UDP 服務(wù)器并將 UDP 客戶端連接到該并發(fā)服務(wù)器。但是,我想知道如何測(cè)量這個(gè) UDP 服務(wù)器的延遲。出于某種原因,Linux 中的 Netcat 命令不起作用,但它們與 TCP 配合得很好。我似乎無法測(cè)量它,因?yàn)槲以谖业臋C(jī)器上托管此服務(wù)器并且我正在嘗試測(cè)量延遲。此外,很多UDP客戶端可以同時(shí)連接到UDP服務(wù)器,似乎有一個(gè)很高的限制。我應(yīng)該改為創(chuàng)建一個(gè) docker 容器并在路由器上運(yùn)行它,然后測(cè)量路由器的延遲嗎?你將如何進(jìn)行?下面是 UDP Web 服務(wù)器的代碼:package mainimport (    "fmt"    "math/rand"    "net"    "os"    "strconv"    "strings"    "time")func random(min, max int) int {    return rand.Intn(max-min) + min}func main() {    arguments := os.Args    if len(arguments) == 1 {        fmt.Println("Please provide a port number!")        return    }    PORT := ":" + arguments[1]    s, err := net.ResolveUDPAddr("udp4", PORT)    if err != nil {        fmt.Println(err)        return    }    connection, err := net.ListenUDP("udp4", s)    if err != nil {        fmt.Println(err)        return    }    defer connection.Close()    buffer := make([]byte, 1024)    rand.Seed(time.Now().Unix())    for {        n, addr, err := connection.ReadFromUDP(buffer)        go func() {            fmt.Print("-> ", string(buffer[0:n-1]))            fmt.Println(addr.String())            if strings.TrimSpace(string(buffer[0:n])) == "STOP" {                fmt.Println("Exiting UDP server!")                return            }            data := []byte(strconv.Itoa(random(1, 1001)))            fmt.Printf("data: %s\n", string(data))            _, err = connection.WriteToUDP(data, addr)            if err != nil {                fmt.Println(err)                return            }        }()    }}
查看完整描述

1 回答

?
MMMHUHU

TA貢獻(xiàn)1834條經(jīng)驗(yàn) 獲得超8個(gè)贊

我能夠運(yùn)行并發(fā) UDP 服務(wù)器并將 UDP 客戶端連接到該并發(fā)服務(wù)器。但是,我想知道如何測(cè)量這個(gè) UDP 服務(wù)器的延遲。


為了測(cè)量單向延遲,您需要在 UDP 段有效負(fù)載中發(fā)送一個(gè)時(shí)間戳,然后檢查接收器中經(jīng)過的時(shí)間。


要獲得 RTT 延遲,您可以在有效負(fù)載中發(fā)送時(shí)間戳,讓接收方反彈數(shù)據(jù)包,在發(fā)送方接收它,然后最后檢查經(jīng)過的時(shí)間。


跨網(wǎng)絡(luò)測(cè)量單向延遲將很困難,因?yàn)槟枰诎l(fā)送方主機(jī)和接收方主機(jī)中使用高精度同步時(shí)鐘。因此,跨網(wǎng)絡(luò),通常人們只測(cè)量抖動(dòng)和 RTT 延遲,而不是單向延遲。


出于某種原因,Linux 中的 Netcat 命令不起作用,但它們與 TCP 配合得很好。


netcat 可以很好地與 UDP 配合使用。也許您錯(cuò)過了 -u 開關(guān)?


$ nc -l -u -p 8080 &

[1] 2171

$ echo hi | nc -u localhost 8080

hi

我似乎無法測(cè)量它,因?yàn)槲以谖业臋C(jī)器上托管此服務(wù)器并且我正在嘗試測(cè)量延遲。此外,很多UDP客戶端可以同時(shí)連接到UDP服務(wù)器,似乎有一個(gè)很高的限制。


為了準(zhǔn)確起見,UDP是一種無連接協(xié)議,所以我們通常不說用UDP連接,而只說發(fā)送和接收數(shù)據(jù)報(bào)。


查看完整回答
反對(duì) 回復(fù) 2022-12-05
  • 1 回答
  • 0 關(guān)注
  • 176 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)