UDP tidak tahu apa-apa tentang MTU. Paket UDP dapat memiliki ukuran dari 8 hingga 65535 byte. Lapisan protokol di bawah UDP dapat mengirim paket dengan ukuran tertentu atau akan menolak untuk mengirim paket dengan kesalahan jika terlalu besar.
Lapisan di bawah UDP biasanya IP, baik IPv4 atau IPv6. Dan paket IP dapat memiliki ukuran mulai dari 20 (IPv4) / 40 (IPv6) hingga 65535 byte, itu sama dengan maksimum UDP. Namun, IP mendukung mekanisme yang disebut fragmentasi . Jika sebuah paket IP berukuran lebih besar dari yang dapat diangkut oleh lapisan di bawah ini, IP dapat membagi satu paket menjadi beberapa paket yang disebut fragmen. Setiap fragmen sebenarnya adalah paket IP sendiri (memiliki header IP sendiri) dan juga dikirim sendiri ke tujuan; itu adalah tugas tujuan untuk mengumpulkan semua fragmen dan membangun kembali paket lengkap dari mereka sebelum meneruskan data yang diterima pada lapisan berikutnya yang lebih tinggi (misalnya UDP).
Protokol Ethernet hanya dapat mengangkut frame dengan muatan antara 46 dan 1500 byte (ada pengecualian tapi itu di luar cakupan balasan ini). Jika data payload kurang dari 46 byte, itu padded untuk menjadi 46 byte. Jika data payload melebihi 1500 byte, antarmuka akan menolak untuk menerimanya. Jika itu terjadi, itu tergantung pada lapisan IP untuk sekarang memutuskan untuk memecah-mecah paket, sehingga tidak ada fragmen yang lebih besar dari 1500 byte atau melaporkan kesalahan ke lapisan yang lebih tinggi berikutnya jika fragmentasi telah dinonaktifkan atau dilarang untuk koneksi khusus ini.
Fragmentasi umumnya harus dihindari, seperti
- adalah pemborosan sumber daya di sisi pengirim.
- itu membuang sumber daya di sisi penerima.
- ini meningkatkan overhead protokol untuk jumlah data payload yang sama.
- jika satu fragmen hilang, seluruh paket hilang.
- jika satu fragmen rusak, seluruh paket rusak.
- dalam hal pengiriman ulang, semua fragmen harus dikirim ulang.
Itu sebabnya TCP secara cerdas mengadopsi ukuran frame-nya sehingga paket-paket tidak pernah memerlukan IP untuk memecah-mecahnya. Ini dapat dilakukan dengan melarang IP ke paket fragmen dan jika IP melaporkan bahwa paket terlalu besar untuk dikirim, TCP mengurangi ukuran frame dan mencoba lagi, sampai tidak ada kesalahan yang dilaporkan lagi.
Namun, untuk UDP, ini akan menjadi tugas aplikasi itu sendiri, karena UDP adalah protokol "bodoh", itu tidak memiliki logika manajemen sendiri, yang membuatnya sangat fleksibel, cepat, dan sederhana.
Satu-satunya ukuran UDP yang dapat Anda andalkan untuk selalu dapat dipindahkan adalah 576 minus 8 byte Header UDP dan minus 20 (v4) / 40 (v6) byte header IP, karena standar IP mengharuskan setiap host IP untuk dapat menerima paket IP dengan ukuran total 576 byte. Implementasi protokol Anda tidak akan sesuai standar jika tidak dapat menerima paket dengan ukuran setidaknya itu. Perhatikan, bagaimanapun, bahwa standar tidak mengatakan 576 tanpa fragmentasi, sehingga bahkan paket IP 576 byte dapat terfragmentasi antara dua host.
Satu-satunya ukuran paket yang dapat Anda andalkan untuk diangkut tanpa fragmentasi adalah 24 byte untuk IPv4 dan 56 byte IPv6, karena header IP terkecil untuk sebuah fragmen adalah 20/48 byte (v4 / v6) dan sebuah fragmen harus memiliki setidaknya 4/8 data payload byte (v4 / v6). Jadi sistem transportasi di bawah lapisan IP yang tidak dapat mengangkut setidaknya paket ukuran tesis, tidak dapat digunakan untuk mengangkut lalu lintas IP.
Dan sebelum ada yang berkomentar bahwa header IPv6 hanya memiliki 40 byte: Itu benar tetapi, tidak seperti header IPv4, header IPv6 standar tidak memiliki bidang header untuk fragmentasi. Jika sebuah paket harus difragmentasi, maka header ekstensi fragmentasi harus ditambahkan di bawah header dasar IPv6 dan header ekstensi ini panjangnya 8 byte. Juga tidak seperti IPv4, offset fragmentasi dalam IPv6 dihitung dalam 8 byte dan bukan 4 byte, sehingga sebuah fragmen hanya dapat membawa muatan yang merupakan kelipatan 8 byte dalam kasus IPv6.