tcp_nodelay is option given to setsockopt system call:
socket程式設計中,tcp_nodelay選項是用來控制是否開啟nagle演算法,該演算法是為了提高較慢的廣域網傳輸效率,減小小分組的報文個數,完整描述:該演算法要求乙個tcp連線上最多只能有乙個未被確認的小分組,在該小分組的確認到來之前,不能傳送其他小分組。
這裡的小分組指的是報文長度小於mss(max segment
size)長度的分組(mss是在tcp握手的時候在報文選項裡面進行通告的大小,主要是用來限制另一端傳送資料的長度,防止ip資料報被分段,提高效率,一般是鏈路層的傳輸最大傳輸單元大小減去ip首部與tcp首部大小)。
如果小分組的確認ack一直沒有回來,那麼就可能會觸發tcp超時重傳的定時器。
**
int nagle_status =1;
int result =
setsockopt
(sock,
//socket的檔案描述符
ipproto_tcp,
tcp_nodelay,
(char*)
&nagle_status,
sizeof
(int))
;// 1 - on, 0 - off
if(result <0)
setsocket的文件 C C socket程式設計學習筆記
socket 是 套接字 的意思,是計算機之間進行通訊的一種約定,也可以認為是一種技術。學習 socket,就是學習計算機之間如何通訊,並能夠用程式語言開發出實用的程式。同時學習linux和windows的原因 大多數專案是在linux下開發伺服器端,而在windows下開發客戶端,需要經常在兩大平...
linux下C C socket程式設計
簡單的linux下socket程式設計,分別基於tcp和udp協議實現的簡單程式 linux下socket程式設計可以概括為以下幾個函式的運用 流程 server include include include include include int main int argc,char argv ...
C C socket網路程式設計掃盲篇
socket 是 套接字 的意思,是計算機之間進行通訊的一種約定,也可以認為是一種技術。通過 socket 這種約定,一台計算機可以接收其他計算機的資料,也可以向其他計算機傳送資料。學習 socket,就是學習計算機之間如何通訊,並能夠用程式語言開發出實用的程式。計算機分布在世界各地,要想和它們通訊...