TCP/IP: Lapisan Protokol Data Link

From OnnoWiki
Revision as of 20:46, 20 June 2010 by Onnowpurbo (talk | contribs)
Jump to navigation Jump to search

Keluarga protokol TCP/IP di disain untuk dapat dioperasikan di atas hampir semua teknologi jaringan lokal atau wide area network. Tentu protokol di tingkat network interface perlu diatur supaya IP dapat dijalankan di atas berbagai interface / teknologi jaringan fisik yang ada.

Komunikasi Asinkron dan Sinkron

Umumnya paket data yang dikirim pada komunikasi data antar komputer di Internet menggunakan metoda komunikasi data sinkron. Dalam bahasa sederhana, komunikasi data sinkron adalah pengiriman data yang dilakukan secara terus menerus tanpa henti sampai satu frame selesai dikirim.

Lawan-nya adalah komunikasi asinkron, dimana data dikirim terputus-putus tidak dalam satu kesatuan, dan tidak tentu waktu pengirimannya. Oleh karena-nya dalam komunikasi asinkron dibutuhkan tanda start dan stop untuk mengetahui bahwa ada data yang dikirim. Komunikasi asinkron sering di sebut komunikasi start-stop. Pada gambar di perlihatkan beda komunikasi sinkron dan asinkron.

Untuk setiap jenis saluran fisik yang digunakan, umumnya kita akan menggunakan protocol data link yang berbeda-beda. Masing-masing protocol data link di rancang untuk mengambil manfaat maksimal dari sebuah saluran fisik tertentu. Pada bagian ini akan di jelaskan beberapa contoh protokol link untuk beberapa jenis saluran fisik, seperti, saluran dial-up, LAN / Ethernet, Wireless LAN dan radio paket.

Secara umum akan terlihat bahwa format frame dari masing-masing protokol data link mempunyai kemiripan satu dengan yang lainnya. Umumnya berbasis pada format frame High Level Data Link Controller (HDLC) yang merupakan protokol bit-oriented biasanya digunakan dalam komunikasi data yang sifatnya sinkron. Frame protokol keluarga Wireless LAN barangkali merupakan format yang paling kompleks dari semua frame yang ada.

Point-to-Point Protocol (PPP)

Serial Line Internet Protocol SLIP RFC 1055 dan Point-to-Point Protocol PPP RFC 1661 adalah dua protokol yang sering digunakan di komunikasi melalui saluran serial di komputer. Pada hari ini, SLIP dan PPP telah menjadi bagian dari semya sistem operasi di PC. Kita akan menggunakan PPP melalui modem telepon untuk tersambung ke Internet melalui ISP baik itu dial-up maupun sambungan 24 jam.

