漫谈TCPIP协议原理
一、每次说道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协议原理的更多相关文章
- 图解TCP-IP协议
本文通过图来梳理TCP-IP协议相关知识.TCP通信过程包括三个步骤:建立TCP连接通道,传输数据,断开TCP连接通道.如图1所示,给出了TCP通信过程的示意图. 图1 TCP 三次握手四次挥手 图1 ...
- TCP/IP协议原理与应用笔记18:构成子网和超网
1. 引言: (1)类别IP编址(Classful IP)的缺陷 • 固定的3种IP网络规模 C类地址:少于255台主机的网络 B类地址:介于255~65535台主机的网络 ...
- TCP/IP协议原理与应用笔记17:IP编址(重点)
1. IP地址(通用标识符) 对于同一个网络设备(主机或路由器)的不同网络连接,需要不同的IP地址进行标识 2. 主机标识符 主要有下面三种方式的主机标识方式: (1)Name:是什么,可读性强(了解 ...
- TCP/IP协议原理学习笔记
昨天学习了杨宁老师的TCP/IP协议原理第一讲和第二讲,主要介绍了OSI模型,整理如下: OSI是open system innerconnection的简称,即开放式系统互联参考模型,它把网络协议从 ...
- wireshark 抓包分析 TCPIP协议的握手
wireshark 抓包分析 TCPIP协议的握手 原网址:http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html 之前写过一篇 ...
- SMB协议原理抓包分析
SMB协议原理抓包分析 目录: 1.SMB概述 2.SMB原理 3.SMB配置 一.SMB概述 SMB(全称是Server Message Block)是一个协议名,可用于在计算机间共享文件.打印机. ...
- 网络分层和Http协议原理
网络分层: 应用层 传输层 网络层 数据链路层 物理层 物理层: 比特流在节点之间的传输,是计算机连接起来的物理手段. 数据链路层: 控制网络层和物理层之间的通信,功能是在不可靠的物理线路上进行数据可 ...
- Android网络编程(一)HTTP协议原理
相关文章 Android网络编程(一)HTTP协议原理 Android网络编程(二)HttpClient与HttpURLConnection Android网络编程(三)Volley使用方法全解析 A ...
- OAuth认证协议原理分析及同步消息到Twitter和Facebook使用方法
OAuth有什么用?为什么要使用OAuth? twitter或豆瓣用户一定会发现,有时候,在别的网站,点登录后转到 twitter登录,之后转回原网站,你会发现你已经登录此网站了,这种网站就是这个效果 ...
随机推荐
- mac安装mysql及终端操作mysql与pycharm的数据库可视化
一.Mac安装mysql 首先下载mysql,地址:https://dev.mysql.com/downloads/mysql/ 然后已知安装就好了,会出现让你记住密码的提示,然后就安装好了.... ...
- centos7部署JavaWeb项目
centos7部署JavaWeb项目共有三步 1.配置java环境 2.配置tomcat环境. 3.部署JavaWeb项目 一.配置java环境 1.1安装java 参考我的另一篇博文:https:/ ...
- SQL的Join语法
对于SQL的Join,在学习起来可能是比较乱的.我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚.Codin ...
- loadFileSystems error & ExceptionUtils错误原因分析
loadFileSystems error & ExceptionUtils错误原因分析 一见 2014/5/7 C/C++程序通过hdfs.h访问HDFS,运行时遇到如下错误,会是什么原因了 ...
- 编写高质量代码改善C#程序的157个建议——建议136:优先使用后缀表示已有类型的新版本
建议136:优先使用后缀表示已有类型的新版本 加后缀在某些情况下是很奇怪的形式,我们都不愿意看到OrderProcessor2这样的类型.但是,有的时候仍旧有必要这样做.最典型的是FCL中关于数字证书 ...
- 编写高质量代码改善C#程序的157个建议——建议121:为应用程序设定运行权限
建议121:为应用程序设定运行权限 在某些情况下,可能存在这样的需求:只有系统管理员才能访问某应用程序的若干功能.这个时候,可以结合.NET中提供的代码访问安全性(Code Access Securi ...
- 探索式软件测试—Exploratory Software Testing
最近找到去年上半年看过一本关于测试方面书籍的总结笔记,一直放在我的个人U盘里,当时是用Xmind记录的,现在重新整理下分享给大家了! James A.Whittaker [美] 詹姆斯·惠特克(软件测 ...
- cenos7切换阿里源
备份并安装base reop源 cd /etc/yum.repos.d sudo mv CentOS-Base.repo CentOS-Base.repo.bak 下载阿里源并配置 sudo wget ...
- [LeetCode 题解]: Add Two Numbers
You are given two linked lists representing two non-negative numbers. The digits are stored in rever ...
- 解除SVN的控制
win10操作就是把文件夹隐藏的对勾勾上 然后就可以看见一个.SVN的文件夹 把他直接删除即可 然后刷新 自己亲测的 win10 家庭版