4.0. OSI Transport Layer
4.0.1. Pengenalan Chapter
Data Network dan Internet mendukung manusia dengan menyediakan komunikasi yang handal bagi user, baik lokal dan di seluruh dunia. Pada satu perangkat, user dapat menggunakan beberapa layanan seperti e-mail, web, dan instant messaging untuk mengirim pesan atau mengambil informasi. Aplikasi seperti e-mail client, web browser, dan instant messaging memungkinkan user untuk menggunakan komputer dan jaringan untuk mengirim pesan dan mencari informasi.
Data dari masing-masing aplikasi ini dikemas, diangkut, dan dikirim ke server. Proses yang dijelaskan dalam OSI Transport Layer menerima data dari Application Layer dan mempersiapkan untuk mengalamatkan pada Network Layer. Transport Layer bertanggung jawab pada transfer keseluruhan end-to-end data. Dalam bab ini, kita menguji peran Transport Layer dalam encapsulating data aplikasi untuk digunakan oleh Network Layer. Berikut adalah fungsi-fungsiTransport Layer: Memungkinkan beberapa aplikasi untuk berkomunikasi melalui jaringan pada saat yang sama pada satu perangkat Memastikan bahwa (jika diperlukan) semua data dapat diterima dan dapat meminta data ke aplikasi yang benar Mempekerjakan mekanisme penanganan kesalahan.

Tujuan pembelajaran
Setelah menyelesaikan bab ini, Anda akan dapat: Menjelaskan pentingnyaTransport Layer. Mengidentifikasi peran Transport Layersaat menyediakan transfer data end-to-end antara aplikasi. Menggambarkan peranTCP/IP Transport layer protocols: TCP dan UDP.

4.1.1 Purpose of the Transport Layer
Tugas utama Transport Layer adalah: Pelacakan komunikasi individual antara aplikasi pada source dan hostdestination Segmentasi data dan mengelola masing-masing bagian Pemasangan kembali segmen ke Application Data Mengidentifikasi aplikasi yang berbeda Pelacakan Percakapan Individual. Semua host mungkin memiliki beberapa aplikasi yang berkomunikasi melalui jaringan. Masing-masing aplikasi akan berkomunikasi dengan satu atau lebih aplikasi pada remote host. Ini adalah tanggung jawab Transport Layer untuk mempertahankan beberapa aliran komunikasi antara aplikasi ini.

Segmentasi Data
Setiap aplikasi menciptakan aliran data yang akan dikirim ke Remote Application, data ini harus siap untuk dikirim di seluruh media dalam potongan-potongan yang dapat dikelola. Protokol Transport Layer menggambarkan layanan segmentasi data dari Application Layer. Ini termasuk enkapsulasi pada setiap bagian data. Setiap bagian dari data aplikasi membutuhkan header yang akan ditambahkan pada Transport Layer untuk menunjukkan ke mana komunikasi itu dikirim.

Pemasangan kembali Segmentasi
Pada host penerima, setiap potongan data akan diarahkan ke aplikasi yang sesuai. Selain itu, potongan-potongan dari data juga harus direkonstruksi menjadi aliran data lengkap yang berguna untuk Application Layer. Protokol pada Transport Layer menggambarkan bagaimana Transport Layer Header Information digunakan untuk memasang kembali potongan-potongan data ke stream untuk diteruskan ke Application Layer.


Mengidentifikasi Aplikasi
Untuk melewatkan data stream ke aplikasi yang tepat, Transport Layer harus mengidentifikasi aplikasi yang dituju. Untuk mencapai hal ini, Transport Layer memberikan Identifier. Protokol TCP / IP memberikan setiap identifier ini nomorport. Setiap proses perangkat lunak yang perlu mengakses jaringan diberi nomor port yang unik dalam host tersebut. Nomor port ini digunakan di header Transportlayer untuk ditunjukkan ke aplikasi.
Transport Layer adalah penghubung antara Application Layer dan lapisan bawah yang bertanggung jawab untuk transmisi jaringan. Lapisan ini menerima data dari percakapan yang berbeda dan dibagikan ke lapisan bawah sebagai potongan yang siap dikelola yang akhirnya menjadi multiplexing.

Data Requirements Vary
Karena aplikasi yang berbeda memiliki kebutuhan yang berbeda. Untuk beberapa aplikasi, segmentasi harus tiba di urutan yang sangat spesifik agar berhasil diproses. Dalam beberapa kasus, semua data harus diterima agar bisa diproses (tidak boleh corrupt). Dalam kasus lain, aplikasi dapat mentolerir beberapa kehilangan data selama transmisi melalui jaringan.

