基于tcp的服务器客户端程序设计(编辑修改稿)内容摘要:
都置 1,确认号是 ack=x+1,同时也为自己选择一个初始序号 seq=y。 这个报文段也不能携带数据,但同样要消耗掉一个序号。 这时 TCP 服务器进程进入 SYNRCVD 状 态。 TCP 客户进程收到 B 的确认后,还要向 B 给出确认。 确认报文段的 ACK 置1,确认号 ack=y+1,而自己的序号 seq=x+1, ACK 报文段可以携带数据,但如果不携带数据则不消耗序号,在这种情况下,下一个数据报文段的序号仍是seq=x+1。 这时, TCP 连接已经建立, A 进入 ESTABLISHED 状态。 当 B 收到 A确认后,也进入 ESTABLISHED 状态,这个过程就是三次握手。 数据传输结束后,通信双方都可释放连接。 现在 A 和 B 都处 ESTABLISHED状态。 A 的应用进程先向其 TCP 发出连接释放报文段,并停止再发送 数据,主动关闭 TCP连接。 A把连接释放报文段首部的终止控制位 FIN置 1,其序号 seq=u,它等于前面已传送过的数据的最后的一个字节的序号加 1。 这时 A 进入FINWAIT1 状态,等待 B 的确认。 FIN 报文段即使不携带数据,它也消耗掉一个序号。 B 收到连接释放报文段后即发出确认,确认号是 ack=u+1,而这个报文段自己的序号是 v,等于 B 前面已传送过的数据的最后一个字节的序号加 1。 然后 B就进入 CLOSEWAIT 状态。 TCP 服务器进程这时应停止高层应用进程,因而从 7 A 到 B 这个方向的连接就释放了,这时的 TCP 连接处于 半关闭状态,即 A 已经没有数据要发送了,但 B 若发送数据, A 仍要接收。 也就是说,从 B 到 A 这个方向的连接并为关闭,这个状态可能会持续一些时间。 A 收到来自 B 的确认后,就进入 FINWAIT2 状态,等待 B 发出的连接释放报文段。 若 B 已经没有要向 A 发送的数据,其应用进程就通知 TCP 释放连接。 这时B 发出的连接释放报文段必须使 FIN=1。 假定 B 的序号为 w, B 还必须重复上次已发送过的确认号 ack=u+1。 这是 B 就进入 LASTACK 状态,等待 A 的确认。 A 在收到 B 的连接释放报文段后,必须对此发出确认。 在确认报文段中把ACK 置 1,确认号 ack=w+1,而自己的序号是 seq=u+1。 然后进入到 TIMEWAIT状态。 要经过 4 分钟才能进入到 CLOSED 状态,才能开始建立下一个新的连接,当 A 撤销相应的传输控制块 TCB 后,就结束了这次的 TCP 连接。 这个过程就是TCP 连接释放过程的四次握手。 TCP 的连接释放采用四次握手机制。 任何一方都可以在数据传送结束后发出连接释放的通知,待对方确认后就进入半关闭状态。 当另一方也没有数据再发送时,则发送连接通知,对方确认后就完全关闭了 TCP 连接。 如下图所示。 客户 A 服务器 B ESTABLISHED FIN WAIT1 FIN WAIT2 TIME WAIT CLOSED ESTABLISHED CLOSE WAIT LAST ACK CLOSED 主动 被动 数据传送 8 TCP 虽然是面向字节流的,但 TCP 传送的数据单元却是报文段。 一个 TCP报文段分为首部和数据两部分,而 TCP 的全部功能都体现在它的首部中各字段的作用。 因此,只有弄清 TCP 首部各字段的作用才能掌握 TCP 的工作原理。 TCP 报文段首部的前 20 个字节是固定的,后面有 4n 字节是根据需要而增加的选项。 因此 TCP 首部的最小长度是 20 字节。 如下图所示。 对于 TCP 报文段中的序号部分,它是占了 4 字节, TCP 是面向字节流的,在下一个 TCP 连接中传送的字节流 中的每一个字节都按顺序编号,整个要传送的字节流的起始序号必须在连接建立时设置。 首部中的序号字段值则指的是本报文段所发送的数据的第一个字节的序号。 例如,一报文段的序号字段值是 301,而携带的数据共有 100 字节。 这就表明:本报文段的数据的第一个字节的序号是 301,最后一个字节的序号是 400。 显然,下一个报文段的数据序号应该从 401 开始。 对于确认号,是占 4 个字节,是期望收到对方下一个报文段的第一个数据字节的序号。 例如, B 正确收到了 A 发送过来的一个报文段,其序号字段值是 501,而数据长度是 200 字节,这表明 B 正确 收到了 A 发送的到序号 700 为止的数据。 因此, B 期望收到 A 的下一个数据序号是 701,于是 B 在发送给 A 的确认报文段中把确认号置为 701。 还有一个比较重要的部分就是校验和。 是占 2 个字节,校验和字段检验的范围包括首部和数据这两部分。 在计算校验和时,要在 TCP 报文段的前面加上 12 9 字节的伪首部。 伪首部的格式与 UDP 用户数据报的伪首部一样。 但应把伪首部第4 个字段中的 17 改为 6,把第 5 字段中的 UDP 长度改为 TCP 长度,接收方收到此报文段后,仍要加上这个伪首部来计算校验和。 TCP 可靠传输的实现是已字节为单位的滑动窗口。 发 送窗口是根据接收窗口设置的,但在同一时刻,发送窗口并不总是和接受窗口一样大。 这是因为通。基于tcp的服务器客户端程序设计(编辑修改稿)
相关推荐
遗漏、误报。 计算机信息化管理有着储存信息量大、速度快等许多优点,提供给我们的处理信息及时快捷 和准确 , 帮助图书馆的工作减少很大的任务量,使其能更好更全面的服务于读者。 基于以上的对 问题的分析,利用计算机给我们提供信息,及时地调整图书馆图书结构,并且对 读者 们的借阅过程形成一整套动态的管理就十分必要了。 图书馆信息系统的建立,需要进行用户的需求调查与分析,以确定系统目标
: 虚拟企业组建 虚拟企业组建模块负责虚拟企业 “ 顶层 ” 的管理活动,完成虚拟企业的 “ 初始化 ”。 它包括三个功能模块。 本文提出用两次推理分别实现伙伴企业建模与辅助伙伴选择决策,如图 5 所示。 客户信息服务 用户在信息代理的帮助下可以完成需求信息的发布与搜集工作; 伙伴企业建模 伙伴企业模型是虚拟企业的局部模型,描述的是伙伴企业参与虚拟企业组建的部分,可作为伙伴企业挑选的依据。
管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTLE A /V P31X119X218R E SE T9RD17WR16IN T 012IN T 113T014T115P 1 01P 1 12P 1 23P 1 34P 1 45P 1 56P 1 67P 1 78P 0 039P 0 138P 0 237P 0 336P 0 435P 0 534P 0 633P 0
改 )预分频器,计数器时钟频率的分频系数为 1~65536之间的任意数值。 3. 4个独立通道:输入捕获、输出比较、 PWM生成 (边缘或中间对齐模式 )、单脉冲模式输出。 4. 使用外部信号控制定时器和定时器互连的同步电路。 5. 如下事件发生时产生中断 /DMA:更新:计数器向上溢出 /向下溢出,计数器初始化 (通过软件或者内部 /外部触发 ); 触发事件 (计数器启动、停止
(1)完整的滑块结构,包含螺丝,销钉及自动切槽。 (2)完整的开模机构,包含螺丝,销钉及自动切槽。 (3)完整的斜顶结构,包含螺丝,销钉及自动切槽。 (4)模拟开模过程。 (5)平面图的孔表功能。 EMX 特点之三: 自动化配置 (1)预设所有标准件的名称。 (2)预设各类零件 的参数及参数值。 (3)螺栓,销钉自动安装。 (4)各类零件自动产生并归于相应图层。 (5)各类简化表达。
测是温度控制系统的一个很重要的环节 ,直接关系到系统性能。 在 PLC 温度控制系统中,温度的检测不仅要完成温度到模拟电压量的转换还要将电压转换为数字量送 PLC。 其一般结构如图 22 所示。 图 22 温度检测基本结构 温度传感器将测温点的温度变换为模拟电压,其值一般为 mA 级,需要放大为满足 A/D 转换要求的电压值。 然后送 PLC 的 A/D 转换模块进行A/D 转换