我不太清楚这一切从哪里开始,但我假设我需要某种网络驱动程序来捕获所有的UDP流量。(请告诉我哪一个是最好的记录和工作)
在C#中成功捕获UDP数据包之后,我将通过TCP连接将它们发送到我的服务器,在该连接中,我需要将UDP发送到目的地,然后将响应发送回客户端计算机(即捕获数据包),然后将响应发送到程序,就好像它是直接来自有关服务器一样。
所以基本上我的联系如下:
Client running UDP program <<==TCP connection==>> Conversion Server <<==UDP connection==>> UD
我在阻止对GameServers的攻击方面取得了很多成就,但我还是被困在了一些事情上。我阻止了游戏服务器的主要请求,这些请求以“\xff\xff”的形式出现,然后是实际的查询(如get status或get info ),以生成类似于“\xff\xff getstatus”之类的内容,但我看到如果发送到游戏服务器,其他查询将导致服务器以与输入相同的速率使用“断开”数据包进行回复,因此如果输入速率较高,那么“断开”的高输出可能会给服务器带来滞后。因此,我想阻止所有查询,但实际客户端使用的查询除外,我认为这些查询的形式是“\xff\xff”或.所以,
我试着用这个规则:
-A INPUT
我使用UDP客户端每秒发送大约20k请求,每个请求的数据都小于1k。我需要通过Java实现一个UDP服务器。编码如下:
public void startRecieve() throws IOException {
udpSocket = new DatagramSocket(Constant.PORT);
byte[] buffer = new byte[Constant.SIZE];
udpPacket = new DatagramPacket(buffer, buffer.length);
int len;
while (true) {