Sebelum kita memulai tutorial video hari ini, saya ingin mengucapkan terima kasih kepada semua orang yang berkontribusi pada popularitas kursus saya di YouTube. Ketika saya memulainya sekitar 8 bulan yang lalu, saya tidak mengharapkan kesuksesan seperti itu - karena hari ini 312724 orang telah melihat pelajaran saya, saya memiliki 11.208 pelanggan. Saya tidak pernah bermimpi bahwa usaha sederhana ini akan mencapai ketinggian seperti itu. Tetapi kita tidak akan kehilangan waktu dan segera beralih ke pelajaran hari ini. Hari ini kami mengisi celah yang telah terjadi dalam 7 video tutorial terakhir. Meskipun hari ini hanya 6 hari, hari 3 telah dibagi menjadi 3 pelajaran video, jadi sebenarnya hari ini Anda menonton video pelajaran kedelapan.
Hari ini kita akan membahas 3 topik penting: DHCP, transmisi TCP, dan nomor port yang paling umum. Kami telah berbicara tentang alamat IP, dan salah satu faktor terpenting dalam mengonfigurasi alamat IP adalah DHCP.

DHCP adalah singkatan dari "Dynamic Host Configuration Protocol," sebuah protokol yang membantu secara dinamis mengkonfigurasi alamat IP untuk host. Jadi kita semua melihat jendela ini. Ketika Anda mengklik opsi "dapatkan alamat IP secara otomatis", komputer mencari server DHCP yang dikonfigurasi pada subnet yang sama dan mengirimkan berbagai paket dan permintaan untuk alamat IP. DHCP memiliki 6 pesan, 4 di antaranya sangat penting untuk menetapkan alamat IP.
Pesan pertama adalah pesan penemuan DHCP DISCOVERY. Pesan penemuan DHCP seperti salam. Ketika perangkat baru memasuki jaringan, ia bertanya apakah server DHCP ada di jaringan.
Apa yang Anda lihat pada slide terlihat seperti permintaan siaran, kode perangkat mengakses semua perangkat di jaringan untuk mencari server DHCP. Seperti yang saya katakan, ini adalah permintaan siaran, jadi semua perangkat jaringan mendengarnya.

Jika ada server DHCP di jaringan, ia mengirim paket - kalimat DHCP PENAWARAN. Proposal berarti bahwa server DHCP, sebagai tanggapan terhadap permintaan penemuan, mengirimkan konfigurasi kepada klien, mendorong klien untuk menerima alamat IP tertentu.

Server DHCP menyimpan alamat IP, dalam hal ini 192.168.1.2, tidak menyediakan, yaitu cadangan alamat ini untuk perangkat. Pada saat yang sama, paket penawaran berisi alamat IP sendiri dari server DHCP.
Jika jaringan ini memiliki lebih dari satu server DHCP, server DHCP lain, setelah menerima permintaan siaran dari klien, juga akan menawarkannya alamat IP-nya, misalnya, 192.168.1.50. Biasanya dua server DHCP yang berbeda tidak dikonfigurasi pada jaringan yang sama, tetapi kadang-kadang ini masih terjadi. Jadi, ketika proposal DHCP dikirim ke klien, ia menerima 2 proposal DHCP dan sekarang harus memutuskan proposal DHCP mana yang ingin diterima.
Mari kita asumsikan bahwa klien menerima aplikasi pertama. Ini berarti bahwa klien mengirimkan permintaan DHCP REQUEST yang secara harfiah mengatakan: "Saya menerima alamat IP 192.168.1.2 yang ditawarkan oleh server DHCP 192.168.1.1."

Setelah menerima permintaan, server DHCP 192.168.1.1 menjawab: "OK, saya mengakuinya," yaitu, itu mengkonfirmasi permintaan dan mengirimkan konfirmasi ACK DHCP ini ke klien. Tapi kami ingat bahwa DHCP DHCP server lain mencadangkan alamat IP 1,50 untuk klien. Setelah menerima permintaan siaran klien, ia mengetahui tentang kegagalan tersebut dan mengembalikan alamat IP ini ke dalam kumpulan sehingga ia dapat menugaskannya ke klien lain jika ia menerima permintaan lain.

