推荐一些socket工具,TCP、UDP调试、抓包工具

标签: 系统运维 | 发表时间:2013-05-01 22:38 | 作者:gently
出处:http://www.blogread.cn/it/

标签:   socket   抓包

   还记得我在很久很久以前和大家推荐的 FiddlerCharles debugger么?他们都是HTTP的神器级调试工具,非常非常的好用。好工具能让你事半功倍,基本上,我是属于彻头彻尾的工具控。

   假如有一天,你写“传统”的PHP有些累了,想玩玩socket了,搞搞python、NodeJS、GO之类的新兴语言或框架(当然我不是说这些语言不能写web),或者干脆就用PHP吧,事实上PHP5.4的性能提高的真是相当之多,用PHP 的socket函数就能简单的写一个 web socket服务器 (代码在评论里)了,甚至有个很不错的PHP框架—— swoole,他和其他的大多数常见的框架都不同,因为他不依赖http服务器!号称高级开发框架,“目标是向Java框架、Rails On Ruby、Python Django Pylons等一流框架发起挑战”的一种以socket方式运行的PHP框架。还有一个叫 nanoserv,……我说这么多就是为了证明PHP也能玩好socket的,所以socket以及TCP、UDP都是平易近人的。

   说工具

   

   1、 wireshark

   这个工具是抓包的神器,我不知道有没有在以前的文章里提及,总之,他是好评如潮,谁用谁知道,我就不班门弄斧的多做蹩脚的介绍了,只说一点,他会自作聪明的按照端口号来解码协议,有的时候被他弄的一塌糊涂,此时选择不解码任何协议即可。

   2、 sokit

   国人写的一个TCP、UDP socket调试辅助工具,非常的好用,基于QT框架,所以在linux和windows下都能用,他能很方便的组装二进制数据包,很方面的模拟分包、粘包。有客户端、服务器、转发器三种模式,转发器实际上就是一个透明代理,原理和Fidder类似,所以可以轻量级的进行抓包,当然不能断点调试的啦。

   用这个玩意发现一个小bug,就是在发二进制包的时候[00,88] ,就这个中括号后面多了一个空格,也会被发出去,有一次我在这里栽了跟头,当然在日志中仔细查看能够看到完整的发出的包(这个故事告诉我们,日志很重要)

   3、 TCP/IP Builder

   这个是我早期使用的一个工具,现在有了sokit,基本不使用他了,这个东东的特点是体积小

   4、 TCP/UDP Socket调试工具 2.3

   相比之下,这个工具就没有什么特点了,嗯是的,甚至没有官方主页(工具界面上还带了点小广告),也推荐一下了,如果你觉得适合你的口味的话,至少我用了他一段时间的

   5、 TCPView

   也是Windows下的神器,主要是查看当前的TCP连接、UDP连接状态,也可以断开正在传输数据的连接。她除了平时测试、调试TCP等用到,有的时候还能发现一些莫名奇妙的连接,那么就该查查你的系统了。

   6、一些自己写的小脚本、小工具,就不献丑了,何况这些每个人都能自己写。

   就是这些了,如果你有牛逼的神器收藏,欢迎与我交流

您可能还对下面的文章感兴趣:

  1. 网络抓包工具推荐:SmartSniff [2011-06-30 23:53:41]

相关 [socket 工具 tcp] 推荐:

推荐一些socket工具,TCP、UDP调试、抓包工具

- - IT技术博客大学习
标签:   socket   抓包.    还记得我在很久很久以前和大家推荐的 Fiddler和 Charles debugger么. 他们都是HTTP的神器级调试工具,非常非常的好用. 好工具能让你事半功倍,基本上,我是属于彻头彻尾的工具控. 号称高级开发框架,“目标是向Java框架、Rails On Ruby、Python Django Pylons等一流框架发起挑战”的一种以socket方式运行的PHP框架.

tcp/ip ,http,socket的关系