Memisahkan Beberapa Komunikasi
Pertimbangkan sebuah komputer yang terhubung ke jaringan yang secara bersamaan menerima dan mengirim e-mail dan pesan instan, membuka website dan melakukan panggilan telepon VoIP. Masing-masing aplikasi yang mengirim dan menerima data melalui jaringan pada waktu yang sama. Namun, data dari panggilan telepon tidak diarahkan ke browser web, dan teks dari pesan instan tidak muncul dalam e-mail. Selanjutnya, pengguna mengharuskan e-mail atau halaman web sepenuhnya diterima dan disajikan untuk informasi yang dianggap berguna. Penundaan sedikit dapat diterima untuk memastikan bahwa informasi yang lengkap diterima dan disajikan.
Membagi data ke dalam bagian-bagian kecil, dan mengirim dari sumber ke tujuan, memungkinkan banyak komunikasi yang berbeda untuk disisipkan (multiplexing) pada jaringan yang sama. Untuk mengidentifikasi setiap segmen data, Transport Layer menambah potongan header yang berisi data biner. Header ini berisi kolom bit.

4.1.2 Controlling the Conversation
Fungsi utama yang ditetapkan oleh semua protokol Transport Layer meliputi Segmentasi dan reassembly. Sebagian besar jaringan memiliki keterbatasan pada jumlah data yang dapat dimasukkan dalam PDU tunggal. Transport Layer membagi data aplikasi menjadi blok-blok data menjadi ukuran yang sesuai. Di tempat tujuan, Transport Layer mengumpulkan kembali data sebelum mengirimnya ke aplikasi tujuan.
Percakapan Multiplexing : Mungkin ada banyak aplikasi atau layanan yang berjalan pada setiap host dalam jaringan. Setiap aplikasi atau layanan ini diberikan alamat yang dikenal sebagai port sehingga Transport Layer dapat menentukannya. Selain menggunakan informasi yang terkandung dalam header, untuk fungsi dasar segmentasi data dan reassembly, beberapa protokol pada Transport Layer menyediakan:
Percakapan connection-oriented
Rekonstruksi data yang diperintahkan
Flow control
4.1.3 Supporting Reliable Communication
Ingat bahwa fungsi utama dari Transport Layer adalah mengelola data aplikasi untuk percakapan antara host. Namun, aplikasi yang berbeda memiliki kebutuhan yang berbeda untuk data mereka, dan protokol Transport karena itu berbeda telah dikembangkan untuk memenuhi persyaratan ini.
Pada Transport Layer memiliki tiga operasi dasar adalah:
ü  pelacakan data yang ditransmisikan
ü  menerima data yang diterima
ü  mentransmisi data
Hal ini menciptakan trade-off, pengembang aplikasi harus memilih protokol transport yang sesuai berdasarkan persyaratan dari aplikasi mereka.
Menentukan Kebutuhan Aplikasi seperti database, halaman web, dan e-mail, mengharuskan semua data yang dikirim tiba di tujuan dalam kondisi aslinya, agar data yang diterima dapat diproses. Setiap data yang hilang dapat menyebabkan komunikasi yang corruptatau tidak terbaca. Oleh karena itu, aplikasi ini dirancang untuk menggunakan protokol Transport Layer yang mengimplementasikan kehandalan. Overhead jaringan tambahan dianggap diperlukan untuk aplikasi ini. Aplikasi lain yang lebih toleran terhadap hilangnya sejumlah kecil data. Sebagai contoh, jika satu atau dua segmen dari aliran video gagal untuk tiba, itu hanya akan membuat gangguan sesaat dalam sungai. Ini mungkin muncul sebagai distorsi pada gambar tapi bahkan mungkin tidak terlihat oleh pengguna.
Memaksakan overhead untuk memastikan keandalan untuk aplikasi ini bisa mengurangi kegunaan dari aplikasi. Gambar dalam video streaming akan sangat terdegradasi jika perangkat tujuan harus memperhitungkan data yang hilang dan menunda sungai sambil menunggu kedatangannya. Lebih baik untuk membuat gambar terbaik pada saat dengan segmen yang datang dan mengorbankan kehandalan. Jika keandalan diperlukan untuk beberapa alasan, aplikasi ini dapat memberikan pengecekan error dan permintaan pengiriman ulang.