Ini adalah 4 pesan penting yang dipertukarkan DHCP di awal penetapan alamat IP. Selanjutnya, DHCP memiliki 2 pesan informasi lebih lanjut. Pesan informasi dikeluarkan oleh klien jika ia membutuhkan lebih banyak informasi daripada yang ia terima dalam kalimat DHCP PENAWARAN pada langkah kedua. Jika server DHCP tidak memberikan informasi yang cukup dalam proposal DHCP, atau jika klien membutuhkan lebih banyak informasi daripada yang terkandung dalam paket proposal, ia meminta informasi DHCP tambahan. Ada pesan lain yang dikirim klien ke server - ini adalah rilis DHCP RELEASE. Dikatakan bahwa klien ingin membebaskan alamat IP yang ada.
Namun, paling sering terjadi bahwa pengguna terputus dari jaringan sebelum klien berhasil mengirim DHCP RELEASE ke server. Ini terjadi ketika Anda mematikan komputer, yang kami lakukan bersama Anda. Pada saat yang sama, klien jaringan, atau komputer, sama sekali tidak punya waktu untuk memberi tahu server tentang pelepasan alamat yang digunakan, jadi DHCP RELEASE bukan langkah wajib. Langkah-langkah yang diperlukan untuk mendapatkan alamat IP adalah: Penemuan DHCP, penawaran DHCP, permintaan DHCP, dan konfirmasi DHCP.
Dalam salah satu pelajaran berikut, saya akan memberi tahu Anda cara kami mengonfigurasi server DHCP saat membuat kumpulan DNCP. By pool dimaksudkan agar Anda memberi tahu server tentang penugasan alamat IP dalam rentang dari 192.168.1.1 hingga 192.168.1.254. Dengan demikian, server DHCP akan membuat kumpulan, tempat 254 alamat IP di dalamnya, dan akan dapat menetapkan alamat klien jaringan dari kumpulan ini saja. Jadi ini adalah sesuatu seperti pengaturan administratif yang dapat dilakukan pengguna.
Sekarang pertimbangkan transmisi TCP. Saya tidak tahu apakah Anda terbiasa dengan "telepon" yang ditunjukkan dalam gambar, tetapi sebagai seorang anak kami menggunakan kaleng yang terhubung dengan kabel untuk berbicara satu sama lain.

Sayangnya, generasi saat ini tidak mampu membeli "kemewahan" seperti itu. Maksud saya, hari ini anak-anak berada di depan TV sejak usia satu tahun, mereka bermain PSP, dan mungkin ini adalah poin yang diperdebatkan, tetapi saya pikir kami memiliki masa kecil yang lebih baik, kami benar-benar pergi keluar dan bermain game, dan Anda tidak dapat merobek anak-anak hari ini dari sofa.
Anak saya baru berusia satu tahun, dan saya sudah melihat bahwa dia kecanduan iPad, maksud saya dia masih sangat kecil, tetapi tampaknya bagi saya bahwa anak-anak sekarang sudah dilahirkan dengan pengetahuan tentang cara menangani gadget elektronik. Jadi, saya ingin mengatakan bahwa di masa kanak-kanak, ketika kami bermain, kami merobek kaleng, dan ketika mereka mengikatnya dengan tali dan mengatakan sesuatu dalam satu kaleng, di ujung yang lain seseorang dapat mendengar apa yang mereka katakan, hanya meletakkan kaleng di telinganya. . Jadi ini sangat mirip dengan koneksi jaringan.
Hari ini, bahkan untuk transmisi TCP, harus ada koneksi yang harus dibuat sebelum transfer data aktual dimulai. Seperti yang kita bahas dalam pelajaran sebelumnya, TCP adalah transmisi yang berfokus pada pra-koneksi ke jaringan, sedangkan UDP adalah transmisi tanpa perlu membuat koneksi. Anda dapat mengatakan bahwa UDP adalah saat saya melempar bola, dan itu tergantung pada Anda apakah Anda dapat menangkapnya. Apakah Anda siap untuk melakukannya atau tidak, ini bukan masalah saya, saya hanya akan menyerah.
TCP lebih seperti berbicara dengan seorang pria dan memperingatkannya sebelumnya bahwa Anda akan melempar bola, yaitu, koneksi dibuat di antara Anda, dan hanya dengan itu Anda melempar bola, sehingga sangat mungkin bahwa pasangan Anda akan siap untuk menangkapnya. Jadi, TCP sebenarnya membangun koneksi, dan kemudian mulai melakukan transfer nyata.
Pertimbangkan bagaimana itu menciptakan koneksi seperti itu. Untuk membuat koneksi, protokol ini menggunakan jabat tangan 3 langkah. Ini bukan istilah yang sangat teknis, tetapi telah lama digunakan untuk menggambarkan koneksi TCP. Jabat tangan 3 langkah dimulai oleh perangkat pengirim, dan klien mengirim paket dengan tanda SYN ke server.
Misalkan gadis di latar depan yang wajahnya dapat kita lihat adalah perangkat A, dan gadis di latar belakang yang wajahnya tidak terlihat adalah perangkat B. Gadis A mengirimkan paket SYN ke gadis B, dan dia berkata: "Hebat, siapa- dia ingin bicara padaku. Jadi saya perlu menjawab bahwa saya siap berkomunikasi! ” Bagaimana cara melakukannya? Satu hanya dapat mengirim kembali paket SYN lain dan kemudian ACK pengakuan menunjukkan tanda terima dari paket SYN asli. Tetapi alih-alih mengirim ACK secara terpisah, server membentuk paket umum yang berisi SYN dan ACK dan mentransmisikannya melalui jaringan.

