Cara kerja jaringan komputer | UNIX LINUX EXPLORE
Edit

Cara kerja jaringan komputer

Jaringan, atau jaringan komputer, adalah proses menghubungkan dua atau lebih perangkat komputasi, seperti komputer desktop, perangkat seluler, router atau aplikasi, untuk memungkinkan transmisi dan pertukaran informasi dan sumber daya.

Perangkat jaringan bergantung pada protokol komunikasi—aturan yang menjelaskan cara mengirimkan atau bertukar data melalui jaringan, untuk berbagi informasi melalui koneksi fisik atau nirkabel.


1. Memahami tentang jaringan komputer

Rangkaian artikel tentang jaringan komputer ini ditujukan untuk semua orang yang bekerja dengannya dengan satu atau lain cara: terlibat dalam pengaturan dan pemeliharaannya (administrator jaringan), mengidentifikasi kelemahan dan kerentanan jaringan (penguji penetrasi) dan secara umum untuk semua orang yang tertarik pada bagaimana sebenarnya jaringan komputer bekerja.

Anda akan melihat bahwa jaringan komputer adalah penemuan umat manusia yang luar biasa, hasil kerja bertahun-tahun oleh banyak spesialis. Ini adalah mekanisme kompleks yang melibatkan banyak protokol jaringan, teknologi, dan perangkat, bahkan untuk sesuatu yang biasa seperti menjelajahi web.

Seperti yang dapat Anda pahami dari daftar isi, aspek-aspek kunci dari fungsi jaringan komputer akan dipertimbangkan.

Untuk mendapatkan gambaran umum tentang fungsi jaringan komputer, yaitu teknologi apa yang terlibat, saya mengusulkan untuk mempertimbangkan situasi yang sangat sederhana: apa yang terjadi ketika Anda membuka situs di browser web. Mungkin masing-masing dari kita melakukan tindakan dasar ini berkali-kali dalam sehari. Namun tidak semua orang memahami apa yang sebenarnya terjadi dalam sepersekian detik antara memasukkan alamat situs ke baris browser dan menampilkan halaman situs.


2. Mengapa Anda membutuhkan DNS?

Katakanlah kita memasukkan "www.penaadventure.com" ke menu pencarian alamat browser dan menekan ENTER. Sepersekian detik kemudian mereka melihat halaman itu. Tampaknya semuanya sederhana. Tapi mari kita mulai dengan fakta bahwa browser tidak tahu apa-apa tentang situs hackware.ru. Dia bahkan tidak mengetahui alamat IP situs tersebut. Jadi, browser web memulai dengan membuat query DNS ke server nama. Server ini mengetahui alamat IP semua situs. 

Namun untuk mengirim permintaan, Anda memerlukan protokol transport. UDP digunakan sebagai protokol tersebut. Fitur dari protokol ini adalah paket yang dikirimkan tidak diperiksa untuk mengetahui kesalahan yang mungkin terjadi selama transmisi. Artinya, jika paket rusak di tengah perjalanan, maka paket tersebut hilang begitu saja. Ternyata ini adalah protokol yang tidak bisa diandalkan, tapi cepat. Ini cocok untuk situasi di mana Anda perlu mengirim satu permintaan dan segera menerima tanggapannya.

3. protokol HTTP / HTTPS

Jadi, browser web menerima respons atas permintaan DNS-nya, sekarang ia mengetahui alamat IP server tempat situs tersebut berada. Anda dapat membuat permintaan. Protokol HTTP ikut berperan (kami sengaja melewatkan HTTPS dan HSTS agar tidak mengacaukan contoh ikhtisar). HTTP adalah protokol yang paling mudah dipahami, dan browser web mengirimkan sesuatu seperti ini.

