sn3002 Geschrieben 22. Mai 2009 Teilen Geschrieben 22. Mai 2009 Hallo zusammen! Folgende Frage tat sich mir gestern bzgl. des TCP-Protokolls auf: Damit die Transportschicht Segmente den richtigen Anwendungsprozessen zuordnen kann, werden ja Quell- und Zielportnummer verwendet. Falls zwei Anwendungsprozesse zufällig die gleiche Quellportnummer zugewiesen bekommen, wird ja zusätzlich noch die Ziel- und Quelle IP-Adresse verwendet. Dafür ist allerdings im Standard-TCP-Format kein Feld vorgesehen oder? Woher weiß TCP denn dann die Quell- und Ziel-IP-Adresse eines Segments? :upps liebe Grüße, sn3002 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Capricious Geschrieben 22. Mai 2009 Teilen Geschrieben 22. Mai 2009 (bearbeitet) Passiert eine Doppelvergabe überhaupt? Für die Funktion wird meist auf fertige Klassen zugegriffen. Und falls der Fehler aufgrund manueller Portbelegung passiert, könnte ich mir vorstellen, dass es die Aufgabe der Applikationen ist anhand der IPs zu entscheiden ob die Nutzdaten verwertet werden oder nicht. Das Betriebssystem schiebt einfach Beiden das Paket zu. Der TCP/IP Stack hat damit nichts am Hut. Lass mich aber gerne eines besseren belehren :-). Bearbeitet 22. Mai 2009 von Capricious Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
hades Geschrieben 22. Mai 2009 Teilen Geschrieben 22. Mai 2009 Wenn es TCP ist, dann hat der TCP/IP Stack etwas damit zu tun. TCP hat eine Flusssteuerung, wo a) beim Verbindungsaufbau (3Way Handshake) und bei der Datenübertragung doppelte Antworten (SYN-ACK bzw. ACK) durch die enthaltene Sequenznummer bemerkt werden. Bei UDP ist es dem TCP/IP Stack egal. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Capricious Geschrieben 22. Mai 2009 Teilen Geschrieben 22. Mai 2009 Hm und weiter? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ardcore Geschrieben 22. Mai 2009 Teilen Geschrieben 22. Mai 2009 Hallo zusammen! Folgende Frage tat sich mir gestern bzgl. des TCP-Protokolls auf: Damit die Transportschicht Segmente den richtigen Anwendungsprozessen zuordnen kann, werden ja Quell- und Zielportnummer verwendet. Falls zwei Anwendungsprozesse zufällig die gleiche Quellportnummer zugewiesen bekommen, wird ja zusätzlich noch die Ziel- und Quelle IP-Adresse verwendet. Dafür ist allerdings im Standard-TCP-Format kein Feld vorgesehen oder? Woher weiß TCP denn dann die Quell- und Ziel-IP-Adresse eines Segments? :upps liebe Grüße, sn3002 Eine doppelte Vergabe bei TCP ist nicht möglich. Die TCP-Sockets werden vom OS verwaltet. Hier gilt das Prinzip wer zuerst kommt, malt zuerst. Sollte eine Anwendung versuchen einen belegten Quellport für einen TCP-Stream zu verwenden wird dies vom OS erkannt und der Quellport geändert. Der Quellport bleibt für die Zeit des Streams für eine Anwendung (Socket) reserviert. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
sn3002 Geschrieben 25. Mai 2009 Autor Teilen Geschrieben 25. Mai 2009 Na die Fragestellung ging vielleicht ein bischen in die falsche Richtung: :upps:confused: Folgendes Szenario nochmal: Ein Webserver erhält auf Ziel-Port-Nr. 80 zwei Anfragen von zwei verschiedenen Hosts, die zufällig die gleiche Quell-Port-Nummer benutzen. Wenn TCP nun diese Anfragen an die Anwendung (Webserver) weiterleitet, ist die Information von welcher IP-Adresse die Anfrage stammt schon weg. Wie kann nun bei der Antwort die richtige Zuordnung auf TCP-Ebene erfolgen?? lg, sn3002 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
sn3002 Geschrieben 25. Mai 2009 Autor Teilen Geschrieben 25. Mai 2009 Okay, ich glaube die Sache hat sich erledigt. TCP speichert die Quell-IP sowie die Ziel-IP nochmal in der Prüfsumme (Checksum) ab. Damit funktioniert dann auch die Identifikation dank Quell-Port, Ziel-Port und Quell-IP. --> http://www.ietf.org/rfc/rfc793.txt (Seite 15ff) liebe Grüße, sn3002 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Crash2001 Geschrieben 25. Mai 2009 Teilen Geschrieben 25. Mai 2009 Mir scheint, dass du das Prinzip des OSI-Modells noch nicht so ganz verstanden hast. Der Client packt seine Pakete ineinander. Die Daten aus Schicht 7 ind Schicht 6, die Daten aus Schicht 6 in Schicht 5, u.s.w. bis auf Schicht 1 ein Paket mit den ganzen Daten der darüber liegenden Schichten gesendet wird. Auf der Gegenstelle wird dies dann wieder alles entpackt an entsprechender Stelle. Da TCP auf IP aufsetzt, ist also bekannt, wo das Paket herkommt. Wenn du dir dieses Bild einmal anschaust, dann siehst du, dass Schicht 3 z.B. alle Daten der Schicht 4 enthält plus die zusätzlichen Daten die in Schicht 3 dazukommen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.