TCP三次握手和四次握手最直接的理解
来源:互联网 发布:手机淘宝从哪看几颗心 编辑:程序博客网 时间:2024/06/10 10:14
网上有很多文章讲TCP为什么建立连接时需要三次握手,关闭连接时需要四次握手,讲了很多原理,反而让很多人难以理解。
其实只有一句话:TCP连接是两个端点之间的事,由于TCP连接是可靠连接,所以不管是建立连接还是关闭连接,需要两个端点都要发送请求和收到确认
其次要理解TCP的通道是全双工的,是可以读和写数据的,理解这个之后就明白了为什么关闭连接时需要四次握手。
首先讲三次握手,建立连接时不涉及到读写通道,只是两个端点的请求和确认。要记住是两个端点之间的,两个端点是平等的关系。
从客户端的角度来说,它只需要发送一个请求syn,然后收到ack就能知道连接是可以建立的
从服务器端的角度,它也只需要发送一个请求syn,然后收到ack就能知道连接是可以建立的
所以建立连接时最少只需要三次握手即可,即服务器端收到客户端syn,之后向客户端发送ack的同时携带上自己的syn,这样就只需要三次握手就能使双方都发生syn和都收到ack.
当然你自己设计的时候也可以使用4次或者更多的握手,但是最少3次即可
关闭连接时也还是两个端点都要发送请求和收到确认。但是关闭连接时涉及到两个端点的读写通道的事。
从客户端的角度来说,它发送一个关闭请求FIn,然后收到ack就知道可以关闭连接的
从服务器的角度来说,它发送一个关闭请求Fin,然后收到ack就知道可以关闭连接的
但是由于是读和写通道,所以服务器端在收到客户端的关闭Fin时,可能还在往客户端发送消息,所以只能先发送ack确认客户端客户关闭写通道,这时候服务端不能使用通过一消息发送它的关闭Fin,只能过会等它自己写完了,才能重新发送一个关闭请求的Fin。
所以比建立连接时多了一次握手,关闭连接时最少需要4次握手。理解了为什么需要4次握手之后,就不难理解TCP半关闭的概念。
- TCP三次握手和四次握手最直接的理解
- TCP三次握手和四次握手最直接的理解
- 关于TCP三次握手和四次握手的趣味理解
- tcp三次握手和四次挥手理解
- TCP三次握手和四次挥手的理解
- 理解TCP的三次握手和四次分手
- tcp传输的三次握手和四次挥手简单理解
- TCP的三次握手和四次挥手
- TCP的三次握手和四次挥手
- TCP的三次握手和四次挥手
- TCP的三次握手和四次挥手
- TCP的三次握手和四次挥手
- TCP的三次握手和四次分手
- TCP的三次握手和四次挥手
- tcp的三次握手和四次挥手
- TCP的三次握手和四次挥手
- TCP的三次握手和四次挥手
- TCP的三次握手和四次挥手
- 15 分钟掌握 15 个 Docker 小窍门
- 全球首辆3D打印汽车亮相 零部件打印只需44小时
- 利用Opengl仿写cocos2dx的旋转+缩放的效果
- 九度_题目1362:左旋转字符串(Move!Move!!Move!!!)
- 数组a[N],存放了N个数,其中某个数重复一次。 写一个函数,找出被重复的数字.时间复杂度必须为o(N)
- TCP三次握手和四次握手最直接的理解
- linux进程间的通信(C): 共享内存
- Maven学习 (二) Eclipse 上安装 Maven3插件
- jquery layer弹窗弹层插件 小巧强大
- UIScrollView
- Android平台调用WebService详解--WebService(二)
- C语言中continue的理解
- linux主机监控信息显示
- Spring Web Flow