Jadi, pada saat ini, perangkat A mengirim paket SYN dan menerima kembali paket SYN / ACK. Sekarang perangkat A harus mengirim ACK ke perangkat B, yaitu, mengkonfirmasi bahwa ia telah menerima persetujuan perangkat B untuk menjalin komunikasi. Dengan demikian, kedua perangkat menerima paket SYN dan ACK, dan sekarang kita dapat mengatakan bahwa koneksi dibuat, yaitu, jabat tangan 3-tahap melalui TCP diimplementasikan.

Selanjutnya, kita akan melihat teknologi TCP Windowing. Sederhananya, ini adalah metode yang digunakan oleh TCP / IP untuk menegosiasikan kemampuan pengirim dan penerima.

Misalkan pada Windows kita mencoba untuk mentransfer file besar, katakanlah, berukuran 2 GB, dari satu drive ke drive lain. Pada awal transfer, sistem akan memberi tahu kami bahwa transfer file akan memakan waktu sekitar 1 tahun. Tetapi beberapa detik kemudian, sistem akan pulih dan berkata: "Oh, tunggu sebentar, saya pikir itu tidak akan memakan waktu 6 bulan, tetapi sekitar 6 bulan." Sedikit waktu lagi akan berlalu, dan Windows akan mengatakan: "Saya pikir mungkin saya dapat mentransfer file dalam 1 bulan." Kemudian pesan "1 hari", "6 jam", "3 jam", "1 jam", "20 menit" "," 10 menit "," 3 menit. "Faktanya, seluruh proses transfer file hanya akan memakan waktu 3 menit. Bagaimana itu terjadi? Awalnya, ketika perangkat Anda mencoba menghubungi perangkat lain, ia akan mengirim satu paket dan menunggu konfirmasi. Jika perangkat sedang menunggu konfirmasi untuk waktu yang lama, ia berpikir: "jika saya harus mentransfer 2 GB data pada kecepatan ini, maka ini itu memakan waktu sekitar 2 tahun. "Setelah beberapa waktu, perangkat Anda menerima ACK dan berpikir:" OK, saya mengirim satu paket dan menerima ACK, oleh karena itu, penerima dapat menerima 1 paket. Sekarang saya akan mencoba mengiriminya 10 paket, bukan satu. "Pengirim mengirim 10 paket dan setelah beberapa waktu menerima konfirmasi ACK kembali dari perangkat penerima, yang berarti bahwa penerima sedang menunggu paket berikutnya, 11. Pengirim berpikir: "sangat baik, karena penerima telah berurusan dengan 10 paket segera, sekarang saya akan mencoba mengirimnya 100 paket, bukan sepuluh. " Dia mengirim 100 paket, dan penerima menjawab bahwa dia telah menerimanya dan sekarang sedang menunggu 101 paket. Dengan demikian, seiring waktu, jumlah paket yang dikirimkan meningkat.
Itu sebabnya Anda melihat penurunan cepat dalam waktu salin file dibandingkan dengan yang dinyatakan sebelumnya - ini disebabkan oleh peningkatan kemampuan untuk mentransfer sejumlah besar data. Namun, ada saatnya peningkatan volume transmisi menjadi tidak mungkin. Misalkan Anda telah mengirim 10.000 paket, tetapi penyangga perangkat penerima hanya mampu menerima 9.000. Dalam hal ini, penerima mengirimkan ACK dengan pesan: "Saya telah menerima 9000 paket dan sekarang siap untuk menerima 9001". Dari sini, pengirim menyimpulkan bahwa buffer perangkat penerima hanya berkapasitas 9000, yang berarti mulai sekarang saya akan mengirim tidak lebih dari 9000 paket sekaligus. Dalam hal ini, pengirim dengan cepat menghitung waktu yang diperlukan untuk mentransfer jumlah data yang tersisa dalam porsi 9000 paket, dan memberikan waktu 3 menit. Tiga menit ini adalah waktu transmisi yang sebenarnya. Inilah yang dilakukan oleh TCP Windowing.
Ini adalah salah satu mekanisme kontrol lalu lintas di mana perangkat transmisi dari waktu ke waktu memahami apa bandwidth jaringan yang sebenarnya. Anda mungkin bertanya-tanya mengapa mereka tidak dapat sepakat sebelumnya tentang apa kapasitas perangkat penerima? Faktanya adalah bahwa ini secara teknis tidak mungkin, karena ada berbagai jenis perangkat di jaringan. Misalkan Anda memiliki iPad, dan kecepatan transfer / penerimaan datanya berbeda dari iPhone, Anda mungkin memiliki berbagai jenis ponsel, atau mungkin Anda memiliki komputer yang sangat lama. Karena itu, setiap orang memiliki bandwidth jaringan yang berbeda.
Oleh karena itu, teknologi TCP Windowing dikembangkan ketika transfer data dimulai pada kecepatan rendah atau dengan jumlah paket minimum, secara bertahap meningkatkan jendela lalu lintas. Anda mengirim satu paket, 5 paket, 10 paket, 1000 paket, 10.000 paket dan perlahan-lahan membuka jendela ini lebih dan lebih sampai "ekspansi" mencapai nilai maksimum yang mungkin dari pengiriman volume lalu lintas dalam periode waktu tertentu. Dengan demikian, konsep Windowing adalah bagian dari protokol TCP.
Selanjutnya, kita akan melihat nomor port yang paling umum. Situasi klasik adalah ketika Anda memiliki 1 server utama, mungkin ini adalah pusat data. Ini termasuk server file, server web, server mail, dan server DHCP. Sekarang, jika salah satu komputer klien menghubungi pusat data, yang terletak di tengah gambar, itu akan mulai mengirimkan lalu lintas server file ke perangkat klien. Lalu lintas ini ditampilkan dengan warna merah, dan port spesifik untuk aplikasi spesifik dari server tertentu akan digunakan untuk mengirimkannya.

