夜朦胧,人方静,无聊的人打开了无聊的电脑看到了一张无聊的图,想着想着就睡着了,梦到了人a和人b的一次聊天。

有一天,a有事情想跟b商量就问b“有时间么,想和你聊一下天”,b想了一会发现自己能抽出时间就回复a说“可以啊,并把具体时间告诉了a”,a收到消息后就高高兴兴的去安排自己的时间,并告知b“我的时间也安排好了,可以说话了”,然后a和b噼里啪啦的说了好长时间,最后a的话终于说完了,想要结束聊天了。于是

a说“我的话说完了”,b这个时候就有两种可能性了:b的话没说完和b的话说完了。

1.如果b的话没说完,b就要跟a说“我的话还没说完了,你还得多听一会,等我说完了着”,然后b就噼里啪啦的又跟a说了一堆事情,a就在那里安静的听着,终于b说完了,这个时候b就跟a回了句“好了,我的事情终于说完了,你可以去忙其他的事了”,然后a就准备去忙其他的事情,但是他不知道b是不是还在想着这次谈话,出于礼貌和不放心,a还是决定再回一句让b也去忙其他的,于是a就给b回了一句“我要去忙其他的了,你也去忙你的其他的事吧”。于是这次谈话就愉快的结束了。

2.如果b的话说完了,b就说“好,我的话也说完了,你去忙其他的事吧”,a收到了b的回话,a就准备去忙其他的事情,但是他不知道b是不是还在关注着这次谈话,出于礼貌和不放心,a还是决定再回一句让b去忙其他的,于是a就给b回了一句“我要去忙其他的了,你也去忙你的其他的事吧”。

有这次谈话,他想到了计算机的世界,计算机a要和计算机b建立链接,如果b刚好有资源就可以分配一段资源(建立进程,分配端口号等)去处理a的请求,他们之间通过三次TCP链接后就正式传输数据,处理数据。断开连接则有可能是b请求断开链接也有可能是a,但是过程是类似的,假设是a的数据传完了,就请求断开链接,b要给a的答复就有两种可能了,如果b还有数据没传完要断开链接总共就得四次TCP链接了,如果b的数据传完了要断开链接其实三次TCP链接就可以完事了。

由于考虑到网络的不稳定性、TCP的不可靠性以及充分利用计算机资源等原因,人们就给计算机设定了一个合理的最高等待时间限度,如果网络断了,过了这个时间限度还没收到彼此回复,双方计算机就主动结束这次通信,终止这次通信所带来的资源开销。上例中a最后一次发消息给b也是由于b在这个时间限度内不会主动让出这次通信所占用的资源,为了让b更早的让出这些资源,a就及时发一个消息主动告诉b,让b腾出这段资源去忙其他的。a发送完最后一条消息后等到时间到了这个时间段就也让出因这次通信所占用的资源。

计算机本来是笨的,然而人类很聪明,就让计算机变得很聪明;也让计算机变得很懂礼貌,然而计算机却让人类变得越来越不懂礼貌,越来越虚假。晨曦初露,人渐醒,原来只是整个世界打了个盹,做了个不近人情的交易!”醒来的那个人,揉了揉眼,不小心碰到了键盘,借着微光,无力地瞅了一眼横在面前的那副图,心想:“Y的,这世界和这图与我有关么,还害得我一宿没睡好?”于是就又无精打采地趴着睡了。

 
http://www.cnblogs.com/ryanlamp/p/5625610.html

