TTCP簡介
- TTCP是一種應(yīng)用層協(xié)議同廉。
- 主要用途:檢測TCP連接的吞吐量符衔。
- 如何實(shí)現(xiàn):客戶端向服務(wù)端發(fā)送一個(gè)包奈辰,服務(wù)端收到返回確認(rèn)信息(ack)峻呛,當(dāng)客戶端收到服務(wù)端確認(rèn)信息后罗售,繼續(xù)發(fā)送..... 循環(huán)指定次數(shù)之后,由程序計(jì)算出帶寬杀饵。公式:帶寬 = length * number / time莽囤。
TTCP協(xié)議
在這里插入圖片描述
這里關(guān)于傳輸協(xié)議,可以設(shè)計(jì)兩個(gè)結(jié)構(gòu)體
typedef struct SessionMessage
{
int32_t number; //傳輸次數(shù)
int32_t length; //單次傳輸?shù)臄?shù)據(jù)長度
} SessionMessage;
typedef struct PayloadMessage
{
int32_t length; //單次傳輸?shù)拈L度
char data[0]; //存儲數(shù)據(jù)的首地址
} PayloadMessage;
代碼實(shí)現(xiàn)
C語言
基本要求:基本的Socket Api切距, socket朽缎, listen, bind, accept话肖, connect北秽, read/recv, write/send, close等最筒; c語言的基礎(chǔ)知識贺氓;
推薦書籍:繼續(xù)推薦【UNIX網(wǎng)絡(luò)編程 卷一】,另外推薦極客時(shí)間的【網(wǎng)絡(luò)編程實(shí)戰(zhàn)
】床蜘,寫的很nice辙培。
代碼實(shí)現(xiàn)很簡單,此處使用的為Block IO實(shí)現(xiàn)(純C)邢锯,此處不做過多介紹扬蕊,感興趣的小伙伴可以去碼云上了解。代碼地址:https://gitee.com/fysplh/TTCP.git