一、每次说道TCPIP协议,有能说会道者,总爱说三次握手,什么意思?

顾名思义,假设有两个机器A和B

1、当A发送给B一个包的时候,B接收到了,这个时候,B有两个选择,要么将包数据放入缓存,等待处理,要么放入缓存处理完了,当然这样顺利接收到的行为就是第一次握手

2、第二次握手:当我们的B机器收到包以后,并给A机器返回一个ACK标识,ACK(acknowledge),这个时候,A机器接收到了B机器返回过来的反馈,那么这样,就是又一次握手,有意思的是,我们这样的一次握手,也是在全双工的情况下完成的,我们的A机器在,接收反馈标识的同时,也有可能另外开辟一个线程来发送另外一个请求给机器B,在同时处理发送包和接收包的过程,客户与服务大家彼此都是全双工的

3、我们的A机器在接收到B机器给过来的反馈的同时,并予以再一次回复,我们A机器需要告诉B机器,我们已经收到了你B机器发送过来的接收反馈了,所以,这个时候,我们B机器接收到了来自与A机器的反馈确认,这边是第三次握手

只有完成以上三次握手,我们的一次TCPIP请求才算是一整个完整的,成功的TCPIP连接,暂时就这么理解吧

问题来了,我们建立一个TCP连接需要三次握手,那么我们关闭一个TCP连接时,我们的AB两台机器,彼此要做哪些呢?

所以,就是四次挥手,

1、A机器发起中断请求(第一次报文),先要告诉我们的B,我们打算中断请求了,请做好准备,接下来要传送过来的数据,就需要准备中断了,我们不收了,你们也不要发了

2、B机器收到了来自于A机器的请求,理解了A的意图,赶紧告诉A机器:好的,我们明白了,我们将关闭数据的提供了,你现在收到了来自于我们的反馈(第二次报文)吗?

3、B机器既然将反馈发给了A机器,B机器也不需要在乎A机器是不是能够听得到自己说的话了,可能A机器已经断电了,可能A机器没有断电,还等着B机器的反馈,可是B机器不这么想,B机器想,既然你都说了,要停止接收了,那我就不管你状态如何,我先停止对你先前的连接吧,这个时候B机器就立马把先前给A机器提供的连接给关闭了,(这样的后果就是A机器想要再连接,就必须要重新发起一次请求),然后既然关闭了,假如A机器没有断电,或者A机器还运行着,还是得告诉一下A机器,我们B机器这方的连接已经给你们断了,望周知

4、A机器再要回答一下,好的我收到你之前给我的反馈了,你看看吧(第四次报文,是第伞次报文的基础上加1)

二、通信协议的

漫谈TCPIP协议原理的更多相关文章

  1. 图解TCP-IP协议

    本文通过图来梳理TCP-IP协议相关知识.TCP通信过程包括三个步骤:建立TCP连接通道,传输数据,断开TCP连接通道.如图1所示,给出了TCP通信过程的示意图. 图1 TCP 三次握手四次挥手 图1 ...

  2. TCP/IP协议原理与应用笔记18:构成子网和超网

    1. 引言: (1)类别IP编址(Classful IP)的缺陷 • 固定的3种IP网络规模      C类地址:少于255台主机的网络      B类地址:介于255~65535台主机的网络     ...

  3. TCP/IP协议原理与应用笔记17:IP编址(重点)

    1. IP地址(通用标识符) 对于同一个网络设备(主机或路由器)的不同网络连接,需要不同的IP地址进行标识 2. 主机标识符 主要有下面三种方式的主机标识方式: (1)Name:是什么,可读性强(了解 ...

  4. TCP/IP协议原理学习笔记

    昨天学习了杨宁老师的TCP/IP协议原理第一讲和第二讲,主要介绍了OSI模型,整理如下: OSI是open system innerconnection的简称,即开放式系统互联参考模型,它把网络协议从 ...

  5. wireshark 抓包分析 TCPIP协议的握手

    wireshark 抓包分析 TCPIP协议的握手 原网址:http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html 之前写过一篇 ...

  6. SMB协议原理抓包分析

    SMB协议原理抓包分析 目录: 1.SMB概述 2.SMB原理 3.SMB配置 一.SMB概述 SMB(全称是Server Message Block)是一个协议名,可用于在计算机间共享文件.打印机. ...

  7. 网络分层和Http协议原理

    网络分层: 应用层 传输层 网络层 数据链路层 物理层 物理层: 比特流在节点之间的传输,是计算机连接起来的物理手段. 数据链路层: 控制网络层和物理层之间的通信,功能是在不可靠的物理线路上进行数据可 ...

  8. Android网络编程(一)HTTP协议原理

    相关文章 Android网络编程(一)HTTP协议原理 Android网络编程(二)HttpClient与HttpURLConnection Android网络编程(三)Volley使用方法全解析 A ...

  9. OAuth认证协议原理分析及同步消息到Twitter和Facebook使用方法

    OAuth有什么用?为什么要使用OAuth? twitter或豆瓣用户一定会发现,有时候,在别的网站,点登录后转到 twitter登录,之后转回原网站,你会发现你已经登录此网站了,这种网站就是这个效果 ...

随机推荐

  1. win10安装MySQL免安装版

    一:下载并解压 这个就不多说了https://dev.mysql.com/downloads/mysql/,简单的很 二:MySQL根目录下新建my.ini [mysql] # 设置mysql客户端默 ...

  2. 【转载】Zookeeper 安装和配置

    [转载原文链接 ] Zookeeper的安装和配置十分简单, 既可以配置成单机模式, 也可以配置成集群模式. 下面将分别进行介绍. 单机模式 点击这里下载zookeeper的安装包之后, 解压到合适目 ...

  3. Boost学习之语法解析器--Spirit

    Boost.Spirit能使我们轻松地编写出一个简单脚本的语法解析器,它巧妙利用了元编程并重载了大量的C++操作符使得我们能够在C++里直接使用类似EBNF的语法构造出一个完整的语法解析器(同时也把C ...

  4. SSH不能连接虚拟机中的Ubuntu

    设置 网络 既然要远程ubuntu的系统.那么首先是两个网络是不是在一个网段.能不能ping的通? a) Windows电脑上--cmd 打开命令窗口.键入:ipconfig 命令.查看主机IP. b ...

  5. HALCON机器视觉软件

    HALCON是德国MVtec公司开发的一套完善的标准的机器视觉算法包,拥有应用广泛的机器视觉集成开发环境.它节约了产品成本,缩短了软件开发周期——HALCON灵活的架构便于机器视觉,医学图像和图像分析 ...

  6. top命令查看进程列表

    top命令查看进程列表 top命令是linux下常用的性能分析工具,能实时显示系统中各个进程的资源占用状况.和win的资源管理器类似.top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态,如 ...

  7. Python 抓取html所有特定元素的方法

    直接上代码哦,够直接了吧~ from lxml import etree #import mechanize import lxml.html #import cookielib #br = mech ...

  8. vue环境中生成二维码

    <template><div><div id='code'></div><canvas id="canvas">< ...

  9. CentOS中安装Java环境 jdk

      一.  在CentOS中只需要先移除自带的OpenJava,再安装原生的Java SDK.   <1> rpm -qa | grep jdk: 也就是query all npm 包,找 ...

  10. Apache Shiro去掉URL中的JSESSIONID

    如果你的shiro版本在1.3.2版本以上这个BUG已经解决只需要在配置文件如下配置中添加红色部分 <!-- 会话管理器 --> <bean id="sessionMana ...