wah bagus usulannya
mungkin akan saya coba imlplement
Klo dengan thread per koneksi, saya kira jelas lebih reliable.


klo kurang jelas aplikasi apa yg coba dibuat, mungkin karena saya sendiri masi belum yakin bisa jalan :)
sebenernya saya mencoba bikin network anomaly detection make salah satu metode data mining.


Thx again.

On Mon, 14 Feb 2005 00:32:34 +0700
Danny Kurniawan <[EMAIL PROTECTED]> wrote:

hmm... saya agak kurang mengerti tentang bentuk aplikasi yang dibuat,
sepertinya program sniffer itu mencegat per koneksi ya??... usulan dari
sdr. Andrew memang bagus, tapi saya punya alternatif lain...


Dari pembicaraan, nampaknya ada 2 proses yang terlibat, yaitu sniffer
dan analyser... dari jalannya proses, nampaknya proses analisa hanya
akan dijalankan sesaat setelah proses sniff - yang dalam hal ini
dilakukan per koneksi - selesai dilakukan... benar begitu?


nah... menurut saya, antar proses sniff dan analisa tidak perlu dibuat 2
thread terpisah, karena hal itu tidak akan efisien, karena kedua proses
itu tidak saling independent, sehingga sebaiknya keduanya dijadikan
dalam 1 thread yang sama... sehingga secara kasar gambar dari proses
tersebut adalah sbb:


         1 thread
   _________^_________
  /                   \
  _________ __________          _____________
 |         |          |        |             |
 | Sniffer | Analyser |------->| Result File |
 |_________|__________|        |_____________|
      |         ^
      |         |
      v         |
    _______________
   |               |
   |   LOG File    |
   |_______________|


proses analisa akan dijalankan sesaat setelah proses sniff selesai,
dengan membaca LOG yang dibuat oleh sniffer, maka analisa dilakukan dan
hasil analisa akan disimpan ke dalam Result File...


setiap hasil sniff akan disimpan ke dalam sebuah LOG File, dimana untuk
masing2 thread akan memiliki LOG File-nya sendiri2... Sedangkan hasil
analisa akan dituliskan ke dalam 1 Result File yang bersifat GLOBAL, dan
seluruh thread akan memposting hasilnya ke dalam Result File tersebut...
LOG File bersifat sementara, sehingga apabila thread tersebut selesai
melakukan tugasnya, maka LOG File akan dihapus, sehingga akan menghemat
space di harddisk...


bagaimana dengan koneksi yang lain? menurut saya terdapat 1 main thread
yang bertanggung-jawab untuk melakukan monitoring apabila terdapat
koneksi baru, semacam daemon lah... nah apabila ada koneksi baru, maka
akan dibuatkan thread baru yang bertugas untuk sniff dan analisa
terhadap koneksi baru tersebut... sedangkan main thread akan kembali
melakukan monitoring untuk koneksi2 yang akan dibuka...


Secara diagram kira2 seperti ini:

_____________
| |
(Waiting incoming connection)| Main Thread |
|_____________|
|
_______________________|______________________
| | |
v v v
____________________ ____________________
| | | |
| Sniffer & Analyser | | Sniffer & Analyser | ... (n connection)
| (Connection 1) | | (Connection 2) |
|____________________| |____________________|
| | |
|_______________________|______________________|
|
v
_____________
| |
| Result File |
|_____________|


dengan begitu, paket tidak mungkin loss, sedangkan pembuatan thread juga
tidak terlalu ribet di penggunaan state2 yang terlalu banyak...


cuma kekurangan dari metode ini adalah banyaknya memory yang digunakan
apabila koneksi yang terjadi banyak sekali dan long term connection
misal: database connection, tapi untuk web connection, karena web
connection cuman sebentar, maka cara ini cukup layak untuk dipakai...


Semoga membantu...

--
Danny Kurniawan


========================================================================================
Akses Internet TELKOMNet-Instan beri Diskon s.d. 50 % khusus untuk wilayah Jawa Timur.
Informasi selengkapnya di www.telkomnetinstan.com atau hub 0800-1-INSTAN (467826)
========================================================================================


--
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis.php



Kirim email ke