UDP(User Datagram Protocol 用戶數據包協議)是一個簡單的面向數據包的運輸層協議。進程的每一次輸出操做都正好產生一個UDP協議(有長度限制)。這是面向流字符協議不一樣。UDP協議是封裝在IP數據包中的。UDP不提供可靠性:它把應用程序傳給 I P層的數據發送出去,可是並不保證它們能到達目的地。php
說明 * 因爲IP層已經把IP數據包分配給TCP或UDP(根據IP首部中協議字段值),所以TCP端口號由TCP來查看,而UDP端口號由UDP來查看。TCP端口號與UDP端口號是相互獨立的。*微信
物理網絡層通常要限制每次發送數據幀的最大長度。當要發送的數據長度大於了最大長度(MTU),就要對數據進行分片處理傳輸。 把一份IP數據包分片之後,只有到達目的地才進行從新組裝(這裏的從新組裝與其餘網絡協議不一樣,它們要求在下一站
就進行進行從新組裝,而不是在最終的目的地)。從新組裝由目的端的IP層來完成,其目的是使分片和從新組裝過程對運輸層(TCP與UDP)是透明的,除了某些可能的越級操做外。 網絡
抓包,執行以下PHP代碼:socket
<?php
$handle = stream_socket_client("udp://110.12.15.10:9999", $errno, $errstr);
if( !$handle ){
die("ERROR: {$errno} - {$errstr}\n");
}
$str = 'start';
for($i=0;$i<500;$i++){
$str .= 'abcdefjhijklmnopkrstuvwxyz1234567890';
}
$str .= 'end';
fwrite($handle, $str."\n");
複製代碼
如上一個udp數據被分紅了3個ip數據包。
都看到這裏了,要不要掃二維碼關注一下微信公衆號林灣村龍貓。 spa