![]() 118
End Jika
Tampilkan pesan kesalahan
Jika IP yang didecode bukan versi 4
Tampilkan pesan kesalahan
Buang paket ini
End Jika
Set panjang datagram IP
Set panjang header IP
Jika panjang field IP lebih besar dari paket yang ditangkap
Set panjang field IP = panjang paket yang ditangkap
End Jika
Hitung cheksum
Jika cheksum sukses
Jika Panjang datagram IP > 5 byte
Decode Option IP dengan modul DecodeIPOptions
Else
End Jika
Set Option = 0
Set sisa panjang datagram
Lakukan pengecekan paket yang terfragmentasi
Jika paket ini bukan sebuah fragmen
Set flag paket fragmen = 0
Case protocol
TCP : decode dengan modul DecodeTCP
UDP : decode dengan modul DecodeUDP
ICMP : decode dengan modul DecodeICMP
End Case
End Jika
End Jika
End modul DecodeIP
Modul
:
DecodeTCP (decode.c)
Fungsi
:
Modul untuk mendecode transport layer TCP
Memanggil modul
:
DecodeTCPOptions
Dipanggil modul
:
DecodeIP
Parameter Input
:
pkt => pointer ke data paket yang akan didecode
len =>
panjang dari layer IP ke akhir paket
p
=> pointer ke struktur paket yang didecode
Parameter Output
:
-
Jika panjang TCP > 20 byte
Jika flag verbose di set
Tampilkan pesan kesalahan
End JIka
End Jika
Buang paket ini
Susun data TCP pada struktur p
Sesuaikan offset payload
Persiapkan pseudo header untuk operasi checksum
Hitung checksum
Jika checksum terpenuhi
|