网络通信
文章平均质量分 59
「已注销」
这个作者很懒,什么都没留下…
展开
-
TCP:经受时延的Ack
通常TCP在接收到数据时并不立即发送ACK;相反,会推迟发送,以便将ACK与需要沿该方向发送的数据一起发送(有时称这种现象为稍带ACK)。绝大多数实现采用的时延为200ms,也就是说,TCP将以最大200ms的时延等待是否有数据一起发送。 如果接收端在从收到数据开始200ms定时器超时之后还是没有数据需要向对端发送的话,这时TCP收端才会单独向对端发送一个A原创 2014-03-28 22:58:25 · 1070 阅读 · 0 评论 -
TCP/IP网络编程的四书五经
[本文发表于《程序员》杂志2003年第12期,作者孟岩] TCP/IP协议是当前广域网和局域网通用的网络协议,因此,基于TCP/IP的编程就格外重要。从应用上来说,现在直接利用C层次Socket API进行TCP/IP编程的人确实越来越少了,各种现成的框架(如ACE、Java、.NET FCL)和控件(如IP*Works)大大简化了TCP/IP编程的难度。但是,如果想转载 2014-03-20 22:59:04 · 824 阅读 · 0 评论 -
协议头详解一:IP及IP分片
写在前面 I P是T C P / I P协议族中最为核心的协议。所有的 T C P、U D P、I C M P及I G M P数据都以I P数据 报格式传输 。许多刚开始接触 T C P / I P的人对 I P 提供不可靠、无连接的数据报传送服务感到很奇怪,特别是那些有 X . 2 5或S N A背景知识的人。 不可靠( u n r e l i a b原创 2014-03-23 23:31:28 · 1332 阅读 · 0 评论 -
协议头详解一:TCP首部
TCP数据被封装在一个IP数据报中,如下图: TCP在IP数据报中的封装TCP的首部数据格式,如不计选项字段,它通常是20个字节,如下图:原创 2014-03-25 00:00:51 · 1761 阅读 · 0 评论 -
TCP:半关闭
何为半关闭?TCP提供了连接的一端在结束它的发送后还能接收来自另一端数据的能力。这就是所谓的半关闭。怎么使用半关闭?为了使用这个特性,编程接口必须为应用程序提供一种方式来说明“我已经完成了数据 传送,因此发送一个文件结束( F I N)给另一端,但我还想接收另一端发来的数据,直到它给 我发来文件结束( F I N) ”。 如果应用程序不调用c l o s e而调用s h u原创 2014-03-26 16:47:10 · 3147 阅读 · 0 评论 -
TCP:SEQ号与ACK号
三次握手Three-way Handshake一个虚拟连接的建立是通过三次握手来实现的1. (B) –> [SYN] –> (A)假如服务器A和客户机B通讯. 当A要和B通信时,B首先向A发一个SYN (Synchronize) 标记的包,告诉A请求建立连接.注意: 一个 SYN包就是仅SYN标记设为1的TCP包(参见TCP包头Resources). 认识到这点很重要,只有原创 2014-03-21 23:59:35 · 18769 阅读 · 6 评论 -
TCP:三次握手/四次握手
socket 中TCP的三次握手建立连接详解我们知道tcp建立连接要进行“三次握手”,即交换三个分组。大致流程如下:客户端向服务器发送一个SYN J服务器向客户端响应一个SYN K,并对SYN J进行确认ACK J+1客户端再想服务器发一个确认ACK K+1只有就完了三次握手,但是这个三次握手发生在socket的那几个函数中呢?请看下图:图1、socket中发送的TCP三次原创 2014-03-26 15:18:39 · 1071 阅读 · 0 评论