三次握手

四次挥手

  • 正常情况下

  • 同时挥手

SYN攻击:

在三次握手过程中,Server发送SYN-ACK之后,收到Client的ACK之前的TCP连接称为半连接(half-open connect),此时Server处于SYN_RCVD状态,当收到ACK后,Server转入ESTABLISHED状态。SYN攻击就是Client在短时间内伪造大量不存在的IP地址,并向Server不断地发送SYN包,Server回复确认包,并等待Client的确认,由于源地址是不存在的,因此,Server需要不断重发直至超时,这些伪造的SYN包将产时间占用未连接队列,导致正常的SYN请求因为队列满而被丢弃,从而引起网络堵塞甚至系统瘫痪。SYN攻击时一种典型的DDOS攻击,检测SYN攻击的方式非常简单,即当Server上有大量半连接状态且源IP地址是随机的,则可以断定遭到SYN攻击了,使用如下命令可以让之现行: #netstat -nap | grep SYN_RECV

TIME_WAIT状态是什么?

下文转载自 TIME_WAIT是什么?

在TCP断开的过程中会有四个状态变化过程,如下图所示:

在连接撤销过程中,有如下过程:

  • HOST1上的应用程序关闭己方的连接导致TCP发送一个FIN消息给HOST2。
  • HOST2发送一个确认消息给HOST1,并且HOST2把FIN作为EOF递交给HOST2上的应用程序。
  • 一段时间过后,HOST2上的应用程序关闭它那边的连接,引发一个FIN消息给HOST1。
  • HOST1给HOST2发送一个确认消息,然后HOST2关闭连接并释放资源,然而,HOST1却没有关闭连接,而是进入了TIME_WAIT状态,并为两个最大段生存时间(2MSL)保留在此状态.
为什么需要TIME_WAIT?
  • 因为在第四步的时候,HOST1发送的ACK可能丢失并导致HOST2重新发送FIN消息,TIME_WAIT维护连接状态.
    如果执行主动关闭的一方HOST1 不进入到TIME_WAIT状态就关闭连接那会发生什么呢?当重传的FIN消息到达时,因为TCP已经不再有连接的信息了,所以就用RST(重新启动)消息应答,导致HOST2进入错误的状态而不是有序终止状态,如果发送最后ACK消息的一方处于TIME_WAIT状态并仍然记录着连接的信息,它就可以正确的响应对等方HOST2的FIN消息了.

  • TIME_WAIT为连接中”离群的段”提供从网络中消失的时间。
    考虑一下,如果延迟或者重传段在连接关闭后到达时会发生什么呢?通常情况下,因为TCP仅仅丢弃该数据并响应RST消息,所以这不会造成任何问题。当RST消息到达发出延时段的主机时,因为该主机也没有记录连接的任何信息,所以它也丢弃该段。然而,如果两个相同主机之间又建立了一个具有相同端口号的新连接,那么离群的段就可能被看成是新连接的,如果离群的段中数据的任何序列号恰恰在新连接的当前接收窗口中,数据就会被重新接收,其结果就是破坏新连接。