对TCP说三道四(三次握手)的更多相关文章

  1. 简析TCP的三次握手与四次分手

    TCP是什么? 具体的关于TCP是什么,我不打算详细的说了:当你看到这篇文章时,我想你也知道TCP的概念了,想要更深入的了解TCP的工作,我们就继续.它只是一个超级麻烦的协议,而它又是互联网的基础,也 ...

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

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

  3. TCP协议三次握手和四次挥手

    http://www.cnblogs.com/rootq/articles/1377355.html TCP(Transmission Control Protocol) 传输控制协议 TCP是主机对 ...

  4. HTTP协议中TCP的三次握手,四次挥手总结

    建立TCP需要三次握手才能建立,而断开连接则需要四次挥手.整个过程如下图所示: 先来看看如何建立连接的. 首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资 ...

  5. TCP协议三次握手

    TCP协议三次握手过程分析 TCP(Transmission Control Protocol) 传输控制协议 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: ...

  6. 简析TCP的三次握手与四次挥手

    TCP是什么? 具体的关于TCP是什么,我不打算详细的说了:当你看到这篇文章时,我想你也知道TCP的概念了,想要更深入的了解TCP的工作,我们就继续.它只是一个超级麻烦的协议,而它又是互联网的基础,也 ...

  7. 简析TCP的三次握手与四次分手【转】

    转自 简析TCP的三次握手与四次分手 | 果冻想http://www.jellythink.com/archives/705 TCP是什么? 具体的关于TCP是什么,我不打算详细的说了:当你看到这篇文 ...

  8. 【转载】简析TCP的三次握手与四次分手

    最近在补习HTTP协议相关知识点,看到这篇讲得不错,所以转载收藏一下,同时也分享给大家.原文地址:http://www.jellythink.com/archives/705,版权归原作者所有. TC ...

  9. TCP协议—三次握手四次挥手的原理<转>

    三次握手四次挥手的原理   TCP是面向连接的,无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接.在TCP/IP协议中,TCP 协议提供可靠的连接服务,连接是通过三次握手进行初始化的.三 ...

  10. TCP的三次握手与四次挥手

    TCP的三次握手与四次挥手 一.TCP(Transmission Control Protocol 传输控制协议) TCP是面向对连接,可靠的进程到进程通信的协议 TCP是提供全双工服务,即数据可在同 ...

随机推荐

  1. PHP扩展开发之PHP的启动与终止

    PHP程序的启动可以看做是两个概念上的启动,终止也有两个概念上的终止.其中一个是PHP作为Apache(拿它举例,板砖勿扔)的一个模块的启动与终止, 这次启动php会初始化一些必要数据,比如与宿主Ap ...

  2. first blood暴力搜索,剪枝是关键

    First Blood 题目描述 盖伦是个小学一年级的学生,在一次数学课的时候,老师给他们出了一个难题: 老师给了一个正整数 n,需要在不大于n的范围内选择三个正整数(可以是相同的),使它们三个的最小 ...

  3. 阿里云 配置apache+python+django 环境 适合菜鸟

    云服务器环境:阿里云服务:20G+1M带宽+centos+512M 一.python安装: 刚开始没有好好利用centos 的yum方法.采用wget从python官网上下载的2.7.5版本.解压安装 ...

  4. Asp.Net构架(Http请求处理流程)、Asp.Net 构架(Http Handler 介绍)、Asp.Net 构架(HttpModule 介绍)

    转载: HttpHaddler,HttpModule http://blog.csdn.net/jiuqiyuliang/article/details/18713451 http://www.cnb ...

  5. 【POJ】3468 A Simple Problem with Integers ——线段树 成段更新 懒惰标记

    A Simple Problem with Integers Time Limit:5000MS   Memory Limit:131072K Case Time Limit:2000MS Descr ...

  6. poj 1050 To the Max_dp求最大子矩阵和

    题意:求最大子矩阵和 利用dp[i]每次向下更新,构成竖起的单条矩阵,再按不小于零就加起来来更新,构成更大的矩阵 #include <iostream> #include<cstdi ...

  7. Lining Up(在一条直线上的最大点数目,暴力)

    Lining Up Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total ...

  8. 【MFC学习笔记-作业7-小型画图软件】【】

    作业要求: 按下鼠标右键画圆. 按下鼠标左键移动曲线. 丝毫没有思路..网上教程又比这个程序复杂100倍... 好吧 总算找到一个合适的了... 转载至:http://blog.chinaunix.n ...

  9. mysql 相同表求解统一字段不同内容的交集

    SELECT id, bid, name, title, publisher FROM A where publisher in (select publisher from B group by B ...

  10. 【sqlserver】批量插入10万数据

    DECLARE @LN VARCHAR(300),@MN VARCHAR(200),@FN VARCHAR(200)DECLARE @LN_N INT,@MN_N INT,@FN_N INTSET @ ...