前言

TCP在学习网络知识的时候是经常的被问到知识点,也是程序员必学的知识点,今天小杨用最直白的表述带大家来认识认识,喜欢的朋友记得点点关注哈。

何为TCP

上点官方的话:是一种面向连接(连接导向)的、可靠的、 基于IP的传输层协议。啥意思咧,说白了就是实现客户端与服务器之间的通讯的一种协议,是可靠的,可以传送大量数据的,一个TCP连接必须要经过三次“握手”才能建立起来,经过四次“挥手”断开

三次握手

那么三次握手是咋样的呢,一幅张三上门找李四恰饭的图为你介绍:

通过上面图,我们知道大概知道了啥意思了,结合一点术语的介绍下:

  • 第一次握手:客户端发起请求,将SYN的数据包发送到服务端,请求建立请求
  • 第二次握手:服务端收到客户端的请求后,将(SYN/ACK)的数据包发送到客户端,表示收到请求,待确认
  • 第三次握手:客户端发送(ACK的数据包)请求到服务端,表示确定建立连接

为啥需要三次呢

你想想作为一个张三上门去找李四恰饭,哪一步可以省呢?一问一答,最后肯定是要给人家回复嘛,不然人家还以为你开玩笑呢,你说对吧

四次挥手

那么四次挥手是咋样的呢,张三和李四继续为你上映:

同过上图,我们也知道是啥意思啦,张三一顿胡吃海塞的操作后,就想溜了,结合一点术语的介绍啦:

  • 首先:张三一顿操作吃饱后,就发了一个(FIN数据包)想着提桶跑路
  • 第二:李四收到了信息,发现还有一道拿手的压轴菜还没上,想让他品尝品尝,就发了一个(ACK的数据包),让他再等等
  • 第三:一会菜上了,张三也吃了,心满意足了,发了一个(FIN数据包)告诉张三,今天的菜都吃完了,饭局结束了,要走可以走了啦
  • 第四:张三收到消息后,回了一个(ACK的数据包),表示收到了,然后撒腿就跑

为啥需要四次呢

上面场景来看,张三想走的请求发出后,并不代表对方也都处理完了,于是就先礼貌的回复一下,表示知道你发出请求了,等李四这边安排都好了之后,在主动的告诉张三,张三得知后,也离开了。

欢迎下方交流讨论。如果本篇博客有任何错误,请批评指教,不胜感激 !

共同进步,学习分享

欢迎大家关注我的公众号【写代码的小杨】,相关文章、学习资料都会在里面更新,整理的资料也会放在里面。

觉得写的还不错的就点个赞,加个关注呗!持续更新 !!! 点关注,不迷路,小杨带你上高速

最新文章

  1. UIBezierPath-完善曲线
  2. ubuntu 16 安装django nginx uWSGI
  3. 读《高性能javascript》笔记(一)
  4. C++调用约定和名字约定
  5. java中数组的相关知识
  6. Uvaoj 10048 - Audiophobia(Floyd算法变形)
  7. 如何把其他用户创建的表,导入到自己数据库是,所有者owner改变为自己创建的用户
  8. jQuery中attr() 和 prop()【转】
  9. jquery easyUi 配置默认页码
  10. solr 相似查询-MoreLikeThis
  11. OpenStack 控制台不能不能访问的问题
  12. linux 编译内核[scripts/kconfig/dochecklxdialog] 错误
  13. JSP网站开发基础总结《九》(转)
  14. Bzoj4805: 欧拉函数求和
  15. vba打开输入文件
  16. app后端设计(8)-- 数据库分表
  17. zabbix安装源
  18. vue.js及项目实战[笔记]— 04 axios
  19. C# 使用NLog记录日志入门操作
  20. 结合canvas和jquery.Jcrop.js裁切图像上传图片

热门文章

  1. 永远的Ace 团队作业4—团队项目需求建模与系统设计(1)
  2. TensorFlow神经网络集成方案
  3. 激光雷达Lidar Architecture and Lidar Design(上)
  4. ASIC设计-终极指南
  5. tar与NTP时间同步
  6. CentOS 6.x 安装图形界面
  7. c++性能测试工具:google benchmark进阶(一)
  8. ceph-csi源码分析(6)-rbd driver-nodeserver分析(下)
  9. Android Studio用上Visual Studio Android Emulator
  10. 如果给IIS添加防火墙入站配置,支持外部或者局域网访问