TCP/IP
昌山小屋
917
展开
-
基于raw socket结合icmp报文获取本机外网ip
思:获取本地主机外网IP的方法有很多,更简单的办法也很多,这里只是提供一个可行的办法,顺便结合raw socket + icmp报文做个练习。程序已经在centos6.3上测试编译运行通过! #ifndef _GNU_SOURCE #define _GNU_SOURCE#endif#include <stdio.h>#include <stdlib.h&g...原创 2015-12-10 00:53:50 · 1115 阅读 · 0 评论 -
sendmsg() Permission denied
最近在用raw socket做tcp发包的实验,对全网络的ip地址及端口做扫描,程序运行过程会报"sendmsg() Permission denied"的错误,后来查了一下原因,只有当目标地址是xx.xx.xx.0(代表本机网络)和xx.xx.xx.255(代表本机广播地址)这两个地址时才会报这个错误。由此,只要处理好这两个异常即可。原创 2015-12-17 12:26:43 · 1246 阅读 · 0 评论 -
基于tcp raw socket实现的端到端rtt,丢包率检测程序(1)
通常我们检测rtt和丢包率是采用ping(利用icmp请求响应报文),这里提供了一种采用tcp的方式计算rtt和丢包率。原理比较简单,利用tcp raw socket自己封装tcp syn报文,接收对方发过的syn+ack报文,以此来计算平滑rtt和丢包率。当前只实现了一对一的扫描,发送端需要绑定本地IP和一个端口,默认是选择的80端口,当然还需要指定对端IP和端口(默认也是80)。整...原创 2015-11-29 12:40:44 · 4393 阅读 · 4 评论