. . . n.Block: Sequenznummer des ersten Segments des n.Blocks n.Block: Sequenznummer die auf das letzte Segment des n.Blocks folgt Da jeder Header maximal 40 Bytes an Optionen aufnehmen darf <strong>und</strong> jeder Block 64 Bit ( = 8Bytes, 4Byte Anfangssequenznummer, 4 Byte folgende Sequenznummer) beansprucht, können höchstens 4 Blöcke angegeben werden. Der Empfänger beobachtet ständig seinen Empfangspuffer. Soll nun ein Segment quittiert werden, geschieht das nach den folgenden Regeln: Ist das zu quittierende Segment in korrekter Reihenfolge eingetroffen ( d.h. vor allem kein fehlendes Segment vor diesem), so wird eine normale Quittung ohne SACK-Option verschickt. Sollte (genau) ein Segment vor diesem fehlen, so wird ein Segment mit SACK-Option versendet. In diesem Segment wird der Empfang des Segments vor dem fehlenden quittiert (eine übliche duplizierte Quittung). In der SACK-Option wird ein Block angegeben, in dem das empfangene Segment quittiert wird. Als erste Sequenznummer wird die auf das fehlende Segment folgende Sequenznummer angegeben. Sollten bereits mehrere Segmente fehlen, so wird wie im vorangegangenem Punkt vorgegangen, ausser das nun für jedes fehlende Segment ein Block eingetragen wird. Der i-te Block enthält dabei zuerst die auf das (Blöcke - i)-te fehlende Segment folgende Sequenznummer, danach die Sequenznummer des nächsten fehlenden Segments, bzw. die des zuletzt empfangenen Segments (der erste Block enthält die Nummer des zuletzt empfangenen Segments). Anhand dieser SACK-Optionen kann der Sender erkennen, welche Segmente nicht korrekt ausgeliefert wurden <strong>und</strong> diese selektiv wiederholen. <strong>TCP</strong>-SACK geht nach einem mehrfachen Übertragungsfehler nicht in den Slowstart-Modus zurück. Literatur [1] Fall, K., Floyd, S., Comparisons of Tahoe, Reno, and Sack <strong>TCP</strong>, Tech. Report, 1995 [2] Ross Keith, Kames F. Kurose Computer Networking: A topdown approach featuring the Internet, Addison Wesley, 2001 [3] Mathis et al., Selctive Acknowledgement Options, RFC 2018, 1996 [4] Nagle,Congestion Control in IP/<strong>TCP</strong> Internetworks, RFC 896, 1984 [5] Plummer, David C., An Ethernet Address Resolution Protocol, RFC 826, 1982 20
[6] Postel, J., User Datagram Protocol, RFC 768, 1980 [7] Postel, J., Transmission Control Protocol, RFC 793, 1981 [8] Postel, J., The Magic Numbers in <strong>TCP</strong>/IP, RFC 1340, 1992 [9] Stevens, W. Richard, <strong>TCP</strong>/IP Illustrated Volume I, Addison Wesley, 1994 [10] Stevens et al., <strong>TCP</strong> Congestion Control, RFC 2581, 1999 21