Reply To: UDP Package too big – Using the ReplicationDHTService with the FileSharing Appli

Home Forums PeerfactSim Forum UDP Package too big – Using the ReplicationDHTService with the FileSharing Appli Reply To: UDP Package too big – Using the ReplicationDHTService with the FileSharing Appli

#960

Dennis

I’m trying to use the ReplicationDHTSerivce in combination with the
FileSharing application. Therefore I altered the FSChord-100_Peers.xml
config file. Since the Mod netlayer is not fully supported by the
filesharing application, I took the advice from Feldi (see
http://groups.google.com/group/peerfactsim-kom/browse_frm/thread/d264d93f8b249be)
and switched to GNP. I added the ReplicationDHTService using the
following line:

<ReplicationService
class=”de.tud.kom.p2psim.impl.service.dht.replication.ReplicationDHTServiceFactory” /
>

I although added the ReplicationService to every group. For example
like this:
<Group groupID=”Ecuador” size=”1″>
<NetLayer/>
<TransLayer/>
<NodeFactory />
<ReplicationService />
<FilesharingApplication />
</Group>

I used my proposed fix for empty neighbor set problem (see
http://groups.google.com/group/peerfactsim-kom/browse_frm/thread/d27596553aacf334).
Which seems to be working fine. Now when I’m trying to run the
simulation I end up with the following exception:

java.lang.IllegalArgumentException: Message-Size is too big for a UDP-
Datagramm (max 65507 byte)
at
de.tud.kom.p2psim.impl.network.gnp.GnpLatencyModel.getUDPerrorProbability(GnpLatencyModel.java:
126)
at de.tud.kom.p2psim.impl.network.gnp.GnpSubnet.send(GnpSubnet.java:
143)
at
de.tud.kom.p2psim.impl.network.gnp.GnpNetLayer.send(GnpNetLayer.java:
175)
at
de.tud.kom.p2psim.impl.transport.DefaultTransLayer.sendTransportMsg(DefaultTransLayer.java:
253)
at
de.tud.kom.p2psim.impl.transport.DefaultTransLayer.sendAndWait(DefaultTransLayer.java:
197)
at
de.tud.kom.p2psim.impl.service.dht.replication.operations.ReplicationDHTAbstractOperation.sendAndWait(ReplicationDHTAbstractOperation.java:
127)
at
de.tud.kom.p2psim.impl.service.dht.replication.operations.ReplicationDHTAbstractOperation.sendMessage(ReplicationDHTAbstractOperation.java:
70)
at
de.tud.kom.p2psim.impl.service.dht.replication.operations.ReplicationOperation.sendNextMessage(ReplicationOperation.java:
151)
at
de.tud.kom.p2psim.impl.service.dht.replication.operations.ReplicationOperation.execute(ReplicationOperation.java:
143)
at
de.tud.kom.p2psim.impl.common.AbstractOperation.eventOccurred(AbstractOperation.java:
180)
at
de.tud.kom.p2psim.impl.simengine.Scheduler.processNextEvent(Scheduler.java:
233)
at de.tud.kom.p2psim.impl.simengine.Scheduler.start(Scheduler.java:
156)
at de.tud.kom.p2psim.impl.simengine.Simulator.start(Simulator.java:
174)
at
de.tud.kom.p2psim.impl.util.guirunner.impl.SimulationThread.run(SimulationThread.java:
68)

Just for fun I switch back to the Mod netlayer. Using this layer the
problem does not occur (I guess because TCP is used). But the
simulation is still crashing because TCP is not fully supported which
I expected to happen 🙂

When I erase the size limititation check from the
getUDPerrorProbability() method everything seems to be working. But I
guess this is not the right way 🙂
What’s the correct way to solve this problem?