Yang harus anda pastikan untuk mengerti hal tersebut sebelum melanjutkan karena sekarang ketika masuk pada bagian dimana dua algoritma berbeda secara lebih signifikan. Pada bab berikutnya, kita memperkenalkan kembali fakta bahwa kedua buffer mempunyai ukuran yang terbatas, dengan notasi MaxSendBuffer dan MaxRcvBuffer, walaupun kita tidak terlalu memperhatikan detail bagaimana keduanya diimplementasikan. Dengan kata lain, kita hanya tertarik pada jumlah byte yang sedang dibuffer, bukan dimana sebenarnya kedua byte tersebut disimpan.
Perlu diingat bahwa pada protocol sliding window, ukuran window disesuaikan dengan jumlah data yang bisa dikirim tanpa harus menunggu ACK dari receiver. Oleh karena itu, receiver/penerima menekan pengirim dengan menawarkan sebuah window yang tidak lebih besar dari jumlah data yang bisa disimpan. Amati bahwa TCP pada sisi penerima harus menjaga kondisi bahwa
LastByteRcvd−LastByteRead ≤ MaxRcvBuffer
untuk menghindari terlalu membanjiri buffer penerima. Oleh karena itu, penerima menawarkan sebuah ukuran window
AdvertisedWindow = MaxRcvBuffer−((NextByteExpected−1)−LastByteRead)
yang mana mewakili jumlah ruang kosong yang tersisa dalam buffernya. Ketika data tiba, penerima meng-ACK selama semua byte yang mendahului sudah juga sudah tiba. Sebagai tambahan, LastByteRcvd bergerak ke kana (nilainya naik), yang berarti bahwa window yang ditawarkan(Advertised Window) berpotensi untuk berkurang. Apakah ukuran window jadi berkurang atau tidak tergantung seberapa cepat proses aplikasi local mengkonsumsi data. Jika proses loka sedang membaca data seketika setelah datang yang menyebabkan LastByteRead selalu naik bersamaan dengan laju LastByteRcvd, maka ukuran window yang ditawarkan akan selalu terbuka(open, AdvertisedWindow = MaxRcvBuffer). Namun, jika proses yang menerima tertinggal dibelakang, mungkin karena sedang melakukan operasi yang berat pada setiap byte data yang dibaca, maka ukuran window yang ditawarkan menjadi lebih kecil setiak kali segmen tiba, sampai pada akhirnya ukurannya menjadi 0.