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 -~----------~----~----~----~------~----~------~--~---
