2019独角兽企业重金招聘Python工程师标准>>>

TCP(Transmission Control Protocol)网络传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议,数据传输前建立连接的工作要经过“三次握手”,数据传输后断开连接的工作要经过“四次挥手”。

工作过程

从图上可以得出6个标志位,分别是:
1)、SYN(synchronous):建立联机;
2)、ACK(acknowledgement):确认;
3)、PSH(push):传输;
4)、FIN(finish):结束;
5)、RST(reset):重置;
6)、URG(urgent):紧急。

三次握手:

(1)、第一次握手:Client将标志位SYN置为1,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认;
(2)、第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态;
(3)、第三次握手:Client收到确认后,检查ACK是否为1,如果正确则将标志位ACK置为1,并将该数据包发送给Server,Server检查ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。

附加(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攻击了。windows下打开cmd,输入命令:”netstat -n -p TCP“,查看是否有大量的”SYN_RECEIVED“状态。

四次挥手:

(1)、第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态;
(2)、第二次挥手:Server收到FIN后,发送一个ACK给Client,Server进入CLOSE_WAIT状态;
(3)、第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态;
(4)、第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,Server进入CLOSED状态。

转载于:https://my.oschina.net/u/3585265/blog/2873050

理解三次握手和四次挥手相关推荐

  1. 一分钟理解三次握手和四次挥手

    注:三次握手和四次挥手本身并不复杂,但却可以从很多角度理解这两个过程,本文仅取一个比较有趣的视点解释 为什么要三次握手? 答:三次握手的目的是建立可靠的通信信道,说到通讯,简单来说就是数据的发送与接收 ...

  2. TCP 三次握手与四次挥手

    文章目录 1. 三次握手 1.1 为什么需要三次握手,两次不行吗? 1.2 什么是半连接队列? 1.3 ISN(Initial Sequence Number)是固定的吗? 1.4 三次握手过程中可以 ...

  3. 了解TCP的三次握手和四次挥手

    了解TCP的三次握手和四次挥手 一.    TCP/IP OSI参考模型 了解TCP的三次握手和四次挥手,我们首先从TCP/IP OSI参考模型说起. OSI(Open System Intercon ...

  4. 不要再问我三次握手和四次挥手

    三次握手和四次挥手是各个公司常见的考点,也具有一定的水平区分度,也被一些面试官作为热身题.很多小伙伴说这个问题刚开始回答的挺好,但是后面越回答越冒冷汗,最后就歇菜了. 见过比较典型的面试场景是这样的: ...

  5. [转]面试官,不要再问我三次握手和四次挥手

    文章目录 1. 三次握手 1.1 为什么需要三次握手,两次不行吗? 1.2 什么是半连接队列? 1.3 ISN(Initial Sequence Number)是固定的吗? 1.4 三次握手过程中可以 ...

  6. postman发送报文时请求时间超时因为什么_面试官说不要再问我三次握手和四次挥手是什么了...

    三次握手和四次挥手是各个公司常见的考点,也具有一定的水平区分度,也被一些面试官作为热身题.很多小伙伴说这个问题刚开始回答的挺好,但是后面越回答越冒冷汗,最后就歇菜了. 见过比较典型的面试场景是这样的: ...

  7. TCP的三次握手与四次挥手

    对照面试题理解tcp的三次握手四次挥手 面试题: 下列TCP连接建立过程描述正确的是:A : 服务端收到客户端的SYN包后等待2*ml时间后就会进入SYN_SENT状态 B : 服务端收到客户端的AC ...

  8. 详解三次握手和四次挥手

    三次握手和四次挥手是各个公司常见的考点,也具有一定的水平区分度,也被一些面试官作为热身题.很多小伙伴说这个问题刚开始回答的挺好,但是后面越回答越冒冷汗,最后就歇菜了. 见过比较典型的面试场景是这样的: ...

  9. 面试问你,三次握手和四次挥手怎么回答?

    面试必备 | 小伙伴栽在了JVM的内存分配策略... 垃圾收集器(CMS.G1)及内存分配策略 Java虚拟机何谓垃圾及垃圾回收算法 你真的知道Integer和int的区别吗? 三次握手和四次挥手是各 ...

最新文章

  1. 整理就知识,你会在里面发现新的东西
  2. Oracle相关报错
  3. 第一个hibernate程序
  4. 二级c语言加油,二级C语言 备考指南及常见问题(2013版)
  5. 九度OJ 1207 质因数的个数
  6. web安全day35:Linux防火墙进阶
  7. 算法第四版 课后习题答案
  8. Suricata/Snort规则参考
  9. 国际大牌在中国的故事
  10. android地区/时区/语言
  11. 7-27 冒泡法排序 (20分)
  12. 08 SCLSDA,类IIC协议(附源码)
  13. 我的个人成长(1-3年)
  14. linux下看学校的IPTV
  15. 抽象类(abstract)
  16. 前端的图片优化的6种方案
  17. 微信小程序接入第三方插件腾讯位置服务地图选点
  18. 聚合数据api的使用
  19. 人脸识别技术发展及实用方案设计
  20. WPS 卸载后图标被篡改以及 WPS卸载干净步骤

热门文章

  1. Android Studio找不到org.apache.http中的类
  2. Ubuntu中Vim 中文乱码解决方法
  3. Android-Binder进程间通讯机制-多图详解
  4. JAVA里面的int类型 和Integer类型,有什么不一样
  5. Promise入门详解和基本用法 我来教你
  6. linux中关闭报警音
  7. PHP学习笔记-Cookie
  8. Activity应用场景解析
  9. [转载]什么情况下应该设置 cudnn.benchmark = True?
  10. vue结合Promise及async实现高效开发。