Hallo!
Ich sende UDP Pakete von A nach B, beide im selben LAN, ohne einen Router dazwischen. Dabei möchte ich das Type-of-Service-Feld (TrafficClass) des IP Headers setzen.
Am sendenden DatagramSocket setze ich die TrafficClass des Pakets und gebe sie gleich danach wieder aus:
Es wird 24 ausgegeben, was 0x18 entspricht, ok soweit.
Aber auf der Empfängerseite warte ich zuerst auf ein paar Pakete, und versuche dann, deren TrafficClass auszulesen:
Hier wird jedoch die 0 zurückgegeben. Es ergeben sich für mich zwei Fragen:
1) Warum steht im ToS-Feld auf der Empfängerseite nicht mehr der beim Sender gesetzte Wert? Wird der irgendwo überschrieben?
2) Ich verstehe nicht, warum man beim Empfänger die TrafficClass über den receivingSocket ausliest, und nicht über das Datagram Packet. Ich meine, können an diesem receivingSocket nicht UDP Pakete verschiedener Anwendungen ankommen, die alle das ToS-Feld unterschiedlich befüllt haben?
Danke sehr!
Gruß
kulri
Ich sende UDP Pakete von A nach B, beide im selben LAN, ohne einen Router dazwischen. Dabei möchte ich das Type-of-Service-Feld (TrafficClass) des IP Headers setzen.
Am sendenden DatagramSocket setze ich die TrafficClass des Pakets und gebe sie gleich danach wieder aus:
Code:
sendingSocket.setTrafficClass(0x08|0x10);
System.out.print.n(sendingSocket.getTrafficClass());
Aber auf der Empfängerseite warte ich zuerst auf ein paar Pakete, und versuche dann, deren TrafficClass auszulesen:
Code:
receivingSocket.getTrafficClass(); // returns 0
1) Warum steht im ToS-Feld auf der Empfängerseite nicht mehr der beim Sender gesetzte Wert? Wird der irgendwo überschrieben?
2) Ich verstehe nicht, warum man beim Empfänger die TrafficClass über den receivingSocket ausliest, und nicht über das Datagram Packet. Ich meine, können an diesem receivingSocket nicht UDP Pakete verschiedener Anwendungen ankommen, die alle das ToS-Feld unterschiedlich befüllt haben?
Danke sehr!
Gruß
kulri