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的三次连接握手和四次释放握手的更多相关文章

  1. TCP的三次握手与四次释放

    TCP的三次握手与四次释放 一.名词解释     序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生:给字节编上序号后,就给 ...

  2. TCP的三次握手(建立连接)和四次挥手(关闭连接)

    参照: http://course.ccniit.com/CSTD/Linux/reference/files/018.PDF http://hi.baidu.com/raycomer/item/94 ...

  3. TCP\IP三次握手连接,四次握手断开分析

    TCP(Transmission Control Protocol) 传输控制协议 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即tcp标志位,有6种标 ...

  4. TCP连接的建立与释放(三次握手与四次挥手)

    TCP连接的建立与释放(三次握手与四次挥手) TCP是面向连接的运输层协议,它提供可靠交付的.全双工的.面向字节流的点对点服务.HTTP协议便是基于TCP协议实现的.(虽然作为应用层协议,HTTP协议 ...

  5. python网络编程--TCP连接的三次握手(三报文握手)与四次挥手

    一.TCP连接 运输连接有三个阶段: 连接建立.数据传送和连接释放. 在TCP连接建立过程中要解决以下三个问题: 1,要使每一方能够确知对方的存在. 2.要允许双方协商一些参数(如最大窗口之,是否使用 ...

  6. TCP的三次握手(建立连接)和四次挥手(关闭连接)(转)

    转自:(http://www.cnblogs.com/Jessy/p/3535612.html) 参照: http://course.ccniit.com/CSTD/Linux/reference/f ...

  7. TCP协议三次握手连接四次握手断开和DOS攻击

    转载:http://blog.csdn.net/fw0124/article/details/7452695 TCP连接的状态图 TCP建立连接的三次握手过程,以及关闭连接的四次握手过程 贴一个tel ...

  8. TCP系列02—连接管理—1、三次握手与四次挥手

    一.TCP连接管理概述 正如我们在之前所说TCP是一个面向连接的通信协议,因此在进行数据传输前一般需要先建立连接(TFO除外),因此我们首先来介绍TCP的连接管理. 通常一次完整的TCP数据传输一般包 ...

  9. tcp连接过程中的三次握手和四次挥手

    在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手握手建立连接 @第一次握手: 建立连接是,客户端A发送SYN包到服务器B,并进入SYN_SEND状态,等待B确认. @第二次握手: 服务 ...

随机推荐

  1. php之配置redis

    Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. 配置说明:https://www.cnblogs.com/lucky-man/p/8359110.html ph ...

  2. MSTAR GAMMA

    1.读取系统GAMMA值 2.在此基础上微调 3.导出Gamma.txt->导入系统.“Gamma12BIT_256.c”或者“Gamma12BIT_1024.c”. Read 微调&写 ...

  3. Mysql常用命令行大全(三)

    /**操作数据库*/ SHOW DATABASES; CREATE DATABASE db; SHOW DATABASES; DROP DATABASE db; /**操作表*/ USE  db; S ...

  4. Jasper:目录/资源

    ylbtech-Jasper:目录/资源 1. 官网返回顶部 1. https://www.jasper.com/ 2. 2.返回顶部 1. http://api.jasperwireless.com ...

  5. android和iOS平台的崩溃捕获和收集

    转自:http://www.cnblogs.com/lancidie/archive/2013/04/13/3019349.html 通过崩溃捕获和收集,可以收集到已发布应用(游戏)的异常,以便开发人 ...

  6. Java集合框架(1)

    Collection接口:它是Java集合框架的一个根接口,也是List.Set和Queue接口的父接口.同时它定义了可用于操作List.Set和Queue的方法—增删改查. Map接口:它提供了一种 ...

  7. 微软开业网站----精华 http://www.microsoft.com/opensource/directory.aspx

    http://www.microsoft.com/opensource/directory.aspx

  8. QTreeWidget笔记

    1.QTreeWidget继承自QTreeView. 2.头文件:QTreeWidget 3.简单使用: #include "mainwindow.h" #include < ...

  9. eos管理页面

    调用此方法删除需要在po_module_processdef添加数据如下 默认情况下申请页面是有权限的 但是在此表加过之后 管理页面要打开拟稿页面还必须在   系统管理页面(xtgl.jsp )  分 ...

  10. 怎么判断DropDownList是否选择值

    判断其 SelectedIndex 属性值 >0.