摘要: 2.2 快重传和快恢复 如果发送方设置的超时计时器时限已到但还没有收到确认,那么很可能是网络出现了拥塞,致使报文段在网络中的某处被丢弃。这时,TCP马上把拥塞窗口 cwnd 减小到1,并执行慢开始算法,同时把慢开始门限值ssthresh减半。这是不使用快重传的情况。 快重传算法首先要求接收方每收到一个失序的报文段后就立即发出重复确认(为的是使发送方及早知道有报文段没有到达对方)而不要等到自己发送数据时才进行捎带确认。接收方收到了M1和M2后都分别发出了确认。现在假定接收方没有收到M3但接着收到了M4。显然,接收方不能确认M4,因为M4是收到的失序报文段。根据可靠传输原理,接收方可以什么都不做, 阅读全文
posted @ 2011-09-21 15:18 hnrainll 阅读(558) 评论(0) 推荐(0) 编辑
摘要: TCP的流量控制1. 利用滑动窗口实现流量控制 如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失。所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。 利用滑动窗口机制可以很方便地在TCP连接上实现对发送方的流量控制。 设A向B发送数据。在连接建立时,B告诉了A:“我的接收窗口是 rwnd = 400 ”(这里的 rwnd 表示 receiver window) 。因此,发送方的发送窗口不能超过接收方给出的接收窗口的数值。请注意,TCP的窗口单位是字节,不是报文段。TCP连接建立时的窗口协商过程在图中没有显示出来。再设每一个报文段为100字节长,而数据报文 阅读全文
posted @ 2011-09-21 15:16 hnrainll 阅读(828) 评论(0) 推荐(0) 编辑
摘要: libnet介绍与分析当前,基于socket的网络编程已成为当今不可替代的编程方法,它将网络通讯当作文件描述符进行处理,把对这个“网络文件”(即socket套接字)的操作抽象成一种类似于文件操作的方式进行。从实现细节上,这种工作方式根据TCP/IP的网络通讯模型,封装了一系列的实现,使得我们只需要使用一个指定的参数,就可以实现在基于所需协议的数据的发送和接收。但是,如果我们对那些系统自动给我们做的工作感兴趣,希望与发送的数据作“面对面”的接触,libnet则会是一个不错的选择。libnet是UNIX系统同台上网络安全工具开发的重要的库,它和libpcap、libnids一起,给网络安全工具的开 阅读全文
posted @ 2011-09-21 14:05 hnrainll 阅读(10065) 评论(1) 推荐(1) 编辑
摘要: 号称网络硬件三剑客的集线器(Hub)、交换机(Switch)与路由器(Router)一直都是网络界的活跃分子,但让很多初入网络之门的菜鸟恼火的是,它们三者不仅外观相似,而且经常呆在一起,要想分清谁是谁,感觉有点难!就让我们一起来看看它们之间有什么区别和联系吧!三剑客的工作原理一、集线器1.什么是集线器在认识集线器之前,必须先了解一下中继器。在我们接触到的网络中,最简单的就是两台电脑通过两块网卡构成“双机互连”,两块网卡之间一般是由非屏蔽双绞线来充当信号线的。由于双绞线在传输信号时信号功率会逐渐衰减,当信号衰减到一定程度时将造成信号失真,因此在保证信号质量的前提下,双绞线的最大传输距离为100米 阅读全文
posted @ 2011-09-21 11:52 hnrainll 阅读(7205) 评论(0) 推荐(0) 编辑
摘要: Linux下Sniffer程序的实现http://www.nsfocus.net/index.php?act=magazine&do=view&mid=1797 阅读全文
posted @ 2011-09-21 10:25 hnrainll 阅读(401) 评论(0) 推荐(1) 编辑
摘要: 大多数程序员所接触到的套接字(Socket)为两类: (1)流式套接字(SOCK_STREAM):一种面向连接的Socket,针对于面向连接的TCP服务应用; (2)数据报式套接字(SOCK_DGRAM):一种无连接的Socket,对应于无连接的UDP服务应用。 从用户的角度来看,SOCK_STREAM、SOCK_DGRAM这两类套接字似乎的确涵盖了TCP/IP应用的全部,因为基于TCP/IP的应用,从协议栈的层次上讲,在传输层的确只可能建立于TCP或UDP协议之上(图1),而SOCK_STREAM、SOCK_DGRAM又分别对应于TCP和UDP,所以几乎所有的应用都可以用这两类套接字实... 阅读全文
posted @ 2011-09-21 09:26 hnrainll 阅读(470) 评论(0) 推荐(0) 编辑
摘要: “计算机编程中极少人是真正的艺术家,大多数人充其量不过是房屋粉刷匠而已。”———Tim Bryce 管理顾问 Tim Bryce 不喜欢程序员,而许多程序员也不喜欢他。(注:Tim Bryce 发布过一篇名为《P理论:管理程序员的哲学》的文章。)Bryce对程序员的看法:程序员都是故弄玄虚,妄自尊大的家伙。与其它大学程度的工作者相比,普通程序员的智商要低。程序员总显得邋里邋遢,精神涣散。程序员做事杂乱无章,因此很难评估他们工作的进度,其技术也尽显不足之处。程序员的典型表现是常常埋怨自己工作过量,薪酬过低,所受的重视过少。程序员自诩对科技发展怀有无比的好奇心。 然而,好奇心是需要通过管理慎重培养 阅读全文
posted @ 2011-09-21 06:54 hnrainll 阅读(625) 评论(0) 推荐(0) 编辑