【TCP三次握手过程】
1.第一次握手:客户端将标志位SYN置为1,随机产生一个序列号seq=x,并将该数据包发送给服务端,客户端进入syn_sent状态,等待服务器确认

2.第二次握手:服务端收到数据包后由标志位SYN=1直到客户端请求建立连接,服务端将标志位SYN和ACK置为1,ack=x+1,随机产生一个值seq=y,并将该数据包发送给客户端以确认连接请求,服务端进入syn_rcvd状态

3.第三次握手:客户端收到确认后检查,如果正确则标志位ACK=1,ack=y+1,并将该数据包发送给服务端,服务端进行检查如果正确则连接建立成功,服务器和客户端进入established状态,完成三次握手,随后就可以传输数据了。

【为什么TCP握手需要三次,两次行不行】
不行。TCP进行可靠传输的关键就在于维护一个序列号,三次握手的过程是通信双方相互告知序列号起始值,并确认对方已经收到了序列号起始值。

如果只有两次握手,至多只有客户端的起始序列号能被确认,服务器端的序列号则得不到确认。

【简述半连接队列】
TCP握手中,当服务器处于SYN_RCVD状态,服务器会把此种状态下请求连接放在一个队列中,称为半连接队列。

【简述SYN攻击】
SYN攻击即利用TCP协议缺陷,通过发送大量的半连接请求,占用半连接队列,耗费cpu和内存
优化方式:
1.缩短SYN Timeout时间
2.记录ip,若连续收到某个IP的重复SYN报文,从这个IP地址来的包会被一概丢弃。

【计算机网络】TCP握手详情相关推荐

  1. 【计算机网络】 0、各网络命令 + tcpdump + Wireshark、抓包实战、TCP 握手挥手、防火墙、保活、MTU

    文章目录 一.各层网络工具 应用层 找到服务器的 IP 查接口.对象的耗时 删除指定网站的Cookie 表示层.会话层 tcpdump.wireshard 传输层 telnet: 路径可达性测试 nc ...

  2. 【亡羊补牢】计算机网络灵魂之问 第12期 tcp握手结束第一次的包有多大

    这是博主面向腾讯学习的面试题大整理系列,可以在如下github仓库Issues中通过 Labels 标签分类查看相关内容,同时欢迎大家指正可能的错误并且提出自己的解答,希望大家学的鱼块,春秋招顺利! ...

  3. HTTPS 工作原理和 TCP 握手机制

    1.HTTPS的工作原理 HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息.TLS/SSL协议不仅仅是一套加密传输的协议,更是 ...

  4. TCP握手为什么需要三次通信

    TCP三步握手three way (or three message) handshake 是TCP核心知识点,很长一段时间内我无法理解为什么TCP建立连接需要三次通信,而不是两次或者四次或者更多次. ...

  5. 计算机网络-TCP协议

    目录 1 概述 2 TCP的主要特点 3 TCP的连接 4 可靠传输的工作原理 4.1 停止等待协议 4.1.1 无差错情况 4.1.2 出现差错 4.2 自动重传请求ARQ 4.3 连续 ARQ 协 ...

  6. TCP/IP协议的TCP握手协议

    所以TCP消息的可靠性首先来自于有效的连接建立,所以在数据进行传输前,需要通过三次握手建立一个连接,所谓的三次握手,就是在建立TCP链接时,需要客户端和服务端总共发送3个包来确认连接的建立,在sock ...

  7. linux的基础知识——TCP握手

    1.TCP为什么需要三次握手? \qquad因为IP处于网络层,不稳定,与硬件联系紧密.传输层是对网路层的不稳定性做完全不弥补--UDP--无连接的不可靠报文传输:对网络层做完全弥补--TCP--面向 ...

  8. 当连接一个 IP 不存在的主机时,TCP握手过程是怎样的?

    最近前同事去字节跳动面试,被问到了下面这个问题: 连接一个 IP 不存在的主机时,握手过程是怎样的? 连接一个 IP 地址存在但端口号不存在的主机时,握手过程又是怎样的呢? 这让我回想起曾经也被面试官 ...

  9. 抓包分析 TCP 握手和挥手

    前言 首先需要明确的是 TCP 是一个可靠传输协议,它的所有特点最终都是为了这个可靠传输服务.在网上看到过很多文章讲 TCP 连接的三次握手和断开连接的四次挥手,但是都太过于理论,看完感觉总是似懂非懂 ...

最新文章

  1. 【Grafana】开启匿名登录(anonymous login)注意的地方
  2. 修复:安装 CUDA9.0 Patch 1 时载入文件后闪退(cuda_9.0.176.1_windows.exe)
  3. keras用cpu加速_在训练某些网络时,Keras(Tensorflow后端)在GPU上比在CPU上慢CPU
  4. 音视频技术开发周刊 | 179
  5. 串口之GetCommTimeouts、SetCommTimeouts函数详解
  6. 什么叫大数据人物画像_大数据时代,如何构建精准用户画像,直击精细化运营...
  7. POJ 1128 Frame Stacking 拓扑排序+暴搜
  8. 会声会影2018,带你体验不一样的光影世界!
  9. linux中使用网易云音乐
  10. 鸟哥的 linux 的私房菜 基础学习篇,鸟哥的 Linux 私房菜 -- 基础学习篇
  11. Iredmail搭建
  12. 财经大数据可视化Vdc平台_大数据时代-可视化数据分析平台必不可少
  13. 路由器与交换机工作过程详解!!!
  14. PMBOK 项目管理 九大知识领域和五大流程
  15. 苏州计算机英语怎么说,苏州用英语怎么说,苏州的英语单词
  16. 深度学习(二)——从零自己制作数据集到利用deepNN实现夸张人脸表情的实时监测(tensorflow实现)
  17. 爬虫项目:scrapy爬取昵图网全站图片
  18. 联想启天M420-D046(C)电脑Win10改Win7
  19. 关于Cxp采集卡连接大面阵相机取图耗时问题研究
  20. 【基础算法】穷举算法 (暴力枚举) C++实现

热门文章

  1. C语言传递数组给函数方式
  2. android js 双指事件,JS实现移动端双指缩放和旋转方法_旧址_前端开发者
  3. 【Unity URP】Rendering Debugger和可视化MipMap方案
  4. 虚幻引擎(6)-过场动画
  5. 1.redis常用的数据类型及应用
  6. Java软件开发好学吗?学完好找工作吗?
  7. iframe给php传值,PHP接收从iframe传的值,应使用哪个语句?( )
  8. Linux 高并发服务器实战 - 1 Linux系统编程入门
  9. 阿里云 Aliplayer高级功能介绍(二):缩略图 1
  10. 华为畅享MAX:巨屏+超大电池冬日窝家追剧新选择