趣谈网络协议笔记-二(第十一讲)

TCP协议(上):因性恶而复杂,先恶后善反轻松


自勉

  1. 我似乎天性不擅长争斗,但是有些时候,我也必须砥砺前行。
  2. 强大是和平的前提,而善良不是。

前言

今天回到家里已经是九点半了,然后磨磨蹭蹭洗个澡,洗澡的时候顺便听了会儿B站的视频关于蒋介石为什么会发动四一二反革命事件的起因和经过,然后躺上床= =,单人床,辗转反侧,不是很想动,不过重新想了想,还是起身吧= =!。
许个心愿,一年之内,见到刘超大神= =,交流交流心得。
另外,总感觉自己的笔记做的不够优秀,之前极客时间有看到刘超大神订阅的图像化笔记之类的专栏,还是得找个时间好好研究研究。不然,真的,感觉笔记就白做了。
晚上下班了,感觉思考了一天了,总感觉有些东西没有思考好,就理了理函数式状态机的基础实现,以及想了想如何写自己的笔记,自己才能更好地记住自己感觉已经掌握得体的知识。然后我感觉我找到了我的答案。就是通过动漫的方式!


OK,在整理完UDP的基础知识之后,我们来到了TCP知识的第一个篇章。如果说UDP是莽夫的话
。那么,TCP就是网络协议界的慎重勇者,

OK,就按照这个思路来展开TCP协议第一部分的归纳吧~
对于数据的传输,必须要确保”ready perfectly“(通过三次握手),和服务器建立好连接,才会前往打怪(开始传输数据)。
TCP包头的格式如下:

  • 三次握手:
    首先,我一定会发送一个请求到目标端口来表示我想和你建立连接,这是第一次握手。但是作为慎勇,我绝不能像the shy一样莽,发送了这条信息之后,我就认为连接已经建立了,然后直接传输数据给对方。
    与此同时我开始计时,如果一段时间内没有收到对方没有给我回复,我就重新发送请求,毕竟一路上诸多坎坷,数据丢失也很正常。但是如果到了我设置的超时时间,对方依然没有给我回复,那我就不用继续传输数据了,就是浪费时间了。

OK,过一会我收到了来自于服务器的回复(第二次握手),里面包含了我的请求序号所对应的确认序号(请求信号+1),和对方的请求信号等信息,所代表的的意思是”OK,我家的床还挺大的,可以连接= =!“。收到这条信息之后,慎重的我还是不能认为连接已经建立了,那对面怎么知道我收到了他的信息呢?对面不知道我有没有收到他的信息的情况下,到底要不要建立连接呢?慎重的我绝对不能让这种事情发生。

于是我给服务器发送了回复(第三次握手),此时,对方确信我收到了他的回复,连接就此建立。此时,此时,虽然可以继续深入交流来确保连接的建立更加慎重,但是已经足够了,既然能通过三次握手,说明网络情况基本没有大的问题,更多的握手次数仅仅是浪费时间以及资源而已,并不能提高多少效能。

然后是基于TCP协议的数据传输,这个部分在下半部分进行归纳。

OK,传输完数据了(已经把怪物打死了),作为慎勇当然还需要反复鞭尸,把骨灰都扬了能才离开(四次挥手断开连接)。

那么怎么样关闭连接呢?当然依然还是数据请求方来请求关闭连接了。
OK,客户端发送一条关闭连接的请求”通话结束了,拜拜!“给服务器。
服务器接收到了这条信息,但是需要一些时间来关闭连接,那就先发送一条信息告诉客户端,让客户端先hold住,不要着急。
此时B可以直接跑路,不再响应A的任何请求,那么此时A会在一直重复发送数据超过MSL(max segment lifetime)后,认为B私自跑路了,就直接发送RST给B,让B知道自己不再管B了。
过一会后,B准备好关闭连接之后发送给A“OK,连接我已经关闭了,你可以安息了”,此时A也可以直接跑路,B也会按照之前A跑路的策略来采取默认方式。A在收到回复时候,关闭连接,同时回复信息给B“OK,我已经关闭连接了”,B在收到A的回复之后正式关闭连接。

TCP状态机,建议和前面的时序图一起看。

