DCN - Protokol Kontrol Transmisi
Transmisi Control Protocol (TCP) adalah salah satu protokol terpenting dari rangkaian Protokol Internet. Ini adalah protokol yang paling banyak digunakan untuk transmisi data di jaringan komunikasi seperti internet.
fitur
TCP adalah protokol yang andal. Artinya, penerima selalu mengirimkan pengakuan positif atau negatif tentang paket data tersebut kepada pengirim, sehingga pengirim selalu memiliki petunjuk yang jelas apakah paket data tersebut sudah sampai di tujuan atau perlu dikirim ulang.
TCP memastikan bahwa data mencapai tujuan yang dimaksudkan dalam urutan yang sama saat dikirim.
TCP berorientasi pada koneksi. TCP mengharuskan koneksi antara dua titik jarak jauh dibuat sebelum mengirim data aktual.
TCP menyediakan pemeriksaan kesalahan dan mekanisme pemulihan.
TCP menyediakan komunikasi ujung ke ujung.
TCP menyediakan kontrol aliran dan kualitas layanan.
TCP beroperasi dalam mode point-to-point Klien / Server.
TCP menyediakan server dupleks penuh, yaitu dapat menjalankan peran penerima dan pengirim.
Header
Panjang header TCP minimal 20 byte dan maksimal 60 byte.
Source Port (16-bits) - Ini mengidentifikasi port sumber dari proses aplikasi pada perangkat pengirim.
Destination Port (16-bits) - Ini mengidentifikasi port tujuan dari proses aplikasi pada perangkat penerima.
Sequence Number (32-bits) - Jumlah urutan byte data segmen dalam satu sesi.
Acknowledgement Number (32-bits) - Ketika bendera ACK diset, nomor ini berisi nomor urut berikutnya dari data byte yang diharapkan dan berfungsi sebagai pengakuan dari data sebelumnya yang diterima.
Data Offset (4-bits) - Bidang ini menyiratkan keduanya, ukuran header TCP (kata 32-bit) dan offset data dalam paket saat ini di seluruh segmen TCP.
Reserved (3-bits) - Dicadangkan untuk penggunaan di masa mendatang dan semuanya disetel nol secara default.
Flags (1-bit each)
NS - Nonce Sum bit digunakan oleh proses pensinyalan Pemberitahuan Kemacetan Eksplisit.
CWR - Ketika sebuah host menerima paket dengan set bit ECE, ia mengatur Congestion Windows Reduced untuk menyatakan bahwa ECE diterima.
ECE -Itu memiliki dua arti:
Jika bit SYN jelas ke 0, maka ECE berarti paket IP memiliki set bit CE (congestion experience).
Jika bit SYN diatur ke 1, ECE berarti perangkat tersebut mampu ECT.
URG - Ini menunjukkan bahwa bidang Pointer Urgent memiliki data yang signifikan dan harus diproses.
ACK- Ini menunjukkan bahwa bidang Pengakuan memiliki signifikansi. Jika ACK dihapus ke 0, itu menunjukkan bahwa paket tidak mengandung pengakuan apapun.
PSH - Ketika diatur, itu adalah permintaan ke stasiun penerima untuk data PUSH (segera setelah datang) ke aplikasi penerima tanpa buffering.
RST - Atur ulang bendera memiliki beberapa fitur berikut:
Ini digunakan untuk menolak koneksi masuk.
Ini digunakan untuk menolak segmen.
Ini digunakan untuk memulai kembali koneksi.
SYN - Bendera ini digunakan untuk mengatur koneksi antar host.
FIN- Bendera ini digunakan untuk melepaskan koneksi dan tidak ada lagi data yang dipertukarkan setelahnya. Karena paket dengan flag SYN dan FIN memiliki nomor urut, mereka diproses dalam urutan yang benar.
Windows Size - Bidang ini digunakan untuk kontrol aliran antara dua stasiun dan menunjukkan jumlah buffer (dalam byte) yang dialokasikan penerima untuk sebuah segmen, yaitu berapa banyak data yang diharapkan oleh penerima.
Checksum - Field ini berisi checksum dari Header, Data dan Pseudo Headers.
Urgent Pointer - Ini menunjuk ke byte data mendesak jika bendera URG disetel ke 1.
Options - Ini memfasilitasi opsi tambahan yang tidak tercakup oleh tajuk biasa. Bidang opsi selalu dijelaskan dalam kata 32-bit. Jika bidang ini berisi data kurang dari 32-bit, padding digunakan untuk menutupi bit yang tersisa untuk mencapai batas 32-bit.
Mengalamatkan
Komunikasi TCP antara dua host jarak jauh dilakukan melalui nomor port (TSAP). Nomor port dapat berkisar dari 0 - 65535 yang dibagi menjadi:
- Port Sistem (0 - 1023)
- Port Pengguna (1024 - 49151)
- Port Pribadi / Dinamis (49152-65535)
Manajemen Koneksi
Komunikasi TCP berfungsi dalam model Server / Klien. Klien memulai koneksi dan server menerima atau menolaknya. Jabat tangan tiga arah digunakan untuk manajemen koneksi.
Pembentukan
Klien memulai koneksi dan mengirimkan segmen dengan nomor Urutan. Server mengakuinya kembali dengan nomor Urutannya sendiri dan ACK segmen klien yang satu lebih dari nomor Urutan klien. Klien setelah menerima ACK dari segmennya mengirimkan pengakuan respons Server.
Melepaskan
Salah satu dari server dan klien dapat mengirim segmen TCP dengan flag FIN disetel ke 1. Ketika penerima menanggapinya kembali dengan ACKnowledging FIN, arah komunikasi TCP itu ditutup dan koneksi dilepaskan.
Manajemen Bandwidth
TCP menggunakan konsep ukuran jendela untuk mengakomodasi kebutuhan manajemen Bandwidth. Ukuran jendela memberi tahu pengirim di ujung jarak jauh, jumlah segmen byte data yang dapat diterima penerima di ujung ini. TCP menggunakan fase mulai lambat dengan menggunakan ukuran jendela 1 dan meningkatkan ukuran jendela secara eksponensial setelah setiap komunikasi yang berhasil.
Misalnya, klien menggunakan windows size 2 dan mengirimkan 2 byte data. Ketika pengakuan segmen ini diterima ukuran windows digandakan menjadi 4 dan selanjutnya dikirim segmen yang dikirim akan menjadi 4 byte data. Ketika pengakuan segmen data 4-byte diterima, klien menetapkan ukuran windows menjadi 8 dan seterusnya.
Jika pengakuan tidak terjawab, yaitu data hilang di jaringan transit atau menerima NACK, maka ukuran jendela dikurangi menjadi setengah dan fase mulai lambat dimulai lagi.
Kontrol Kesalahan & dan Kontrol Aliran
TCP menggunakan nomor port untuk mengetahui proses aplikasi apa yang dibutuhkan untuk menyerahkan segmen data. Bersamaan dengan itu, ia menggunakan nomor urut untuk menyinkronkan dirinya dengan host jarak jauh. Semua segmen data dikirim dan diterima dengan nomor urut. Pengirim mengetahui segmen data terakhir mana yang diterima oleh Penerima saat mendapat ACK. Penerima mengetahui segmen terakhir yang dikirim oleh Pengirim dengan mengacu pada nomor urut paket yang baru diterima.
Jika nomor urut segmen yang baru diterima tidak sesuai dengan nomor urut yang diharapkan penerima, maka nomor tersebut akan dibuang dan NACK dikirim kembali. Jika dua segmen tiba dengan nomor urut yang sama, nilai cap waktu TCP akan dibandingkan untuk membuat keputusan.
Multiplexing
Teknik untuk menggabungkan dua atau lebih aliran data dalam satu sesi disebut Multiplexing. Ketika klien TCP menginisialisasi koneksi dengan Server, itu selalu mengacu pada nomor port yang ditentukan dengan baik yang menunjukkan proses aplikasi. Klien itu sendiri menggunakan nomor port yang dibuat secara acak dari kumpulan nomor port pribadi.
Menggunakan TCP Multiplexing, klien dapat berkomunikasi dengan sejumlah proses aplikasi yang berbeda dalam satu sesi. Misalnya, klien meminta halaman web yang pada gilirannya berisi berbagai jenis data (HTTP, SMTP, FTP, dll.), Batas waktu sesi TCP ditingkatkan dan sesi tetap terbuka untuk waktu yang lebih lama sehingga overhead jabat tangan tiga arah dapat dihindari.
Ini memungkinkan sistem klien untuk menerima banyak koneksi melalui koneksi virtual tunggal. Koneksi virtual ini tidak baik untuk Server jika batas waktunya terlalu lama.
Kontrol Kemacetan
Ketika sejumlah besar data dimasukkan ke sistem yang tidak mampu menanganinya, terjadi kemacetan. TCP mengontrol kemacetan melalui mekanisme Window. TCP menetapkan ukuran jendela yang memberi tahu ujung lain berapa banyak segmen data yang akan dikirim. TCP dapat menggunakan tiga algoritma untuk pengendalian kemacetan:
Peningkatan aditif, Penurunan Perkalian
Mulai Lambat
Timeout React
Manajemen Pengatur Waktu
TCP menggunakan berbagai jenis timer untuk mengontrol dan mengelola berbagai tugas:
Timer tetap hidup:
Timer ini digunakan untuk memeriksa integritas dan validitas koneksi.
Ketika waktu keep-hidup berakhir, host mengirimkan probe untuk memeriksa apakah koneksi masih ada.
Timer transmisi ulang:
Timer ini mempertahankan sesi stateful data yang dikirim.
Jika pengakuan data yang dikirim tidak diterima dalam waktu pengiriman ulang, segmen data dikirim lagi.
Pewaktu tetap:
Sesi TCP dapat dijeda oleh salah satu host dengan mengirimkan Ukuran Jendela 0.
Untuk melanjutkan sesi, tuan rumah perlu mengirim Ukuran Jendela dengan nilai yang lebih besar.
Jika segmen ini tidak pernah mencapai ujung yang lain, kedua ujungnya mungkin menunggu satu sama lain untuk waktu yang tidak terbatas.
Ketika pengatur waktu Persist kedaluwarsa, tuan rumah mengirim ulang ukuran jendelanya untuk memberi tahu pihak lain.
Persist Timer membantu menghindari kebuntuan dalam komunikasi.
Jangka Waktu-Tunggu:
Setelah melepaskan koneksi, salah satu host menunggu waktu Timed-Wait untuk mengakhiri koneksi sepenuhnya.
Ini untuk memastikan bahwa ujung yang lain telah menerima pengakuan permintaan penghentian koneksinya.
Batas waktu maksimal 240 detik (4 menit).
Crash Recovery
TCP adalah protokol yang sangat andal. Ini memberikan nomor urut untuk setiap byte yang dikirim dalam segmen. Ini menyediakan mekanisme umpan balik yaitu ketika sebuah host menerima sebuah paket, itu terikat pada ACK bahwa paket tersebut memiliki nomor urut berikutnya yang diharapkan (jika itu bukan segmen terakhir).
Ketika Server TCP lumpuh komunikasi di tengah jalan dan memulai kembali prosesnya, ia mengirim siaran TPDU ke semua hostnya. Host kemudian dapat mengirim segmen data terakhir yang tidak pernah tidak diakui dan dilanjutkan.