© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved.1 Computer Networks and Internets, 5e By Douglas E. Comer Lecture PowerPoints By Lami Kaya,
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved.2 Chapter 26 TCP: Reliable Transport Service
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved.3 Topics Covered 26.1 Introduction 26.2 The Transmission Control Protocol 26.3 The Service TCP Provides to Applications 26.4 End-to-End Service and Virtual Connections 26.5 Techniques That Transport Protocols Use 26.6 Techniques to Avoid Congestion 26.7 The Art of Protocol Design 26.8 Techniques Used in TCP to Handle Packet Loss 26.9 Adaptive Retransmission Comparison of Retransmission Times Buffers, Flow Control, and Windows TCP's Three-Way Handshake TCP Congestion Control TCP Segment Format
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Introduction This chapter –considers transport protocols in general –examines TCP the major transport protocol used in the Internet –explains how the TCP protocol provides reliable delivery –reviews the service that TCP provides to applications –examines the techniques TCP uses to achieve reliability
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved The Transmission Control Protocol A programmer assumes –the data will arrive correctly or the OS will inform the application that an error has occurred –OS guarantees that data will be delivered reliably Protocol software must provide the following: –Guarantee prompt and reliable communication –Data be delivered in exactly the same order that it was sent –There be no loss or duplication In the TCP/IP suite, the Transmission Control Protocol (TCP) provides reliable transport service
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved The Transmission Control Protocol Programcı şunları varsayar: –Veri doğru bir şekilde gelir or the OS will inform the application that an error has occurred –OS veri güvenilir şekilde iletiminin garantisini veriyor Protokol yazılımı aşağıdakileri sağlamak zorunda: –İletimin garantisi ve güvenilirli bir iletişim –Veri gönderildiği sırada alınıyor –Kayıp ve ikileme söz konusu değil TCP/IP de, Transmission Control Protocol (TCP) güvenilirli iletim servisi sağlıyor
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved The Service TCP Provides to Applications The service offered by TCP has the following features: Connection Orientation –an application must first request a connection to a destination Point-to-Point Communication –each TCP connection has exactly two endpoints Complete Reliability –TCP guarantees that the data sent across a connection will be delivered completely and in order Full Duplex Communication –allows data to flow in either direction
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved The Service TCP Provides to Applications TCP tarafından sunulan servis aşağıdaki özelliklere sahiptir: Connection Orientation (Bağlantı tabanlı) –Uygulama ilk olarak hedeften iletişim için istekte bulunur Point-to-Point Communication (Noktadan Noktaya iletişim) –Her TCP bağlantısının tam olarak iki uç noktası mevcuttur Complete Reliability (tam olarak güvenilirli) –TCP bir uçtan gönderilen verinin eksiksiz ve sıralı bir şekilde karşı tarafa iletililmesinin garantisini verir Full Duplex Communication (tam ikiyönlü iletişim) –Verinin her iki yönde iletimini sağlar
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved The Service TCP Provides to Applications Stream Interface –an application sends a continuous sequence of octets –it does not group data into records or messages Reliable Connection Startup –TCP allows two applications to reliably start communication Graceful Connection Shutdown –TCP insures that both sides have agreed to shut down the connection
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved The Service TCP Provides to Applications Stream Interface (Akıntı Arayüzü) –Uygulama devamlılığı bulunan octetler gönderir –Mesajların içerisinde veriyi gruplamaz Reliable Connection Startup (Güvenilir Bağlantı Başlangıcı) –TCP iki uygulamanında güvenilir bir şekilde başlamasını sağlar Graceful Connection Shutdown (Zarif bağlantı sonlandırması) –TCP her iki tarafın bağlantı sonlandırması konusunda hem fikir olunur
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved End-to-End Service and Virtual Connections TCP is classified as an end-to-end protocol –it provides communication between an application on one computer to an application on another computer The connections in TCP are called virtual connections –because connections are achieved in software TCP software modules on two machines exchange messages to achieve the illusion of a connection TCP uses IP to carry messages –IP treats each TCP message as data to be transferred Figure 26.1 illustrates how TCP views the Internet –TCP software is needed at each end of a virtual connection but not on intermediate routers
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved End-to-End Service and Virtual Connections TCP end-to-end (sondan - sona) protokolü olarak sınıflandırılır –Bir bilgisayardaki uygulamadan diğer bilgisayardakine iletişimi sağlar TCP deki bağlantılara sanal bağlantı denilir –Çünkü bağlantılar yazılım tarafından kurulmuştur İki makinede bulunan TCP yazılım modülü bağlatıyı başarabilmek için mesajları karşılıklı değişir TCP mesaj tanımak için IP protokolünü kullanır –IP her TCP mesajını veri olarak transfer eder Şekil 26.1 TCP nin Internette nasıl çalıştığını gönderir –TCP yazılımı her uçta sanal bağlantı için ihtiyaç duyulur but not on intermediate routers
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved End-to-End Service and Virtual Connections
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved.14 An end-to-end transport protocol must be carefully designed to achieve efficient and reliable transfer The major problems/issues to be considered, such as Unreliable Communication –Messages sent across the Internet They can be lost, duplicated, corrupted, delayed, or delivered out of order End System Reboot –either of the two end systems might crash and reboot Heterogeneous End Systems –A sender can generate data so fast that it overruns a slow receiver Congestion in the Internet –If senders aggressively transmit data intermediate switches and routers can become overrun 26.5 Techniques That Transport Protocols Use
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved.15 End-to-end iletim protokolü deikkatli dizayn edilmek zorunda, böylelikle faydalı ve güvenilir transfer başarmak için. Büyük problemler dikkate alınır, mesela Güvenilmez iletim (Unreliable Communication) –Mesajlar internet üzerinden gönderilir They can be lost, duplicated, corrupted, delayed, or delivered out of order Son sistemlerin yeniden açılması –Sondaki sistemler çökebilir ve yeniden açılabilir Heterojen son sistemlerinde –Gönderici veri üretebilir böylelikle veri hızlı bir şekilde istila eder, yavaş alıcı taafından Internetteki sıkışıklık –Eğer göndericiler agresif bir şekilde veri transfer ederlerse Aradaki swich ve routerlar aşırı çalışmaya başlayabilir 26.5 Techniques That Transport Protocols Use
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Techniques That Transport Protocols Use There are techniques that communication systems use to overcome some of the problems –For example, to compensate for bits that are changed during transmission a protocol might include parity bits a checksum or a cyclic redundancy check (CRC) Transport protocols do more than detect errors –they employ techniques that can repair or circumvent problems Transport protocols use a variety of tools –to handle some of the most complicated communication problems The next sections discuss basic mechanisms
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Techniques That Transport Protocols Use Bazı problemlerin üstesinden gelebilmek için bazı teknikler geliştirilmiştir –Mesela, iletim sırasında bazı bitlerin değişmesini telafi edebilir a protocol might include parity bits a checksum or a cyclic redundancy check (CRC) İletim protokolü hataları yakalamak için daha fazlasını yapması gerekiyor –Onarmak için yada problemlerden kaçınmak için teknikler geliştirilmiştir İletim Protokollerinin kullanımı için değişik araçlar geliştirilmiştir –Çok önemli iletişim problemlerinin üstesinden gelebilmek için Bundan sonraki bölümlerde basit mekanizmalar tahsedilmiştir
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Techniques That Transport Protocols Use Sequencing Handle Duplicates and Out-of-Order Delivery To handle duplicate packets and out-of-order deliveries –transport protocols use sequencing The sender attaches a sequence number to each packet The receiver stores both the sequence number of the last packet received in order –as well as a list of additional packets that arrived out of order The receiver examines the sequence number –to determine how the packet should be handled If the packet is the next one expected (i.e., has arrived in order) –the protocol software delivers the packet to the next highest layer –the protocol checks its list to see whether additional packets can also be delivered If the packet has arrived out of order –the protocol software adds the packet to the list If the packet has already been delivered or the sequence number matches one of the packets waiting on the list –the software discards the new copy
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Techniques That Transport Protocols Use Sequencing Handle Duplicates and Out-of-Order Delivery Kopya paketlerin üstesinden gelebilmek için ve sırasız iletimler için –İletim protokolleri sıralamayı kullanır İletici Her pakete sıra numarası ekler Alıcı sıra ile alınmış iletimin son paketin sıra(sequence) numarasını alıcı saklar –Sırasız ulaşan paketlerin listesini de tutar Alıcı sıra numarasını iletir –Paketin nasıl alındığına karar verilir Eğer beklenen paket bir sonraki paket ise (mesela sıralı erişmişse) –Protokol yazılımı paketi bir üstteki katmanda iletir –Protokol kendi listesini kontrol eder to see whether additional packets can also be delivered Eğer paket sırasız bir şekilde sıralanırsa –Protokol yazılımı paketi listeye ekler Eğer paket daha yeni alınmışsa yada sıra numarası listede beklenenlerden bir tanesi ise –Yazılım yeni kopyayı düşürür/göz ardı eder
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Techniques That Transport Protocols Use Retransmissions Handle Lost Packets To handle packet loss –transport protocols use positive acknowledgement (ACK) with retransmission Whenever a frame arrives intact –the receiver sends a small ACK message that reports successful reception Sender ensures that each packet is transferred successfully Whenever it sends a packet –the sender starts a timer If an acknowledgement arrives before the timer expires –the software cancels the timer If the timer expires before an acknowledgement arrives –the protocol sends another copy of the packet and starts the timer again Sending a second copy is known as retransmitting –retransmission cannot succeed if a hardware failure has permanently disconnected the network or if the receiving computer has crashed –there is a bound for the maximum number of retransmissions if bound exceeded, the destination will be declared unreachable
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Techniques That Transport Protocols Use Retransmissions Handle Lost Packets Paket kaybının üstesinden gelebilmek için –İletim protokolleri pozitif onay (positive acknowledgement (ACK)) kullanır yeniden gönderim ile birlikte (retransmission) Frame bozulmadan ulaştığı zaman –Alıcı küçük ACK mesajı gönderir ve buda başarılı iletim manasına gelir Gönderici her paketin başarılı bir şekilde iletiminden emin olmak zorunda Paket gönderildiği zaman –İletici timer ‘ı başlatır Eğer bilgilendirme timer süresinden önce geliyorsa –Yazılım timer’ı iptal eder Eğer Timer acknowledgement’tan önce sona ermişse –Protokol, paketin bir kopyasını daha gönderir ve timer’ı yeniden başlatır İkinci kere aynı paketin gönderilmesine yeniden gönderilimi (retransmitting) –Retransmission, donanım çökerse, ağ’a doğru olan bağlantı kopar yada alıcı bilgisayar zarara uğrarsa, başarıyla sonuçlanmaz –Maksimum sayıda retransmission için bir sınır vardır if bound exceeded, the destination will be declared unreachable
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Techniques That Transport Protocols Use Techniques Avoid Replay Extraordinarily long delays can lead to replay errors For example, consider the following sequence of events –Assume two computers agree to communicate at 1 PM –One computer sends a sequence of 10 packets to the other –A hardware problem causes packet 3 to be delayed Assume routes change to avoid the hardware problem –Protocol software on the sending computer retransmits packet 3 and sends the remaining packets without error –At 1:05 PM the two computers agree to communicate again –After the second packet arrives, the delayed copy of packet 3 arrives from the earlier conversation –Packet 3 arrives from the second conversation A packet from an earlier conversation might be accepted and the correct packet discarded as a duplicate
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Techniques That Transport Protocols Use Techniques Avoid Replay Fevkalede uzun gecikmeler tekrar hatası doğurabilir Mesela, aşağıdaki olayları düşünün –İki bilgisyarın saat 1 PM de iletişime geçmesi konusunda anlaşmaya sarılması –Bir bilgisayar sıralı 10 paketin gönderilmesi –Donanım probleminden dolayı 3 paketin geciktiğini farzedin Assume routes change to avoid the hardware problem –Protokol yazılımı, gönderici bilgisayar 3 paketi yeniden gönderiyor ve geriye kalan paketleri hatasız gönderiyor –1:05 PM iki bilgisayarın birdaha iletime geçmek için anlaşıyor –İkinci paket ileştiği zaman, geciken önceki iletimden kalan 3 paketin sıra ile eriştiğini farzedin Önceki iletimden kalan paketler kabul edilebilir ve doğru paketler gözardı edilebilir
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Techniques That Transport Protocols Use Techniques Avoid Replay Replay errors can also occur with control packets Consider a situation in which two application programs form a TCP connection, communicate, close the connection, and then form a new connection –The message of closing the connection might be duplicated and one copy might be delayed long enough for the second connection to be established A protocol should be designed so that the duplicate message will not cause the second connection to be closed To prevent replays, protocols mark each session with a unique ID –(e.g., the time the session was established), and require the unique ID to be present in each packet The protocol discards any arriving packet that contains an incorrect ID An ID must not be reused until a reasonable time has passed
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Techniques That Transport Protocols Use Techniques Avoid Replay Tekrar hataları (control packets) kontrol paketlerinde de oluşabilir Şu durumu düşünün, iki uygulama TCP bağlantılarını kullanıyor, iletişime giriyor, ve bağlantıyı kapatıyor, ve yeniden bağlantıya geçiyor –Kapanan bağlantıya ait olan bir mesaj gelebilir v e ikinci bir bağlantı oluşması için gereken kopya mesaj çok uzun süre gecikebilir Protokol öyle dizayn edilmelidir ki, tekrar edilen mesajlar ikinci bağlantının kapanmasına sebebiyet vermesin Tekrarları önlemek için, protokoller her session için eşsiz ID (unique ID) kullanılır –Eşsiz ID her paket için gereklidir Protokol yanlış ID ye sahip olan paketi düşürür Makul bir süre geçtikten sonra ID yeniden kullanılabilir
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Techniques That Transport Protocols Use Flow Control Prevents Data Overrun Techniques are available to prevent a fast computer from sending so much data to overrun a slower receiver – Flow control techniques are employed to handle the problem The simplest form of flow control is a stop-and-go –a sender waits after transmitting each packet –when the receiver is ready for another packet, the receiver sends a control message, usually a form of ACK –stop-and-go protocols result in extremely low throughput Another flow control technique known as sliding window –The sender and receiver use a fixed window size which is the maximum amount of data that can be sent before an acknowledgement arrives –The sender retains a copy in case retransmission is needed –The receiver must have preallocated buffer space
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Techniques That Transport Protocols Use Flow Control Prevents Data Overrun Hızlı bilgisayarların çok fazla veri göndererek yavaş bilgisayarların üzerine aşırı yük binmesini önlemek için teknikler geliştirilmiştir –Flow control teknikleri bu problemin üstesinden gelebilmek için geliştirilmiştir Flow kontrol’ün en basit hali stop-and-go dir –Gönderici her paketi iletirken bekler –Alıcı diğer paketi almaya hazır olduğu zaman, alıcı kontrol mesajı gönderir, genellikle ACK’dır –stop-and-go protocokol’ü sonucu olduükça düşük throughput’tur Bir Diğer flow kontrol tekniği sliding window (kayan pencere) olarak bilinir –Gönderici ve alıcı sabit büyüklükte window büyüklüğü kullanır which is the maximum amount of data that can be sent before an acknowledgement arrives –Gönderici paketin kopyasını yeniden gönderme durumu için elde tutar –Alıcı önceden alınmış buffer alanı bulundurmak zorunda
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Techniques That Transport Protocols Use Flow Control Prevents Data Overrun If a packet arrives in sequence –the receiver passes the packet to the receiving application and transmits an ACK to the sender When an ACK arrives –the sender discards its copy of the ACKed packet and transmits the next packet Figure 26.2 illustrates sliding window mechanism Sliding window can increase throughput dramatically –compare the sequence of transmissions with a stop-and-go scheme and a sliding window scheme Figure 26.3 contains a comparison for a 4-packet transmission in either case
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Techniques That Transport Protocols Use Flow Control Prevents Data Overrun Eğer paket sıralı bir şekilde ulaşırsa –Alıcı Gelen paketi alıcı programa iletir Ve göndericiye ACK gönderir ACK geldiği zaman –Gönderici ACK sı gelen paketin kopyasını düşürür Ve bir sonraki paketi gönderir Şekil 26.2 sliding window mekanizmasını gösterir Sliding window throughput arttırır –stop-and-go şeması ile sliding window şemasını karşılaştırın Şekil paket iletiminin karşılaştırmasını içerir
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Techniques That Transport Protocols Use Flow Control Prevents Data Overrun
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Techniques That Transport Protocols Use Flow Control Prevents Data Overrun
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Techniques That Transport Protocols Use Flow Control Prevents Data Overrun Sliding window’un öncemini anlamak için –İletişimin de bir sürü paketin kullanıldığını hayal edin –Bu tarz ağlar için, sliding window protokol’ü performansı inanılmaz derecede arttırabilir. Potansiyel iyileştirme: T w sliding window protokolünden kazanılan throughput T g stop-and-go protokolünden kazanılan throughput W = window büyüklüğü Throughput sadece window büyüklüğünü arttırarak arttırılmaz –Alttaki sistemin Bant Genişliği, ağ’ın en yüksek sınır’ı belirtir –Bitler donanımın kaldırabileceğinden daha hızlı iletilemezler –Böylelikle denklem’in baştan yazılmış hali
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Techniques to Avoid Congestion Sıkışıklık nasıl oluşur? Şekil 26.4’ü düşünün
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Techniques to Avoid Congestion Assume each connection in Figure 26.4 operates at 1 Gbps Consider what happens if both computers attached to switch1 attempt to send data to a computer attached to switch2 –Switch1 receives data at an aggregate rate of 2 Gbps, but can only forward 1 Gbps to switch2 –This situation is known as congestion Congestion results in delay If congestion persists –the switch will run out of memory and begin discarding packets Retransmission can be used to recover lost packets –But retransmission sends more packets into the network If the situation persists, network can become unusable –this condition is known as congestion collapse
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Techniques to Avoid Congestion Şekil 26.4 te bulunan her baülantının 1 Gbps hızda bulunduğunu farzedin Eğer iki bilgisayrında switch1 e ulaşarak veri göndermek istediği zaman neler olabileceğini düşünün –Switch1 veri’yi alır, 2 Gbps oranında toplar, fakat sadece 1 Gbps’lık veri gönderebilir switch2’ye –Bu durum sıkışıklık (congestion) olarak bilinir Sıkışıklığın sonucu gecikme olarak bilinir Eğer sıkışıklık’ta ısrar edilirse –Switch’te hafıza doluluğu hatası görünmeye başlar ve switch gelen paketleri dürürür Yeniden iletim kaybolan paketlerin geri kazanımında kullanılır –Fakat yeniden iletim mekanizması ağ’a daha fazla paket gönderimine sebep olur Eğer bu durum devam ederse, ağ kullanılamaz duruma gelir –Bu durum sıkışıklık çökmesi(congestion collapse) olarak bilinir
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Techniques to Avoid Congestion In the Internet, congestion usually occurs in routers Transport protocols attempt to avoid congestion collapse –by monitoring the network and reacting quickly once congestion starts There are two basic approaches: Arrange for intermediate systems (i.e., routers) to inform a sender when congestion occurs –implemented either by having routers send a special message to the source of packets when congestion occurs –or by having routers set a bit in the header of each packet that experiences delay caused by congestion Use increased delay or packet loss as an estimate of congestion –Implemented by the computer that receives the packet including information in the ACK to inform the original sender
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Techniques to Avoid Congestion Internet’te, sıkışıklık genelde Routerlar’da görünür İletim Protokolleri Sıkışıklık darlamasından kaçınmak isterler –Ağ’ı gözlemleyerek ve sıkışıklık başladığı zaman hızlı müdahale ile İki temel yaklaşım mevcuttur Aradaki sistemleri düzenleyerek (router’ları) sıkışıklık oluştuğu zaman göndericiyi bilgilendirmesi –sıkışıklık oluştuğu zaman paketlerin kaynaklarına router tarafından özel paketlerin gönderilmesi –Yada başlık içerisine sıkışıklığın oluştuğuna dair bilginin koyulması Artan gecikmeyi kullanarak yada paket kayıplarından ötürü sıkışıklığı tahmin etmek –Gelen paket’e bilgi ile beraber ACK verisinin orjinal göndericiyi bilgilendirme amaçlı geri iletimi
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Techniques to Avoid Congestion Using delay and loss to estimate congestion is reasonable in the Internet because: –Modern network hardware works well –Most delay and loss results from congestion, not hardware failures The appropriate response to congestion –Reducing the rate at which packets are being transmitted –Sliding window protocols can achieve the effect of reducing the rate by temporarily reducing the window size
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Techniques to Avoid Congestion Gecikme ve kayıpları kullanarak internetteki sıkışıklığın tahmin edilmesi mantıklı bir yaklaşımdır çünkü: –Modern ağ donanımı iyi çalışır –gecikme ve kayıpların çoğu sıkışıklık sonucu oluşur, donanım çökmesinden değil Sıkışıklığa uygun cevap –Paketlerin iletim oranının düşürülmesi –Sliding window protokolleri iletim oranını düşürmek genelde için window büyüklüğünü düşürür
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Techniques Used in TCP to Handle Packet Loss Which techniques does TCP use to achieve reliability? –The answer is complex because TCP uses a variety of schemes that are combined in novel ways TCP uses retransmission to compensate for packet loss TCP provides data flow in both directions –both sides of a communication participate in retransmission –when TCP receives data, it sends an ACK back to the sender Whenever it sends data –TCP starts a timer, and retransmits the data if the timer expires TCP retransmission operates as Figure 26.5 illustrates
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Techniques Used in TCP to Handle Packet Loss TCP güvenilirliği arttırmak için hangi teknikleri kullanır? –Cevabı biraz karışıktır because TCP uses a variety of schemes that are combined in novel ways TCP paket kaybını telafi etmek için yeniden gönderim mekanizmasını kullanır TCP veri iletimini her iki yönde de kullanır –Her iki yönde iletim yeniden gönderimde bir araya gelir –TCP de veri ulaştığı zaman, geriye ACK bilgisi gönderilir Veri Gönderildiği zaman –TCP timer (sayaç) ı çalıştırır, ve timer süresi geçtiği zaman da veri yeniden gönderilir TCP yeniden gönderimi Şekil 26.5’te gönderilmiştir
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Techniques Used in TCP to Handle Packet Loss
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Techniques Used in TCP to Handle Packet Loss TCP's retransmission is the key to its success –because it handles communication across an arbitrary path TCP must be ready to retransmit any message that is lost How long should TCP wait before retransmitting? –ACKs from a computer on a LAN are expected to arrive within a few ms –but a satellite connection requires hundreds of ms On one hand – waiting too long for such an ACK leaves the network idle and does not maximize throughput On the other hand – retransmitting quickly does not work well on a satellite connection because the unnecessary traffic consumes network bandwidth and lowers throughput
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Techniques Used in TCP to Handle Packet Loss TCP’nin yeniden gönderim mekanizması başarısının temel faktörüdür –Çünkü gelişi güzel yollar üzerinden iletişim sağlamaktadır TCP kaybolan her mesajı yeniden göndermeye hazır olmalıdır TCP yeniden gönderim için ne kadar beklemelidir? –LAN daki bilgisayardan, ACK çok az milisaniye’de geri dönmesi beklenir –Fakat uydu bağlantısında yüzlerce milisaniye’ye ihtiyaç vardır Bir yandan –ACK içinçok uzun süre beklemek, ağ’ın kapasitesininin altında kullandırılır ve throughput’u arttırmaz Bir diğer taraftan –Yeniden gönderim uydu iletişiminde iyi çalışmaz because the unnecessary traffic consumes network bandwidth and lowers throughput
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Techniques Used in TCP to Handle Packet Loss TCP faces a difficult challenge: Bursts of datagrams can cause congestion –which causes transmission delays along a given path to change rapidly The total time required to send a message and receive an ACK can increase
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Techniques Used in TCP to Handle Packet Loss TCP ciddi meydan okuma ile karşı karşıydır: Datagramların Burst’leri sıkışıklığa sebep olabilir –Seçilen yok üzerinde gecikmelere sebebiye vermesi ve yol hızlı bir şekilde değişmesi ACK gönderim ve alımı için gereken toplam sürenin artmasına sebep olabilir
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Adaptive Retransmission Before TCP was invented –transport protocols used a fixed value for retransmission delay –the protocol designer or network manager chose a value that was large enough for the expected delay TCP designers realized that a fixed timeout would not operate well for the Internet –Thus, they chose to make TCP's retransmission adaptive –TCP monitors current delay on each connection It adapts (changes) the retransmission timer accordingly
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Adaptive Retransmission TCP keşfedilmeden önce –İletim protokolleri yeniden gönderim gecikmesi için sabit değer kullanırdı –Protokol tasarlayıcıları yada ağ yöneticileri beklenen gecikmeden daha büyük bir değer seçerlerdi TCP tasarlayıcıları sabit timeout’un internette iyi çalışmadığının farkına vardılar –Böylelikle, TCP yeniden gönderimini uyarlamalı hale getirdiler –TCP her bağlantı için güncel gecikmeyi gözlemliyor It adapts (changes) the retransmission timer accordingly
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Adaptive Retransmission How can TCP monitor Internet delays? TCP cannot know the exact delays –TCP estimates round-trip delay for each active connection by measuring the time needed to receive a response –TCP records the time at which the message was sent When a response arrives –TCP subtracts the time the message was sent from the current time to produce a new estimate of the round-trip delay for that connection As it sends data packets and receives ACKs –TCP generates a sequence of round-trip estimates –It uses a statistical function to produce a weighted average –TCP keeps an estimate of the variance –It uses a linear combination of the estimated mean and variance to compute estimated time
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Adaptive Retransmission TCP gecikmeyi nasıl gözlemliyor? TCP gerçek gecikmeyi tam olarak bilemez –TCP her bağlantının gidiş geliş (round-trip) gecikmesini tahmin eder –TCP mesajın ne zaman gönderildiği verisini tutar Cevap geldiği zaman –TCP mesajın gönderiliş süresi ile o esnadaki zamanı çıkar, ve aradaki farkı round-trip gecikmesini yeniden tahmin etmek için kullanır Paketleri göndererek ve ACK’ları alarak –TCP round-trip tahminler sırası oluşturur –Ağırlıklı ortalamayı oluşturmak için istatiksel bir fonksiyon oluşturur –TCP tahmindeki değişimi variance saklar –Tahmin edilen süreyi hesaplamak için tahin edilen ortalama ve değişim’in linerar kombinasyonunu kullanır
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Adaptive Retransmission TCP adaptive retransmission works well: Using the variance helps TCP react quickly –when delay increases following a burst of packets Using a weighted average helps TCP reset the retransmission timer –if the delay returns to a lower value after a temporary burst When the delay remains constant –TCP adjusts the retransmission timeout to a value that is slightly longer than the mean round-trip delay When delays start to vary –TCP adjusts the retransmission timeout to a value greater than the mean to accommodate peaks
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Adaptive Retransmission TCP deki uyarlamalı yeniden gönderim iyi çalışır: Değişimi hesaplayarak TCP nin temki göstermesi hızlandırılır –Paketlerden ötürü Gecikme hızlanırsa Ağırlıklı ortalama kullanılarak TCP nin yeniden gönderim süresini yeniden başlatılır –Eğer geçici burst’ten sonra gecikme daha az dönüyorsa Gecikme değişmeden kalırsa –TCP yeniden gönderim süresini yeniden düzenler, bu değer ortalama round-trip gecikmesinden biraz daha uzun olur Gecikme değişmeye başladığı zaman –TCP yeniden gönderim süresini yeniden düzenler, bu değer sağlanan en yüksek ortalama değerden daha büyük olur
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Comparison of Retransmission Times How does adaptive retransmission help TCP to maximize throughput on each connection? –consider a case of packet loss on two connections that have different round-trip delays Figure 26.6 illustrates traffic on such two connections –TCP sets the retransmission timeout to be slightly longer than the mean round-trip delay If the delay is large –TCP uses a large retransmission timeout If the delay is small –TCP uses a small timeout The goal is to wait long enough to determine that a packet was lost –without waiting longer than necessary
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Comparison of Retransmission Times Uyarlamalı yeniden gönderim TCP’nin her bağlantı için nasıl oluyorda throughput’unu maksimize ediyor? –İki bağlantının farklı round-trip gecikmesi olduğunu göz önünde bulundurun Şekil 26.6 bu tarz iki bağlantı trafiğini göstermektedir –TCP ortalama round-trip gecikmesinden biraz daha büyük timeout değeri seçer Eğer gecikme büyükse –TCP büyük yeniden gönderim timeout’ı kullanır Eğer gecikme küçükse –TCP küçük timeout’lar seçer Burada amaç yeterince büyük bir değer seçmek ve böylelikle paket kaybına karar verilmesine yardımcı olmak –Daha fazla süre beklemeye gerek duymadan
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Comparison of Retransmission Times
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Buffers, Flow Control, and Windows TCP pencere mekanizmasını kullanarak veri akışını kontrol eder Basit paket tabanlı pencere yapısına benzemez (yukarlarda anlatılan) –TCP penceresi byte’lar şeklinde hesaplanır Bağlantı kurulduğu zaman –Her bağlantının ucu buffer’dan yer tahsis eder to hold incoming data and sends the size of the buffer to the other end Veri ulaştığı zaman –TCP geriye ACK’ları gönderir, geriye kalan buffer büyüklüğünü tanımlamak için Pencere o esnadaki kullanılabilir buffer büyüklüğünü temsil eder –Bilgilendirme pencere büyüklüğünü tanımlar ve pencere ilan (window advertisement) olarak bilinir –Alıcı pencere ilanını her ACK’da gönderir
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Buffers, Flow Control, and Windows If the receiver can read data as quickly as it arrives –a receiver will send a positive window advertisement along with each ACK If the sender operates faster than the receiver –incoming data will eventually fill the receiver's buffer –causing the receiver to advertise a zero (0) window A sender that receives a zero window advertisement –must stop sending until the receiver again advertises a positive window Figure 26.7 illustrates window advertisements
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Buffers, Flow Control, and Windows Eğer Alıcı veriyi geldiği zaman hızlı okuyabiliyorsa –Alıcı pozitif pencere ilanını ACK ile gönderir Eğer Gönderici alıcıdan daha hızlı çalışıyorsa –Gelen veri alıcının buffer’ını doldurur –Buda alıcının sıfır (0) pencere bilgilendirimin demektir Sıfır pencere’yi alan gönderici –Göndermeyi durdurmak zorunda until the receiver again advertises a positive window Şekil 26.7 bu pencere bilgilendirimini gösterir
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved Buffers, Flow Control, and Windows
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved TCP's Three-Way Handshake To establish or terminate connections reliably –TCP uses a 3-way handshake in which three messages are exchanged During the 3-way handshake to start a connection –each side sends a control message that specifies an initial buffer size (for flow control) and a sequence number TCP's 3-way exchange is necessary and sufficient to ensure unambiguous agreement –despite packet loss, duplication, delay, and replay events The handshake insures that TCP will not open or close a connection until both ends have agreed
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved TCP's Three-Way Handshake Bağlantıları güvenilirli bir şekilde kurmak ve sonlandırmak için –TCP 3-yollu El sıkışması(3-way handshake ) yöntemini kullanır in which three messages are exchanged 3-way handshake sırasında bağlantı başlar –Her iki taraf’ta kontrol mesajları ilk buffer büyüklüklerini ve sequence numarasını tanımlar TCP nin 3-way değiş tokuşu gereklidir ve tam bir anlaşmadan emin olmak için yeterlidir –Paket kaybı, ikili iletim, gecikme ve tekrar olaylarına karşı El sıkışmasıda şu manaya gelir, TCP her iki uç’ta anlaşmaya varmadan bağlantı açılıp kapatılmaz
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved TCP's Three-Way Handshake Term synchronization segment (SYN segment) to describe the control messages used in a 3-way handshake to create a connection Term FIN segment (short for finish segment) to describe control messages used in a 3-way handshake to close a connection Figure 26.8 illustrates the 3-way handshake to create a connection A key aspect of the 3-way handshake is the selection of sequence numbers –TCP requires each end to generate a random 32-bit sequence number that becomes the initial sequence
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved TCP's Three-Way Handshake Senkronizasyon segmenti terimi (SYN segment’i) 3-way handshake’te kullanılan kontrol mesajını tanımlar ve bağlantı oluşturur FIN segment’i terimi 3-way handshake teki kontrol mesajlarını tanımlar ve bağlantıyı sonlandırır Şekil way handshake oluşumunu gösterir 3-way handshake asıl bakış açısı sequence numarasının seçimini gösterir –TCP her ucun 32-bitlik rasgele sequence numarası oluşturmaya ihtiyacı vardır, ve oluşturulan bu sequence numarası ilk değer olarak kullanılır
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved TCP's Three-Way Handshake Connection Establishment
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved TCP's Three-Way Handshake If an application attempts to establish a new TCP connection after a computer reboots –TCP chooses a new random number The probability of selecting a random value that matches the sequence used on a previous connection is low So TCP avoids replay problems –The sequence numbers on the new connection will differ from the sequence numbers used on the old connection The 3-way handshake uses FIN segments to close –An ACK is sent in each direction along with a FIN to guarantee that all data has arrived before the connection is terminated Figure 26.9 illustrates the exchange
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved TCP's Three-Way Handshake Eğer uygulama, bilgisayarın yeniden başladıktan sonra yeni TCP bağlantısı kurmayı çalışırsa –TCP yeni rasgele değer seçer Önceki bağlantıya ait sequence numarasını seçmek düşük olasılıklı bir iştir Böylelikle TCP replay problemlerinden kurtulmuş olur –Yeni bağlantının sequence numaraları, eski bağlantının sequence numarasından faklı olacaktır 3-way handshake bağlantıyı kapatmak için FIN segment’ini kullanır –Her yöne FIN ile giden bütün pakerlere gönderilir, böylelikle bağlantı kapatılmadan bütün verinin hedef’e gittiğinin garantisi alınır Şekil 26.9 bu değişimi göstermektedir
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved TCP's Three-Way Handshake Connection Termination
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved TCP Congestion Control One of the most interesting aspects of TCP is a mechanism for congestion control In the Internet, delay or packet loss is more likely to be caused by congestion than a hardware failure Retransmission can exacerbate the problem of congestion –by injecting additional copies of a packet To avoid congestion collapse –TCP uses changes in delay as a measure of congestion –It responds to congestion by reducing the rate at which it retransmits data Although we think of reducing the rate of transmission –TCP does not compute a data rate –Instead, TCP bases transmission on buffer size That is, the receiver advertises a window size, and the sender can transmit data to fill the receiver's window before an ACK is received
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved TCP Congestion Control TCP mekanizmalarından en enterasan özelliklerinden bir tanesi sıkışıklık kontrol’ü (congestion control) dür Internet’te, paket kaybı veya gecikme genelde sıkışıklıktan ötürü oluşur Yeniden gönderim sıkışıklık problemini şiddetlendirebilir –Paket kopyalarını ek olarak enjekte etmek Sıkışıklık çökmesinden kaçınmak için –TCP sıkışıklık hesaplarken kullanılan gecikmeleri değiştirir –Sıkışıklığa cevap verir, iletim oranını düşürür ve veriyi yeniden iletir İletimdeki oranı düşürdüğümüzü sanmamıza rağmen –TCP veri oranını hesaplamaz –Bunun yerine, TCP iletim buffer büyüklüğünü temel alır That is, the receiver advertises a window size, and the sender can transmit data to fill the receiver's window before an ACK is received
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved TCP Congestion Control To control the data rate –TCP imposes a restriction on the window size By temporarily reducing the window size –the sending TCP effectively reduces the data rate TCP can achieve a reduction in data rate –by temporarily reducing the window size In the extreme case where loss occurs –TCP temporarily reduces the window to one-half of its current value TCP uses a special congestion control mechanism when starting a new connection or when a message is lost –instead of transmitting enough data to fill the receiver's buffer TCP begins by sending a single message containing data
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved TCP Congestion Control Veri oranını kontrol etmek –TCP window büyüklüğü üzerine kısıtlama koyar Geçici olarak window büyüklüğünü düşürerek –TCP Efektif bir şekilde veri oranını düşürür TCP veri oranını indirgeme de başarılı olabilir –Geçici olarak window büyüklüğünü düşürerek Özel Durumlarda, paket kaybolması görünürse –TCP geçici olarak window değerini o esnadaki değerin yarısına kadar düşürür TCP özel sıkışıklık kontrol mekanizması kullanır ve bağlantıya başladığı zaman ve mesaj kaybolduğu zaman bunu kullanır –Bunun yerine yeterince veri göndererek alıcının buffer’ını doldurabilir TCP begins by sending a single message containing data
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved TCP Congestion Control If an acknowledgement arrives without additional loss –TCP doubles the amount of data being sent and sends two additional messages If both acknowledgements arrive –TCP sends four messages, and so on The exponential increase continues –until TCP is sending half of the receiver's advertised window When one-half of the original window size is reached –TCP slows the rate of increase and increases the window size linearly as long as congestion does not occur The approach is known as slow start TCP's congestion control mechanisms respond well to increases in traffic –By backing off quickly, TCP is able to alleviate congestion
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved TCP Congestion Control Eğer bilgilendirme kayıpsız bir şekilde ulaşırsa –TCP göndermiş olduğu veri büyüklüğünü ikiye katlar ve ki ekstra mesaj gönderir Eğer iki bilgilendirme ulaşırsa –TCP dört mesaj gönderir, böyle devam eder Exponansiyel artış devam eder –TCP alıcının bilgilendirdiği pencere büyüklüğünün yarısına gelinceye kadar devam eder Orjinal window büyüklüğünün yarısına ulaştığı zaman –TCP artıştaki oranı yavaşlatır ve window büyüklüğüne kadar linear bir artış yapar as long as congestion does not occur Bu yaklaşım slow start olarak bilinir TCP sıkışıklı kontrol mekanizması trafikteki artışa karşı iyi cevap vermektedir –Desteği hızlı verir, TCP sıkışıklığı azaltır
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved TCP Segment Format TCP uses a single format for all messages –including messages that carry data, those that carry ACKs, and messages that are part of the 3-way handshake used to create or terminate a connection (SYN and FIN) TCP uses the term segment to refer to a message Figure illustrates the TCP segment format A TCP connection contains two streams of data –one flowing in each direction If the applications at each end are sending data simultaneously –TCP can send a single segment that carries outgoing data –The ACK for incoming data, and a window advertisement that specifies the amount of additional buffer space available for incoming data Some of the fields in the segment refer to the data stream traveling in the forward direction –while other fields refer to the data stream traveling in the reverse direction
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved TCP Segment Format TCP bütün mesajlar için tek bir format kullanır –Veri taşımak için kullanılan mesaj, ACK’ları taşımak içinde, ve 3-way handshake kullanılan mesajlarıda kapsar. TCP mesaj’ı temsil etmek için segment terimini kullanır Şekil TCP segment formatını belirler TCP bağlantısı iki veri stream’inden oluşur –Her yöne bir tane Eğer Her uçtaki uygulamalar eş zamanlı olarak veri iletirse –TCP tek bir segment gönderir ve giden veriyi taşır –Gelen verinin ACK sı, ve window bilgilendirmesi gelen veri için kullanılan buffer büyüklüğünü tanımlar Segment alanındaki bazı alanlar iletilecek yön ile ilgilidir –Bazı alanlarda Veri streamindeki ters istikamette kullanılacak veri ile aynıdır
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved TCP Segment Format
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved TCP Segment Format ACKNOWLEDGEMENT NUMBER –specifies the sequence number of the data that is expected next WINDOW –specifies how much additional buffer space is available beyond the ACKed data The ACK always refers to the first position for which data is missing –If segments arrive out of order, a receiving TCP generates the same ACK multiple times until the missing data arrives SEQUENCE NUMBER –Refers to outgoing data, it gives the sequence number of the first byte of data being carried in the segment –A receiver uses the sequence number to reorder segments that arrive out of order and to compute an acknowledgement number
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved TCP Segment Format ACKNOWLEDGEMENT NUMBER –Bir sonraki beklenen sequence numarasını belirtir WINDOW –ACK’dan sonra kullanılabilecek buffer büyüklüğünü tanımlar The ACK always refers to the first position for which data is missing –Eğer segmentler sırasız bir şekilde ulaşırlarsa, Alıcı TCP aynı ACK ları üzertir SEQUENCE NUMBER –Giden veriyi tanımlar, taşınacak segmentteki veriye ilk segment numarası verilir –Alıcı sequence numarasını sırasız gelen segmentleri sıralarken kullanır ve ACK numaralarını hesaplamak içinde
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved TCP Segment Format DESTINATION PORT –identifies which application program on the receiving computer should receive the data SOURCE PORT –identifies the application program that sent the data CHECKSUM –contains a checksum that covers the TCP segment header and the data
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved TCP Segment Format DESTINATION PORT –alıcı bilgisayarında bulunan uygulama programını tanımlar SOURCE PORT –Gönderen uygulamayı tanımlar CHECKSUM –TCP segmentini saran checksum TCP segment başlığı ve veriyi içerir