關於socket資料長度

2021-08-21 07:46:23 字數 713 閱讀 5073

乙個包沒有固定長度,乙太網限制在46-1500位元組,1500就是乙太網的mtu,超過這個量,tcp會為ip資料報設定偏移量進行分片傳輸,現在一般可允許應用層設定8k(ntfs系統)的緩衝區,8k的資料由底層分片,而應用層看來只是一次傳送。

socket本身分為兩種,流(tcp)和資料報(udp)

tcp的優點: 可靠,穩定 tcp的可靠體現在tcp在傳遞資料之前,會有三次握手來建立連線,而且在資料傳遞時,有確認、視窗、重傳、擁塞控制機制,在資料傳完後,還會斷開連線用來節約系統資源。 tcp的缺點: 慢,效率低,占用系統資源高,易被攻擊 tcp在傳遞資料之前,要先建連線,這會消耗時間,而且在資料傳遞時,確認機制、重傳機制、擁塞控制機制等都會消耗大量的時間,而且要在每台裝置上維護所有的傳輸連線,事實上,每個連線都會占用系統的cpu、記憶體等硬體資源。 而且,因為tcp有確認機制、三次握手機制,這些也導致tcp容易被人利用,實現dos、ddos、cc等攻擊。

1.基於連線與無連線;

2.對系統資源的要求(tcp較多,udp少);

3.udp程式結構較簡單;

4.流模式與資料報模式 ;

5.tcp保證資料正確性,udp可能丟包,tcp保證資料順序,udp不保證。

tcp協議和udp協議的差別

tcp udp

是否連線 面向連線 面向非連線

傳輸可靠性 可靠 不可靠

應用場合 傳輸大量資料 少量資料

速度 慢 快

nodejs中socket接受資料的長度問題

本人是新手,記錄一下在除錯 現的問題。connsocket.on data data face data data console.log length 16 console.log data.length console.log face data.length console.log buffe...

socket程式設計包的長度

包沒有固定長度,乙太網限制在46 1500 位元組,1500 就是乙太網的 mtu,超過這個量,tcp會為 ip資料報設定偏移量進行分片傳輸,現在一般可允許應用層設定8k ntfs 系統 的緩衝區,8k的資料由底層分片,而應用層看來只是一次傳送。windows 的緩衝區經驗值是4k。socket 本...

socket程式設計包的長度

包沒有固定長度,乙太網限制在46 1500 位元組,1500 就是乙太網的 mtu,超過這個量,tcp會為 ip資料報設定偏移量進行分片傳輸,現在一般可允許應用層設定8k ntfs 系統 的緩衝區,8k的資料由底層分片,而應用層看來只是一次傳送。windows 的緩衝區經驗值是4k。socket 本...