Quote:
Originally Posted by Dr.Abdelfattah
Keep in ur head 3 thing
- IP blocking
- max connection on gateway 1500
- game client wait 10 seconds tell gateway replays if no replay it will show u server is offline or visit www for more info and so on
Hey i think i find a good explain for that :
U send me 20K packets or or from an IP
I accept 1.5k of them and close port as it's maximum allowed
I found all of those are un-known packets
I block ur IP for a time and re-open my port again with 0/1500 slots
and i will do the same every time .
clear now?
|
Alright well it's not entirely clear for me what you ment but I did a small test like a botnet could do.
I made a small program which looped 55k times to create 55k connections. It was all async so the loop was done in no time and all the requests were running. Result gatewayserver choked big time.
I'm not using the game client so I don't have to wait 10 seconds for something btw I assume you're talking about the sro_client 10 seconds waiting thinggy cause that isn't cause of the server letting you wait but the client loading about 300 mb of data.
Anyway here is a screenshot of the gateway:
See the amount of SockTcpCount and SessionCount and ClassLinkCount. It didn't even get to 55k cause I ran out of memory.
That little bump in the graph is the amount of established connections. During the test it went pretty high like 5k but it also lost the connections pretty fast but these are probably the "verified" connections so which have passed the handshake but still my 51k + connections were connected and none of them was disconnected.
Once I closed the gateway all the connections were aborted.
I have to say the gateway is doing a pretty good job with the cpu since that one isn't that high but I only connected 51k times and sended nothing. But the RAM usage was really REALLY high it went from 200 mb to 2.5 gb + and then I ran out of ram which made everything lagg like hell.
So the socket doesn't get closed after an x amount of connections is stays open and therefore you can ddos the gateway
EDIT: and since I have a feeling you're going to talk about the firewall or something else blocking these connections it's a ddos so it can't handle that many connections to refuse. The only fix would be like you said closing the port but it doesn't so you can ddos the gateway.