Bagaimana server mengetahui ke mana lalu lintas tertentu harus pergi? Dia akan mencari tahu dari nomor port tujuan. Jika Anda melihat bingkai, Anda akan melihat bahwa dalam setiap transfer data disebutkan nomor port tujuan dan port sumber. Anda melihat bahwa lalu lintas biru dan merah, dan lalu lintas biru adalah lalu lintas server web, keduanya tiba di server fisik yang sama, di mana server yang berbeda diinstal. Jika itu adalah pusat data, maka ia menggunakan server virtual. Jadi bagaimana mereka tahu bahwa lalu lintas merah seharusnya kembali ke laptop kiri ini dengan alamat IP ini? Mereka tahu ini berkat nomor port. Jika Anda merujuk ke artikel Wikipedia "TCP dan UDP Port List", Anda akan melihat bahwa itu mencantumkan semua nomor port standar.

Jika Anda menggulir halaman ini, maka Anda dapat melihat seberapa besar daftar ini. Ini berisi sekitar 61.000 kamar. Nomor port dari 1 hingga 1024 dikenal sebagai nomor port yang paling umum. Misalnya, port 21 / TCP adalah untuk mentransmisikan perintah ftp, port 22 untuk ssh, port 23 untuk Telnet, yaitu, untuk mengirimkan pesan yang tidak dienkripsi. Port 80 yang sangat populer digunakan untuk mengirimkan data melalui HTTP, dan port 443 digunakan untuk mengirimkan data terenkripsi menggunakan HTTPS, yang mirip dengan versi HTTP yang aman.
Beberapa port dirancang untuk TCP dan UDP secara bersamaan, dan beberapa melakukan tugas yang berbeda tergantung pada koneksi mana yang digunakan - TCP atau UDP. Jadi, secara resmi port 80 TCP digunakan untuk HTTP, dan secara tidak resmi port 80 UDP digunakan untuk HTTP, tetapi menggunakan protokol HTTP yang berbeda - QUIC.

