On Fri, 5 Nov 2004 21:35:59 +0900, baskara <[EMAIL PROTECTED]> wrote:
> 
> On Fri, 5 Nov 2004 16:55:04 +0700, Monang Setyawan <[EMAIL PROTECTED]> wrote:
> 
> > Kalau maksudnya "dikenali" adalah "diterima, diproses, kemudian
> > diteruskan ke tempat lain oleh modul yang ada di" kernel, berarti
> > tergantung modul yang terload di kernel kan. (CMIIW)
> 
> Dikenali = dibaca, diterjemahkan, diolah, dll pada level kernel.
> Kalau nomor protokol adalah bukan 4 protokol itu = <quote>setelah dibaca
> kernel</quote> (ternyata nomor protocolnya bukan UDP, TCP, IGMP atau ICMP),
> kelanjutannya belum tahu (harus ditangkap oleh raw socket??)...apakah
> diteruskan ke level "user process" atau langsung diforward (tergantung
> destination address dan apakah ada socket yang "match").

CMIIW

Menurut saya itu tergantung modul yang terload di kernel mas. Pada
umumnya, seperti yg biasa kita temui pada berbagai sistem komputer,
ada beberapa lapisan abstraksi yang akan berperan semenjak paket masih
di kernel space, hingga (most but not a must) nantinya paket sampai ke
user space (atau yg mas sebut sbg "user process"). Umumnya di *nix
seperti berikut (semakin ke bawah semakin dekat ke user space) :

- modul 1 : device driver, ini modul yang berurusan langsung dengan
hardware/NIC.

- modul 2 : device independent interface (or whatever its name),
fungsinya mirip2 HAL -- Hardware Abstraction Layer (atau memang HAL?).

- modul 3 : network protocol module, ini yang bertanggung jawab
menangani suatu network protokol. Jadi untuk 1 protokol dibutuhkan 1
modul. Bagaimana kalau tidak ada modul yang bertanggung jawab terhadap
suatu protokol? Modul 4 simply ignores that *unknown protocol* packet.

- modul 4 : protocol independence module, ini dipakai oleh
modul/subsistem kernel lain sehingga semua akses transparan terhadap
protokol dan hardware. Ada subsistem kernel yang bertanggung jawab
untuk suspend / resume proses baca tulis di sini.

- system call / virtual file system : di sinilah /proc/sys/net/ yang
dimaksudkan mas Yulian berada. User space application mengakses
network (via socket) dari sini. Bisa dikatakan di sini ada pemetaan 1
ke 1 antara modul 3 dengan tiap file yg ada di sini.

Kalau yang nggak umum / ekstrimnya, misalnya kita ingin memfungsikan
mesin kita cuma sebagai forwarder, kita bisa saja cuma pakai satu
modul (device driver) yang simply write(dest,read()). Ini yang saya
maksud dengan "tergantung modul yang terload" di kernel ;).

(nb : sebagai contoh, khttpd web server memungkinkan mesin kita untuk
"tidak mengijinkan" paket http sampai ke user space ;)

> Saya ambil kutipan dari buku unix network programming (UNP):
> "...most kernels only process datagrams containing values of 1 (ICMP),
> 2 (IGMP), 6 (TCP) and 17 (UDP). ............The gated program that
> implements OSPF must use a raw socket to read and write these IP
> datagrams since they contain a protocol field the kernel knows nothing
> about."
> 
> Ini asal mula pertanyaan saya tentang "kernel knows nothing about".

Yup.. Pada kasus ini, analoginya mungkin begini : kernel itu seperti
kantor pos, kalau nggak ada pegawainya (modul), dia nggak ada gunanya
;)

> 
> Berarti semua IP datagram yang nomor protokolnya bukan 1,2,6,17, harus
> dikirim/dibaca dari raw socket? Buku UNP itu hanya menjelaskan
> demultiplexing kalau protokolnya yang 4 itu.. kalau yang lain tidak
> disebut-sebut.... :(  dan kemudian muncul mengenai nomor protokol
> lainnya di bab tentang raw socket (oleh karena itu, kesimpulan saya
> sementara adalah hanya raw socket yang bisa menerimanya).

Maaf, saya masih bingung dengan istilah "raw socket" ini pak (maklum,
newbie euy). Ini maksudnya inet/bsd/application socket yang paketnya
mem-bypass beberapa abstraksi di atas? Kalau demikian, saya juga
sependapat mas. Jika tidak ada modul 3 yang bertanggung jawab terhadap
suatu protokol, maka modul 4 akan mengabaikannya dan tidak meneruskan
ke level sesudahnya. Jadi menurut saya satu-satunya cara membaca
adalah dengan membypass modul 3 dan 4 (kita langsung baca/tulis via
modul 2, atau bahkan langsung ke device driver)

> 
> > --
> > Demi masalah
yang (kebanyakan) ada solusinya ;)
> >
> 


-- 
Demi masa..

Kirim email ke