1.TCP(Transmission Control Protocol):传输控制协议。

2.TCP有六种标志位:

  • SYN:建立连接, 值为1时,表示希望建立连接,并设定序列号的初始值。
  • ACK:确认应答,除了第一次握手时,其余时刻ACK必须为1。
  • FIN:结束符, 值为1时表示今后不会再有数据发送,希望断开连接。
  • RST:重置符,值为1时,表示TCP连接中途出现异常时必须强制断开连接。
  • PSH 、UGR    (用的较少)

3.三次握手:

(1)最开始客户端和服务器的状态都是closed的,然后服务器通过socket来绑定和监听ip和端口。这时server是被动等待连接的,也就是代码中的server_socket.accept()。

(2)第一次握手:client向server发送请求,等待确定。这时client的状态变成SYN_SENT

(3)第二次握手:server响应client,并要求client确认。此时服务器的状态变为SYN_RCVD

(4)第三次握手:client响应server,服务收到后检查ACK,通过检验后则成功创建连接, server和client进入ESTABLISHED状态。

4.为什么是三次握手???

答:三次握手主要是为了确保server和client能够进行正常的连接与数据传输。

第一次握手的时候client什么也不知道。server知道自己接收正常,知道client发送正常。

第二次握手的时候,client知道自己发送和接受数据正常,也知道server发送和接受正常。但server只知道自己接收正常以及client发送正常。

第三次握手的时候,server和client就都知道双方接收和发送正常,所以就成功建立了连接。

(一)面试题:TCP三次握手相关推荐

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

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

  2. 经典面试题之 TCP三次握手 和 TCP四次挥手过程----详解

    TCP三次握手过程: 第一次握手:建立连接时,客户端发送syn包(seq=j)到服务器,并进入SYN_SENT状态,等待服务器确认:SYN:同步序列编号(Synchronize Sequence Nu ...

  3. 吊打面试官!近 40 张图解被问千百遍的 TCP 三次握手和四次挥手面试题

    作者 | 小林coding 来源 | 小林coding(ID:CodingLin) 不管面试 Java .C/C++.Python 等开发岗位, TCP 的知识点可以说是的必问的了. 任 TCP 虐我 ...

  4. 计算机网络-----TCP三次握手相关面试题扩展

    TCP三次握手相关面试题扩展 1. TCP三次握手 2. TCP三次握手可以变为两次握手吗? 3. TCP可以采用四次握手吗? 4. 第三次握手中,如果客户端的ACK未送达服务器,会怎样? 5. 如果 ...

  5. djano 字段不重复_硬不硬你说了算!全图解被问千百遍的TCP三次握手和四次挥手面试题...

    前言 不管面试 Java .C/C++.Python 等开发岗位, TCP 的知识点可以说是的必问的了. 任 TCP 虐我千百遍,我仍待 TCP 如初恋. 遥想当年校招时常因 TCP 面试题被刷,真是 ...

  6. djano 字段不重复_硬不硬你说了算!近 40 张图解被问千百遍的 TCP 三次握手和四次挥手面试题...

    脚本之家 你与百万开发者在一起 本文经授权转自公众号 小林coding (ID:CodingLin) 如若转载请联系原公众号 前言 不管面试 Java .C/C++.Python 等开发岗位,TCP的 ...

  7. 面试官,求你了别再问我TCP三次握手和四次挥手了(含面试题)

    少点代码,多点头发 三次握手建立链接,四次挥手断开链接.这个问题算非常经典的问题,也是面试官非常喜欢问的问题. 不夸张的说,龙叔在校招面试的时候每一家公司都问到过关于三次握手和四次挥手相关的问题,相信 ...

  8. Java面试题:TCP三次握手如果失败会发生什么?

    正常情况下会发生TCP三次握手,如果三次握手其中某次失败会怎么样呢? 第一次握手:客户端发送失败,客户端.服务器端都不会申请资源. 第二次握手:服务器端回应客户端传输失败,客户端不会申请资源,服务器端 ...

  9. 通过实验取证:TCP三次握手的过程

    通过实验取证:TCP三次握手的过程 理解TCP/IP协议的工作原理 多年来TCP/IP协议一直被公众称呼为"一个协议",事实上它是一组协议的集合,IP工作在OSI七层模型的网络层, ...

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

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

最新文章

  1. 对抗学习用于目标检测--A-Fast-RCNN: Hard Positive Generation via Adversary for Object Detection
  2. 有nativeQuery = true和没有的区别
  3. error PRJ0003 : 生成“cl.exe”时出错 解决方案
  4. 不与最大数相同的数字之和(信息学奥赛一本通-T1113)
  5. 安装scrapy报错
  6. 为CentOS7/RHEL7安装EPEL 仓库(repo)
  7. php db类 应用实例,PHP-Laravel(DB类操作数据库)
  8. 文件的查找与压缩归档
  9. Java Web开发实战经典 李兴华 PDF pdf
  10. OSChina 周三乱弹 ——祖传的程序员?????
  11. 测绘乙级摄影测量与遥感专业资质需要用到这些人员
  12. PHP简单同学录(连接数据库)
  13. 饭店点餐系统之系统工作流程
  14. 微信iOS WKWebview 网页开发适配指南
  15. 利用python的matplotlib绘制分布图
  16. python for循环遍历涉及的相关问题及代码实现(非全部)
  17. 2008春天在玉渊潭看到传说中的榆钱树
  18. windows 10 python 3.7.9 install rosbag
  19. 数据结构 严蔚敏 第二章 线性表
  20. 介绍一个自制PLC的论坛

热门文章

  1. boost::histogram::accumulators::count用法的测试程序
  2. boost::fibers::buffered_channel的测试程序
  3. GDCM:尝试修复损坏的J2K / DICOM的测试程序
  4. boost::container实现从内存资源派生的测试程序
  5. DCMTK:使用dcmimage 库将DICOM图像转换为PPM或PGM
  6. VTK:可视化算法之StreamlinesWithLineWidget
  7. VTK:Snippets之RestoreSceneFromFieldData
  8. ListModel QML类型
  9. Qt Creator导出3D资产Exporting 3D Assets
  10. OpenGL Gouraud着色法的实例