QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4010|回复: 6

使用socket编程时,如何发送flags为rst的包

[复制链接]
发表于 2006-1-20 23:06:35 | 显示全部楼层 |阅读模式
我用socket编程时,结束连接用的是
close(sock);//socket为套接字描述符
但是系统总是以flags为fin的包来结束连接,怎样才能让系统发送以flags为rst的包来结束连接呢?
发表于 2006-1-21 21:09:05 | 显示全部楼层
需要建立原始套接字,具体不太清楚,我看过,没用过。
rst一般是处理网络连接中因某些原因而发生错误的TCP连接用的,比如机器A本来和机器B有一条连接,后来机器B死机了,重启后,A以为连接还存在,于是发来信息,这时B因为不知道这个连接,就回发一个rst标志的包给A以重置那条连接。还有其它几种情况,像处理非法连接等等。
回复

使用道具 举报

 楼主| 发表于 2006-1-21 23:13:23 | 显示全部楼层
但是我发现一个特别的现象,我分析的这个程序发送给服务器数据包时,要断开连接,它用的是rst直接断开。换句话说,A机器向B机器(服务器)申请了一个连接并建立了连接,在A机器没有死机,B机器也没有发生什么异常的情况下,A向B发了一个rst。但是我编写的程序再断开连接时总是用fin?我就在想如何能够让A机器通过发送rst主动断开连接。
回复

使用道具 举报

发表于 2006-1-22 10:54:17 | 显示全部楼层
http://www.net130.com/CMS/Pub/network/network_security/2005_11_16_57017.htm
RST:(Reset the connection)用于复位因某种原因引起出现的错误连接,也用来拒绝非法数据和请求。如果接收到RST位时候,通常发生了某些错误。

因为你是用shutdown和close关闭套接字的,肯定不会发rst标志的包了。
你要分析的程序很奇怪了,rst一般不会由通用的网络程序产生,你的程序不是什么扫描器一类的东西吧
回复

使用道具 举报

 楼主| 发表于 2006-1-22 20:02:52 | 显示全部楼层
不是啊,是一个网络游戏的客户端,本想做个模拟程序并挂机的,但老出一些问题。它与服务器的连接过程也许是这样的(推测,因为没有破解当中的加密结构,所以,现在也就是推测了)。
首先,输入用户名和密码,并与A服务器(用于验证用户名和密码)连接,通过验证后,由客户端发送rst断开连接。
然后,连接到另一个服务器B,……,再由客户端发送rst断开连接。
最后,进入服务器C进行游戏。

疑问就是前两步的rst是如何产生的,这是初期问题问题,随后的加密问题就是最难啃的骨头了,我连从哪里入手都不知道
回复

使用道具 举报

发表于 2006-4-1 22:30:31 | 显示全部楼层
不好意思,又转回来了,我这段时间看书,突然看到了说怎么发rst包来断连接的例子,原理就是先调用setsockopt来设置socket的SO_LINGER选项,再用close关闭socket,这时候TCP就会发RST标志的包来断开连接,而不是FIN,下面是我从man在摘出来的,希望对你来说不太晚,谢谢!

SO_LINGER
Lingers on a close() if data is present. This option controls the action taken when unsent messages queue on a socket and close() is performed. If SO_LINGER is set, the system shall block the process during close() until it can transmit the data or until the time expires. If SO_LINGER is not specified, and close() is issued, the system handles the call in a way that allows the process to continue as quickly as possible. This option takes a linger structure, as defined in the <sys/socket.h> header, to specify the state of the option and linger interval.
回复

使用道具 举报

 楼主| 发表于 2006-6-2 11:06:54 | 显示全部楼层
谢谢,这对我的帮助很大.谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-2 14:22 , Processed in 0.037456 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表