Oleh karena itu, nomor port dalam TCP tidak selalu dirancang untuk sama seperti di UDP. Anda tidak perlu mempelajari daftar ini dengan hati, tidak mungkin untuk mengingatnya, tetapi Anda perlu mengetahui beberapa nomor port yang populer dan paling umum. Seperti yang saya katakan, beberapa port ini memiliki tujuan resmi, yang dijelaskan dalam standar, dan beberapa memiliki tujuan tidak resmi, seperti halnya dengan Chromium.
Jadi, tabel ini mencantumkan semua nomor port umum, dan nomor-nomor ini digunakan untuk mengirim dan menerima lalu lintas saat menggunakan aplikasi tertentu.
Sekarang mari kita lihat bagaimana data bergerak di jaringan berdasarkan sedikit informasi yang kita tahu. Misalkan komputer 10.1.1.10 ingin menghubungi komputer ini, atau server ini, yang memiliki alamat 30.1.1.10. Di bawah alamat IP setiap perangkat adalah alamat MAC-nya. Sebagai contoh, saya memberikan alamat MAC dengan hanya 4 karakter terakhir, tetapi dalam praktiknya itu adalah angka heksadesimal 48-bit dengan 12 karakter. Karena masing-masing angka ini terdiri dari 4 bit, 12 digit heksadesimal mewakili angka 48-bit.

Seperti yang kita ketahui, jika perangkat ini ingin menghubungi server ini, langkah pertama dari jabat tangan 3-tahap harus dilakukan terlebih dahulu, yaitu, paket SYN dikirim. Saat membuat permintaan ini, komputer 10.1.1.10 akan menunjukkan nomor port sumber, yang dibuat Windows secara dinamis. Windows secara acak memilih nomor port antara 1 dan 65.000. Tetapi karena angka awal dalam kisaran dari 1 hingga 1024 diketahui secara luas, dalam hal ini, sistem akan mempertimbangkan angka yang lebih besar dari 25.000 dan membuat port sumber acak, misalnya, di bawah angka 25113.
Selanjutnya, sistem akan menambahkan port tujuan ke paket, dalam hal ini port 21, karena aplikasi yang mencoba terhubung ke server FTP ini tahu bahwa ia harus mengirim lalu lintas FTP.
Lebih lanjut, komputer kami mengatakan: "Oke, alamat IP saya 10.1.1.10, dan saya perlu menghubungi alamat IP 30.1.1.10." Kedua alamat ini juga termasuk dalam paket, membentuk permintaan SYN, dan paket ini tidak akan berubah sampai akhir koneksi.
Saya ingin Anda memahami dari video ini bagaimana data bergerak di seluruh jaringan. Ketika komputer kami mengirim permintaan melihat alamat IP sumber dan alamat IP tujuan, itu memahami bahwa alamat tujuan tidak di jaringan lokal ini. Saya lupa mengatakan bahwa ini semua / 24 alamat IP. Jadi jika Anda melihat alamat IP / 24, Anda akan memahami bahwa komputer 10.1.1.10 dan 30.1.1.10 tidak berada di jaringan yang sama. Dengan demikian, komputer pengirim permintaan memahami bahwa untuk keluar dari jaringan ini, ia harus beralih ke gateway 10.1.1.1, yang dikonfigurasi pada salah satu antarmuka router. Dia tahu bahwa dia harus pergi ke 10.1.1.1, dan tahu alamat MAC-nya 1111, tetapi tidak tahu alamat MAC dari gateway 10.1.1.1. Apa yang dia lakukan Ia mengirimkan permintaan ARP broadcast yang akan diterima semua perangkat di jaringan, tetapi hanya router dengan alamat IP 10.1.1.1 yang akan meresponsnya.