4.1.4 TCP and UDP
Kedua protokol Transport Layer yang paling umum dari TCP / IP protocol suite adalah Transmission Control Protocol (TCP) dan User Datagram Protocol (UDP). Perbedaan antara keduanya adalah fungsi khusus yang masing-masing protokol implementasikan.
User Datagram Protocol (UDP)
UDP Ini memiliki keuntungan yaitu memberikan pengiriman data yang memiliki overhead rendah. Potongan-potongan komunikasi dalam UDP disebut datagram. Datagram ini dikirim sebagai "usaha terbaik" demi Transport Layer.
Aplikasi yang menggunakan UDP termasuk:
ü  Domain Name System (DNS)
ü  Video Streaming
ü  Voice over IP (VoIP)

Transmission Control Protocol (TCP)
TCP merupakan protokol berorientasi koneksi, dijelaskan dalam RFC 793. Fungsi TCP adalah pengiriman yang sama, pengiriman yang handal, dan kontrol aliran. Setiap segmen TCP memiliki 20 byte overhead dalam header encapsulating data Application Layer, sedangkan setiap segmen UDP hanya memiliki 8 byte overhead.



Aplikasi yang menggunakan TCP adalah:
ü  browser web
ü  E-mail
ü  File Transfer

4.1.5 Port Addresing
Mengidentifikasi Percakapan
Perhatikan contoh sebelumnya komputer secara bersamaan menerima dan mengirim e-mail, pesan instan, halaman web, dan panggilan telepon VoIP. Layanan TCP dan UDP berbasis melacak berbagai aplikasi yang berkomunikasi. Untuk membedakan segmen dan datagram untuk setiap aplikasi.  Dalam header dari setiap segmen atau datagram, ada sumber dan port tujuan. Nomor port sumber adalah jumlah untuk komunikasi ini dikaitkan dengan aplikasi yang berasal dari host lokal. Nomor port tujuan adalah nomor untuk komunikasi ini dikaitkan dengan aplikasi tujuan pada host remote.
Nomor port ditugaskan dalam berbagai cara, tergantung pada apakah pesan tersebut adalah permintaan atau tanggapan. Sementara proses server memiliki nomor port statis yang ditugaskan kepada mereka, klien secara dinamis memilih nomor port untuk setiap percakapan.

Mengidentifikasi Percakapan
Perhatikan contoh sebelumnya komputer secara bersamaan menerima dan mengirim e-mail, pesan instan, halaman web, dan panggilan telepon VoIP.
Layanan TCP dan UDP melacak berbagai aplikasi yang berkomunikasi. Untuk membedakan segmen dan datagram untuk setiap aplikasi, baik TCP dan UDP telah memberi nomor port yang unik.
Dalam header dari setiap segmen atau datagram memiliki sumber dan port tujuan. Nomor port sumber adalah nomor untuk komunikasi yang berasal dari host lokal. Nomor port tujuan adalah nomor untuk komunikasi yang dimiliki oleh host tujuan pada host remote. Nomor port ditugaskan dalam berbagai cara, tergantung pada pesan tersebut merupakan permintaan atau tanggapan. Sementara proses server memiliki nomor port statis yang ditugaskan kepada mereka, klien secara dinamis memilih nomor port untuk setiap percakapan. Ketika aplikasi client mengirimkan permintaan ke server aplikasi, port tujuan yang terkandung dalam header adalah nomor port yang ditugaskan untuk daemon layanan yang berjalan pada host remote. Perangkat lunak klien harus tahu apa nomor port dikaitkan dengan proses server pada remote host. Nomor port tujuan ini dikonfigurasi, baik secara default atau secara manual. Sebagai contoh, ketika sebuah aplikasi web browser yang membuat permintaan ke server web, browser menggunakan TCP dan nomor port 80 kecuali dinyatakan khusus. Hal ini karena TCP port 80 adalah port default ditugaskan untuk aplikasi web-melayani. Banyak aplikasi umum memiliki tugas port default.

