有关raw socket的一些知识

    众所周知,通过socket编程,我们能够实现机器之间的通信.在TCP/IP协议
簇(PF_INET)中,可以建立面向连接的SOCK_STREAM类型的socket,非连接的
SOCK_DGRAM类型的socket.事实上,在所有的网络程序中,也是这两种socket用
的最为广泛.除此之外,还有一些不常用的socket类型,它们却是在某些网络通
信中担当重要的角色.这里要讲的就是这么一种socket,称之为raw socket.
    raw socket的作用主要在三个方面:
    1.通过raw socket来接受发向本机的ICMP,IGMP协议包,或者用来发送这些
    协议包.
    2.接受发向本机的但TCP/IP栈不能够处理的IP包.
    3.用来发送一些自己制定源地址特殊作用的IP包(自己写IP头,TCP头等等)

    我们知道,平时我们想看一看网络是否通达,就用ping命令测试一些.ping
命令用的是ICMP协议.因此,我们不能够通过建立一个SOCK_STREAM或SOCK_DGRAM
来发送这个包,只能够自己亲自来构建ICMP包来发送.这是一种情况.另一种情况
是:现在许多操作系统在实现网络部分的时候,通常只实现了常用的几种协议,
如tcp,udp,icmp等,但象其它的如ospf,ggp等协议,操作系统往往没有实现,如果
自己有必要编写位于其上的应用,就必须借助raw socket来实现,这是因为操作
系统遇到自己不能够处理的数据包(ip头中的protocol所指定的上层协议不能处
理).就将这个包交给raw socket.而最后一种使用raw socket的目的主要是用来
构建一些特殊的协议头,比如我们想对某台机器进行denial of service类型的
攻击,但是有不想留下痕迹,让别人知道IP包的来源,这时候就可以使用raw 
socket来发送这些伪造源地址信息的包,这其实也是这种攻击所采用的主要技术
手段.当然了,我说的是HACKER行为,之所以想要处理

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值