• TCP三次握手的过程


    三次握手

    下图就是wireshark抓包工具抓获的TCP连接建立的三次握手过程:

    http://www.cnblogs.com/hnrainll/archive/2011/10/14/2212415.html

    相对于SOCKET开发人员,TCP创建过程和链接折除过程是由TCP/IP协议栈自己主动创建的.因此开发人员并不须要控制这个过程.可是对于理解TCP底层运作机制,相当有帮助.

     
       并且对于有网络协议project师之类笔试,差点儿是必考的内容.企业对这个问题热情之高,出乎我的意料:-)。有时上午面试前强调这个问题,并反复讲一次,下午差点儿每个人都被问到这个问题。
     
    因此在这里详解一下这两个过程。
     
    TCP三次握手
     
    所谓三次握手(Three-way Handshake),是指建立一个TCP连接时,须要client和server总共发送3个包。
     
    三次握手的目的是连接server指定port,建立TCP连接,并同步连接两方的序列号和确认号并交换 TCP 窗体大小信息.在socket编程中,client运行connect()时。将触发三次握手。
     
     
     
     
    • 第一次握手:
      client发送一个TCP的SYN标志位置1的包指明客户打算连接的server的port,以及初始序号X,保存在包头的序列号(Sequence Number)字段里。
    • 第二次握手:
      server发回确认包(ACK)应答。即SYN标志位和ACK标志位均为1同一时候,将确认序号(Acknowledgement Number)设置为客户的I S N加1以.即X+1。

    • 第三次握手.
      client再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.而且把server发来ACK的序号字段+1,放在确定字段中发送给对方.而且在数据段放写ISN的+1

    SYN攻击

       在三次握手过程中,server发送SYN-ACK之后,收到client的ACK之前的TCP连接称为半连接(half-open connect).此时server处于Syn_RECV状态.当收到ACK后,server转入ESTABLISHED状态.

      Syn攻击就是 攻击client 在短时间内伪造大量不存在的IP地址,向server不断地发送syn包,server回复确认包,并等待客户的确认,因为源地址是不存在的,server须要不断的重发直 至超时,这些伪造的SYN包将长时间占用未连接队列,正常的SYN请求被丢弃,目标系统执行缓慢,严重者引起网络阻塞甚至系统瘫痪。

     Syn攻击是一个典型的DDOS攻击。检測SYN攻击很的方便,当你在server上看到大量的半连接状态时,特别是源IP地址是随机的,基本上能够断定这是一次SYN攻击.在Linux下能够例如以下命令检測是否被Syn攻击

    netstat -n -p TCP | grep SYN_RECV

    一般较新的TCP/IP协议栈都对这一过程进行修正来防范Syn攻击,改动tcp协议实现。主要方法有SynAttackProtect保护机制、SYN cookies技术、添加最大半连接和缩短超时时间等.

    可是不能全然防范syn攻击。

    TCP 四次挥手

    TCP的连接的拆除须要发送四个包,因此称为四次挥手(four-way handshake)。client或server均可主动发起挥手动作,在socket编程中,不论什么一方运行close()操作就可以产生挥手操作。

     

    參见wireshark抓包,实測的抓包结果并没有严格按挥手时序。我预计是时间间隔太短造成。

    source url:http://bluedrum.cublog.cn
  • 相关阅读:
    Window7幻灯片字体显示混乱,难道真的是病毒么
    COCOS2DX 3.0 优化提升渲染速度 Auto-batching
    iOS 打印出视图中全部的子视图的名称
    【linux】学习2
    【编程之美】2.16 求数组的最大递增子序列
    【linux】学习1
    【编程之美】2.15 子数组之和的最大值(二维)
    【编程之美】2.14 求数组的子数组之和的最大值
    【QT】视频播放
    【编程之美】3.5 最短摘要的生成
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4063088.html
Copyright © 2020-2023  润新知