Router akan membalas dengan alamat MAC AAAA-nya, dan alamat MAC sumber dan tujuan juga akan ditempatkan dalam bingkai ini. Segera setelah frame siap, sebelum meninggalkan jaringan, pemeriksaan integritas data CRC akan dilakukan, yang merupakan algoritme untuk menemukan checksum untuk mendeteksi kesalahan.
Kode CRC redundan siklik berarti bahwa seluruh frame ini, dari SYN ke alamat MAC terakhir, dijalankan melalui algoritma hash, misalkan MD5, menghasilkan nilai hash. , MD5, .

FCS/CRC, FCS – , CRC. FCS, — CRC, . . , , , , . , , , , FCS CRC, . , , , , .
MAC- : «, MAC- AAAA , », , MAC-.

IP- 30.1.1.10, , .
«» , , 30.1.1.10. , , . 30.1.1.0. , IP- , . «» , 30.1.1.0/24, 20.1.1.2.
, ? , , , . , , , 20.1.1.2. , MAC- , . , ARP, MAC- 20.1.1.2, .
, , MAC-, MAC- BBB MAC- CCC. FCS/CRC .

, 20.1.12, , , , FCS/CRC. «» MAC-, , 30.1.1.10. , . , MAC- , , .

, - SYN-, , , . MAC-, IP- , .
IP-, OSI, .

21, FTP-, SYN , - .
, , , 30.1.1.10 SYN/ACK 10.1.1.10. , 10.1.1.10 ACK, , SYN, ACK .
, — . , , .
Saya harap apa yang Anda pelajari dari tutorial ini berguna. Jika Anda memiliki pertanyaan, tulis kepada saya di imran.rafai@nwking.org atau kirim pertanyaan di bawah video ini.Mulai dari pelajaran berikutnya, saya akan memilih 3 pertanyaan paling menarik dari YouTube, yang akan saya pertimbangkan di akhir setiap video. Mulai sekarang, saya akan memiliki bagian "Pertanyaan Terbaik", jadi saya akan memposting pertanyaan dengan nama Anda dan menjawabnya langsung. Saya pikir itu akan bermanfaat.Terima kasih telah tinggal bersama kami. Apakah Anda suka artikel kami? Ingin melihat materi yang lebih menarik? Dukung kami dengan melakukan pemesanan atau merekomendasikannya kepada teman-teman Anda,
diskon 30% untuk pengguna Habr pada analog unik dari server entry-level yang kami temukan untuk Anda: Seluruh kebenaran tentang VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps dari $ 20 atau bagaimana membagi server? (opsi tersedia dengan RAID1 dan RAID10, hingga 24 core dan hingga 40GB DDR4).
VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps hingga musim panas gratis ketika membayar untuk jangka waktu enam bulan, Anda dapat memesan di
sini .
Dell R730xd 2 kali lebih murah? Hanya kami yang memiliki
2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV dari $ 199 di Belanda! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - mulai dari $ 99! Baca tentang
Cara Membangun Infrastruktur Bldg. kelas menggunakan server Dell R730xd E5-2650 v4 seharga 9.000 euro untuk satu sen?