Not logged in. · Lost password · Register

PhiBa
Member since Nov 2004
64 posts
Subject: TCP
Hallo,

ich habe mal eine Frage zum Verbindungsabbau von TCP.

Auf der Folie 132 zum Verbindungsabbau steht bei der dritten Nachricht SQN = server_sqn + 1. Aber in der Nachricht davor waren weder Daten noch ein SYN oder FIN Flag gesetzt. Außerdem ist es hier anders beschrieben: 

http://www.tcp-ip-info.de/tcp-ip-schulung/tsld109.htm

Hier wird die server_sqn (hier einfach 300) nach der zweiten Nachricht nicht erhöht.

Was ist nun richtig?

Danke!
MfG Phil
lusiux4
Member since Oct 2004
63 posts
Ich denke mal, dass sich einfach in der Folie ein Fehler eingeschlichen hat.

In der dritten Nachricht ist das FIN-Flag gesetzt und die SQN = server_sqn+1.
Darauf antwortet der Client mit ACK = server_sqn+1. Aber das ACK ist doch das naechste erwartete Byte und bei FIN und SYN wird das doch auch erhoeht.

Also waere es entweder in der vierten Nachricht ACK=server_sqn+2 oder (was ich wahrscheinlicher finde) in der dritten Nachricht SQN=server_sqn.

Was meint ihr?
masta_lu
Member since Oct 2004
138 posts
Hmm, kann es sein, daß ihr die alten Folien verwendet?
Auf "meinem" Bild sehe ich:

-> FIN-F=1, SQN=ClientSQN
<- ACK-F=1, ACK=ClientSQN, SQN=ServerSQN
(hier könnte der Server noch Daten senden)
<- FIN-F=1, SQN=ServerSQN+1
-> ACK-F=1, ACK=ServerSQN+1, SQN=ClientSQN+1

ich denk mal, daß macht schon Sinn so... auch wenn es die SQN "vielleicht" nicht nötig wären...
Oder ich hab die Frage falsch verstanden ;)

[edit]
Jetzt hab ich geschnallt, was daß Problem ist :red:
Da es kein "nächstes erwartetes Byte" gibt handelt es sich wohl einfach um einen "Speziallfall", der so spezifiziert ist... anders ausgedrückt, ACK und SQN beziehen sich ja auf die "Payload"... da es aber keine gibt (geben darf), werden die Datenfelder halt einfach anders benutzt, auch wenn es u.U. redundant ist...
Andere Meinungen? ;)
[/edit]
This post was edited on 2006-09-13, 20:14 by masta_lu.
Lord_of_Code4
Member since May 2005
168 posts
Im Skript steht ja:
Segmente mit SYN-Flag=1 oder FIN-Flag=1 dürfen keine Daten
enthalten, die nächste SQN muß aber um Eins inkrementiert werden,
damit diese Segmente explizit bestätigt werden können

Client: FIN=1 SQN=client_sqn
//client_sqn+1 wird als ack erwartet wegen dem Satz oben
Server: ACK=1 SQN=server_sqn ACK=client_sqn+1
Server: FIN=1 SQN=server_sqn
//server_sqn+1 wird als ack erwartet wegen dem Satz oben
Client: ACK=1 SQN=client_sqn+1 SQN=server_sqn+1


Die ACKs transportieren ja keine Daten, daher erhöht sich die Sequenznummer der jeweiligen Seite auch nicht
This post was edited 4 times, last on 2006-09-14, 18:24 by Lord_of_Code4.
Close Smaller – Larger + Reply to this post:
Verification code: VeriCode Please enter the word from the image into the text field below. (Type the letters only, lower case is okay.)
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Special characters:
Go to forum
Datenschutz | Kontakt
Powered by the Unclassified NewsBoard software, 20150713-dev, © 2003-2011 by Yves Goergen