Ada berbagai jenis nomor port:
Well Known Ports (Bilangan 0-1023) - Angka-angka ini dicadangkan untuk layanan dan aplikasi. Mereka umumnya digunakan untuk aplikasi seperti HTTP (web server) POP3 / SMTP (e-mail server) dan Telnet.
Registered Ports (Bilangan 1024-49151) - Angka-angka di port ini ditugaskan untuk memproses pengguna atau aplikasi. Proses ini adalah aplikasi terutama individu bahwa user telah memilih untuk menginstal aplikasi umum yang akan menerima Port Well Known. Ketika tidak digunakan untuk sumber daya server, port ini juga dapat digunakan secara dinamis dipilih oleh klien sebagai port sumber nya.
Dynamic or Private Ports (Bilangan 49.152-65.535) - Juga dikenal sebagai Port Ephemeral, ini biasanya diberikan secara dinamis untuk aplikasi-aplikasi client ketika memulai koneksi. Hal ini tidak sangat umum untuk klien untuk menyambung ke layanan menggunakan Port Dinamis atauPrivate .

Menggunakan TCP dan UDP
Beberapa aplikasi dapat menggunakan TCP dan UDP. Misalnya, overhead yang rendah UDP memungkinkan DNS untuk melayani banyak permintaan klien sangat cepat. Kadang-kadang perlu untuk mengetahui koneksi TCP yang aktif terbuka dan berjalan pada host jaringan. Netstat adalah utilitas jaringan penting yang dapat digunakan untuk memverifikasi koneksi tersebut. Netstat berisi protokol yang digunakan, alamat lokal dan nomor port, alamat asing dan nomor port, dan status koneksi.
Koneksi TCP Unexplained dapat menimbulkan ancaman keamanan utama. Hal ini karena mereka dapat menunjukkan bahwa sesuatu atau seseuser terhubung ke host lokal. Selain itu, koneksi TCP yang tidak perlu dapat mengkonsumsi sumber daya sistem yang berharga sehingga memperlambat kinerja host. Netstat harus digunakan untuk memeriksa koneksi terbuka pada host ketika kinerja tampaknya dikompromikan.
Banyak pilihan yang berguna yang tersedia untuk perintah netstat.

4.1.6 Segmentation and Reassembly
Beberapa aplikasi mengirimkan data dalam jumlah besar, dalam beberapa kasus lebih dari 1 gigabyte, akan tidak praktis untuk mengirim semua data ini dalam satu keutuhan. Tidak ada lalu lintas jaringan lainnya dapat ditumpangi sedangkan data ini sedang dikirim. Data ini bisa dikirim selama hitungan menit atau bahkan jam. Selain itu, jika ada kesalahan seluruh file data harus hilang. Perangkat jaringan tidak akan memiliki buffer memori yang cukup besar untuk menyimpan data ini ketika sedang dikirim atau diterima. Membagi data aplikasi menjadi potongan-potongan memastikan bahwa data ditransmisikan dalam batas-batas media dan data dari aplikasi yang berbeda dapat di-multiplexing pada media.

TCP dan UDP Menangani Segmentasi yang Berbeda.
Dalam TCP, setiap header segmen berisi nomor urut. Nomor urut ini memungkinkan fungsi Transport Layer pada host tujuan untuk memasang kembali segmen dalam urutan di mana mereka dikirim. Hal ini memastikan bahwa aplikasi tujuan memiliki data dalam bentuk yang tepat pengirim dimaksudkan.
Meskipun layanan menggunakan UDP juga melacak percakapan antara aplikasi, mereka tidak peduli dengan urutan di mana informasi itu ditransmisikan. UDP adalah desain yang lebih sederhana dan menghasilkan lebih sedikit overhead dari TCP, sehingga transfer data lebih cepat.

4.2.1 TCP – Making Conversation Reliable
Perbedaan utama antara TCP dan UDP adalah kehandalan. Kehandalan komunikasi TCP dilakukan menggunakan sesi connection-oriented. Sebelum host menggunakan TCP mengirimkan data ke host lain, Transport Layer memulai proses untuk membuat koneksi dengan tujuan. Koneksi ini memungkinkan pelacakan sesi, atau aliran komunikasi antara host. Proses ini memastikan bahwa setiap host menyadari dan siap untuk komunikasi. Sebuah percakapan TCP yang lengkap memerlukan pembentukan sesi antara host di kedua arah. Keandalan ini dicapai dengan memiliki bidang dalam segmen TCP, masing-masing dengan fungsi tertentu, seperti yang ditunjukkan pada gambar. Bidang ini akan dibahas kemudian dalam bagian ini.

