TCP: Retransmission Time verringern
-
Hallo zusammen,
ich möchte Daten von einem Windows PC an eine Linux Maschine senden. Dazu nutze ich TCP/IP. Die beiden Rechner sind über ein Switch verbunden. In ca 1% aller Übertragungen (eine Übertragung besteht aus einer Clientanfrage und der Antwort des Servers) kommt ein versendetes Paket beim ersten Sendeversuch nicht an und muss erneut gesendet werden. (Zur Analyse nutze ich auf beiden Seiten das Tool Ethereal). Daß so etwas vorkommt leuchtet mir ein und ist nicht weiter schlimm, sofern es sich dabei um die Clientanfrage handelt, die dann einfach wiederholt werden muss. Bei der Antwort des Servers sieht es da schon anders aus:
Wenn der Client seine Anfrage abschickt, startet er einen Timer, der im Bereich von 50ms liegt. Innerhalb dieser Zeit sollte die Antwort des Servers ankommen. Der Server benötigt aber eine Zeit von ca 250ms, bis er das verschwundene Paket erneut sendet. Nach welchen Kriterien der Server erkennt, daß das Paket verloren ging, weiß ich nicht. Ich arbeite "nur" mitsocket(), bind(), listen(), accept(), sowie send() und recv().
Kann mir jemand sagen, ob und wenn ja wie ich da was drehen kann? Ich möchte erreichen, daß der Server bei einem Übertragungsfehler das gleiche Paket z.B. innerhalb 40 ms sendet. Ist das möglich?
Vielen Dank und freundliche Grüße,
yecc