Tcp三次握手和四次挥手状态图相关推荐

  1. 硬不硬你说了算!近 40 张图解被问千百遍的 TCP 三次握手和四次挥手面试题

    来自:小林coding 每日一句英语学习,每天进步一点点: 前言 不管面试 Java .C/C++.Python 等开发岗位, TCP 的知识点可以说是的必问的了. 任 TCP 虐我千百遍,我仍待 T ...

  2. 握手失败_拜托了,看完这篇别再问我什么是TCP三次握手和四次挥手

    TCP三次握手和四次挥手的问题在面试中是最为常见的考点之一.很多读者都知道三次和四次,但是如果问深入一点,他们往往都无法作出准确回答. 三次握手如何建立连接? 三次握手建立链接 从图中可以清楚的看到, ...

  3. TCP 三次握手 和 四次挥手

    概述 我们都知道 TCP 是 可靠的数据传输协议,UDP是不可靠传输,那么TCP它是怎么保证可靠传输的呢?那我们就不得不提 TCP 的三次握手和四次挥手. 三次握手 下图为三次握手的流程图 下面通过我 ...

  4. 网络协议-网络分层、TCP/UDP、TCP三次握手和四次挥手

    网络的五层划分是什么? 应用层,常见协议:HTTP.FTP 传输层,常见协议:TCP.UDP 网络层,常见协议:IP 链路层 物理层 TCP 和 UDP 的区别是什么 TCP/UDP 都属于传输层的协 ...

  5. TCP三次握手、四次挥手、socket,tcp,http三者之间的区别和原理

    接着上一篇文章叙述: TCP/IP连接(在互联网的通信中,永远是客户端主动连接到服务端): 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接.TCP协 ...

  6. 脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手

    转自即时通讯网:http://www.52im.net/ 1.引言 网络编程中TCP协议的三次握手和四次挥手的问题,在面试中是最为常见的知识点之一.很多读者都知道"三次"和&quo ...

  7. 计算机网络学习笔记(七)——传输层、TCP三次握手、四次挥手、TCP流量控制、大总结

    文章目录 前言 概念 一.传输层概述 二.传输层问题 三.端到端寻址 四.TCP三次握手和四次挥手 (一)三次握手建立连接 (二)四次挥手拆除连接 五.带拥塞的TCP流量控制 六.传输层实例 计网大总 ...

  8. 图解TCP三次握手和四次挥手!(简单易懂)

    哈喽:亲爱的小伙伴,首先祝大家五一快乐~ 本来打算节日 happy 一下就不发文了,但想到有些小伙伴可能因为疫情的原因没出去玩,或者劳逸结合偶尔刷刷公众号,所以今天就诈尸更新一篇干货,给大家解解闷~ ...

  9. 40张图全面解析TCP 三次握手和四次挥手

    每日一句英语学习,每天进步一点点: 前言 不管面试 Java .C/C++.Python 哪种语言的开发岗位, TCP 的知识点可以说是的必问的了. 任 TCP 虐我千百遍,我仍待 TCP 如初恋. ...

最新文章

  1. pygame中使用事件扫描实现对按键的检测以及小游戏的编写
  2. 思想开放-学数学之人必备的特质(转载)
  3. 【机器学习】特征工程
  4. optional判断是否为空_乐字节Java8核心特性之Optional
  5. iOS7 企业应用无法安装应用程序 因为证书无效的解决方案
  6. hibernate hql limit的实现方式
  7. WebStorm-2019.2.3 下载安装
  8. 排序算法之 Slow Sort
  9. mysql计算两个月份之间的差值_MySQL如何获取两个年份月份信息中相差的月份(PERIOD_DIFF函数)呢?...
  10. WEB渗透测试工程师需要具备的技能
  11. Spring Boot 2020 官方基础68课程第十六个 Securing a Web Application
  12. 怎么把flv格式转成mp4?
  13. 全球与中国太阳能并网逆变器市场深度研究分析报告
  14. 阿里云 EMAS Serverless 重磅发布
  15. 频域处理:傅里叶变换及小波变换
  16. Windows版Redis和Redis Desktop Manager安装
  17. SQL 语句多表联查
  18. CSDN写博客如何自动插入目录
  19. Python3读取和写入excel表格数据
  20. 金桂香二度,橘黄蟹正肥,最是一年好景时

热门文章

  1. 用Tomcat构建一个简单图片服务器
  2. Linux进程 excel族函数的用法
  3. 算法章节 数组、链表、栈、队列
  4. 使用named_mutex和named_condition配合实现读写锁
  5. SpringBoot 启动报错:Failed to configure a DataSource: ‘url‘ attribute is not specified and no emb
  6. Java基础 —— JVM内存模型与垃圾回收
  7. Linux学习笔记(二)
  8. 让AMD在中国发声 APU14技术创新大会首次在华召开
  9. 解决:按截图 ctrl+alt+a QQ聊天窗口就自动最小化(QQ以外的可以截图)
  10. python基本语法:元组