本文由 發(fā)布,轉(zhuǎn)載請注明出處,如有問題請聯(lián)系我們! 發(fā)布時間: 2021-08-26【網(wǎng)絡(luò)編程】TCPIP-小筆記集合
加載中序言
TCP/IP 網(wǎng)絡(luò)編程技術(shù)手記散集
參照
序言
關(guān)鍵紀(jì)錄TCPIP一些小手記
表明:
demo 根據(jù) Linux。
TCP/IP 網(wǎng)絡(luò)編程技術(shù)手記散集
快速入門:
I/O 緩存:
I/O 緩存在每一個 TCP tcp協(xié)議中獨立存有。
I/O 緩存在建立tcp協(xié)議時自動生成。
即便 關(guān)掉tcp協(xié)議也會再次傳送輸出緩存中滯留的數(shù)據(jù)信息。
關(guān)掉tcp協(xié)議將遺失鍵入緩存中的數(shù)據(jù)信息。
本端啟用一次 write(),對端很有可能要分幾回 read() 才可以看完。
數(shù)據(jù)信息界限:
TCP 是流式的的傳輸數(shù)據(jù),信息沒有界限,必須網(wǎng)絡(luò)層自身去界定信息界限。
UDP 是數(shù)據(jù)信息報傳送,因此 協(xié)議書確保了一次只有接受一個數(shù)據(jù)信息報。
本人表述:數(shù)據(jù)信息界限意思是,數(shù)據(jù)信息是否會全自動切分,例如2個建筑結(jié)構(gòu)持續(xù)存有一段運行內(nèi)存中,那就是有界限的,建筑結(jié)構(gòu)把其切分了。若把其數(shù)據(jù)信息拷到二維數(shù)組里邊,那就是無邊界的,由于分不清楚從哪里才算是分隔線。
UDP 網(wǎng)絡(luò)編程技術(shù):
UDP 是能夠應(yīng)用 bind() 涵數(shù)的,主要是配備當(dāng)?shù)豂P和端口。若不適合,則由系統(tǒng)軟件隨即分派。
UDP 是能夠應(yīng)用 connect() 涵數(shù)的,主要是配備遠(yuǎn)側(cè)IP和端口。若不應(yīng)用,則每一次啟用 sendto() 涵數(shù)時都需要設(shè)定、刪掉遠(yuǎn)側(cè)IP和端口,用時。
關(guān)掉I/O流:
啟用
close()
后:鍵入緩沖區(qū)域的信息被丟掉。
輸出緩沖區(qū)域的數(shù)據(jù)信息依然能發(fā)送至目地端。
啟用
shutdown()
后:關(guān)掉鍵入流后,鍵入緩沖區(qū)域的信息被丟掉。后邊剛來的數(shù)據(jù)流分析,會對其開展 ACK,隨后丟掉。
關(guān)掉輸出流后,輸出緩沖區(qū)域的數(shù)據(jù)信息依然能發(fā)送至目地端。
DNS:
DNS關(guān)鍵根據(jù)UDP。
現(xiàn)階段全世界僅有13臺網(wǎng)站域名根服務(wù)器。
并沒有每條DNS查看都需要抵達(dá)根服務(wù)器的,查看是逐步查看,各個都是有緩存文件表,應(yīng)查緩存文件表格中的,沒有再往匯報。
還可以特定當(dāng)?shù)氐腄NS網(wǎng)絡(luò)服務(wù)器,只需能域名解析與IP就可以。
TCP:
MSS,較大報文格式段距離。在聯(lián)接創(chuàng)建的情況下,即在推送SYN段的情況下,與此同時會將MSS發(fā)給另一方(MSS選擇項只有發(fā)生在SYN段中?。。。嬷獙Χ怂诖邮艿腡CP報文格式段數(shù)據(jù)信息一部分較大長短。
https://blog.csdn.net/bobozai86/article/details/87372606
tcp協(xié)議選擇項:
tcp協(xié)議種類只有在創(chuàng)立時決策,之后無法再變更。
網(wǎng)絡(luò)服務(wù)器快重新啟動:
由于出現(xiàn)異常斷掉后原tcp協(xié)議進(jìn)到 time-wait 情況(一般會保持?jǐn)?shù)分鐘),都還沒進(jìn)到 close 情況,因此 其端口等數(shù)據(jù)信息或是被擠占的。服務(wù)器重啟后無法正常的應(yīng)用該端口號。
因此 選用
SO_REUSEADDR
設(shè)定。功效:當(dāng)有一個有同樣本地地址和接口的socket1處在TIME_WAIT情況時,但你運行的應(yīng)用程序的socket2要占有該詳細(xì)地址和端口號,你的系統(tǒng)就需要使用該選擇項。
SO_REUSEADDR容許同一port上運行同一網(wǎng)絡(luò)服務(wù)器的好幾個案例(好幾個過程)。但每一個案例關(guān)聯(lián)的IP地址是不可以同樣的。在有幾塊網(wǎng)口或用IP Alias技術(shù)性的設(shè)備能夠 檢測這類狀況。
SO_REUSEADDR容許單獨過程關(guān)聯(lián)同樣的端口號到好幾個socket上,但每一個socket關(guān)聯(lián)的ip詳細(xì)地址不一樣。這和2很類似,差別可以看UNPv1。
SO_REUSEADDR容許完全一致的具體位置和接口的反復(fù)關(guān)聯(lián)。但這只用以UDP的多播,不用以TCP。