热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

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

趣谈网络网络协议笔记-二(第十一讲)因性恶而复杂,先恶后善反轻松自勉我似乎天性不擅长争斗,但是有些时候,我也必须砥砺前行。强大是和平的前提,而善良不是。前言今天回到家里已经是

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


因性恶而复杂,先恶后善反轻松




自勉



  1. 我似乎天性不擅长争斗,但是有些时候,我也必须砥砺前行。

  2. 强大是和平的前提,而善良不是。




前言

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



OK,在整理完UDP的基础知识之后,我们来到了TCP知识的第一个篇章。如果说UDP是莽夫的话[image:AD7863B8-9EB9-457B-A07F-C884C677D21F-60643-0000D35730045F4B/未知.jpg]
。那么,TCP就是网络协议界的慎重勇者,
[image:03E96497-F4C8-46B6-BC56-33FAA99485AB-60643-0000D36373E2870C/timg.gif]

OK,就按照这个思路来展开TCP协议第一部分的归纳吧~
对于数据的传输,必须要确保”ready perfectly“(通过三次握手),和服务器建立好连接,才会前往打怪(开始传输数据)。
TCP包头的格式如下:
[image:AB6BC837-E9AC-4C2F-8407-052ABEDB0F4A-60643-0000D4B5020C689E/642947c94d6682a042ad981bfba39fbf.jpg]



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

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

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

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

OK,传输完数据了(已经把怪物打死了),作为慎勇当然还需要反复鞭尸,把骨灰都扬了能才离开(四次挥手断开连接)。
[image:D6DD8C16-A0FC-4830-821D-07F9F6C67EF6-60643-0000D4D73074BBC5/bf1254f85d527c77cc4088a35ac11d13.jpg]

那么怎么样关闭连接呢?当然依然还是数据请求方来请求关闭连接了。
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状态机,建议和前面的时序图一起看。
[image:0C8ECC41-40B7-430E-B9AD-3A00AF7C86B7-60643-0000D5B4054F817F/fd45f9ad6ed575ea6bfdaafeb3bfb62a.jpg]


推荐阅读
  • 调试利器SSH隧道
    在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到 ... [详细]
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • 本文介绍了实时流协议(RTSP)的基本概念、组成部分及其与RTCP的交互过程,详细解析了客户端请求格式、服务器响应格式、常用方法分类及协议流程,并提供了SDP格式的深入解析。 ... [详细]
  • 如题:2017年10月分析:还记得在没有智能手机的年代大概就是12年前吧,手机上都会有WAP浏览器。当时没接触网络原理,也不 ... [详细]
  • DNS服务一、概述1.全称:Domainnamesystem(域名系统)2.作用:1)正向解析: ... [详细]
  • Python学习day3网络基础之网络协议篇
    一、互联网协议连接两台计算机之间的Internet实际上就是一系列统一的标准,这些标准称之为互联网协议,互联网的本质就是一系列网络协议。二、为什么要有互联网协议互联网协议就相当于计 ... [详细]
  • http:blog.csdn.netzeo112140articledetails7675195使用TCPdump工具,抓TCP数据包。将数据包上传到PC,通过Wireshark查 ... [详细]
  • Linux 防火墙与端口管理必备命令
    在使用 Linux 系统进行服务部署和问题排查时,防火墙和端口管理是不可或缺的操作。本文将详细介绍如何查看防火墙状态、端口占用情况,以及如何开放和关闭端口,帮助初学者更好地掌握这些技能。 ... [详细]
  • 本文将探讨UDP(User Datagram Protocol)协议的特点及其适用场景,与常见的TCP协议进行对比,帮助读者更好地理解和选择合适的传输协议。 ... [详细]
  • 本文详细介绍如何使用Netzob工具逆向未知通信协议,涵盖从基本安装到高级模糊测试的全过程。通过实例演示,帮助读者掌握Netzob的核心功能。 ... [详细]
  • 问题概述:在本地环境中代码运行正常,但部署到服务器后出现错误。具体表现为NCManager和SAXBuilder无法解析为类型。 ... [详细]
  • 本文详细介绍了如何在CentOS 6.5系统上安装和配置Redis 3.0.6,包括必要的环境准备、软件包下载、编译安装及基本功能测试。 ... [详细]
  • Fiddler 安装与配置指南
    本文详细介绍了Fiddler的安装步骤及配置方法,旨在帮助用户顺利抓取用户Token。文章还涵盖了一些常见问题的解决方案,以确保安装过程顺利。 ... [详细]
  • 搭建个人博客:WordPress安装详解
    计划建立个人博客来分享生活与工作的见解和经验,选择WordPress是因为它专为博客设计,功能强大且易于使用。 ... [详细]
  • 本文详细探讨了在Java TCP编程中,如何理解和测量并发连接数、请求数及并发用户数,并提供了实际应用中的测试方法和优化建议。 ... [详细]
author-avatar
玉米的跟屁虫
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有