BAB 3 METODOLOGI / PERANCANGAN SISTEM
3.1 Sistem yang Sedang Berjalan Transportasi udara sudah menjadi suatu yang sangat penting sekarang ini. Oleh karena itu dibutuhkan dukungan teknis dalam pengoperasiannya. Salah satunya ialah pada bagian komunikasi penerbangan dimana system yang sedang berjalan sekarang ini menggunakan CNS/ATM (Communication, Navigation, and Surveillance / Air Traffic Management). Komunikasi ini terbagi dalam 2 bagian yaitu AMS (Aeronautical Mobile Service) yang melayani komunikasi darat – udara dan udara – udara menggunakan ACARS yang memakai High Frequency (HF) atau Very High Frequency (VHF), dan AFS (Aeronautical Fixed Service) yang melayani komunikasi darat – darat menggunakan AFTN. Sistem inilah yang juga sedang berjalan di Indonesia
3.1.1 AFTN AFTN (Aeronautical Fixed Telecommunication Network)
adalah
suatu sistim yang dipakai hampir semua dunia dalam penerbangan. AFTN dihubungkan antara pelabuhan udara yang internasional, pemantau lalu lintas udara dalam mengendalikan fasilitas-fasilitas dalam penerbangan, dan pesawat terbang. AFTN digunakan untuk mengirimkan pesan-pesan seperti pesan bahaya, pesan darurat, pesan- keselamatan penerbangan, pesan tentang keadaan cuaca, pesan tentang lalulintas penerbangan, dan pesan-pesan administratif lainnya 39
40
antara stasiun-stasiun yang ditetapkan. AFTN adalah sistim penanganan pesan pertama,
yang
juga telah
mendukung komunikasi dalam pelaksanaan
penerbangan selama bertahun-tahun. Namun, masih banyak fitur-fitur yang belum dapat didukung oleh AFTN, seperti memancarkan diagram, peta cuaca, dan data data lain. Oleh karena itu AFTN memerlukan perubahan ke arah yang lebih baik. AFTN digunakan untuk mengirimkan informasi pra-penerbangan antara Air Traffic Control (ATC) dengan pesawat dan sebaliknya. Sebelum melakukan penerbangan, pilot itu diwajibkan untuk melengkapi formulir, yang berisikan informasi untuk melakukan penerbangan, seperti asal dan tujuan penerbangan. Informasi ini akan dimasukkan ke dalam AFTN berbentuk pesan dan dikirimkan dari Bandar udara asal ke Bandar udara tujuan. Informasi prapenerbangan digunakan untuk mengadakan penerbangan simulasi, yang kemudian akan dibandingkan dengan hasil dari pendeteksian radar yang termasuk kecepatan, dan posisi secara 3 dimensi (garis lintang, garis bujur, dan ketinggian) untuk pengawasan penerbangan.
3.2 Permasalahan Sistem AFTN dan ACARS saat ini dinilai tidak dapat lagi memenuhi kebutuhan yang diinginkan oelh industri penerbangan. Ada beberapa kekurangan yang ditemukan seperti : a) Komunikasi pilot controller masih menggunakan analog voice. Transmisi data analog tersebut tidak dapat menyampaikan data dengan
41
ukuran yang besar. Hal ini dapat menyebabkan terjadi kesalahan penafsiran atas suara yang kirim. Sistem ini juga tidak dapat bekerja secara otomatis, sehingga mempersulit dalam memperbaiki atau mengambil suatu keputusan. b)
AFTN bekerja secara analog dan memiliki kecepatan yang rendah, sehingga tidak memenuhi syarat dalam pertukaran data lintas udara sesuai dengan system ATS.
c)
AFTN memiliki keterbatasan dalam hal throughput, data integrity serta kemampuan dalam mengolah pesan yang berbentuk bit.
d)
Bentuk pesan dari AFTN berisikan banyak pengkodean secara teknis, sehingga memerlukan orang yang ahli dalam hal pengkodean tersebut.
e)
Besar alamat dari AFTN hanya 8 karakter. Ukuran tersebut tidak dapat mencukupi,melihat perkembangan industri penerbangan yang semakin maju.
f)
Kemampuan ACARS dalam menyampaikan data masih kurang dari segi bandwidth, ukuran data dsb.
g)
Tidak adanya keamanan dalam komunikasi data.
h)
Tidak mendukung arsitektur networking yang sebenarnya.
3.3 Sistem yang disarankan Dalam meningkatkan kinerja penerbangan khususnya di Indonesia maka ATN harus segera dikembangkan dan diimplementasikan. ATN merupakan sistem terbaru yang direkomendasikan oleh ICAO. ATN dirancang sebagai jalur
42
pertukaran data digital dengan ukuran yang besar antara ES dalam memenuhi kebutuhan penerbangan. ATN dibangun menggunakan standart OSI yang telah ditetapkan oleh ICAO. Pengembangan ATN sebagai sistem komunikasi yang baru dalam penerbangan lebih menekankan pada kemampuannya dalam pengiriman data secara digital menggantikan suara. Namun, sistem komunikasi suara tidak dihapus secara sepenuhnya melainkan digunakan pada situasi darurat jika sistem ATN mengalami gangguan. Ada beberapa fitur dari ATN yang dapat mengatasi kekurangan dari AFTN dan memberikan manfaat tambahan, antara lain: a.
ATN dapat melakukan komunikasi data baik ground to ground maupun air to ground. Komunikasi data pada ATN memiliki kejelasan
dan
kesatuan
data,
serta
mendukung
keamanan
dibandingkan sistem komunikasi yang telah ada. Keuntungan lainnya berupa penggunaan bandwidth lebih efisien karena bersifat data digital dibandingkan dengan suara. b.
Kemampuan ATN dalam melakukan komunikasi antar udara dan darat, memungkinkan pesawat untuk mengirimkan posisi serta data lainnya ke darat dengan pemakaian ADBS (Automatic Dependent Surveillance Broadcast) pada pesawat. Untuk masa yang akan datang, ATN juga akan mendukung penggunaan Satellite Base Navigation (SBN) yang memiliki cakupan daerah yang luas dibandingkan bagian pemantau darat.
43
c.
ATN
memiliki
kemampaun
dalam
menyediakan
beberapa
hubungan antar air to ground maupun ground to ground. d.
Pada ATN, sistem komputer pada pesawat dirancang dan digunakan untuk mengolah data dan menjaga koneksi dengan komputer di darat, sehingga memungkinkan untuk melakukan proses otomastisasi pada ATM.
e.
ATN memiliki alamat yang lebih besar sehingga memungkinkan perluasan pada masa yang akan datang.
f.
ATN juga dirancang dapat mengirimkan data berupa gambar. Yang dapat digunakan dalam mengirimkan informasi tambahan dalam penerbangan.
g.
ACARS yang merupakan bagian dari AFTN tidak akan dapat lagi menangani jumlah komunikasi datalink yang banyak dari ukuran kapasitas dan fleksibilitasnya, oleh karena itu ATN akan diterapkan sebagai pengganti dari ACARS dimana kelebihan yang ditawarkan oleh ATN seperti autentikasi, keamanan dan dibangun berdasarkan arsitektur internetworking yang tidak terdapat di ACARS
h.
Congestion Management yang lebih baik dari IP
3.4 Keuntungan dari Penelitian Tujuan dari penelitian ini ialah untuk mengembangkan suatu sistem ATN khususnya Router ATN. Beberapa perusahaan yang mengembangkan dan menjual router ATN ini seperti Softreavia, Inc. dari Perancis dan OKI dari
44
Jepang. Menurut informasi, lisensi yang dibeli dari Softreavia untuk menggunakan sebuah router ATN mereka pertahunnya ialah sebesar $ 230.000. Untuk ukuran Indonesia, keperluan akan router ATN ini ialah sebanyak 33 bandara atau lokasi yang tersebar diseluruh Indonesia dikali dengan 3 buah router tiap lokasi yang keseluruhan router yang diperlukan ialah 99 buah router. Dengan kebutuhan 99 router, maka dana yang harus dikeluarkan oleh pemerintah ialah sebesar 99 x $ 230.000 = $ 22.770.000 per tahunnya. Dengan mengembangkan dan mengimplentasikan sendiri, maka pemerintah dapat menghemat anggaran untuk menggunakan router ATN ini sebagai sarana pendukung penerbangan di masa depan.
3.5 Sub Sistem yang akan Disarankan ATN berjalan dengan menggunakan beberapa protokol, salah satunya ialah protocol CLNP sebagai inti dari router ATN yang berkerja pada Layer 3 OSI (Network). Protokol CLNP ini dikembangkan sebagai sebuah module yang berjalan pada kernel dari sistem operasi. Pada penelitian ini sistem operasi yang digunakan ialah Linux dengan versi kernel 2.6. Kernel yang memiliki modul CLNP inilah yang nantinya akan dijalankan pada suatu mesin, yang berfungsi sebagai router ATN.
3.6 Desain dari Sub Sistem yang Disarankan 3.6.1 Gambaran Besar CLNP CLNP (Connection Less Network Protocol) adalah protokol jaringan yang bekerja pada Layer 3 model OSI. Ada 3 modul utama dalam CLNP, yaitu modul yang bertugas dalam menerima paket (clnp_input),
45
modul yang bertugas dalam melakukan routing paket (clnp_route), dan fungsi yang bertugas dalam pengiriman paket (clnp_output). Desain dari modul CLNP ini mengikuti desain dari IP yang diimplementasikan di Linux Kernel versi 2.6. Hubungan ketiga fungsi tersebut dapat digambarkan seperti gambar dibawah ini.
Gambar 3.1 : Gambaran besar modul CLNP
46
3.6.2 Modul clnp_input Modul ini memiliki tugas untuk menerima paket yang berasal dari layer di bawahnya (Data Link Layer) dan memutuskan apakah paket ini harus diteruskan ke host lain melalui proses dari modul routing host atau paket ini akan diteruskan ke layer di atasnya (TP 4) karena paket telah sampai di host yang sama dengan alamat tujuan dari paket dengan melakukan pengecekan pada bagian Destination Part dan Option Part dari header paket. Modul ini juga melakukan fungsi pengecekan pada field Fixed Part dan Segmentation Part apakah paket mengalami kerusakan atau tidak, jika mengalami kerusakan, maka paket akan diabaikan dan tidak akan diteruskan pada proses berikutnya, paket pesan error dan paket notify pun akan dibuat oleh sistem dan dikirim ke host asal paket. Sebelum meneruskan paket ke layer atas, dilakukan pengecekan apakah paket ini merupakan paket hasil segmentasi atau bukan, jika merupakan paket hasil segmentasi maka fungsi clnp_defrag akan dipanggil untuk menampung paket segmentasi yang memiliki Data Unit Identifier yang sama untuk digabungkan terlebih dahulu kemudian diteruskan ke layer atas menggunakan fungsi clnp_local_deliver_finish .
3.6.3 Modul clnp_route Modul ini menerima paket dari modul clnp_input karena masih harus dikirimkan ke host lain. Fungsi source_routing() melakukan pengecekan apakah hop berikutnya dari daftar routing dapat dijangkau.
47
Setelah itu fungsi clnp_forward() dipanggil untuk melakukan beberapa proses seperti mengurangi jumlah waktu TTL (Time-to-live) sebelum sebuah PDU dapat di teruskan ke modul clnp_output untuk diteruskan lagi ke layer di bawah agar ditransmisikan dalam jaringan.
Gambar 3.2 : Flow chart clnp_routing
3.6.4 Modul clnp_output Modul clnp_output ini bertanggung jawab untuk meneruskan paket ke layer ke layer Data Link untuk ditransmisikan ke dalam jaringan. Paket yang masuk ke modul output bisa merupakan paket yang dihasilkan di host lokal ataupun paket yang berasal dari clnp_route yang masih harus diteruskan ke host berikutnya karena belum mencapai host tujuan. Fungsifungsi yang terdapat pada modul clnp_output ini akan dijelaskan pada sub bab berikut. Penulis terlibat dalam pengembangan modul clnp_output mulai dari fungsi clnp_queue_xmit() sampai clnp_finish_output2(). Fungsi
48
utama CLNP yang diimplentasikan ialah fungsi Compose PDU Header (compose_clnph()) fungsi Segmentation (clnp_fragment()).
3.6.4.1 Compose PDU Header
Gambar 3.3 : Flowchart dari fungsi Compose PDU Header
Gambar di atas menunjukan apa saja yang dikerjakan dalam fungsi composition,yaitu mengatur nilai Fixed Part, Address Part, Segmentation Part(jika ada) dan Option Part (jika ada).
49
3.6.4.2 Mengatur nilai Fixed Part Didalam Fixed Part ada beberapa bagian yang harus diisi. Ada beberapa bagian seperti Network Layer Protocol, Length Indicator, Version/Protocol Id Extension, Lifetime dari PDU, PDU Flag, Segment Length serta Checksum.
Gambar 3.4 : Flowchart pemberian nilai pada Fixed Part di header
50
3.6.4.2.1
Network Layer Protocol Identifier Nilai dari Network Layer Protocol Identifier diisi dengna nilai biner 1000 0001, yang menandakan bahwa network layer tersebut sedang aktif.
3.6.4.2.2
Length Indicator Panjang dari suatu PDU bernilai biner, yang bernilai maksimun 1111 1110 (254) dan bernilai minimum 0011 0011 (51) yaitu panjang dari Fixed part ditambah dengan panjang Address part.
3.6.4.2.3
Version/Protocol Identifier Extension Nilai dari bagian ini adalah 0000 0001, yang menandakan versi 1 dari protokol yang digunakan.
3.6.4.2.4 Lifetime PDU Pada bagian ini ditentukan umur dari suatu PDU. Nilai yang biasanya adalah 500ms per unit.
3.6.4.2.5 PDU Flag Ada 3 tipe Flag, yaitu SP (Segmentation Permitted), MS (More Segments), ER (Error Type).
51
1.
Segmentation permitted (SP) Merupakan tanda dalam melakukan segmentasi. Jika bernilai 1, maka segmentasi diperbolehkan, sedangkan bernilai 0 jika sebaliknya.
2.
More segment(MS) More Segment menandakan bahwa jika bernilai 1 maka data payload yang ada pada PDU tersebut tidak mengandung oktet terakhir dari segmentasi data atau bukan merupakan data terakhir dari segmentasi, dan bernilai 0 jika sebaliknya.
3.
Error Report (E/R) Jika, bagian ini bernilai 1, maka ketika suatu PDU gagal atau tidak terkirim maka akan memberikan pesan error. Sebaliknya,jika bernilai 0, maka tidak ada pesan error ketika PDU rusak atau gagal.
3.1.1.1.1 Tipe CLNP Berisikan tipe dari suatu PDU. Ada beberapa tipe dari PDU dengan kode yang berbeda-beda, yang dapat di bawah ini : PDU type
Type code Bits
5
4
3
2
1
DT (Data) PDU
1
1
1
0
0
MD (Multicast Data) PDU
1
1
1
0
1
52
ER (Error Report) PDU
0
0
0
0
1
ERQ (Echo Request) PDU
1
1
1
1
0
ERP (Echo Response) PDU
1
1
1
1
1
Tabel 3.1 : Daftar Tipe PDU
3.6.4.2.7 Segment Length Panjang keseluruhan dari PDU (termasuk header dan data) dalam ukuran oktet. 3.6.4.2.8 Checksum Jika nilai dari Checksum adalah 1 maka akan dilakukan pengecekan terhadap PDU, sedangkan 0 tidak. 3.6.4.3 Mengatur Nilai Address Part Flowchart dari pengaturan Address Part
53
Gambar 3.5 : Flowchart pemberian nilai pada field Address Part
3.6.4.3.1 Mengatur Destination Address Length Indicator Panjang dari Destination Address adalah 20 octet sesuai NSAP Address. 3.6.4.3.2 Mengatur Destination Address Destination Address diberi nilai okter per oktet. Tabel
NSAP
menjelaskan
tiap
oktet
dari
struktur
pengalamatan yang didokumentasikan pada Comprehensive ATN Manual (CAMAL) 3.6.4.3.3 Mengatur Source Address Length Indicator
54
Panjang dari Source Address adalah 20 octet sesuai NSAP Address. 3.6.4.3.4 Mengatur Source Address Source Address Tabel
NSAP
menjelaskan
diberi nilai okter per oktet. tiap
oktet
dari
struktur
pengalamatan yang didokumentasikan pada Comprehensive ATN Manual (CAMAL)
Field Name
Size (Octets)
Value
Description
AFI
1
Decimal
Authority Format Identifier
IDI
2
Decimal
Initial Domain Identifier
VER
1
Hexadecimal
Version
ADM
3
Hexadecimal
ATN Network Address (Sub-) Domain Authority
RDF
1
Hexadecimal
Unknown
ARS
3
Hexadecimal
LOC
2
Hexadecimal
ARS field is used to distinguish routing domains operated by the same State, airline or organization. LOC field is used to distinguish routing areas within the same routing domain.
SYS
6
Hexadecimal
SYS field is used to uniquely identify an ATN end or intermediate system within a given routing area.
N-SEL
1
Hexadecimal
The N-SEL field is used to identify either a network layer entity (such as the IDRP protocol machine) or a network service user within the context of a given ATN system.
Tabel 3.2 : Tabel NSAP – CAMAL
3.1.1.2
Mengatur Segmentation Part
55
Gambar 3.6 : Flowchart pemberian nilai pada field Segmentation Part
Suatu segment part bergantung pada nilai SP Flag pada bagian Fixed Part. Jika nilai dari SP flag adalah 1, maka harus diatur nilai bagian segment part.
3.1.1.2.1 Mengatur Data Unit Identifier Berisikan inisial dari suatu PDU yang di segment sehingga pada saat reassembled tidak terjadi kesalahan. 3.1.1.2.2
Mengatur Segment Offset Berisikan
posisi
relatif
awal
dari
data
yang
tersegmentasi dengan patokan dari posisi data pada Initial PDU.
56
3.1.1.2.3 Mengatur Total Length Berisikan panjang dari suatu initial PDU termasuk header dan data dalam satuan oktet
3.1.1.3 Mengatur Option Part Bagian Option part tidak harus ada, ini adalah flow chart dari Option part jika ada.
Gambar 3.7 : Flowchart pemberian nilai pada field Option Part
3.1.1.3.1 Mengatur Parameter Code Parameter code berisikan code dari fungsi apa yang diinginkan.
3.1.1.3.2
Mengatur Parameter Length
57
Nilai dari Parameter Length adalah panjang parameter value dalam bentuk octet.
Jadi nilainya tergantung dari
Parameter value. 3.1.4.1
Mengatur Parameter Value Parameter value adalah nilai yang menandakan parameter code. Contoh beberapa fungsi dengan parameter code, parameter length, dan parameter value:
Fungsi
Parameter Code
Parameter Length
Parameter Value
Padding
1100 1100
Variable
Any Value is allowed
Priority
1100 1101
1 octet
0000 0000 — Normal (Default) through 0000 1110 — Highest
Security
1100 0101
Variable
The high order two bits of the first octet
etc Tabel 3.3 : Contoh Nilai Fungsi Parameter
3.1.1.4 Segmentation
58
Segmentasi dilakukan jika flag SP pada field di fixed part bernilai 1 dan panjang dari data PDU lebih besar dari MTU yang disediakan oleh jaringan.
Gambar 3.8 : Flowchart algoritma fragmentasi
59
Dari Initial PDU, bisa didapatkan panjang dari bagian header dan bagian. Panjang dari Initial PDU kemudian dipakai sebagai counter dari pengulangan pada proses segmentasi. Panjang Initial PDU ini akan berkurang setiap pengulangan. Selama panjang Initial PDU tidak kurang atau sama dengan nol, maka proses segmentasi akan terus dilakukan. Berikut ini adalah tahapan dari proses segmentasi : 1.
Panjang data dari segmen yang baru dengan nilai yang sama dengan panjang data Initial PDU
2.
Jika panjang data segmen baru lebih besar dari MTU dikurang dengan panjang header, panjang data segmen baru di-set dengan nilai MTU – panjang header, jika tidak, maka panjang data segmen baru di-set ke panjang data yang merupakan kelipatan 8 terdekat dari panjang data Initial PDU
3.
Ruang memori dialokasikan untuk buffer PDU yang baru agar bisa menampung segmen yang baru
4.
Semua informasi pada header diduplikasikan dari buffer Initial PDU ke buffer Derived PDU
5.
Jika segmen yang sedang diproses bukan merupakan segmen yang terakhir maka flag MS di-set dengan nilai 1, jika merupakan segmen terakhir flag MS di-set 0
60
6.
Panjang bagian yang dihitung pada tahap 2 dijadikan nilai dari panjang data yang segmen yang baru
7.
Panjang segmen dari PDU baru di-set dengan nilai panjang header ditambah dengan panjang data yang baru
8.
Offset dari segmen di-set nilainya sesuai dengan letak offset segmen yang sedang diproses ditambah dengan panjang data yang baru
9.
Penghitungan checksum dilakukan pada segmen yang baru
10.
Segmen yang baru pun dikirim ke layer bawah melalui fungsi clnp_finish_output2()
11.
Setelah dikirim ke layer bawah, buffer soket di bebaskan dari ruang memori
12.
Panjang data inisial sebagai counter pada pengulangan pun dikurangkan dengan panjang data yang baru.
3.2 Skenario Pengujian Pengujian modul dilakukan dalam 2 skenario yaitu menguji fungsi compose_clnph(), dan menguji fungsi clnp_fragment() sebagai 2 dari beberapa fungsi utama CLNP yaitu segmentation dan compose PDU.
3.2.1 Pengujian Fungsi compose_clnph() Pengujian pada fungsi ini menggunakan pendekatan black-box dimana fungsi ini akan dijalankan dengan suatu input sebuah buffer dari
61
struct sk_buff dan membernya akan diinisialisasi dengan nilai-nilai. Buffer ini kemudian akan dilihat nilainya apakah sudah sesuai dengan struktur header CLNP yang diatur oleh ISO/IEC 8473-1 dengan melakukan logging KERN_INFO pada kernel log.
3.2.2 Pengujian Fungsi clnp_fragment() Pengujian pada fungsi ini juga menggunakan pendekatan blackbox dimana fungsi ini akan dijalankan dengan suatu input sebuah Initial PDU membernya akan sudah diinisialisasi dengan nilai-nilai dan ukurannya lebih besar dari nilai MTU dengan harapan proses segmentasi bisa dilakukan. Initial PDU ini kemudian akan segmentasi menjadi beberapa Derived PDU dan akan membernya akan dianalisis dengan membandingkan nilai field-field yang ada pada Initial PDU apakah sudah sesuai dengan yang diharapkan oleh fungsi segmentasi yang diatur oleh ISO/IEC 8473-1 dengan melakukan logging KERN_INFO pada kernel log.