1 TCP的三次握手与必要性

  (1)三次握手图

  (2)必要性:TCP通过三次握手建立可靠的(确保收到)全双工通信。

    1)第一次握手和第二次握手(ACK部分)建立了从客户端到服务器传送数据的可靠连接;

    2)第二次握手(SYN部分)和第三次握手建立了从服务器到客户端传送数据的可靠连接;

    4)由于我们期望建立全双工连接,所以两个方向的通信都是需要的,于是合并了服务器发送的ACK和SYN。

5)第三次握手的必要性:防止已失效的请求报文段突然又传送到了服务端而造成连接的误判。假如客户端发出连接请求A,由于网络原因,服务端并没有收到A,于是客户端又发送了连接请求B,并建立了连接,完成通信,断开连接。这时候,服务端突然又收到了A,于是看作是一次新的连接请求,进行第二次握手,由于不存在第三次握手,所以这时已经建立了TCP连接。但实际上客户端并没有发起连接,所以不会传递数据,那么这条连接就会变成一条死连接。

2 TCP的四次断开与必要性

  (1)四次断开图

  (2)必要性:为保证单向通信的可行性,所以多一次握手。

    1)主动断开方发送FIN时,被动断开方要回复ACK,意思是“我收到你的FIN了”;

    2)主动断开方发送FIN并不意味着立即关闭TCP连接,而是告诉对方自己没有更多的数据要发送了,只有当对方发完自己的数据再发送FIN后,才意味着关闭TCP连接;

    3)被动断开方收到FIN并回复ACK后,此时TCP处于“半关闭”状态,为保证被动断开方可以继续发送数据,所以第二个FIN并不会伴随ACK发送,所以比连接时多一个报文段。

理解TCP三次握手/四次断开的必要性的更多相关文章

  1. TCP三次握手四次断开

    今天被问到三次握手了,当时只是脑子里有印象,却忘了一些SYN细节,手动微笑. 这么下去还怎么混...赶紧复习个... 三次握手是什么? TCP是面向连接的,无论哪一方向另一方发送数据之前,都必须先在双 ...

  2. NO32 网络层次及OSI7层模型--TCP三次握手四次断开--子网划分

    网络层次: OIS网络模型概念:  OSI层次--应用层:  OSI层次--表示层:  OSI--会话层:  OSI--传输层: OSI--网络层: IP地址的概念说明: OSI数据链路层: OSI= ...

  3. 【Linux网络基础】TCP/IP协议簇的详细介绍(三次握手四次断开,11种状态)

    一.TCP/IP协议簇(DoD参考模型) 用于简化OSI层次,以及相关的标准. 传输控制协议(tcp/ip)簇是相关国防部DoD所创建的,主要用来确保数据的完整性以及在毁灭性战争中维持通信 是由一组不 ...

  4. [转]Linux服务器上11种网络连接状态 和 TCP三次握手/四次挥手详解

    一.Linux服务器上11种网络连接状态: 图:TCP的状态机 通常情况下:一个正常的TCP连接,都会有三个阶段:1.TCP三次握手;2.数据传送;3.TCP四次挥手. 注:以下说明最好能结合”图:T ...

  5. 对TCP三次握手四次分手还不清楚,超简单解析

      关于TCP三次握手四次分手,之前看资料解释的都很笼统,很多地方都不是很明白,所以很难记,前几天看的一个博客豁然开朗,可惜现在找不到了.现在把之前的疑惑总结起来,方便一下大家. 先上个TCP三次握手 ...

  6. 对TCP三次握手四次分手还不清楚的速度进,超简单解析,明白了就很好记!

    关于TCP三次握手四次分手,之前看资料解释的都很笼统,很多地方都不是很明白,所以很难记,前几天看的一个博客豁然开朗,可惜现在找不到了.现在把之前的疑惑总结起来,方便一下大家. 先上个TCP三次握手和四 ...

  7. TCP三次握手四次分手—简单详解

    关于TCP三次握手四次分手,之前看资料解释的都很笼统,很多地方都不是很明白,所以很难记,前几天看的一个博客豁然开朗,可惜现在找不到了.现在把之前的疑惑总结起来,方便一下大家. 疑问一,上图传递过程中出 ...

  8. 理解TCP三次握手和四次挥手

    TCP相关知识 TCP是面向连接的传输层协议,它提供可靠交付的.全双工的.面向字节流的点对点服务.HTTP协议便是基于TCP协议实现的.(虽然作为应用层协议,HTTP协议并没有明确要求必须使用TCP协 ...

  9. TCP三次握手四次挥手详解

    转载 http://www.cnblogs.com/zmlctt/p/3690998.html 相对于SOCKET开发者,TCP创建过程和链接折除过程是由TCP/IP协议栈自动创建的.因此开发者并不需 ...

随机推荐

  1. LINQ的First与FirstOrDefault方法和Last与LastOrDefault方法。

    First与FirstOrDefault的方法,均是返回集合中的第一个元素,区别在于如果没有结果,前者(First)会有抛出异常,后者(FirstOrDefault)会返回默认值.Last与LastO ...

  2. VB.NET Winform的一些功能实现

    近段时间,开发的需要,需要写一个winform的程序.用VB.NET来写. 开发开始,需要实现一个窗体设为多文档界面 (MDI) 子窗体的容器.实现这个功能,开始找资料,得知设置一个属性:Form.I ...

  3. C#开发Windows服务的基础代码

    做项目需要对Windows服务进行操作,从网上找了一些资料,总结如下: (以下程序在程序中测试通过) using System; using System.Collections.Generic; u ...

  4. [前端]使用JQuery UI Layout Plug-in布局 - wolfy

    引言 使用JQuery UI Layout Plug-in布局框架实现快速布局,用起来还是挺方便的,稍微研究了一下,就能上手,关于该布局框架的材料,网上也挺多的.在项目中也使用到了,不过那是前端的工作 ...

  5. linux两个文件修改主机名

    linux修改主机名的方法 用hostname命令可以临时修改机器名,但机器重新启动之后就会恢复原来的值. #hostname   //查看机器名#hostname -i  //查看本机器名对应的ip ...

  6. Asp.Net WebService 使用后来管理系统对接口方法进行公开控制

    思路: 1.需要找一个访问Webservice的统一入口,刚开始进入了一个误区,以为WebService是单独的运行程序,后来经朋友提醒,其实它也是通过http请求在asp.net framework ...

  7. 一不小心把oschina给戒了

    不知怎么回事,逐渐变成一周看一次oschina了.

  8. JPA一对多循环引用的解决

    说是解决,其实不是很完美的解决的,写出来只是想记录一下这个问题或者看一下有没有哪位仁兄会的,能否知道一二. 下面说说出现问题: 问题是这样的,当我查询一个一对多的实体的时候,工具直接就爆了,差不多我就 ...

  9. java servlet上传centos服务器

    前面一篇随笔说了Centos上架设javaWeb运行环境的方法,这篇主要讲打包上传服务器. 一.数据库连接文件.propeties 为了数据库安全,mysql3306端口访问我做了ip访问限制,由于m ...

  10. 【Asphyre引擎】冒险岛换装Demo升级到最新版PXL

    demo代码  (不包含Sprite代码,要Sprite代码请下载之前那个doudou的demo)