- - 行业应用 - ITeye博客
  物理层、数据链路层、网络层、传输层、会话层、表示层和应用层.   通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层,.   三者从本质上来说没有可比性,.   socket则是对TCP/IP协议的封装和应用(程序员层面上).   也可以说,TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,.

有关socket read

- - 五四陈科学院
以下内容由 [五四陈科学院]提供. 实际开发中,网络程序最可能遇到的就是数据没收到、收到错误数据这样诡异的问题.. 很多时候,都是由于对socket read的细节理解的不一致,导致了程序前后的矛盾. 下面详细阐述整个read的过程. read函数是负责从fd中读取内容.. 当读成功时, read返回实际所读的字节数.

分布式TCP压力测试工具 tcpcopy

- - haohtml's blog
tcpcopy是一种应用请求复制(基于tcp的packets)工具,其应用领域较广,我们曾经应用于网易的广告投放系统,urs系统,nginx hmux协议开发等系统,避免了上线带来的很多问题. 总体说来,tcpcopy主要有如下功能:. 1)分布式压力测试工具,利用在线数据,可以测试系统能够承受的压力大小(远比ab压力测试工具真实地多),也可以提前发现一些bug.

Wireshark抓包工具--TCP数据包seq ack等解读

- - CSDN博客互联网推荐文章
1、Wireshark的数据包详情窗口,如果是用中括号[]括起来的,表示注释,在数据包中不占字节. 2、在二进制窗口中,如“DD 3D”,表示两个字节,一个字节8位. 3、TCP数据包中,seq表示这个包的序号,注意,这个序号不是按1递增的,而是按tcp包内数据字节长度加上,如包内数据是21字节,而当前IP1发到IP2的包的seq是10的话,那下个IP1发到IP2的包的seq就是10+21=31.

Wireshark抓包工具--TCP数据包seq ack等解读

- - 研发管理 - ITeye博客
1、Wireshark的数据包详情窗口,如果是用中括号[]括起来的,表示注释,在数据包中不占字节. 2、在二进制窗口中,如“DD 3D”,表示两个字节,一个字节8位. 3、TCP数据包中,seq表示这个包的序号,注意,这个序号不是按1递增的,而是按tcp包内数据字节长度加上,如包内数据是21字节,而当前IP1发到IP2的包的seq是10的话,那下个IP1发到IP2的包的seq就是10+21=31.

tcp/ip调优

- Lucseeker - 在路上
在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接. 第一次握手:建立连接时,客户端发送syn包(syn=x)到服务器,并进入SYN_SEND状态,等待服务器确认;. 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;.

Socket的速率控制

- - CSDN博客互联网推荐文章
做一个以精确速率向外输出数据的数据源,要完成这个目标,最基础的是:. 1、找到一种精确的计时器,在精确的时间范围内控制数据源以指定的速度向外发送数据. 2、通过对套接字选项和线程优先级的设置减少网络因素对发送速度造成的影响,从而提高发送精度,保证数据的实际发送量尽可能的达到指定的理论发送量.      针对第一个要求,通过寻找到一种时间精度达到微秒级的精确计数器来保证,在硬件支持的情况下可以通过WindowsAPI获取时钟频率以及震荡次数,通过在事件两端分别调用函数得到震荡次数的差值并结合时钟频率可以计算出精确的时间间隔,通过指定的传输速度和精确的延时可以计算出需要发送的数据量.

ZeroMQ(java)中监控Socket

- - CSDN博客架构设计推荐文章
基本上ZeroMQ(java)中基本的代码都算是过了一遍了吧,不过觉得它在日志这一块貌似基本没有做什么工作,也就是我们通过日志来知道ZeroMQ都发生了什么事情. 而且由于ZeroMQ中将连接的建立和重连接都进行了隔离,用户不需要做什么事情来维护连接,当然这样做的好处是使程序员的编码工作变少了,但是当然也有不好的地方,那就是用户失去了对ZeroMQ整个运行阶段的控制.