Salah satu kelebihan PPP adalah kemampuan untuk melakukan negosiasi pada saat sambungan awal, seperti password, IP address, kompresi, dan enkripsi. Di samping itu, PPP mendukung komunikasi beberapa protokol sekaligus di atas satu sambungan. Di jaringan seperti ISDN, PPP mendukung inverse multiplexing dan alikasi bandwidth secara dynamic melalui Multilink-PPP (ML-PPP) diterangkan di RFC 1990 (http://www.isi.edu/in-notes/rfc1990.txt) dan RFC 2125 (http://www.isi.edu/in-notes/rfc2125.txt).



PPP biasanya menggunakan format frame High Level Data Link Controller (HDLC) yang merupakan protokol bit-oriented biasanya digunakan dalam komunikasi data yang sifatnya sinkron. RFC 1661 tidak menyaratkan penggunan HDLC. HDLC mendefiniskan kolom pertama dan dua kolom yang terakhir dari frame.

  • Flag: 8-bit pattern "01111110" yang digunakan sebagai batas awal dan akhir pengiriman data / paket.

Address: Untuk PPP, digunakan address broadcast 8-bit, "11111111".

RFC 1661 pada dasarnya menjelaskan penggunaan ke tiga kolom yang lain dalam frame:

  • Protocol: 8 atau 16 bit yang menentukan jenis datagram yang dibawa di kolom informasi. Kolom protokol menentukan jenis protokol yang digunakan di lapisan network (apakah itu IP, IPX atau DDP), atau PPP Link-layer Control Protocol (LCP). Daftar lengkap nilai PPP yang mungkin dapat di peroleh dari IANA list of PPP protocols. (http://www.iana.org/numbers.html#P)
  • Information: berisi datagram dari protokol yang di spesifikasikan di kolom protokol. Kolom ini dapat kosong, atau berisi beberapa oktet, hingga maksimum 1500 oktet (default). Tentunya untuk nilai yang berbeda dapat di negosiasikan.
  • Padding: bersifat optional untuk menambah panjang dari kolom informasi. Mungkin dibutuhkan di beberapa implementasi untuk menjamin panjang frame minimum dan/atau untuk menjamin alignment batas dari komputer word.

Operasional PPP pada dasarnya sebagai berikut:



Local Area Network

Pada hari ini, jaringan lokal atau lebih dikenal sebagai Local Area Network (LAN) merupakan jaringan yang paling banyak di implementasikan untuk membentuk sebuah jaringan komputer.

Komputer yang terkait ke jaringan LAN biasanya di lengkapi dengan card Ethernet atau Network Interface Card / NIC atau lebih di kenal sebagai card LAN di toko-toko. Sebetulnya ada banyak tipe teknologi NIC, seperti, TokenRing, ARCNET dll, tapi yang paling populer adalah Ethernet & Wireless Ethernet / Wireless LAN.

Data melalui ethernet di kirim dalam unit frame, dimana setiap frame mempunyai awal dan akhir yang sangat jelas, Tampak pada gambar adalah struktur sebuah frame Ethernet versi 2.0 yang banyak di gunakan saat ini.



Dalam frame Ethernet II, di definisikan:

  • Preamble:digunakan untuk sinkronisasi kecepatn / modem, 64 bit.
  • Alamat Ethernet Tujuan (Destination Address): dari mesin yang dituju, 48 bit
  • Alamat Ethernet Asal / Pengirim (Source Address): dari mesin pengirim, 48 bit
  • Tipe: Tipe data yang dikirim, seperti, IP, ARP, RARP, dll, 16 bit.
  • Kolom Data / Informasi: 46-1500 bytes, yang membawa informasi dan protokol yang lebih tinggi keluarga TCP/IP.
  • CRC Cyclical Redundancy Check: digunakan untuk mendeteksi kesalahan, 32 bit

Alamat Ethernet, atau lebih di kenal sebagai Media Access Control (MAC) address, kira-kira equivalen dengan nomor seri dari NIC. Setiap paket yang dikirim oleh NIC akan di bungkus di dalam frame Ethernet yang menggunakan MAC address untuk mengarahkan traffik di jaringan lokal. Oleh karena itu MAC address hanya penting di jaringan lokal saja. Pada saat paket berjalan di Internet, loncat dari satu router ke router yang lain IP address tidak berubah. Tapi MAC address akan di alokasikan lagi oleh setiap router yang di lewati. Proses / mekanisme perolehan informasi MAC address di jaringan menggunakan Address Resolution Protocol (ARP).

Sebetulnya masih banyak tipe Ethernet frame, beberapa diantaranya dapat dilihat di


WLAN: Wireless LAN IEEE 802.11, 802.11a, 802.11b, 802.11g

Salah satu teknologi jaringan yang paling diminati pada saat ini (tahun 2006) adalah teknologi Wireless LAN yang memungkinkan kita membangun jaringan Internet pada kecepatan tinggi menggunakan radio pada frekuensi 2.4GHz & 5.8GHz tanpa menggunakan Telkom. Hal ini memungkinkan untuk membuat akses Internet menjadi murah.

Teknologi Wireless Local Area Network (WLAN) di definisikan melalui spesifikasi protokol IEEE 802.11. Pada saat ini ada cukup banyak spesifikasi yang ada, beberapa yang dominan adalah 802.11, 802.11a, 802.11b, and 802.11g. Semua menggunakan protokol Ethernet dan CSMA/CA (carrier sense multiple access with collision avoidance jadi bukan CSMA/CD) dalam mengakses channel radio secara bersama-sama.

802.11 – mendefinisikan jaringan wireless LAN yang mampu memberikan kecepatan 1 / 2 Mbps pada frekuensi 2.4GHz menggunakan modulasi Frequency Hopping Spread Spectrum (FHSS) atau Direct Sequence Spread Spectrum (DSSS). Teknologi IEEE 802.11 FHSS yang dominan pada hari ini adalah Bluetooth.

802.11a – merupakan extension dari 802.11 yang digunakan untuk Wireless LAN dan dapat memberikan kecepatan sampai dengan 54 Mbps di frekuensi 5-5.8 GHz. 802.11a menggunakan teknik modulasi / pengkodean Orthogonal Frequency Division Multiplexing (OFDM) yang berbeda dengan FHSS atau DSSS.

802.11b (juga di kenal sebagai 802.11 kecepatan tinggi, atau Wireless Fidelity / WiFi) – merupakan extension dari 802.11 yang digunakan untuk Wireless LAN dan memberikan kecepatan sampai dengan 11 Mbps (dan dapat turun automatis menjadi 5.5, 2 dan1 Mbps) pada frekuensi 2.4 GHz. 802.11b hanya menggunakan DSSS. 802.11b merupakan ratifikasi dari standard 802.11 yang awal, yang memungkinkan jaringan wireless LAN mempunyai kemampuan yang hampir sama dengan Ethernet kabel.

802.11g – memungkinkan wireless LAN kecepatan tinggi 54Mbps di 2.4GHz untuk jarak dekat. 802.11g menggunakan teknik pengkodean / modulasi OFDM.

Modulasi yang digunakan di 802.11 awalnya adalah Phase-Shift Keying (PSK). Metoda modulasi yang digunakan di 802.11b adalah Complementary Code Keying (CCK), yang memungkinkan kecepatan tinggi dan lebih tahan terhadap interferensi propagasi multipath. 802.11a menggunakan modulasi Orthogonal Frequency-Division Multiplexing (OFDM) yang memungkinkan kecepatan tinggi sampai 54 Mbps, tapi umumnya komunikasi data berlangsung pada kecepatan 5.5 Mbps, 11 Mbps, atau 24 Mbps.

Untuk jarak dekat & low power (kurang dari 10 meter) terutama di peralatan personal, seperti PDA, Bluetooth dan standard IEEE 802.15 menjadi dominan. Untuk jarak jauh dan kota besar, WiMAX dan IEEE 802.16 menjadi dominan. Struktur MAC frame IEE 802.11 tampak sebagai berikut tampak pada gambar



Definisi kolom di MAC IEEE 802.11b adalah:

  • Frame Control (FC): Versi protokol dan jenis frame yang di jelaskan lebih detail di Frame Control.
  • Duration/ID (ID) : digunakan untuk untuk message poll untuk power-save. Nilai waktu-nya digunakan untuk perhitungan Network Allocation Vector (NAV).
  • Sequence Control (SC): terdiri dari nomor fragment dan nomor urut. Digunakan untuk merepresentasikan urutan dari berbagai potongan dari frame yang sama, atau untuk mendeteksi duplikasi.
  • Kolom alamat (1-4): berisi 4 address (source, destination, transmittion dan receiver address) tergantung pada bit ToDS dan FromDS yang ada di Frame Control.
  • Kolom Data / Informasi: 0-2312 bytes, yang membawa informasi dan protokol yang lebih tinggi keluarga TCP/IP.
  • CRC Cyclical Redundancy Check: digunakan untuk mendeteksi kesalahan, 32 bit
ToDS FromDS Address 1 Address 2 Address 3 Address 4
0 0 DA SA APA
0 1 DA APA SA
1 0 APA SA DA
1 1 RA TA DA SA

Dimana:

DA	Destination Address (alamat tujuan)
SA	Source Address (alamat pengirim)
RA	Receipent Address (alamat penerima)
TA	Transmitter Address (alamat pemancar)
APA	Access Point Address (alamat access point)

Format Frame Control (FC) adalah sebagai berikut:

WEP (Wired Equivalent Privacy): menujukan bahwa data yang dikirim di enkrip berdasarkan algoritma WEP.

  • Order: menunjukan bahwa frame yang dikirim menggunakan aturan yang ketat.


Bit b3 b2 Penjelasan Bit b7 b6 b5 b4 Penjelasan
00 Management 0000 Associate Request
00 Management 0001 Associate Responds
00 Management 0010 Reassociate Request
00 Management 0011 Reassociate Responds
00 Management 0100 Probe Request
00 Management 0101 Probe Responds
00 Management 0110-0111 Reserved
00 Management 1000 Beacon
00 Management 1001 ATIM
00 Management 1010 Disassociation
00 Management 1100 Deauthentication
00 Management 1101-1111 Reserved
01 Control 0000-0001 Reserved
01 Control 1010 PS-Poll
01 Control 1011 RTS
01 Control 1100 CTS
01 Control 1101 ACK
01 Control 1110 CF End
01 Control 1111 CF End + CF-ACK
10 Data 0000 Data
10 Data 0001 Data + CF-ACK
10 Data 0010 Data + CF-Poll
10 Data 0011 Data + CF-ACK + CF-Poll
10 Data 0100 Null Function (no data)
10 Data 0101 CF-ACK (no data)
10 Data 0110 CF-Poll (no data)
10 Data 0111 CF-ACK + CF-Poll (no data)
10 Data 1000-1111 Reserved

Keterangan teknis lebih mendalam tentang format frame protokol Wireless LAN IEEE 802.11b terutama dapat di ambil di http://umsis.miami.edu/~ksarinna/IEEE80211b.html.

Keterangan lebih lanjut tentang berbagai informasi tentang teknologi Wireless LAN cukup mudah di peroleh di Google. Terutama untuk membuat infrastruktur Internet murah ada beberapa site yang mungkin bisa untuk memulai-nya adalah

Paket Radio

Teknik radio paket merupakan cikal bakal / teknik awal dari berbagai teknik Internet menggunakan radio yang sekarang marak. Teknik ini cukup populer di Indonesia di awal tahun 80-an. Memang kecepatan jaringan komputer yang menggunakan radio paket sangat rendah, hanya sekitar 1200-9600 bps, sangat rendah di bandingkan dengan teknologi WiFi 11-150Mbps yang sekarang kita nikmati.

Akan tetapi, saya sendiri cukup kaget mengetahui bahwa teknologi radio paket masih di gunakan oleh banyak saudara kita di Indonesia khususnya di daerah-daerah terpencil di Nusa Tenggara dll. Melihat kenyataan ini, saya memasukan pembahasan frame protokol AX.25 yang merupakan standard yang digunakan di radio paket.

Adapun format frame AX.25 radio paket adalah sebagai berikut:


AX.25 sama seperti PPP menggunakan format frame High Level Data Link Controller (HDLC) yang merupakan protokol bit-oriented biasanya digunakan dalam komunikasi data yang sifatnya sinkron. HDLC mendefiniskan kolom pertama dan dua kolom yang terakhir dari frame.

  • Flag: 8-bit pattern "01111110" yang digunakan sebagai batas awal dan akhir pengiriman data / paket.

Control: 8 / 16bit , adalah kolom kontrol pada AX.25 yang mengacu pada operasi HDLC balances operation yang pada dasarnya terdiri dari tiga (3) mekanisme, yaitu, frame informasi (I), supervisory (S) dan unnumbered (U). Frame untuk mengirimkan data adalah frame informasi (I).

Teknik Control secara lengkap dan Protokol ID yang di dukung di AX.25 dapat dilihat di spesifikasi AX.25 versi 2.2 yang dapat di ambil dari http://www.tapr.org.

Bagi anda yang berminat untuk mengoprek teknologi radio paket, terutama mengunakan Linux, dapat mengambil berbagai referensi-nya di http://yb1zdx.arc.itb.ac.id/orari-diklat/teknik/packet-radio/

Address Resolution Protocol (ARP)

Dalam implementasi jaringan Internet lebih sering tersambung melalui Ethernet Local Area Network (LAN). Setiap transmisi data di jaringan LAN akan berisi alamat Medium Access Control (MAC) node source & destination. MAC address panjangnya 48 bit dan tidak ada konsep hirarki (dengan NET_ID, HOST_ID dll) seperti IP addres. Oleh karenanya tidak mungkin melakukan routing menggunakan MAC address. MAC address sama sekali berbeda dengan IP address.

Jika sebuah mesin ingin mengirimkan paket / datagram ke semua mesin di jaringan yang sama. Software aplikasi yang ingin berkomunikasi harus mengetahui IP address maupun MAC address dari si penerima. Hal ini dibutuhkan karena alamat IP address yang dituju perlu dimasukan ke IP paket, dan alamat MAC yang dituju perlu dimasukan ke frame protokol LAN MAC. Jika mesin yang dituju di network yang lain, maka pengirim akan mencari MAC address dari default gateway atau router.

Sayangnya, pengirim paket IP kemungkinan besar tidak akan tahu MAC address dari mesin yang dituju yang berada di jaringan yang sama. Oleh karena itu, di kembangkan Address Resolution Protocol (ARP), yang di jelaskan di RFC 826 (http://www.isi.edu/in-notes/rfc826.txt) memberikan mekanisme yang memungkinkan sebuah mesin pengirim paket untuk menanyakan MAC address penerima, jika hanya mengetahui IP address yang dituju.

Tabel ARP pada dasarnya hanya berisi MAC address dan IP address masing-masing komputer & biasanya tidak statis, sangat dinamik. Skenario penggunaan ARP sebagai berikut, jika sebuah komputer butuh berkomunikasi dengan komputer yang lain, maka komputer tersebut biasanya akan melalui langkah berikut:

  • Komputer akan cek tabel routing, mencari router selanjutnya untuk menuju ke jaringan yang di tuju.
  • Jika ada router yang valid, misalkan IP addressnya 192.168.1.1, komputer kemudian akan cek tabel ARP untuk melihat apakah ada MAC address dari NIC router. Dengan cara ini, komputer memastikan bahwa paket akan dikirim ke tujuan (router) yang benar.
  • Jika ada dalam tabel ARP, komputer akan mengirimkan paket IP ke NIC komputer tersebut, dan memerintahkan NIC untuk mengenkapsulasi paket ke dalam frame yang ditujukan ke MAC address dari router.
  • Jika ternyata tidak ada dalam tabel ARP, maka komputer akan mengirimkan paket ARP request di jaringan menanyakan router 192.168.1.1 mempunyai MAC address berapa, supaya pengiriman paket dapat dilakukan. Jika ada jawaban di terima, maka IP paket akan dikirim dan tabel ARP akan di update dengan MAC address yang baru.
  • Setiap router dalam jalur pengiriman paket, akan mengambil IP paket keluar dari frame Ethernet, dan membuang informasi [[MAC Address]-nya. Router akan melihat IP address tujuan & melihat tabel routing yang ada untuk menentukan router selanjutnya yang harus di lalui IP paket tersebut.

Proses kembali berlanjut, router akan menggunakan proses ARP untuk memperoleh MAC address router selanjutnya. Jika di peroleh MAC address-nya, maka IP paket akan di enkapsulasi dalam ethernet frame dan dikirim ke router selanjutnya sampai ke komputer tujuan.

  • Jika komputer tujuan berada di jaringan yang sama, proses yang sama untuk memperoleh MAC address tujuan menggunakan ARP tetap terjadi. Tapi paket langsung dikirim ke komputer tujuan tanpa perlu melalui router, dan tabel ARP di update dengan MAC address komputer tujuan tersebut.
  • Komputer tidak akan mengirimkan data ke komputer tujuan kecuali bila di tabel ARP-nya ada MAC address dari komputer / router yang dituju. Jika tidak ada, maka aplikasi yang membutuhkan komunikasi akan timeout atau error “time exceeded”.

Oleh karenanya, tabel ARP hanya berisi MAC address dari peralatan yang tersambung di jaringan lokal saja. Isi tabel ARP tidak permanen, dan akan di hapus setelah selang waktu tertentu tergantung sistem operasi yang digunakan.

IANA menyimpan semua parameter ARP di http://www.iana.org/assignments/arp-parameters. Beberapa prosedur address resolution juga di definisikan, termasuk:

  • Reverse ARP (RARP), yang memungkinkan mesin diskless untuk mengetahui IP address jika mengetahui MAC addressnya.
  • Inverse ARP (InARP), memungkinkan pemetaan antara IP address dengan frame relay virtual circuit identifier
  • ATMARP dan ATMInARP memungkinkan pemetaan antara IP address dan ATM virtual path/channel identifiers.
  • LAN Emulation ARP (LEARP), mungkinkan pemetaan ATM address penerima ke LAN Emulation (LE) address yang berupa IEEE 802 MAC address.


Dalam bentuk gambar, proses transaksi ARP dapat di gambar kan sebuah komputer, misalnya dengan IP address 132.92.121.1 MAC address 00:80:48:E3:D2:69 yang terhubung ke jaringan LAN.





Komputer 132.92.121.1 ingin berhubungan dengan komputer 132.92.121.2 yang belum di ketahui MAC addessnya. Maka Komputer 132.92.121.1 akan mengirimkan ARP Request menanyakan MAC address komputer 132.92.121.2, yang di tandai dengan MAC address 00:00:00:00:00:00 pada MAC address target di message ARP Request.








Komputer 132.92.121.2 dengan MAC address 00:80:AD:17:96:34 yang berada di LAN memonitor permohonan dari komputer 132.92.121.1. Maka komputer 132.92.121.2 akan menjawab dengan ARP responds, yang memberikan MAC address komputer 132.92.121.2.







Informasi MAC address komputer 132.92.121.2 akan dimasukan ke dalam ARP Table yang ada di komputer 132.92.121.1.





PC / mesin biasanya menyimpan informasi ARP yang terkini. Untuk lebih jelasnya proses bertanya MAC address komputer yang akan dituju dapat dilihat menggunakan software sniffer, dalam hal ini saya menggunakan tcpdump yang tersedia di Linux menggunakan perintah:

# tcpdump –X –i eth0

Dalam hasil tcpdump, kadang kala di temukan proses ARP sedang berlangsung seperti contoh berikut

14:04:09.315845 arp who-has 192.168.0.112 tell 192.168.0.11
        0x0000:  0001 0800 0604 0001 0002 b335 4271 c0a8	...........5Bq..
        0x0010:  000b 0000 0000 0000 c0a8 0070			...........p
14:04:09.316304 arp reply 192.168.0.112 is-at 00:00:1c:09:3c:0b
        0x0000:  0001 0800 0604 0002 0000 1c09 3c0b c0a8	............<...
        0x0010:  0070 0002 b335 4271 c0a8 000b 2020 2020	.p...5Bq........
        0x0020:  2020 2020 2020 2020 2020 2020 2020		..............

Dalam contoh, komputer 192.168.0.11 menanyakan ke jaringan MAC address dari komputer yang mempunyai IP address 192.168.0.112. Jika komputer dengan IP address 192.168.0.112 mendengarkan permintaan tersebut, akan menjawab, dalam hal ini, MAC address komputer 192.168.0.112 adalah 00:00:1C:09:3C:0B.

Daftar lengkap MAC address yang termonitor oleh komputer Linux dapat dilihat menggunakan perintah arp –a berikut:

[root@yc0mlc ~]# arp -a
? (192.168.0.112) at 00:00:1C:09:3C:0B [ether] on eth0
? (192.168.0.111) at 00:01:F4:EC:E2:E7 [ether] on eth0
? (192.168.0.10) at 00:0D:88:B3:22:99 [ether] on eth0
? (192.168.0.80) at 00:11:6B:C0:04:FB [ether] on eth0
? (192.168.0.110) at 00:80:48:22:2B:23 [ether] on eth0

Pranala Menarik