看了 余晟以为的 “tcp没那么难吧”,算是对三次握手,四次分手有了一点点理解,记录下来以方便自己以后的查看。

  原文链接:https://mp.weixin.qq.com/s?__biz=MzA3MDMwOTcwMg==&mid=2650005578&idx=1&sn=9e4ba700512e68e2dcbd54bfe11bd669

  首先,tcp建立连接需要三次握手,但是“三次握手”这个词用的其实不是很准确,应该说三个步骤。

  而且必须是双方确认到对方的连接是可靠的,一个tcp连接才能建立。

  实际上是客户端和服务端各自发送一条消息到对方请求建立连接,然后收到对方的消息后确认建立连接

  

  为了减少资源消耗以及其他的一些原因,因为第二和第三步都是服务端向客户端发送消息,所有服务端就将第二和第三步合为一步,减少开销,所以就剩下三个步骤

  

  既然这样,那为什么又需要四次分手呢,这是因为客户端向服务端发送消息请求断开连接,服务端同意了,但是有可能这时服务端还有数据正在往客户端发送,就不能现在发送消息到客户端请求断开连接,所以就需要四次分手

最新文章

  1. Xperf Basics: Recording a Trace(转)
  2. form表单那点事儿(下) 进阶篇
  3. cygwin中运行命令提示command not found的解决方法
  4. 基于Bootstrap的超酷jQuery开关按钮插件
  5. iOS开发——数据持久化&使用NSUserDefaults来进行本地数据存储
  6. BZOJ_1031_[JSOI2007]_字符串加密_(后缀数组)
  7. ViewPager 详解(五)-----使用Fragment实现ViewPager滑动
  8. timestamp 正常日期转换成时间戳格式
  9. 二叉树后序遍历的非递归算法(C语言)
  10. jquery之营销系统(会员促销)
  11. 一些关于linux 下的jni下问题
  12. 随机IP代理
  13. fatal error C1083:无法打开包括文件:“stdint.h”: No such file or directory解决方案
  14. 修改SS配置文件使其同时支持IPV4和IPV6网络
  15. [转帖]linux namespace 和cgroup lxc
  16. Swift - RotateView
  17. 【转】Kotlin 和 Checked Exception
  18. php解析mpp文件中的多级任务
  19. tp 缓存,前台提速
  20. CAS中的ABA问题

热门文章

  1. Linux (一)
  2. 关于pycharm的一个imoprt的随笔
  3. 关于Chrome和Opera中draw Image()方法无法在canvas画布中绘制图片的问题
  4. POJ SETI 高斯消元 + 费马小定理
  5. idea中deployment点击加号没有出现artifact
  6. CSS修改Autocomplete样式
  7. 关于Pre-bound JDBC Connection found! HibernateTransactionManager does not 异常小结
  8. OpenCV中CvMat的初始化[转]
  9. -bash: mail: command not found
  10. awk累加