一、每次说道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. 如何写摘要(abstract)

  2. [GO]通过结构体生成json

    package main import ( "encoding/json" "fmt" ) type IT struct { //一定要注意这里的成员变量的名字 ...

  3. CodeForces 474A Keyboard (水题)

    题意:给定一个键盘,然后一行字母,和一个字符,代表把那一行字母在键盘上左移还是右移一位. 析:没什么好说的,直接暴力就好. 代码如下: #include<bits/stdc++.h> us ...

  4. 敏捷开发之XP

    敏捷方法论有一个共同的特点,那就是都将矛头指向了“文档”,它们认为传统的软件工程方法文档量太“重”了,称为“重量级”方法,而相应的敏捷方法则是“轻量级”方法.正是因为“轻量级”感觉没有什么力量,不但不 ...

  5. element onclick 动态创建元素并绑定onclick事件

    <html> <head> <meta charset="UTF-8"> <title>b</title> <sc ...

  6. 在iOS中使用百度地图

    就如同在百度地图的文档中所说的一样,这么来.但是,有一个小疏忽. 到添加完所需要的framework之后,一定要记得把你的(Class-Prefix)AppDelegate的后缀改成mm. 估计百度的 ...

  7. CodeForces 814D An overnight dance in discotheque(贪心+dfs)

    The crowdedness of the discotheque would never stop our friends from having fun, but a bit more spac ...

  8. vim的基本使用

    Vim 编辑器中设置了三种模式—命令模式.末行模式和编辑模式,每种模式分别又支持多种不同的命令快捷键,这大大提高了工作效率,而且用户在习惯之后也会觉得相当顺手.要想高效率地操作文本,就必须先搞清这三种 ...

  9. vs2008编译opencv,不能copy CMakeVSMacros2.vsmacros

    由于学习opencv,要查看源码文件,所以要先对opencv进行编译,可悲的是出错了 “不能copy   CMakeVSMacros2.vsmacros” 通过上网查找资料,之所以出现这种情况,是因为 ...

  10. linux 用户和组

    每个用户拥有一个UID,操作系统实际使用的是用户ID,而非用户名 每个用户属于一个主组,而且属于一个或多个附属组 每个组有一个GroupID 每个进程以一个用户身份运行,并受该用户可访问的资源限制 每 ...