`

简述TCP三次握手过程,并说明为什么要3次握手

 
阅读更多
简述TCP三次握手过程,并说明为什么要3次握手
TCP 三次握手
TCP 连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号并交换 TCP 窗口大小信息。以下步骤概述了通常情况下客户端计算机联系服务器计算机的过程:
1. 客户端向服务器发送一个SYN置位的TCP报文,其中包含连接的初始序列号x和一个窗口大小(表示客户端上用来存储从服务器发送来的传入段的缓冲区的大小)。
2. 服务器收到客户端发送过来的SYN报文后,向客户端发送一个SYN和ACK都置位的TCP报文,其中包含它选择的初始序列号y、对客户端的序列号的确认x+1和一个窗口大小(表示服务器上用来存储从客户端发送来的传入段的缓冲区的大小)。
3. .客户端接收到服务器端返回的SYN+ACK报文后,向服务器端返回一个确认号y+1和序号x+1的ACK报文,一个标准的TCP连接完成。
TCP 使用类似的握手过程来结束连接。这可确保两个主机均能完成传输并确保所有的数据均得以接收
TCP Client

Flags

TCP Server
1 Send SYN (seq=x)

----SYN--->

SYN Received
2 SYN/ACK Received

<---SYN/ACK----

Send SYN (seq=y), ACK (x+1)
3 Send ACK (y+1)

----ACK--->

ACK Received, Connection Established
w: ISN (Initial Sequence Number) of the Client
x: ISN of the Server




三次握手的目的是建立双向的连接,第一次握手是客户端向服务器端发出请求
第二次握手是服务器端告诉客户端,第一次握手是成功的,即可以从客户端发送到客户端,
第三次握手是客户端告诉服务器端,第二次握手是成功的,即可以从客户端到服务器端
这样就保证了客户端和服务器端的双向通信
分享到:
评论

相关推荐

    TCP协议三次握手示意图

    自己动手用viso画了个图

    【Linux】TCP三次握手,四次挥手的过程

    握手为什么是3次? 2次可以吗? 为什么不是4次呢? 你能不能详细的介绍一下TCP三次握手的详细过程? 能不能说一下服务端和客户端在三次握手建立连接中的状态和行为? 挥手为什么是4次? 3次可以吗 ? (因为分开总比...

    计算机网络常见面试题

    为什么会采用三次握手,若采用二次握手可以吗? 5、请简述一下TCP的三次握手和四次挥手协议? 6、TCP和UDP相关的协议分别有哪些? 7、TCP和UDP有什么区别? 8、Post和Get有什么区别? 9、在浏览器中输入...

    测试工程师实操代码部分,简述分布的技术点,用于自动化测试中

    ------tcp三次握手过程、最后一次的状态,英文;为什么是四次挥手,不是三次 Python ------ unittest 和 pytest 的区别? ------使用 Python+Locusts 做性能测试 MySQL ------mysql左连接和右链接的区别 Linux ------...

    java面试题20道(适合工作1~3年)(附答案).docx

    java中实现多态的机制是什么?多线程创建有几种方式?GC是什么? 为什么要有GC?thorw与thows的区别? Log4j常用的四个日志级别是哪四个?...简述TCP三次握手的理解 Linux下你常用的命令有哪些?Nginx有什么作用?

    计算机网络+研究生复试+求职+面试题

    汇总了计算机研究生复试有关计算机网络各章节简答题,使用了易于口头表达的语言进行了总结... 三次握手建立连接详细说明  四次握手释放连接详细说明 6. 拥塞控制及四种算法? 10. TCP 协议如何保证可靠传输 ... ...

    网安面试必考题合集及答案(PDF资料)

    9、TCP 三次握手的过程以及对应的状态转换 10、TCP和UDP协议区别 11、多线程、多进程区别 12、NTLM原理 13、什么是由间人攻击 14、防御中间人攻击的方案 15、描述 tcp/udp的区别及优劣,及其发展前景 16、公司网络...

    Python313道企业面试题集锦(附答案).pdf

    83.简述 三次握手、四次挥手的流程。. 84.TCP 和 UDP 的区别? 85.为何基于 tcp 协议的通信比基于 udp 协议的通信更可靠? 86.什么是 socket?简述基于 tcp 协议的套接字通信流程。 87.什么是粘包? socket 中...

    HCIA-CCNA网络工程融合课视频.zip

    查看TCP三次握手和断开 VLAN端口模式概述 VLAN端口模式Access基础 VLAN端口模式Access进阶 VLAN端口模式Trunk基础实施 VLAN应用场景和定义 解决跨VLAN2层通信的方案 混杂接口灵活的VLANID转换 本征VLAN应用场景以及...

    [详细完整版]网络安全技术.pdf

    1.由于来自系统外部或内部的攻击者冒充为网络的合法用户获得访问权 限的攻击方法是下列哪一项? A、黑客攻击 B、社会工程学攻击 C、操作系统... 第一空:UDP第二空:TCP第三空:端口号 简述黑客攻击的一般过程。 我的

    计算机网络复习题

    TCP通讯双方建立连接过程称为3次握手,即双方共计发送三次报文的通讯(2分),若A主机主动向B主机通讯,则其连接建立过程如下(每点1分): 1)A发送报文,其SYN为1; 2)B发送报文,其SYN为1,ACK为1; 3)A发送...

    史上最全java面试,103项重点知识,带目录

    82. tcp 为什么要三次握手,两次不行吗?为什么? 40 84. OSI 的七层模型都有哪些? 42 85. get 和 post 请求有哪些区别? 42 86. 如何实现跨域? 43 87.说一下 JSONP 实现原理? 49 九、设计模式 49 88. 说一下你...

    Java常见面试题208道.docx

    82.tcp 为什么要三次握手,两次不行吗?为什么? 83.说一下 tcp 粘包是怎么产生的? 84.OSI 的七层模型都有哪些? 85.get 和 post 请求有哪些区别? 86.如何实现跨域? 87.说一下 JSONP 实现原理? 九、设计模式 88....

    java抢票软件源码-interview:java面试题整理

    tcp/ip协议、三次握手、窗口滑动机制 解答: 解答: 解答: 说说http,https协议; 解答: osi五层网络协议; 解答: tcp,udp区别; 解答: 二 java知识点 java基础 开发中Java用了比较多的数据结构有哪些 解答: Java 中的...

    最新名企标准通用C++面试题,

    2、在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern “C”? 答:C++语言支持函数重载,C语言不支持函数重载。函数被C++编译后在库中的名字与C语言的不同。假设某个函数的原型为: void foo(int x, int...

    python入门到高级全栈工程师培训 第3期 附课件代码

    10 tcp三次握手与四次挥手 第30章 01 上节课复习 02 客户端服务端循环收发消息 03 socket收发消息原理剖析 04 服务端循环链接请求来收发消息 05 补充 06 udp套接字 07 recv与recvfrom的区别及基于udp实现ntp服务 ...

Global site tag (gtag.js) - Google Analytics