2012年12月31日

TCP三次握手

摘要: 建立TCP连接的过程需要进行三次信息交换,通常称为“三次握手”,示意图如下:图中Seq代表TCP段首部中的“序号(Sequence Number)”:是TCP段所发送的数据部分第一个字节的序号。在TCP传送的数据流中,每一个字节都有一个序号。建立连接时,发送方将初始序号(Initial Sequence Number, ISN)填写到第一个发送的TCP段序号中。图中Ack代表TCP段首部中的“确认号”:是期望收到对方下次发送的数据的第一个字节的序号,也就是期望收到的下一个TCP段的首部中的序号,等于已经成功收到的TCP段的最后一个字节序号加1。确认号在ACK标志为1时有意义,除了主动发起连接的 阅读全文

posted @ 2012-12-31 14:29 zhuyf87 阅读(3064) 评论(2) 推荐(0) 编辑

TCP状态描述

摘要: TCP的有限状态机用来管理一个连接,当第一次运行时,连接从一个初始状态CLOSED开始,当两个应用程序开始通信时,经过一系列的TCP段交换和状态变迁,直到成功建立连接,两端都处于ESTABLISHED状态,正常的数据发送和接收都发生在这一状态。TCP的大部分时间也处于这一状态,当发生错误或程序退出通信时,关闭连接,经历一系列相关的状态变迁,返回到最初的CLOSED状态。标准给出了在TCP连接的各个状态中,发生某些事件要执行的动作和状态转移行为。下表对TCP各个状态进行简单的描述。状态描述CLOSED连接的起始状态,这是一个“虚构”的状态,实际上此时还没有连接存在,也没有传输控制块(TCB)LI 阅读全文

posted @ 2012-12-31 12:17 zhuyf87 阅读(499) 评论(0) 推荐(0) 编辑

希尔排序

摘要: 1. 算法思想希尔排序(Shell Sort),也称递减增量排序,是插入排序的一种高速而稳定的改进版本。希尔排序按其设计者希尔(Donald Shell)的名字命名,该算法由1959年公布。希尔排序是基于插入排序的如下性质而进行改进的:插入排序在对几乎已经排好序的数据操作时,效率非常高,可以达到线性排序的效率。该方法的基本思想是:先将整个待排序列分成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。因为直接插入排序在元素基本有序的情况下(接近最好情况),效率是很高的,因此 阅读全文

posted @ 2012-12-31 10:05 zhuyf87 阅读(398) 评论(0) 推荐(0) 编辑

希尔排序代码实现

摘要: // 希尔排序1void ShellSort1(int data[], int count){ int step = 0; int auxiliary = 0; for (step = count / 2; step > 0; step /= 2) { for (int i = 0; i < step; ++i) { for (int j = i + step; j < count; j += step) { // 直接插入排序 if ... 阅读全文

posted @ 2012-12-31 10:01 zhuyf87 阅读(2112) 评论(0) 推荐(0) 编辑

导航