4.2.2. TCP Server Processes
Seperti yang telah dibahas dalam bab sebelumnya, proses aplikasi berjalan di server. Proses ini menunggu sampai klien memulai komunikasi dengan permintaan untuk informasi atau layanan lainnya.
Setiap proses aplikasi yang berjalan pada server dikonfigurasi untuk menggunakan nomor port, baik secara default atau secara manual oleh administrator sistem. Server individu tidak dapat memiliki dua layanan ditugaskan ke nomor port yang sama dalam layanan Transport Layer yang sama. Sebuah host menjalankan aplikasi web server dan aplikasi transfer file tidak dapat memiliki keduanya dikonfigurasi untuk menggunakan port yang sama (misalnya, TCP port 8080). Ketika sebuah aplikasi server aktif ditugaskan ke port tertentu, port yang dianggap "terbuka" di server. Ini berarti bahwa Transport Layer menerima dan segmen proses yang ditujukan kepada port tersebut. Setiap permintaan klien masuk ditujukan ke soket yang benar diterima dan data dilewatkan ke aplikasi server. Ada banyak port simultan terbuka pada server, satu untuk setiap aplikasi server aktif. Adalah umum bagi server untuk menyediakan lebih dari satu layanan, seperti server web dan server FTP, pada saat yang sama.




4.2.3. TCP Connection Establishment and Termination
Ketika dua host berkomunikasi menggunakan TCP, sambungan dibuat sebelum data dapat dipertukarkan. Setelah komunikasi selesai, sesi ditutup dan sambungan diakhiri. Koneksi dan sesi mekanisme mengaktifkan fungsi keandalan TCP.
Host penyedia melacak setiap segmen data dalam sesi dan pertukaran informasi tentang data apa yang diterima oleh setiap host menggunakan informasi dalam header TCP.
Setiap koneksi melibatkan aliran komunikasi satu arah, atau sesi untuk membangun dan mengakhiri proses TCP antara end user. Untuk membuat sambungan, host menggunakan sambungan tiga arah. Kontrol bit pada header TCP menunjukkan kemajuan dan status sambungan.

Tiga cara sambungannya adalah:
ü  Menetapkan bahwa perangkat tujuan hadir pada jaringan.
ü  Memverifikasi bahwa perangkat tujuan memiliki layanan aktif dan menerima permintaan pada nomor port.
ü  Menginformasikan perangkat tujuan bahwa klien sumber bermaksud untuk membangun sebuah sesi komunikasi pada nomor port yang Dalam koneksi TCP, Host penyedia melayani sebagai klien memulai sesi ke server. Untuk memahami bagaimana tiga-cara jabat tangan yang digunakan dalam karya-karya proses koneksi TCP, penting untuk melihat berbagai nilai yang pertukaran dua host.


Tiga langkah dalam pembentukan koneksi TCP adalah:
1.    memulai klien mengirimkan segmen berisi nilai urutan awal, yang berfungsi sebagai permintaan ke server untuk memulai sesi komunikasi.
2.    Server merespon dengan segmen yang mengandung nilai pengakuan sama dengan nilai yang diterima urutan ditambah 1, ditambah nilai urutan sinkronisasi sendiri. Nilai adalah salah satu lebih besar dari nomor urut karena ACK selalu Byte diharapkan berikutnya atau oktet. Nilai pengakuan ini memungkinkan klien untuk mengikat respon kembali ke segmen aslinya yang dikirim ke server.
3.    Memulai client merespon dengan nilai pengakuan sama dengan nilai urutan yang diterima ditambah satu. Ini melengkapi proses pembentukan koneksi.

Dalam header segmen TCP, ada enam bidang 1-bit yang berisi informasi kontrol yang digunakan untuk mengelola proses TCP. Bidang tersebut adalah:
URG - Urgent pointer field significant
ACK - Acknowledgement field significant
PSH - Push function
RST - Reset the connection
SYN - Synchronize sequence numbers
FIN - No more data from sender

Bagian ini disebut sebagai flag, karena nilai dari salah satu bidang ini hanya 1 bit dan, karena itu, hanya memiliki dua nilai: 1 atau 0. Ketika nilai bit set ke 1, ini menunjukkan apa yang mengendalikan informasi yang terkandung dalam segmen.
Menggunakan proses empat langkah, flag dipertukarkan untuk mengakhiri sebuah koneksi TCP.