趣谈网络协议笔记-二(第十一讲)相关推荐

  1. 趣谈网络协议笔记-二(第十九讲)

    趣谈网络协议笔记-二(第十九讲) HttpDNS:网络世界的地址簿也会指错路 自勉 勿谓言之不预也 -- 向为祖国牺牲的先烈致敬! 引用 dns缓存刷新时间是多久?dns本地缓存时间介绍 - 东大网管 ...

  2. 趣谈网络协议笔记-二(第十八讲)

    趣谈网络协议笔记-二(第十八讲) DNS协议:网络世界的地址簿 自勉 勿谓言之不预也 -- 向为祖国牺牲的先烈致敬! 正文 DNS用于域名解析,但也不仅仅是用于域名解析,不仅仅是将域名转换成IP. 在 ...

  3. 趣谈网络协议笔记-二(第十七讲)

    趣谈网络协议笔记-二(第十七讲) P2P协议:我下小电影,99%急死你 自勉 逃离舒适区! 正文 一. P2P协议 整个篇章讲的就是这两个协议之间的区别.P2P协议就是迅雷下载数据时所用的协议, 众所 ...

  4. 趣谈网络协议笔记-二(第十六讲上)

    趣谈网络协议笔记-二(第十六讲上) 流媒体协议:如何在直播里看到美女帅哥? 自勉 给岁月以文明,而不是给文明以岁月!--<三体> 在触不到的獠牙上点火--就像不必仰望那星星就能够解决--就 ...

  5. 趣谈网络协议笔记-二(第十三讲)

    趣谈网络协议笔记-二(第十三讲) 套接字Socket:Talk is cheap, show me the code 前言 这只是笔记,是为了整理刘超大神的极客时间专栏的只是而存在的! 经常会在网络上 ...

  6. 趣谈网络协议笔记-二(第十二讲)

    趣谈网络协议笔记-二(第十二讲) TCP协议(下):西行必定多妖孽,恒心智慧消磨难 前言 哈哈哈,越当我看刘超的通俗讲解,我就越感觉自己的无能.每次当我看了讲解之后,每次当我感觉到这个东西原来是这么简 ...

  7. 趣谈网络协议笔记-二(第十讲)

    趣谈网络协议笔记-二(第十讲) UDP协议:因性善而简单,难免碰到"城会玩" 自勉 如果手上没有剑,我就无法保护你.如果我一直握着剑,我就无法抱紧你.--<Bleach> ...

  8. 趣谈网络协议笔记-二(第七,八,九讲)

    趣谈网络协议笔记-二(第七,八,九讲) 勉励 人生而自由,却无往不在枷锁(牢笼)之中. ------卢梭@<社会契约论> 为那些有形的牢笼感到庆幸吧. 为自己出生于这个时代感到庆幸吧,因为 ...

  9. 趣谈网络协议笔记-二(第六讲)

    趣谈网络协议笔记-二(第六讲) 交换机记忆的到底是端口,还是方向,如果是方向那么何来方向,下图中的感觉更像是网桥? 局域网中的数据是不是必定先经过交换机(网桥,hub)? 为什么广播时mac地址为25 ...

最新文章

  1. Kali2021.2 VMware最新版安装步骤
  2. TP5.0 PHPExcel 数据表格导出导入(引)
  3. Linux 使用本地yum源及软件包管理
  4. 盘点国内互联网圈中程序员出身的商业大佬,看谁主沉浮!
  5. 使用TortoiseGit提交代码到Github.com上 详细步骤
  6. Webscalesql代码浏览记录
  7. SQL Server-聚焦使用索引和查询执行计划(五)
  8. 如何防止 Safari 使用来自 iOS 15 和 macOS Monterey 的网站着色?
  9. 微服务技术图片资源汇总
  10. vba 涉及合并取消合并单元格
  11. 常用分析模型---5W2H分析模型
  12. 音频文件转换为文本文件!
  13. 设置Asterisk座席实时监控
  14. 教你解决线上频出MySQL死锁问题
  15. 为开发者而生的Twig(上)-Twig使用指南
  16. 分类中解决类别不平衡问题
  17. ESP8266的PC客户端和Arduino两种方式的连接及使用笔记
  18. 【双系统】win10和ubuntu双系统(UEFI)删除ubuntu
  19. Easy Problem 9 判断质数
  20. f2fs mkfs 格式化过程系列 1

热门文章

  1. android开发 修改标题栏背景_移动开发整体凉凉的背景下,究竟还剩哪些 Android热门前沿知识...
  2. Python列表解析式总结
  3. 手机中geetest是什么文件_安卓手机系统中各类英文文件夹的含义详解,不知道的尽快熟知!...
  4. java 函数参数 返回值_java中如何用函数返回值作为post提交的参数?
  5. vscode 默认初始化_VSCode设置初始化模板
  6. 虚拟服务器能加内存吗,虚拟服务器可以加内存吗
  7. 华为stfal00是什么手机_opporeno5pro和华为p40pro有什么区别 哪款手机更好
  8. 每天一个linux命令目录
  9. java课程设计题目及代码中国象棋,写的太详细了
  10. python【力扣LeetCode算法题库】136-只出现一次的数字