Saya sedang melakukan porting program yang saya buat di BSD ke linux (ubuntu).
Satu demi satu masalah teratasi hingga akhirnya yang ini benar-benar "stuck".
Googling berjam-jam, selama 2 hari, belum ada solusinya.

Intinya, saya ingin mengirimkan data yang sangat panjang ( puluhan KB)
secara periodik, menggunakan UDP (memakai raw socket), dengan socket
system call yang namanya sendto().
Di BSD kernel (fbsd dan mac os x), hanya dengan menambahkan setsockopt
untuk menambah ukuran buffer, ini bisa dilakukan dengan mudah. Jadi
data puluhan KB ini (misalnya 32 KB) langsung dikirim dengan sendto()
(dan OS secara otomatis melakukan fragmentasi).

Akan tetapi, di linux (dalam hal ini saya coba di ubuntu), dengan cara
yang sama persis, ini tidak bisa dilakukan (message too long katanya).
Padahal Don't Fragment bit di IP header sudah diset 0. Sudah saya
"ubek-ubek" juga /proc/sys/net/ipv4 dan /proc/sys/net/core, hasilnya
nihil. Send buffer sudah diset sangat besar (200 KB) dengan
setsockopt.

Apakah message yang panjang itu harus saya fragmentasi sendiri di user
space (misalnya masing2 1 KB), bukan dilakukan secara otomatis oleh
kernel?

*nb: belum saya coba di distro linux lainnya (harus install dulu)

--~--~---------~--~----~------------~-------~--~----~
Anda menerima pesan ini karena Anda tergabung pada grup Grup Google 
"teknologia" grup.
 To post to this group, send email to [email protected]
 Untuk keluar dari grup ini, kirim email ke [EMAIL PROTECTED]
 Untuk pilihan lainnya, lihat grup ini pada 
http://groups.google.com/group/teknologia
-~----------~----~----~----~------~----~------~--~---

Kirim email ke