Router menggunakan informasi alamat IP pada sebuah header paket IP untuk menentukan ke interface yang mana sebuah paket harus dipindahkan berdasarkan tujuan nya. Selama IP tidak memastikan paket tersebut mencapai tujuan, ia digambarkan sebagai protocol unreliable, connectionless yang menggunakan best-effort delivery. Jika paket-paket diletakkan pada rute, tiba pada arah yang salah, atau ditransmisikan lebih cepat dibanding penerima bisa menerimanya, IP sendiri tidak dapat membenahi masalah. Untuk mengatasi masalah ini, IP berhubungan dengan TCP.
Operasi TCP
Pengalamatan IP mengijinkan untuk me-routing paket-paket antar jaringan. Bagaimanapun, IP membuat tidak ada garansi tentang pengiriman. Lapisan Transport bertanggung jawab untuk reliable transport dan kontrol aliran data dari sumber ke tujuan. Ini diselesaikan melalui penggunaan sliding window dan sequencing numbers selama proses sinkronisasi. Proses ini memastikan bahwa setiap host siap dan bersedia berkomunikasi.
Untuk memahami reliability dan flow control, bayangkan seorang siswa yang belajar bahasa asing selama satu tahun. Sekarang bayangkan siswa tersebut mengunjungi Negara dimana bahasa tersebut digunakan. Siswa harus meminta orang untuk mengulangi kata-kata untuk reliability dan untuk berbicara dengan pelan agar dipahami, yang berhubungan dengan konsep flow control. Lapisan transport, yang merupakan lapisan ke 4 dari model OSI, menggunakan TCP untuk menyediakan layanan ini ke lapisan 5.
Sinkronisasi atau three-way handshake
TCP merupakan sebuah protocol connection-oriented. Selama transmisi data, dua host yang berkomunikasi melalui proses sinkronisasi untuk membentuk koneksi virtual untuk setiap sesi antar host. Proses sinkronisasi ini memastikan bahwa kedua sisi siap untuk transmisi data dan memperbolehkan peralatan untuk menentukan nomor urutan awal untuk sesi tersebut. Proses ini di kenal sebagai three-way handshake. Ini merupakan proses three-step yang membentuk koneksi virtual antar dua buah peralatan. Penting juga untuk dicatat bahwa three-way handshake diprakarsai oleh host client. Untuk membentuk sebuah sesi TCP, host client akan menggunakan nomor port layanan yang dikenal untuk dihubungi pada sebuah host server.
Pada langkah pertama, initiating host (client) mengirim sebuah paket sinkronisasi (SYN flag set) untuk melakukan inisialisasi koneksi. Ini menandakan bahwa sebuah paket memiliki nilai awal Sequence Number yang valid dalam segmen ini untuk sesi x. Bit SYN pada bagian header menandakan sebuah permintaan koneksi. Bit SYN merupakan bit tunggal pada field code dari header TCP segment. Sequence Number adalah 32 bit field header TCP segment.
Pada langkah kedua, host lain menerima paket, mencatat Sequence Number x dari client, dan membalas dengan sebuah acknowledgment (ACK flag set). Kumpulan bit control ACK menandakan field Acknowledgment Number berisi sebuah nilai acknowledgment valid. ACK flag merupakan bit tunggal pada kode field dari header TCP segment dan Acknowledgment Number adalah 32 bit field header TCP segment. Sekali koneksi terbentuk, flag ACK di set untuk semua segment selama sesi. Field acknowledgment number berisi sequence number berikutnya yang diharapkan diterima host ini (x+1). Acknowledgment number x+1 berarti host telah menerima semua byte termasuk x, dan mengharapkan menerima byte x+1 berikutnya. Host juga mengajukan sebuah return session. Ini termasuk sebuah segment TCP dengan nilai awal sequence numbernya sendiri dari y dan dengan sekumpulan flag SYN.
Pada langkah ketiga, initiating host merespon dengan sebuah nilai Acknowledgment number dari y+1, yang mana nilai dari sequence number host B+1. Ini menandakan bahwa telah diterima acknowledgment sebelumnya dan mengakhiri proses koneksi untuk sesi ini.
Sangat penting untuk memahami bahwa initial sequence number digunakan untuk mengajukan komunikasi antar dua peralatan. Mereka bertindak sebagai nilai referensi awal antar dua peralatan. Sequence number memberikan setiap host sebuah cara untuk menyatakan sehingga penerima mengetahui pengirim merespon untuk permintaan koneksi yang benar.
Windowing dan window size
Jumlah data yang akan ditransmisikan seringkali terlalu besar untuk dikirim pada sebuah segment data tunggal. Pada kasus ini, data harus dipecah menjadi bagian yang lebih kecil untuk memperbolehkan transmisi data yang benar. Ini dapat dibandingkan dengan cara memberi makan anak kecil. Makanan mereka dipotong menjadi bagian-bagian kecil yang dapat di akomodasi mulut mereka. Sebagai tambahan, sebuah peralatan tidak akan mampu untuk menerima data secepat yang dapat sumber kirim. Peralatan bisa saja sibuk dengan tugas lain atau pengirim merupakan peralatan yang labih tangguh.
Sekali data disegmentasi, ia harus ditransmisikan ke peralatan tujuan. Salah satu layanan yang disediakan oleh TCP adalah kontrol aliran, yang mengatur bagaimana data dikirim selama periode waktu tertentu. Proses dari control aliran dikenal sebagai windowing.
Ukuran window menentukan jumlah data yang dapat ditransmisikan pada satu waktu sebelum tujuan merespon dengan sebuah acknowledgement. Setelah sebuah host mentransmisikan sejumlah byte-byte ukuran window, host harus menerima sebuah acknowledgment bahwa data telah diterima sebelum ia dapat mengirim data lain. Sebagai contoh, jika ukuran window adalah 1, setiap byte harus dapat di acknowledge sebelum byte berikutnya dikirim.
TCP menggunakan windowing untuk menentukan ukuran transmisi secara dinamik. Peralatan melakukan negosiasi sebuah ukuran window untuk memperbolehkan jumlah byte tertentu untuk dapat ditransmisikan sebelum sebuah acknowledgement.
Proses ini secara dinamik menambah kehandalan ukuran window. Ukuran window dapat berbeda berdasarkan pada acknowledgement.
Subscribe in a reader