Bagaimana Kerja Ping

28 10 2009
TCPIP and OSI models

TCPIP and OSI models

Ping merupakan program Internet dasar yang paling sering kita gunakan sekarang ini, tapi pernahkah Anda berpikir sejenak bagaimana sebenarnya ia bekerja? kadang mengganggu jika kita tidak mengetahui bagaimana sesuatu itu bekerja. Di sini akan kita lihat jawaban dari pertanyaan Anda. Jika kebetulan Anda bukan seorang programer, jangan takut! Kita tidak akan membahas bagaimana membuat ping sendiri. Pada dasarnya, Anda mungkin sudah tahu bagaimana program ping bekerja. Ia mengirim ICMP (Internet Control Message Protocol) Echo Request ke interface tertentu pada jaringan dan sebagai balasannya, ia menunggu untuk menerima ICMP Echo Reply. Dengan melakukan ini, program bisa mengetes konektivitas mengukur waktu respon, dan melaporkan sejumlah error. ICMP merupakan komponen pada layer Internetworking TCP/IP.
pada dasarnya, di level itu ia merupakan rekan IP (Internet Protokol) itu sendiri. Malah, ICMP bergantung kepada IP sebagai transportasi untuk melintas di jaringan. Jika Anda mengamati traffic jaringan semacam ini, misalnya jaringan Ethernet, pada protocol analyzer akan terlihat frame Ethernet mengantarkan datagram IP dengan pesan ICMP di dalamnya Karena program ping dijalankan pada layer Application, bagaimana ia membuat ICMP melakukan trik tersebut?
Anda mungkin ingat pada waktu belajar TCP/IP bahwa layer Host-to-Host berada di antara kedua layer tersebut. Apakah ia dilewati? Jika ya, kemudian bagaimana? Siapa yang bertanggung jawab untuk memformat Echo Request dan Echo Reply? Bagaimana respon ICMP bisa sampai ke program ping? ICMP tidak berisi data alamat yang memungkinkan protokol TCP/IP untuk melihat program mana yang menerima pesan. TCP dan UDP menggunakan nomor port. Jadi, bagaimana dengan ping?

Apa Itu Ping?

Ping merupakan program untuk mengetes respon host pada jaringan. Ping mengirim paket ke alamat yang dituju. Jika ada koneksi jaringan atau host mengalami masalah, maka ping akan gagal yang menandakan ada masalah.

Latar Belakang

Layer TCP/IP terdiri dari empat layer. Paling bawah bernama layer Network Interface atau Network Access, yang ekivalen dengan layer 1 dan 2 pada model OSI, Physical, dan Data Link layer. Ini mencakup media, konektor, signaling pengalamatan fisik, deteksi error, dan pengelolaan pembagian akses ke media. Sebagian besar dari kita mengartikan ini ke Ethernet dan sistem pengkabelan. Di atas layer Network Access ada layer Internetworking, yang ekivalen layer 3 pada model OSI, layer Network: tempat pengalamatan logikal dan routing: hal-hal yang memfasilitasi komunikasi antarjaringan. Di sinilah tempat IP dan mekanisme pengalamatannya berada, begitu juga dengan ICMP. ICMP diperlukan pada setiap implementasi TCP/IP. Ia bukan untuk menyediakan informasi ke protokol pada layer yang lebih tinggi (seperti TCP dan UDP) sehingga mereka lebih handal, tetapi untuk menyediakan diagonosis jaringan dan umpan balik ke mereka yang bertanggung jawab dalam administrasi dan operasional jaringan. Lihat RFC 792 jika Anda sangat tertarik. Di atas layer Internetworking adalah layer Host-to-Host, yang ekivalen dengan OSI layer 4, layer Transport. Perlu ditambahkan bahwa layer ini juga mencakup beberapa fungsi layer 5 (Session). Di sinilah terdapat fasilitas untuk pertukaran data, pengecekan error tambahan, dan membedakan satu program dengan yang lain (dengan nomor port. TCP dan UDP berada pada layer ini. Di tumpukan paling atas adalah layer Process atau Application. Di sinilah protocol high-level (seperti SMTP, HTTP, dan FTP) diimplementasikan. Inilah tempat di mana aplikasi juga dijalankan. Jadi, pada waktu Anda menjalankan ping, program ping berfungsi pada layer ini.

Bagaimana Ping Melewati layer Host-to-Host?

Dengan ICMP bekerja pada layer Internetworking dan program ping pada layer Application, bagaimana layer Host-to-Host dilewati? Jawabannya terletak pada “raw” socket. Socket merupakan titik akhir komunikasi, biasanya terdiri dari alamat IP dan nomor port, yang menunjukkan host atau program tertentu. Namun, programer mempunyai perspektif sedikit berbeda tentang socket. Dari sudut pandangnya, “socket” merupakan fungsi untuk mengalokasi resource sehingga program bisa berinteraksi dengan protokol TCP/IP di bawahnya. Informasi pengalamatan diasosiasikan dengannya setelah panggilan socket dilakukan. Jadi perlu dicatat bahwa kita bias mengalokasikan socket tanpa secara nyata mengasosiasikan informasi pengalamatan apa pun kepadanya. Ada tiga jenis socket yang sering dijumpai: stream, datagram, dan raw. TCP menggunakan stream dan UDP menggunakan datagram. Raw socket digunakan oleh semua aplikasi yang ingin berinteraksi langsung dengan IP, tapi melewati TCP dan UDP. Ini termasuk ping.

Proses Ping
Pada waktu program ping memulai eksekusi, ia membuka raw socket hanya untuk ICMP. Ini berarti dua hal: Pada output pengiriman ICMP Echo Request, program harus memformat pesat ICMP. Sistem akan memberikan IP header dan Ethernet header. Pada input: program harus memeriksa semua pesan ICMP yang datang dan memilih item yang relevan. Echo Request diformat seperti tampak pada gambar. Field Type bernilai delapan, sedangkan field Code bernilai nol. Checksum digunakan untuk mendeteksi error. Setelah itu diikuti oleh field Identification yang berisi ID proses (PID) yang menunjukkan eksekusi program ping. Pada system Windows, field ini berisi nilai 25. Selanjutnya adalah field Sequence, yang dimulai dari nol dan naik satu setiap Echo Request dikirim. Setelah semua fi eld yang diperlukan tersebut, ada field opsional bernama Test Data Ini meliputi waktu yang digunakan dalam kalkulasi waktu pulang-pergi saat menerima Echo Reply. Pada waktu pesan ICMP datang, tugas ping sedikit lebih kompleks. Karena ping menggunakan raw socket, program menerima semua pesan ICMP yang datang. Ini berarti ping tidak hanya melihat Echo Replies tapi juga yang lain, seperti pesan Destination Unreachable Source Quench, dan Time Exceeded. Jika ada dua program ping yang dijalankan pada waktu bersamaan, maka masing-masing program harus mengidentifi kasi pesan yang ditujukan untuk dirinya. Itu bisa diketahui dengan melihat ID proses pada field Identification.


Actions

Information

3 responses

29 10 2009
ochy

hwa… nice,,,
berguna banget artikelnya…
gue copy boleh???
entar gue cantumin sumbernya…

29 10 2009
JakaPrasetya

Silahken bro..,,😀

30 10 2009
Ifa

paling banter ya ping ke yahoo buat nge test koneksi hihihi

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s




%d bloggers like this: