A. TCP 、UDP包的最大長度是多少
TCP整個包的最大長度是由最大傳輸大小決定。UDP整個包的最大長度為65535。
1、UDP:
UDP數據報的長度是指包括報頭和數據部分在內的總位元組數,其中報頭長度固定,數據部分可變。數據報的最大長度根據操作環境的不同而各異。從理論上說,包含報頭在內的數據報的最大長度為65535位元組(64K)。
2、TCP:
對於TCP協議來說,整個包的最大長度是由最大傳輸大小(MSS,Maxitum Segment Size)決定,MSS就是TCP數據包每次能夠傳輸的最大數據分段。
為了達到最佳的傳輸效能TCP協議在建立連接的時候通常要協商雙方的MSS值,這個值TCP協議在實現的時候往往用MTU值代替(需要減去IP數據包包頭的大小20Bytes和TCP數據段的包頭20Bytes)所以往往MSS為1460。
通訊雙方會根據雙方提供的MSS值得最小值確定為這次連接的最大MSS值。
(1)數據包尺寸是什麼擴展閱讀:
TCP和UDP在數據傳輸上的區別:
如果定義的TCP和UDP包沒有超過范圍,那麼數據包在IP層就不用分包了,這樣傳輸過程中就避免了在IP層組包發生的錯誤。
如果超過范圍,既IP數據報大於1500位元組,發送方IP層就需要將數據包分成若乾片,而接收方IP層就需要進行數據報的重組。
更嚴重的是,如果使用UDP協議,當IP層組包發生錯誤,那麼包就會被丟棄。接收方無法重組數據報,將導致丟棄整個IP數據報。UDP不保證可靠傳輸;但是TCP發生組包錯誤時,該包會被重傳,保證可靠傳輸。
參考資料來源:網路-TCP
參考資料來源:網路-UDP
B. 數據包大小的問題,請教!
樓上說的非常到位哦。
大於等於1518位元組的數據很多,除了下載,還有可能是內網中在拷貝大的文件導致。
C. 互聯網上的數據包一般多少個位元組
數據包大小是不一定的,一般乙太網數據包大小從64位元組到1513位元組
D. 數據包大小是以什麼為單位的
路由器里的數據包單位是 - 位元組 [Byte]
E. 一個數據包的大小是好多
1、數據鏈路層對數據幀的長度都有一個限制,也就是鏈路層所能承受的最大數據長度,這個值
稱為最大傳輸單元,即MTU。以乙太網為例,這個值通常是1500位元組。
2、對於IP數據包來講,也有一個長度,在IP包頭中,以16位來描述IP包的長度,也就是說,
一個IP包,最長可能是65535位元組。
3、結合以上兩個概念,第一個重要的結論就出來了,如果IP包的大小,起過了MTU值,那麼就需要
分片,也就是把一個IP包分為多個,這個概念非常容易理解,一個載重5T的卡車,要拉10T的貨,它
當然就得分幾次來拉了。
4、IP分片是很多資料常講的內容,但是我倒是覺得分不分片其實不重要,重要的是另一個東西。一個
數據包穿過一個大的網路,它其間會穿過多個網路,每個網路的MTU值是不同的。我們可以設想,如果
接受/發送端都是乙太網,它們的MTU都是1500,我們假設發送的時候,數據包會以1500來封裝,然而,
不幸的是,傳輸中有一段X.25網,它的MTU是576,這會發生什麼呢?我想,這個才是我們所關心的。
當然,結論是顯而易見的,這個數據包會被再次分片,咱開始用火車拉,到了半路,不通火車,只通汽車,
那一車貨會被分為很多車……僅此而已,更重要的是,這種情況下,如果IP包被設置了「不允許分片標志」,那
會發生些什麼呢?對,數據包將被丟棄,然事收到一份ICMP不可達差錯,告訴你,需要分片!
這個網路中最小的MTU值,被稱為路徑MTU,我們應該有一種有效的手段,來發現這個值,最笨的方法或許是先
用traceroute查看所有節點,然後一個個ping……
5、到了傳輸層,也會有一個最大值的限制,當然,對於只管發,其它都不管的UDP來說,不再我們討論之列。這里
說的是TCP協議。說到大小,或許會讓人想到TCP著名的滑動窗口的窗口大小,它跟收發兩端的緩存有關,這里討論
的是傳輸的最大數據包大小,所以,它也不在討論之列。
TCP的選項欄位中,有一個最大報文段長度(MSS),表示了TCP傳往另一端的最大數據的長度,當一個連接立時,連接
的雙方都要通告各自的MSS,也就是說,它說是與TCP的SYN標志在一起的。當然,對於傳輸來講,總是希望MSS越大越好,
現在超載這么嚴重,誰家不希望多拉點貨……但是,MSS總是有個限制的,也就是MTU-IP頭長度-TCP頭長度,對於乙太網來講
它通常是1500-20-20=1460,雖然總是希望它能很大(如1460),但是大多數BSD實現,它都是512的倍數,如1024……
6、回到分片上來,例如,在Win2000下執行如下命令:
ping 192.168.0.1 -l 1473
按剛才的說法,1473+20(ip頭)+8(icmp頭)=1501,則好大於1500,它會被分片,但是,我們關心的是:
這個數據包會被怎麼樣分法?
可以猜想,第一個包是
以太頭+IP頭+ICMP頭+1427的數據;
那第二個分片包呢?
它可以是:
以太頭+IP頭+ICMP頭+1個位元組的數據
或者是:
以太頭+IP頭+1個位元組的數據
也就是省去ICMP頭的封裝,當然,IP頭是不可以省的,否則怎麼傳輸了……
事實上,TCP/IP協議採用的是後一種封裝方式,這樣,一次可以節約8個位元組的空間。IP包頭中,用了三個標志來描述一個分片包:
1、分片標志:如果一個包被分片了,被置於1,最後一個分片除外;——這樣,對於接收端來講,可以根據這個標志位做為重組的重
要依據之一;
2、分片偏移標志:光有一個標志位說明「自己是不是分片包」是不夠的,偏移標志位說明了自己這個分片拉於原始數據報的什麼位置,
很明顯,這兩個標志一結合,就很容易重組分片包了。
3、不允許分片標志:如果數據包強行設置了這個標志,那麼在應該分片的時候,…… err,剛才已經說過了
F. 網路傳輸中的數據包是什麼概念專業點。一個數據包多大
通常我們說的數據包指的是IP數據包,即網路層的協議數據單元——PDU,一個IP數據包最大可達65535位元組。但是通常網路鏈路上傳輸設備的介面MTU(最大傳輸單元)都是1500位元組,互聯網也是如此。您還可以輸入11字。呵呵