J'ai la configuration suivante :
Android Galaxy S5 Mini. Version Android 5.1.1.
J'ai 2 interfaces réseau :
- Interface1 avec ip : 192.168.5.1
- Interface2 avec ip : 192.168.5.10
Je crée un DatagramSocket en utilisant Android SDK et le lie à l'adresse : 192.168.5.10(Interface 2), port 2525. Je mets cette socket en réception et j'attends les paquets. J'utilise un autre appareil pour envoyer les paquets.
Paquets provenant de l'adresse IP : 192.168.5.4 est reçu.
Paquets provenant d'une adresse IP (appareil différent) : 192.168.5.1 (identique à l'ip de l'interface 1 de l'appareil) n'est jamais reçu.
Il semble que la pile réseau rejette les paquets dont l'adresse IP source existe dans l'appareil, quelle que soit l'interface par laquelle ils ont été reçus.
Si je modifie l'adresse IP de l'interface 1 pour qu'elle soit différente de 192.168.5.1, tout fonctionne bien.
Dispositifs sur lesquels il n'a pas se produire :
- Samsung tablet T113 Android 4.4.4 (Stock rom)
- LG G4 Android 6.0 (Stock rom)
- LG Nexus 5X Android 7.1.2 (Stock rom)
Dispositifs sur lesquels il a fait se produire :
- Galaxy S5 Mini Android 5.1.1 (Stock rom)
- Galaxy Note 3 Android 6.0.1 (CyanogenMod)
- One+1 Android 6.0.1 (CyanogenMod)
Quel est le mécanisme qui rejette le paquet avec l'IP source 192.168.5.1 (identique à l'ip de l'interface 1 du périphérique) ?