TCP三四次握手
通俗点说:
三次握手:
A:发送连接请求
B:收到请求后,B知道自己的接收端是好的,返回给A请求的应答,并询问A是否收到自己的本次应答。
A:收到B的应答。A知道自己的发送端和接收端都是好的。然后发送应答以回应B的询问。
当B接收到A的应答时,B知道自己的在第二次握手发出去的询问A收到了,证明B的发送端也是好的,这样就建立起了稳定的连接(到目前为止)。
四次挥手:
先明确几个问题。
单工:发送端和接收端都是固定的,角色不可变。即只能A——>B,不能逆过来,一经设定,A永远是发送端。
双工:发送端和接收端角色可变。可以A——>B,也可以B——>A。其中又分半双工与全双工。
半双工:在同一时间,信息只能单向传输。即,在同一时间,只能单独发生A——>B,或者B——>A,而不能同时反生。例如,对讲机。
全双工:在同一时间内,一端可以同时发送和接收信息,同一时间,信息可双向传输。A——>B与B——>A可同时发生。
而,在网络中,不论client或者server,都采用全双工。即,client在向server发送数据的同时,也接收来自server的数据。同理于server。
在此基础上,有半关闭概念:client关闭发送数据,但保留接收数据。同理于server。
所以,client与server的关闭是彼此独立的,分别关闭。如果同时满足“没有数据发送”和“没有数据接收”两个条件,就关闭。(不考虑网络延迟)
C(client):没有数据需要发送了,或者说在发送数据的最后添加一个end的标志,给S(server),告诉S我发送结束。此时,C还在接收数据。
S(server):一直在接收数据,直到接收到C的结束信息(或者C的关闭请求,或者理解为含有end标志的数据),S知道C数据发送结束了。S向C发回应答,说我知道你发送结束了。此时,S保持接收数据和发送数据。S还有可能在向C发送数据。(为什么需要这次握手呢?如果S不发回应答,则说明S还在接收来自C的数据。)C接收到S的应答,确定S收到自己发的end的信息(暂且理解为end)。C开启半关闭状态,即,关闭数据发送,保持数据接收。
S:S发送数据结束,告诉C。
C:接收到S的发送数据结束的通知,发回应答给S。S接收到C的应答,知道C已经知道S结束数据发送,S关闭。(全关闭)
C不会立即关闭数据接收,要等一段时间(2MSL),确保S收到了自己上一步发送的应答。因为如果由于网络等原因,S没有收到C的应答的话, S不会擅自关闭,而会持续发送结束的信息给C,所以,C要保留半关闭状态一段时间,默认这段时间内足够接收S的再一次发送结束信息。
所以,把client和server理解成两个需要独立关闭,就好理解四次挥手了。每端都需要发出一次发送数据结束请求和一次收到对方结束请求的应答(用来让对方关闭)。
自己的一些语言叙述方面的理解,具体的TCP/socket技术上的实现需要进一步的学习。
TCP三四次握手的更多相关文章
- TCP三次握手/四次挥手详解
一. TCP/IP协议族 TCP/IP是一个协议族,通常分不同层次进行开发,每个层次负责不同的通信功能.包含以下四个层次: 1. 链路层,也称作数据链路层或者网络接口层,通常包括操作系统中的设备驱动程 ...
- wireshark抓包工具简介以及tcp三次握手的一些含义
wireshark是非常流行的网络封包分析软件,功能十分强大.可以截取各种网络封包,显示网络封包的详细信息.使用wireshark的人必须了解网络协议,否则就看不懂wireshark了.为了安全考虑, ...
- TCP三次握手四次挥手
看到一篇总结很好的TCP三次握手,学习一下,原文链接. 建立TCP需要三次握手才能建立,而断开连接则需要四次握手.整个过程如下图所示: 先来看看如何建立连接的. 首先Client端发送连接请求报文,S ...
- TCP ,UDP概念和TCP三次握手连接 的知识点总结
OSI 计算机网络7层模型 TCP/IP四层网络模型 传输层提供应用间的逻辑通信(端到端),网络层提供的是主机到主机的通信,传输层提供的是可靠服务. TCP 中常说的握手指的是:连接的定义和连接的建立 ...
- TCP三次握手和四次挥手状态变迁解析
TCP是TCP/IP的传输层控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 首先需要了解几个名词:tcp标志位,有6种分别为:SYN(synchronous建立联机) .ACK(ackn ...
- Wireshark基本介绍和学习TCP三次握手
wireshark介绍 wireshark的官方下载网站: http://www.wireshark.org/ wireshark是非常流行的网络封包分析软件,功能十分强大.可以截取各种网络封包,显示 ...
- TCP 三次握手四次挥手, ack 报文的大小.tcp和udp的不同之处、tcp如何保证可靠的、tcp滑动窗口解释
一.TCP三次握手和四次挥手,ACK报文的大小 首先连接需要三次握手,释放连接需要四次挥手 然后看一下连接的具体请求: [注意]中断连接端可以是Client端,也可以是Server端. [注意] 在T ...
- iOS 开发:TCP三次握手连接
在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接. 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认: 第二次握 ...
- 用tcpdump分析tcp三次握手,四次挥手
1.tcpdump 简介 tcpdump是一个对网络上的数据包进行截获的包分析工具,一般linux系统以命令的形式使用 2.tcp三次握手 建立一个tcp连接会发生下面三个过程: 1.服务器必须准备好 ...
随机推荐
- Linux升级Python提示Tkinter模块找不到解决
一.安装tkinter 在Linux中python默认是不安装Tkinter模块, [root@li250- ~]# python Python (r266:, Feb , ::) [GCC (Red ...
- CentOS7 安装JDK
链接地址:http://jingyan.baidu.com/article/c74d60007b85510f6a595dfa.html VMware 10 centos 安装jdk 及mysql 方法 ...
- JavaSE学习总结第10天_面向对象5
10.01 运动员和教练案例分析 教练和运动员案例:运动员分乒乓球运动员和篮球运动员,教练分乒乓球教练和篮球教练.为了出国交流,跟乒乓球相关的人员都需要学习英语. 分析: 10.02 运动员和教练 ...
- Android 开发笔记 “SQLite”
SQLite 入门与分析 1.SQLite介绍 自几十年前出现的商业应用程序以来,数据库就成为软件应用程序的主要组成部分.正与数据库管理系统非常关键一样,它们也变得非常庞大,并占用了相当多的系统资源, ...
- (IOS)数据持久化
1.属性列表序列化 2.模型对象归档 3.嵌入式SQLite3 4.Core Data 5.应用程序设置 6.UIDocument管理文档存储 7.iCloud Demo界面: 1.属性列表序列化 即 ...
- Web APIs 基于令牌TOKEN验证的实现
Web APIs 基于令牌TOKEN验证的实现 概述: ASP.NET Web API 的好用使用过的都知道,没有复杂的配置文件,一个简单的ApiController加上需要的Action就能工作.但 ...
- 【操作系统】:Main features of the X86-64
The combination of the new hardware supplied by Intel and AMD ,and the new versions of GCC targeting ...
- 深入探究VC —— 编译器cl.exe(1)
cl.exe的功能是将源代码文件编译为可提供链接器使用的obj对象文件.cl.exe命令行参数形式如下: CL (option...) file... [option | file]... [lib. ...
- UIColor深入研究(CGColor,CIColor)
由于跟人比较喜欢研究关于图层与动画方面的技术,正打算看看别人写的好东西,就遇到了好几个问题, 第一:UIClor类方法的使用 就是关于UIColor的使用,记得之前开发中我们使用的都是UIColor后 ...
- SPI通信
SPI是由Motorola公司提出的一种同步串行外围接口:它在速度要求不高,低功耗,需要保存少量参数的智能化传感系统中得到了广泛应用: SPI是一个全双工的同步串行接口,在数据传输过程中,总线上只能是 ...