+ -
当前位置:首页 → 问答吧 → 关于RST错误

关于RST错误

时间:2010-06-23

来源:互联网

目前在做一个类似NAT的proxy,用原始套接字写的。
需要作的工作如下:
收到的包,修改源和目的IP,以及TCP/UDP的端口号,重新计算校验和,然后发出去(双向的)
代码写好了,用客户端浏览器对网页进行访问,现在就能访问百度;其他的网站,甚至是自己搭的apache,总是收到RST的报文。上网搜索出现RST的原因,说是在TCP的传输过程中,出现了错误,所以终止了。在这里请教一下各位,这可能是什么原因造成的?我只是做了地址和端口的修改,并计算校验和,这样会造成RST错误吗?
在计算校验和的时候,是先计算IP的检验和,再计算传输层的检验和?还是先传输后IP?或者是与计算顺序无关?
还有就是,通过wireshark抓包,发现有丢包的现象,是不是也有可能是因为丢包所以造成的错误?
谢谢大家了

作者: steven198662   发布时间: 2010-06-23

顶下
求助。。。

作者: gaowg2000   发布时间: 2010-06-23

我以前向一个BGP路由器直接发数据包,BGP路由器回个包给我, 但是我的内核并不认为
存在这个连接,就发回一个RST的包。。。不过好像跟楼主的情况有点不一样。如果可以连接百度,其他也应该没问题的?能否确认百度,是否确定成功了?

作者: peidright   发布时间: 2010-06-23

回复 peidright


    只有百度的页面能打开,其他的网页都打不开。我也觉得是系统的问题,请问你后来是怎么解决这个问题的?

作者: steven198662   发布时间: 2010-06-23