4.2.5 TCP Session Termination
Untuk menutup sambungan, bendera FIN (Finish) kontrol di header segmen harus diatur. Untuk mengakhiri setiap sesi TCP satu arah, dua arah jabat tangan yang digunakan, terdiri dari segmen FIN dan segmen ACK. Oleh karena itu, untuk mengakhiri satu percakapan yang didukung oleh TCP, empat bursa diperlukan untuk mengakhiri kedua sesi. Catatan: Dalam penjelasan ini, klien dan server istilah yang digunakan dalam deskripsi ini sebagai referensi untuk kesederhanaan, tetapi proses terminasi dapat dimulai oleh dua host yang menyelesaikan sesi:
1.    Ketika klien tidak memiliki lebih banyak data untuk mengirim di sungai, ia akan mengirimkan segmen dengan FIN flag.
2.    Server mengirimkan ACK untuk mengakui penerimaan FIN untuk mengakhiri sesi dari klien ke server.
3.    Server mengirimkan FIN ke klien, untuk mengakhiri server untuk sesi klien.
4.    Klien merespon dengan ACK untuk mengakui FIN dari server.

4.3. Managing TCP Sessions
4.3.1 TCP Segment Reassembly
Resequencing Segmen untuk Pesanan Menular Ketika layanan mengirim data menggunakan TCP, segmen mungkin tiba di tempat tujuan mereka dalam kondisi rusak. Untuk pesan asli yang akan dipahami oleh penerima, data dalam segmen ini dipasang kembali ke urutan asli. Nomor urut ditugaskan di header setiap paket untuk mencapai tujuan ini.
Selama setup sesi, nomor urut awal (ISN) diatur. Nomor urut awal ini merupakan nilai awal untuk byte untuk sesi ini yang akan dikirim ke aplikasi penerima. Sebagai data yang ditransmisikan selama sesi, nomor urut bertambah dengan jumlah byte yang telah dikirim. Ini pelacakan data byte memungkinkan setiap segmen untuk diidentifikasi secara unik dan diakui. Hilang segmen dapat diidentifikasi. Nomor urut segmen mengaktifkan keandalan dengan menunjukkan bagaimana memasang kembali dan menyusun ulang segmen diterima.
Proses penerimaan TCP menempatkan data dari segmen ke buffer penerima. Segmen ditempatkan dalam urutan nomor urutan yang tepat dan diteruskan ke Application Layer saat dipasang kembali. Setiap segmen yang datang dengan nomor urut noncontiguous diadakan untuk waktu pemrosesan. Kemudian, ketika segmen dengan byte hilang tiba, segmen ini diproses.

4.3.2 TCP Acknowledgement with Windowing
Mengkonfirmasi Penerimaan Segmen
          Salah satu fungsi TCP adalah memastikan bahwa setiap segmen mencapai tujuannya. Layanan TCP pada host tujuan mengakui data yang telah diterima ke aplikasi sumber. Nomor urut header segmen dan nomor pengakuan yang digunakan bersama-sama untuk mengkonfirmasi penerimaan byte dari data yang terdapat dalam segmen. Nomor urut adalah jumlah relatif dari byte yang telah ditransmisikan dalam sesi ini ditambah 1 (yang merupakan jumlah byte data yang pertama di segmen saat ini). TCP menggunakan nomor pengakuan dalam segmen dikirim kembali ke sumber untuk mengindikasikan byte berikutnya pada sesi ini bahwa penerima mengharapkan untuk menerima. Ini disebut pengakuan EXPECTATIONAL.
Sumber diinformasikan bahwa tujuan telah menerima semua byte dalam aliran data hingga, tetapi tidak termasuk, byte ditunjukkan oleh jumlah pengakuan. Host penyedia pengiriman diperkirakan akan mengirim segmen yang menggunakan nomor urut yang sama dengan jumlah pengakuan.
Ingat, masing-masing sambungan sebenarnya adalah dua sesi satu arah. Nomor urut dan nomor acknowledgement sedang dipertukarkan di kedua arah.
          Host penyedia di sebelah kiri sedang mengirim data ke host di sebelah kanan. Ini mengirimkan segmen berisi 10 byte data untuk sesi ini dan nomor urut sama dengan 1 di header. Penerimaan host di sebelah kanan menerima segmen pada Layer 4 dan menentukan bahwa nomor urut adalah 1 dan bahwa ia memiliki 10 byte data. Host penyedia kemudian mengirimkan segmen kembali ke host di sebelah kiri untuk mengakui penerimaan data ini. Di segmen ini, Host penyedia menetapkan jumlah pengakuan untuk 11 untuk menunjukkan bahwa byte data selanjutnya mengharapkan untuk menerima dalam sesi ini adalah byte nomor 11. Catatan, yang Ack. nilai dalam sumber host tetap 1 untuk menunjukkan bahwa segmen adalah bagian dari percakapan yang sedang berlangsung dan jumlah di bidang Pengakuan Number adalah valid.
          Ketika Host penyedia pengiriman di sebelah kiri menerima pengakuan ini, sekarang dapat mengirim segmen berikutnya yang berisi data untuk sesi ini dimulai dengan byte nomor 11.
          Melihat contoh ini, jika Host penyedia pengiriman harus menunggu pengakuan penerimaan masing-masing 10 byte, jaringan akan memiliki banyak overhead. Untuk mengurangi overhead dari ucapan terima kasih ini, beberapa segmen data dapat dikirim sebelum dan diakui dengan pesan TCP tunggal dalam arah yang berlawanan. Pengakuan ini berisi nomor pengakuan berdasarkan jumlah byte yang diterima dalam sesi.
