tcp的三次连接握手和四次释放握手
http://blog.csdn.net/whuslei/article/details/6667471/
这篇博客讲的很清楚。
下面我简单说明一下:三次连接握手,首先client发送请求报文,然后服务器返回,客户端在发送请求。
为什么要三次握手,两次握手不就够了吗?:三次握手是为了确保安全,client向server发送请求,server返回了以后,server不知道client有没有收到返回,所以无法确定client是否能收的到我的响应,倘若不能收到,server还有发的必要吗?对吧,所以,客户端在发一次请求,证明我收到了你的请求,我们两个的通信没有问题,可以开始通信啦~个人觉得这相当于每个人都发送接收一次试试看能不能互相收到,很简单的道理。
为什么要四次握手:首先需要知道一点,无论是客户端还是服务器,都可以取消连接,过程如下(假设为client取消):
client:我要取消连接,你长的太丑...(发送给server消息)
server:我收到了你的信息,不要我拉倒,但是取消之前还是要相互确认一下的。(随即发送给client一个回复)
server:哎呀,他之前请求的东西还没发完呢,等发完了告诉他吧...(过了一会,消息全部发送完毕),好啦,现在消息发送完啦,我也不欠你的啦,88~然后发送一条消息,
告诉client消息发送完毕
client:虽然他是个丑逼,但是还是挺负责的,我也负责吧,随即发送了一条消息告诉server,我收到了你发的消息
至此,通讯完毕。
TCP协议是不是一个很负责任的协议呢?一旦你以负责的角度去思考,TCP就很容易理解啦。
另外:TCP报文是属于IP报文数据的一部分。
IP报文分为IP报头和数据
而数据又包括TCP的报头和数据
所以,才叫做TCP/IP协议嘛!
对了,忘了说一点,建立连接的时候标志有SYN,ACK
取消连接的时候标志有FIN,ACK,ACK为1则表示发送没有问题
tcp的三次连接握手和四次释放握手的更多相关文章
- TCP的三次握手与四次释放
TCP的三次握手与四次释放 一.名词解释 序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生:给字节编上序号后,就给 ...
- TCP的三次握手(建立连接)和四次挥手(关闭连接)
参照: http://course.ccniit.com/CSTD/Linux/reference/files/018.PDF http://hi.baidu.com/raycomer/item/94 ...
- TCP\IP三次握手连接,四次握手断开分析
TCP(Transmission Control Protocol) 传输控制协议 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即tcp标志位,有6种标 ...
- TCP连接的建立与释放(三次握手与四次挥手)
TCP连接的建立与释放(三次握手与四次挥手) TCP是面向连接的运输层协议,它提供可靠交付的.全双工的.面向字节流的点对点服务.HTTP协议便是基于TCP协议实现的.(虽然作为应用层协议,HTTP协议 ...
- python网络编程--TCP连接的三次握手(三报文握手)与四次挥手
一.TCP连接 运输连接有三个阶段: 连接建立.数据传送和连接释放. 在TCP连接建立过程中要解决以下三个问题: 1,要使每一方能够确知对方的存在. 2.要允许双方协商一些参数(如最大窗口之,是否使用 ...
- TCP的三次握手(建立连接)和四次挥手(关闭连接)(转)
转自:(http://www.cnblogs.com/Jessy/p/3535612.html) 参照: http://course.ccniit.com/CSTD/Linux/reference/f ...
- TCP协议三次握手连接四次握手断开和DOS攻击
转载:http://blog.csdn.net/fw0124/article/details/7452695 TCP连接的状态图 TCP建立连接的三次握手过程,以及关闭连接的四次握手过程 贴一个tel ...
- TCP系列02—连接管理—1、三次握手与四次挥手
一.TCP连接管理概述 正如我们在之前所说TCP是一个面向连接的通信协议,因此在进行数据传输前一般需要先建立连接(TFO除外),因此我们首先来介绍TCP的连接管理. 通常一次完整的TCP数据传输一般包 ...
- tcp连接过程中的三次握手和四次挥手
在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手握手建立连接 @第一次握手: 建立连接是,客户端A发送SYN包到服务器B,并进入SYN_SEND状态,等待B确认. @第二次握手: 服务 ...
随机推荐
- printf函数指向串口的方法
简单地说:想在mdk 中用printf,需要同时重定义fputc函数和避免使用semihosting(半主机模式),标准库函数的默认输出设备是显示器,要实现在串口或LCD输出,必须重定义标准库函数里调 ...
- Java面试知识点总结(1)
1.Java中的原始数据类型都有哪些,它们的大小及对应的封装类是什么? 原始数据类型 大小(byte) 对应封装类型 boolean 1或4 Boolean byte 1 Byte short 2 S ...
- CF-822B
B. Crossword solving time limit per test 1 second memory limit per test 256 megabytes input standard ...
- GridView_RowDataBound 常用方法
1.这个就不用说,鼠标经过行颜色变化 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { ...
- Vue+Electron下Vuex的Dispatch没有效果的解决方案
这个问题是解决基于 vue 和 electron 的开发中使用 vuex 的 dispatch 无效的问题,即解决了 Please, don't use direct commit's, use di ...
- MYSQL数据库设计规范11111
MYSQL数据库设计规范 1.数据库命名规范 采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成; 命名简洁明确(长度不能超 ...
- Unicode编码下字符串转换
VC\MFC当中CString.string.char.char*.char数组.int等类型之间的转换令人晕头转向,特地搜集多篇文章资料,利用代码实例等清晰的理清他们之间的关系和如何转换,其实非常简 ...
- 51nod1101(dp)
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1101 题意:中文题诶- 思路:dp 我们用dp[i][j]存 ...
- 洛谷P2687 [USACO4.3]逢低吸纳Buy Low, Buy Lower
P2687 [USACO4.3]逢低吸纳Buy Low, Buy Lower 题目描述 “逢低吸纳”是炒股的一条成功秘诀.如果你想成为一个成功的投资者,就要遵守这条秘诀: "逢低吸纳,越低越 ...
- c#根据身份证获取身份证信息
/// <summary> /// 根据身份证获取身份证信息 /// 18位身份证 /// 0地区代码(1~6位,其中1.2位数为各省级政府的代码,3.4位数为地.市级政府的代码,5.6位 ...