傳輸資料的簡要過程如下:
(由於服務端傳送的包中確認收到了客戶端傳送的syn,故客戶端的序列號由0變為1)
1) 傳送資料:伺服器向客戶端傳送乙個帶有資料的資料報,該資料報中的序列號和確認號與建立連線第三步的資料報中的序列號和確認號相同;
2) 確認收到:客戶端收到該資料報,向伺服器傳送乙個確認資料報,該資料報中,序列號是為上乙個資料報中的確認號值,而確認號為伺服器傳送的上乙個資料報中的序列號+所該資料報中所帶資料的大小。
資料分段中的序列號可以保證所有傳輸的資料按照正常的次序進行重組,而且通過確認保證資料傳輸的完整性。
簡言之:三步握手的序列號和確認序列號變化:
syn包: seq number=0; ack number=0;
syn+ack包:seq number=(前乙個包的ack number)=0; ack number=1;(由於服務端傳送的包中確認收到了客戶端傳送的syn,故客戶端的序列號由0變為1);
接下來的資料報:1.seq number=(前乙個包的ack number)=1;ack number=1; (注意這個包有負載了,假設其負載資料大小為22)
再接下來的包2.seq number=(前乙個包的ack number)=1;ack number=(前乙個包的seq number+前乙個包的資料大小22)=23;
———————————————————————————分割線———————————————————————————
**如下:
1.以下為重點:第一,不能返回區域性變數,但是可以返回區域性的類。
test fun()
class test
~test()
test& operator =(const test& src)
test (const test& src) };
int main()
未完成:記住看一下那個disruptor的**,這個可以一直看。
未完成:偽共享,了解一下。
一些好的程式設計師技術分享**:
1.infoq
2.stack overflow
3.hackerrank
4.programming by doing
5.hacker news
awk邊學邊記
awk中的rs ors fs ofs的簡要說明 縮寫我認為的全拼 含義預設值 rsrow separator awk讀取檔案時的行分隔符 預設為 n orsoutput row separator awk輸出時的行分隔符 預設為 n fsfield separator awk讀取檔案時的列 字段 域...
FFMPEG邊學邊記
沒有參考資料,看ffmpeg真的是一種折磨 尤其是像我這種英語不好的 說白了邊學邊記,就把參考的直接放前面 1.雷大神的ffmpeg獲取directshow裝置資料 攝像頭,錄屏 2.基於ffmpeg的c 錄屏全攻略 兩篇類似,不知道誰模仿誰的 windows平台下,使用 dshow取代x11gra...
MySql邊學邊記 1
mysql資料型別 mysql支援多種型別,大致可以分為三類 數值 日期 時間和字串 字元 型別。標準sql 資料型別 包括 嚴格數值資料型別 integer smallint decimal和numeric 以及近似數值資料型別 float real和double precision 同時也支援s...