Misalnya, dimulai dengan nomor urut 2000, jika 10 segmen masing-masing 1000 byte yang diterima, jumlah pengakuan 12000 akan dikembalikan ke sumbernya. Jumlah data yang sumber dapat mengirim sebelum pengakuan harus diterima disebut ukuran jendela. Jendela Ukuran adalah bidang pada header TCP yang memungkinkan pengelolaan data yang hilang dan kontrol aliran.

4.3.3. TCP Retransmition
Handling Segment Loss
          Tidak peduli seberapa baik dirancang jaringan adalah, kehilangan data kadang-kadang akan terjadi. Oleh karena itu, TCP menyediakan metode untuk mengelola kerugian segmen ini. Di antaranya adalah mekanisme untuk mengirim ulang segmen dengan data tidak diakui.
          Sebuah layanan host tujuan menggunakan TCP biasanya hanya mengakui data untuk byte urutan bersebelahan. Jika satu atau lebih segmen yang hilang, hanya data dalam segmen yang melengkapi sungai diakui.
Misalnya, jika segmen dengan nomor urut 1500-3000 dan 3400-3500 diterima, jumlah pengakuan akan 3001. Hal ini karena ada segmen dengan nomor urut 3001-3399 yang belum diterima.
          Ketika TCP pada host sumber belum menerima pemberitahuan setelah jumlah yang telah ditetapkan waktu, itu akan kembali ke nomor acknowledgement terakhir bahwa mereka menerima dan memancarkan kembali data dari saat itu.Proses transmisi tidak ditentukan oleh RFC, tapi diserahkan kepada implementasi tertentu dari TCP.
Untuk implementasi TCP khas, Host penyedia dapat mengirimkan segmen, meletakkan salinan segmen dalam antrian transmisi, dan memulai timer. Ketika pengakuan data diterima, segmen akan dihapus dari antrian. Jika pengakuan tidak diterima sebelum timer berakhir, segmen tersebut ditransmisikan ulang.
          Host hari ini juga dapat menggunakan fitur opsional yang disebut Selektif Ucapan Terima Kasih. Jika kedua host dukungan Ucapan Terima Kasih Selektif, adalah mungkin untuk tujuan untuk mengakui byte di segmen terputus dan host hanya akan perlu untuk memancarkan kembali data yang hilang.


4.3.4 TCP Congestion Control-minimizing segment loss
Flow Control
          TCP juga menyediakan mekanisme untuk kontrol aliran. Flow control assist keandalan transmisi TCP dengan menyesuaikan tingkat efektif aliran data antara dua layanan dalam sesi. Ketika sumber diinformasikan bahwa jumlah tertentu dari data dalam segmen diterima, ia dapat terus mengirim lebih banyak data untuk sesi ini.
          Ukuran Jendela ini pada header TCP menentukan jumlah data yang dapat ditransmisikan sebelum pengakuan harus diterima. The ukuran jendela awal ditentukan selama startup sesi melalui jabat tangan tiga arah.
