資料幀 MTU MSS IP分片

2021-10-01 20:18:17 字數 833 閱讀 1869

1.乙太網幀

在乙太網鏈路上的資料報稱作以太幀,在802.3標準裡,規定了乙個以太幀的資料部分(payload)的最大長度是1500個位元組(mtu),再加上14位元組鏈路頭和4位元組的fcs,所以乙太網幀的最大長度為1518。另外,乙太網幀的最小長度為64位元組。

[1]4位元組的fcs是網絡卡處理的,所以抓到的包看不到這個字段(網絡卡驅動去掉了),組建包時也不用設定這個字段(由網絡卡驅動計算填充)。

[2]每個幀的前面有7位元組的前導碼和1位元組的幀起始定界符,這8個位元組是幀之外的資料,由接收器電路使用。

[3]鏈路頭+4位元組的fcs是幀頭,mtu是幀的負載,所以mtu是不包括鏈路頭的。

mss是tcp報文負載的最大長度。mss常常使用1460,是因為mtu最大為1500,減去ip頭(20位元組)和tcp頭(20位元組)後為1460。

mss的作用:

[1]如果一端的接收緩衝區比較小(例如10位元組),則必須兩端協商乙個合適的mss大小。

[2]提高網路頻寬的利用率,減少ip分片和重組,因為傳送到ip的資料報過大時會進行ip分片和重組,而通過mss限制資料大小,上送到ip層時資料長度有限制,因此可以減少分片。

而udp協議沒有mss,所以傳送給ip層時,由ip協議完成分片。例如傳送資料長度為2000位元組,使用tcp協議時(例如mss是1460),tcp分成兩個包上送到ip層,此時ip層不用分片;而使用udp時,一次上送到ip層,此時ip層需要分片。

3.ip分片

ip層收到資料時,如果資料加上ip頭的長度超過mtu,則需要分片。

資料分片(6 強制分片路由)

實現動機 實現機制 實現動機 通過解析 sql 語句提取分片鍵列與值並進行分片是 apache shardingsphere 對 sql 零侵入的實現方式。若 sql 語句中沒有分片條件,則無法進行分片,需要全路由。在一些應用場景中,分片條件並不存在於 sql,而存在於外部業務邏輯。因此需要提供一種...

python資料幀 Python資料幀

我有乙個dataframe df 並試圖將資料附加到特定的行 index fruit rank 0 banana 1 2 mango 3 3 melon 4 目標是將排名1的水果與每個等級進行比較,然後附加值。我在用difflib.sequencematcher做比較。現在我可以追加到df,但最後我...

Redux 資料分片

分析 乙個專案 解決 希望的乙個型別資料乙個模組 reducer劃分 combinereducers 分析 我們希望我們的store下面每乙個資料夾就是乙個 型別 的資料報 解決 redux combinereducers 每乙個資料報的目錄結構 操作步驟 新建redux專案 安裝redux yar...