linux 高级网络编程之自定义ip报文头 Dos

本文介绍了DoS(拒绝服务攻击)的基本原理,通过三次握手过程阐述其如何消耗服务器资源。重点讲解了在Linux环境下,如何利用自定义IP头部进行socket编程实现DoS攻击,并提供了相关代码示例。然而,单台机器的攻击往往难以对高性能服务器造成显著影响,因此实践中通常采用DDoS(分布式拒绝服务)攻击,控制多台设备同时发起攻击以影响目标服务器。
摘要由CSDN通过智能技术生成

一,前言

    Dos(Denial of Service) 即拒绝服务攻击。在建立tcp连接过程中,有三次握手过程,假如客户端向服务器发送连接请求,服务器收到请求并准备建立连接,但客户端假如迟迟不确认连接将损耗服务器的资源。如果这样的请求多了,将严重影响服务器工作。这就是Dos 攻击的基本原理。然而由于单台客户端发送的客户端请求很有限,一般很难对处理能力强的服务器造成影响,所以Dos攻击在实际使用过程中一般采用DDos(Distribute Deny of Service ),分布式拒绝服务攻击,控制多台肉机客户端同时向服务器发送连接请求,以达到使服务器不能工作的目的。


二, 要点及原理分析

    1. 于需要用伪造的ip地址, 所以需要自定义ip头, 这需要对套接字属性进行设置:

int opt = 1;
setsockopt(sockfd, IPPROTO_IP, IP_HDRINCL, &opt, sizeof(opt));
    2. 为了更方便的填充ip报文头及tcp报文头, 这里需要用到 struct ip 以及 struct tcphdr:

struct ip 

struct ip
  {
#if __BYTE_ORDER == __LITTLE_ENDIAN
    unsigned int ip_hl:4; /* header length */
    unsigned int ip_v:4; 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值