Mekanisme umpan balik TCP menyesuaikan tingkat efektif transmisi data untuk aliran maksimum yang jaringan dan tujuan perangkat dapat mendukung tanpa kehilangan. TCP mencoba untuk mengelola tingkat penularan sehingga semua data akan diterima dan transmisi ulang akan diminimalkan.
Lihat gambar untuk representasi yang disederhanakan dari ukuran jendela dan ucapan terima kasih. Dalam contoh ini, ukuran jendela awal untuk sesi TCP diwakili diatur ke 3000 byte. Ketika pengirim telah ditransmisikan 3000 byte, menunggu pengakuan dari byte ini sebelum mengirimkan segmen lainnya di sesi ini. Setelah pengirim telah menerima pengakuan ini dari penerima, pengirim dapat mengirimkan tambahan 3000 byte.
          Selama penundaan dalam menerima pengakuan, pengirim tidak akan mengirim setiap segmen tambahan untuk sesi ini. Dalam periode ketika jaringan mengalami hambatan atau sumber daya host penerima yang tegang, penundaan dapat meningkat. Sebagai penundaan ini tumbuh lagi, tingkat transmisi efektif data untuk sesi ini menurun. Perlambatan dalam data rate membantu mengurangi pertentangan sumber daya.
          TCP menerima host mengirimkan nilai ukuran jendela ke TCP mengirimkan untuk menunjukkan jumlah byte yang siap untuk menerima sebagai bagian dari sesi ini. Jika tujuan kebutuhan untuk memperlambat laju komunikasi karena buffer memori yang terbatas, dapat mengirim window nilai ukuran yang lebih kecil ke sumber sebagai bagian dari pengakuan.
Dinamika ini peningkatan dan penurunan ukuran window adalah proses yang berkesinambungan di TCP, yang menentukan ukuran jendela yang optimal untuk setiap sesi TCP. Dalam jaringan yang sangat efisien, ukuran jendela dapat menjadi sangat besar karena data tidak hilang. Dalam jaringan di mana infrastruktur yang mendasari sedang stres, ukuran jendela kemungkinan akan tetap kecil.



4.4.1 UDP- Low Overhead vs Reliability
UDP adalah protokol sederhana yang menyediakan fungsi dasar Transport Layer. Ini memiliki overhead jauh lebih rendah daripada TCP, karena tidak berorientasi koneksi dan tidak menyediakan mekanisme pengiriman ulang, pengurutan, dan kontrol aliran.
Ini tidak berarti bahwa aplikasi yang menggunakan UDP selalu bisa diandalkan. Ini hanya berarti bahwa fungsi-fungsi ini tidak disediakan oleh protokol Transport Layer dan harus dilaksanakan di tempat lain jika diperlukan. Meskipun jumlah total lalu lintas UDP ditemukan pada jaringan yang khas sering relatif rendah, kunci protokol lapisan aplikasi yang menggunakan UDP termasuk:

Domain Name System (DNS)
ü  Simple Network Management Protocol (SNMP)
ü  Dynamic Host Configuration Protocol (DHCP)
ü  Routing Information Protocol (RIP)
ü  Trivial File Transfer Protocol (TFTP)

4.4.2 UDP Data Program Reassembly
Karena UDP adalah connectionless, sesi tidak didirikan sebelum komunikasi berlangsung seperti mereka dengan TCP. UDP dikatakan transaksi berbasis. Dengan kata lain, bila aplikasi memiliki data untuk dikirim, itu hanya mengirimkan data.
Banyak aplikasi yang menggunakan UDP mengirim sejumlah kecil data yang dapat ditampung dalam satu segmen. Namun, beberapa aplikasi akan mengirim sejumlah besar data yang harus dibagi menjadi beberapa segmen. UDP PDU disebut sebagai datagram, meskipun segmen syarat dan datagram kadang-kadang digunakan secara bergantian untuk menggambarkan Transport Layer PDU.
Ketika beberapa datagram dikirim ke tujuan, mereka dapat mengambil jalan yang berbeda dan tiba dalam urutan yang salah. UDP tidak melacak nomor urut cara TCP tidak. UDP tidak memiliki cara untuk menyusun ulang datagram ke dalam urutan transmisi mereka.
Oleh karena itu, UDP hanya mengumpulkan kembali data dalam rangka bahwa ia telah diterima dan meneruskannya ke aplikasi. Jika urutan data penting ke aplikasi tersebut, aplikasi akan harus mengidentifikasi urutan yang tepat dari data dan menentukan bagaimana data harus diproses.

4.4.3 UDP Server Processes and Request
Seperti aplikasi berbasis TCP, aplikasi server UDP berbasis ditugaskan Well Known atau Terdaftar nomor port. Ketika aplikasi ini atau proses yang berjalan, mereka akan menerima data yang cocok dengan nomor port yang ditugaskan. Ketika UDP menerima datagram ditakdirkan untuk salah satu port ini, ke depan data aplikasi ke aplikasi yang sesuai berdasarkan nomor port-nya.