TCP 簡單記錄

2021-08-03 09:13:52 字數 673 閱讀 9222

tcp 是面向連線的協議,可靠地,基於位元組流的傳輸層通訊協議

可靠性: 滑動視窗協議,定時器

nagle為了避免傳送過多的小資料塊,傳送資料時如果資料的的大小沒有達到mss,並且連線上有資料還沒有ack,則不允許此次傳送。或者資料報在本地等待超過200ms時仍然沒有達到mss則立即傳送,可以理解為用時間換空間的一種做法

滑動視窗是tcp接收訊息的緩衝區,用於避免訊息。

a->b傳送資料:訊息中攜帶期待收到訊息的id,當前視窗大小。如果接收方的視窗為0, 傳送方則暫停傳送。這樣會導致傳送方始終不能傳送資料,為了解決這個問題傳送方需要乙個定時器,出現這種情況時定時傳送訊息探測接收方的視窗大小

tcp有四個定時器:

#include #include int main() 

bind(fd,&sockadd, sizeof(sockaddr));

listen(fd, 5);

while (accept(fd, &sockaddr, sizeof(sockaddr) != -1)

}

對於乙個已經失效的連線寫入時會接收到rst的ack,再次寫入時會接收到sigpipe,忽略這個訊號或者打乙個日誌即可

signal(sigpipe, sig_ign)

TCP 簡單介紹

由於專案需要,基於socket寫了乙個伺服器與客戶端的程式,越寫越體會到tcp協議的厲害之處,因此特地學習了一下,做下筆記 tcp俗稱傳輸控制協議,它是為應用層提供服務的,儘管tcp和udp都使用相同的網路層 ip tcp卻向應用層提供與udp完全不同的服務,tcp提供一種面向連線的,可靠的位元組流...

C 簡單TCP通訊

其中有部分是處理資訊,臨時需要 pragma once 標頭檔案 clinetnet.h 用於表示乙個客戶的網路操作 include include pragma comment lib,ws2 32.lib class cclientnet 客戶端的cpp include clientnet.h ...

TCP協議簡單總結

正常連線 客戶端 closed syn send established 伺服器 listen syn收到 established 正常關閉 客戶端 established fin wait 1 fin wait 2 time wait closed 服務端 established close wa...