一、每次说道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. 03 Complementing a Strand of DNA

    Problem In DNA strings, symbols 'A' and 'T' are complements of each other, as are 'C' and 'G'. The r ...

  2. [GO]tcp网络通信和实现

    服务端的代码 package main import ( "net" "fmt" ) func main() { //监听 listener, err := n ...

  3. 创建EDM

    在学习linq过程中,我们难免会要创建EDM,这里简单的介绍一下EDM的创建过程 图示如下: 1.右击→添加→新建项→数据→Ado.net实体数据模型 选择适当的数据库,表后点击完成,vs中会自动生成 ...

  4. spark介绍2

    上述结果是 map 1 filter 1 map 2 filter 2 map 3 filter 3 map 4 filter 4 即说明是并行,且互不干扰,每个task运行到最后

  5. logback-spring.xml配置文件详解

    logback-spring.xml配置文件 自己改下value="G:/logs/pmp"这个值,如果你相关依赖弄好的话,直接复制粘贴即用 输出的日志文件的名称最好也改下,下文中 ...

  6. hdu1561之树形dp

    The more, The Better Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  7. maven-plugins说明

    maven提供了丰富的plugins. maven是一个插件执行的框架. 核心部分的描述: clean. clean插件. goal:clean 清除构建时生成的文件,文件目录 project.bui ...

  8. Unity3D 之PC客户端的分辨率自定义

    在Player Setting中可以自定义分辨率,但在PC版本中如果使用Display Resolution Dialog选项,会发现在分辨率选项中只有预定义的那些,而并没有在Player Setti ...

  9. Cordova deploy on Android

    网上找了几篇Phonegap在安卓上的部署,版本都比较老了,不过还是部署成功了, 写篇博客以做纪录. 1.先下载IDE:戳 2.下载Phonegap:戳 3.启动ADT,新建普通Android App ...

  10. 编写高质量JS代码上

    想写出高效的javascript类库却无从下手: 尝试阅读别人的类库,却理解得似懂给懂: 打算好好钻研js高级函数,但权威书上的内容太零散, 即使记住“用法”,但到要“用”的时候却没有想“法”. 也许 ...