> GET / HTTP/2
> Host: hackware.ru
> user-agent: curl/7.88.1
> accept: */*

Harap dicatat bahwa header “Host:” berisi nama situs. Intinya mengetahui IP saja tidak cukup. Mungkin ada banyak situs dalam satu server. Oleh karena itu, ketika browser menghubungi server web dengan permintaan untuk menampilkan sebuah situs, browser tersebut harus menunjukkan situs mana yang dibutuhkannya. Pada baris ini, GET menunjukkan metode protokol HTTP yang digunakan (bisa juga POST atau HEAD). HTTP/2 adalah nomor versi protokol. Dan “/” adalah halaman yang diminta, disini mungkin /?p=21, jika saya meminta halaman hackware.ru/?p=21. Baris di atas menanyakan folder root, artinya halaman indeks default akan ditampilkan. Dengan demikian, permintaan yang dikirim hackware.ru/ akan diproses sebagai hackware.ru/index.php

Server merespons seperti ini:

< HTTP/2 200 
< server: nginx
< content-type: text/html;charset=utf-8
< vary: Accept-Encoding
< x-powered-by: PHP/7.2.34
< date: Thu, 09 Mar 2023 03:32:14 GMT
< x-page-speed: 1.13.35.2-0
< cache-control: max-age=0, no-cache, s-maxage=300

Dan kemudian muncul kode sumber dari halaman yang diminta, seperti gambar di bawah ini.






4. Mengapa TCP diperlukan?
String protokol HTTP yang ditampilkan tidak dapat dikirimkan begitu saja ke server. Dibutuhkan “pembawa”. Sebagai analogi, mari kita ambil contoh surat kertas: Anda ingin menulis surat dengan tulisan: “Bu, saya baik-baik saja. Aku mencintaimu. Lebih banyak uang keluar." Dalam contoh ini, kata-katanya seperti protokol HTTP - jadi browser web berkata, “tunjukkan halaman situs web hackware.ru.” Namun untuk bisa mengirimkan kata-kata dalam surat kepada ibu, harus dituliskan di atas kertas. Demikian pula, untuk protokol HTTP, peran “kertas” dimainkan oleh protokol transport TCP. 

Kita sudah familiar dengan protokol transport UDP - ini adalah protokol yang cepat namun tidak dapat diandalkan. Namun cocok bila semua informasi yang dikirimkan terkandung dalam satu paket. Namun untuk data berukuran besar yang dipecah menjadi sejumlah besar paket, hal ini kurang cocok. TCP tidak hanya mengirimkan informasi, tetapi juga memastikan bahwa paket tidak hilang atau rusak. Jika sebuah paket hilang, maka paket lain yang sama persis akan dikirim menggantikannya. Ini dapat diandalkan, tetapi untuk keandalan ini Anda harus “membayar” karena untuk memastikan keandalan ini, banyak data yang dikirim hanya diperlukan untuk “layanan”, artinya, data tersebut tidak memberikan nilai yang berguna.

Jadi, server web kami mengetahui ke mana harus mengirim (menemukan IP menggunakan permintaan DNS), mengetahui apa yang harus dikirim, dan bahkan telah mengemas permintaan HTTP ke dalam paket TCP. Paket TCP terdiri dari data dan header yang dikirimkan. Header ini berisi berbagai informasi, termasuk alamat IP tujuan dan IP asal paket dikirim. Browser web sekarang meminta sistem operasi untuk mengirimkan paket TCP ini untuknya.

5. Data link layer (transfer data dari perangkat ke perangkat)

Sistem operasi tidak menentangnya. Namun ada kendalanya: paket TCP tidak bisa dikirim begitu saja melalui jaringan. Seolah-olah Anda menulis surat kepada ibu Anda di atas kertas dan datang ke kantor pos untuk mengirimkannya, hal pertama yang mereka akan minta Anda lakukan adalah menyegel surat Anda di dalam amplop. Amplop untuk paket TCP di jaringan lokal adalah frame Ethernet. Sekarang Ethernet dapat ditransfer ke antarmuka jaringan.

Namun di sini kita dihadapkan pada kendala berikut: Frame Ethernet menggunakan alamat MAC sebagai alamat penerima dan pengirim. Kami mengetahui nama situsnya, kami mengetahui alamat IP, kami bahkan mengetahui halaman yang diminta pengguna, namun kami tidak memiliki alamat MAC Address.

Dan ini bukanlah suatu hal yang disengaja. Kami mencapai titik di mana data akan ditransfer dari satu perangkat ke perangkat lain. Untuk melakukan ini, Anda perlu mengetahui alamat fisik perangkat lain ini - alamat MAC yang sama.

Katakanlah Anda perlu mengirim paket TCP ke alamat IP 192.168.0.175. Sistem operasi memulai dengan menentukan apakah IP yang diminta milik jaringan lokal atau tidak. Jika milik jaringan lokal, maka lihat di tabel ARP untuk melihat apakah ada informasi tentang 192.168.0.175 di sana.



Jika ada, maka terlihat pada MAC Address perangkat yang IP-nya 192.168.0.175. Paket TCP dibungkus dalam frame Ethernet, dalam frame ini terdapat area dengan data yang ingin dikirim, dan ada juga header, header ini menyatakan untuk alamat MAC mana paket tersebut dimaksudkan dan alamat MAC mana yang dituju. pengirim punya. Bingkai Ethernet dikirim ke antarmuka jaringan. Jangan ikuti dia untuk saat ini, tapi pertimbangkan opsi lain.

Jika IP yang diperlukan tidak ditemukan dalam tabel ARP, maka permintaan siaran dibuat melalui jaringan lokal “siapa yang memiliki IP 192.168.0.175?” Sebagai tanggapan, perangkat dengan IP 192.168.0.175 mengirimkan alamat MAC-nya. Ketika respons tiba, MAC yang diterima ditambahkan ke tabel ARP (jika berguna) dan frame Ethernet yang sudah dikenal dibuat dan dikirim ke antarmuka jaringan.

Jika IP tujuan pengiriman paket TCP tidak berada di jaringan lokal, maka sistem operasi akan mencari alamat gateway default. Semua paket yang bukan milik jaringan lokal dan rute khusus yang tidak terdaftar dikirim ke gateway ini. Jadi, sistem operasi melihat IP gateway default, lalu mencari IP ini di tabel ARP - ia mendapatkan alamat MAC gateway default. Setelah ini, paket TCP dibungkus dalam frame Ethernet.

Izinkan saya mengingatkan Anda bahwa kami masih mencoba mengirim paket TCP pertama dari permintaan kami ke server web...

Jadi, akhirnya frame Ethernet masuk ke jaringan lokal. Jika bertemu dengan switch (perangkat yang tidak memahami alamat IP sama sekali, dan tidak memerlukannya), perangkat tersebut akan melihat MAC penerima dan mengalihkan frame Ethernet ke penerima. Katakanlah server web tidak ada di jaringan lokal kita, maka frame Ethernet perjalanan kita akhirnya berakhir di router. Hal pertama yang dilakukan router adalah membuka bingkai Ethernet, yaitu mengekstrak paket TCP darinya.


6. protokol IP

Router melihat alamat IP penerima. Router memiliki tabel peruteannya sendiri, serta rute defaultnya sendiri. Jika paket TCP ini tidak ditujukan untuk siapa pun di jaringan lokal, maka router hanya mengirimkannya melalui rute default, yaitu melalui kabel yang menuju ke penyedia Internet.

Kami ingat bahwa Anda tidak bisa begitu saja mengirim paket TCP dari satu perangkat ke perangkat lainnya - paket tersebut harus dibungkus dalam amplop. Di jaringan lokal, ini adalah bingkai Ethernet, tetapi di jaringan penyedia, ini bukan lagi Ethernet, tetapi protokol lain. Kami tidak akan fokus pada hal ini, terutama karena mungkin ada berbagai pilihan.

Jadi, paket TCP kami sampai ke penyedia Internet. Tampaknya banyak hal telah terjadi padanya, tetapi jalur paket TCP baru saja dimulai. Sekarang ia akan melakukan perjalanan melalui beberapa jaringan dan masih sampai ke server web. Setiap jaringan terhubung ke beberapa jaringan lainnya. Dan ada banyak jalan untuk mencapai titik akhir. Misalnya, saya mengirim paket TCP dari wilayah Vladimir dan tujuannya adalah server di St. Petersburg. Paket dapat mengambil rute terpendek melalui jaringan yang berdekatan, atau pertama-tama dapat pergi ke Amerika Utara, lalu ke Amerika Selatan, lalu ke Australia dan kemudian ke server di St. Petersburg. Untuk mencegah terjadinya opsi kedua, beberapa protokol telah dikembangkan untuk membuat rute terpendek sekaligus - ini adalah topik terpisah yang tidak akan kami bahas.


7. NAT

Paket TCP kami berhasil sampai ke penerima. Penerima membuka lipatannya dan mengeluarkan permintaan HTTP dari sana - dan permintaan tersebut mengatakan bahwa dia perlu menampilkan halaman web situs web hackware.ru. Server web menghasilkan respons: ia menyusun header protokol HTTP dan halaman web dan juga memecah data ini menjadi paket TCP. Paket TCP berisi alamat IP pengirim dan penerima. Server web menghasilkan respons dalam bentuk header atau data protokol HTTP, “menulisnya” ke paket TCP di mana alamat server ditentukan sebagai alamat IP pengirim, dan alamat IP asal paket ditentukan sebagai alamat penerima. alamat IP.

Komputer saya memiliki alamat IP 192.168.0.49. Ini adalah alamat lokal dan hanya dapat dikirim ke dalam jaringan rumah saya. Jika paket TCP dengan IP seperti itu tiba di server web, server web tidak akan dapat mentransfer data ke server tersebut. Router rumah kami mengetahui hal ini dan mengatasi masalahnya terlebih dahulu - untuk ini ia menggunakan NAT , yaitu Terjemahan Alamat Jaringan.

Cara kerja NAT adalah sebagai berikut: router menerima paket jaringan, misalnya dari komputer dengan IP 192.168.0.49. Paket jaringan berisi berbagai data, termasuk IP tujuan (tempat paket dikirim) dan IP tempat respons harus dikembalikan, yaitu dalam contoh kita adalah 192.168.0.49. Tapi masalahnya 192.168.0.49 adalah IP lokal. Kemudian router mengganti alamat tujuan paket dikembalikan: alih-alih 192.168.0.49, router mencatat IP eksternalnya, katakanlah 109.126.241.24. 

Router juga menghitung checksum baru untuk paket tersebut (memverifikasi bahwa paket tidak rusak selama transmisi) dan mengirimkannya ke Internet dalam bentuk ini. Dalam hal ini, koneksi terbuka dan router menunggu respons - selama ini router mengingat bahwa koneksi khusus ini untuk 192.168.0.49. Ketika respon tiba di mana alamat IP router ditunjukkan sebagai tujuan, router mengetahui bahwa paket ini tidak ditujukan untuknya, sehingga mengubah alamat tujuan di dalamnya menjadi 192.168.0.49 dan segera mengirimkannya ke penerima.

Faktanya, semuanya menjadi sedikit lebih rumit - router tidak selalu memiliki IP putih, yang dapat diakses dari Internet. Router dapat terhubung ke jaringan lokal penyedia Internet. Jika iya, maka NAT digunakan kembali. Artinya, satu paket bisa melewati beberapa NAT (melalui beberapa jaringan lokal).


8. TCP/IP atau OSI

Pada tingkat transfer data dari perangkat ke perangkat (disebut data link), digunakan protokol yang berbeda-beda, misalnya PPP, IEEE 802.22, Ethernet, DSL, ARP. Ada juga banyak protokol di tingkat transport, kita telah menyentuh TCP, UDP - tetapi masih banyak lagi. 

Ada banyak protokol jaringan; sistem level telah dikembangkan untuk mensistematisasikannya. Selain itu, ada banyak sistem seperti itu, dua yang dominan: TCP/IP dan model jaringan OSI . Mereka memiliki lapisan yang sama, tetapi TCP/IP memiliki 4 lapisan, dan OSI memiliki 7 lapisan.

Dalam praktiknya, standar yang diperkenalkan untuk OSI dan TCP/IP tidak saling bersaing melainkan saling melengkapi. Hasilnya, arsitektur hybrid lima lapis tersebar luas.

TCP/IPOSIHybridLevelKey taskExamples
AppliedAppliedApplied5Communication between applicationsHTTP, FTP, SMTP, RDP, SNMP, DHCP, RTSP, DNS
 Representative (representation)    
 Session    
TransportTransportTransport4Connection between end pointsTCP, UDP, SCTP, PORTS, SCTP, DCCP 
Inter-networkNetworkInter-network3Transferring data between networksIP, ICMP, IPv6, IPsec, AppleTalk
ChannelChannelChannel2Data transfer within one networkLAN standards (e.g. Ethernet, WiFi), WAN/MAN standards (e.g. Frame Relay, Carrier-Ethernet): PPP, IEEE 802.22, Ethernet, DSL, ARP, L2TP, network card.
 PhysicalPhysical1Signal generation and deliveryUSB, cable (twisted pair, coaxial, fiber optic), radio channel, port/interface standards (e.g. RJ-45, serial port, parallel port), transmission technology standards (e.g. modulation, multiplexing)


Kami akan mengandalkan model Hybrid, karena lebih konsisten dengan praktik.
  • Application layer : Menangani komunikasi antar aplikasi (misalnya, browser web dan program server web, klien email dan program server).
  • Transport layer : melaksanakan koneksi dari titik ke titik (atau host ke host) dan menjaga keandalannya.
  • Internetwork layer : Melakukan koneksi internetworking di seluruh subnet.
  • Data Link Layer : Menyediakan komunikasi intra-jaringan dalam subnet.
  • Physical layer : Secara fisik mengirimkan data/pesan antar node jaringan.
Untuk komunikasi antar dan intrajaringan yang diperlukan, setiap node (yaitu host dan perangkat perantara) menjalankan fungsi beberapa lapisan. Setiap host (misalnya PC, server, ponsel pintar) mengimplementasikan kelima lapisan secara internal; perangkat middleware biasanya hanya mengimplementasikan beberapa dari lima lapisan tersebut karena tugas utamanya adalah memindahkan data antar node. Misalnya, switch tradisional hanya bekerja pada lapisan fisik dan data link, sedangkan router terutama bekerja pada lapisan internetwork, fisik, dan data link.


Kesimpulan

Jadi, seperti yang Anda lihat, jaringan komputer adalah mekanisme yang disetel dengan sangat baik di mana segala sesuatunya dipikirkan dan diperhitungkan. Ini adalah topik yang sangat menarik!

Bahkan dalam proses yang dijelaskan, beberapa protokol yang digunakan selama penjelajahan Internet biasa tidak ada.

Memahami cara kerja jaringan memungkinkan Anda secara sadar mengonfigurasi koneksi jaringan, perutean, pemfilteran data, menganalisis operasi jaringan, melindungi diri sendiri, atau mensimulasikan serangan. Memahami cara kerja jaringan adalah keterampilan dasar bagi administrator jaringan, pengembang program yang menggunakan koneksi jaringan, pentester, dan banyak profesi TI lainnya.