简单,可复制

点点滴滴,尽在文中

  :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
上一页 1 ··· 32 33 34 35 36 37 38 39 40 ··· 43 下一页

2012年2月17日

摘要: 前言 在项目中,需要用到判断主机是否可以ping,于是在网上找到了使用C语言的ping源码,但是难以复用,并加以改善:加入超时处理,容错处理,以C++类的封装性,调用更加简单。 本代码在ubuntu和freebsd上测试均都通过,理论上兼容Linux和Unix源代码简介 源代码分为三个文件:ping.h ping.cpp main.cpp,其中ping.h和ping.cpp提供了Ping类的操作,main.cpp是使用Ping类的使用例子,已经使用Ping类写了一个简单的ping程序。把Ping的输出移到了main.cpp,所以输出集中在main.cpp,主要的ping的逻辑处理在pin... 阅读全文
posted @ 2012-02-17 12:07 ggjucheng 阅读(15471) 评论(1) 推荐(3)

2012年2月10日

摘要: Linux上创建进程据说消耗很少,这个一直是Linux的特点,于是就专门测试Linux创建进程的极限,测试代码如下://fork.c#include #include #include #include #define MAXPROCESS 65535#define SLEEPTIME 60int main(int argc, char **argv) { pid_t pid; int count = 0; int maxprocess = MAXPROCESS; if (argc == 2) { maxprocess = atoi(argv[1]); ... 阅读全文
posted @ 2012-02-10 10:40 ggjucheng 阅读(8096) 评论(2) 推荐(1)

2012年2月9日

摘要: 棋魂本来不是23棋结局是因为在北斗杯篇,因为韩国棋士高永夏的设定, 引来韩国方面的不满,为了平息事件,集英社方面在故事才让韩国胜出,而且暂停连载(甚至完结),大家又点睇? 节录内文:棋魂书中出场人物常有影射现实棋士,高永夏的狂傲形象,影射的是南韩天才少年李世石,并且其实影射得很棒, 除了长相外,李世石就是这样的人,韩国读者受不受得了,则是另一回事 原著作者就是这样子....因为被人告....所以就无法 连载下去结局咁早完 因为引来韩国不满 所以暂停连载 所以作到光仔输左就是这样子...棋魂就结局都没有 但是给我在网上找到原著...棋魂结局...我本人很喜欢棋魂......... 以下就是真正的 阅读全文
posted @ 2012-02-09 17:20 ggjucheng 阅读(86276) 评论(2) 推荐(0)

2012年2月5日

摘要: 拥塞避免算法的修改建议1 9 9 0年提出 [Jacobson 1990b]。在介绍修改之前,我们认识到在收到一个失序的报文段时, TCP立即需要产生一个ACK(一个重复的ACK)。这个重复的ACK不应该被迟延。该重复的ACK的目的在于让对方知道收到一个失序的报文段,并告诉对方自己希望收到的序号。由于我们不知道一个重复的ACK是由一个丢失的报文段引起的,还是由于仅仅出现了几个报文段的重新排序,因此我们等待少量重复的ACK到来。假如这只是一些报文段的重新排序,则在重新排序的报文段被处理并产生一个新的ACK之前,只可能产生1 ~ 2个重复的ACK。如果一连串收到3个或3个以上的重复ACK,就非常可 阅读全文
posted @ 2012-02-05 20:01 ggjucheng 阅读(11277) 评论(0) 推荐(1)

摘要: 引言TCP提供可靠的运输层。它使用的方法之一就是确认从另一端收到的数据。但数据和确认都有可能会丢失。TCP通过在发送时设置一个定时器来解决这种问题。如果当定时器溢出时还没有收到确认,它就重传该数据。对任何实现而言,关键之处就在于超时和重传的策略,即怎样决定超时间隔和如何确定重传的频率。超时与重传的简单例子首先观察TCP所使用的重传机制,我们将建立一个连接,发送一些分组来证明一切正常,然后拔掉电缆,发送更多的数据,再观察TCP的行为。下图表示的是tcpdump的输出结果(已经去掉了bsdi设置的服务类型信息)。第1、2和3行表示正常的TCP连接建立的过程,第4行是“hello, world”(1 阅读全文
posted @ 2012-02-05 19:50 ggjucheng 阅读(10483) 评论(0) 推荐(0)

摘要: 引言TCP通过让接收方指明希望从发送方接收的数据字节数(即窗口大小)来进行流量控制。如果窗口大小为 0会发生什么情况呢?这将有效地阻止发送方传送数据,直到窗口变为非0为止。TCP不对ACK报文段进行确认, TCP只确认那些包含有数据的ACK报文段。如果一个确认丢失了,则双方就有可能因为等待对方而使连接终止:接收方等待接收数据(因为它已经向发送方通告了一个非 0的窗口),而发送方在等待允许它继续发送数据的窗口更新。为防止这种死锁情况的发生,发送方使用一个坚持定时器 (persist timer)来周期性地向接收方查询,以便发现窗口是否已增大。这些从发送方发出的报文段称为窗口探查 (window 阅读全文
posted @ 2012-02-05 19:40 ggjucheng 阅读(4003) 评论(3) 推荐(1)

2012年2月3日

摘要: 拥塞避免算法是一种处理丢失分组的方法。该算法假定由于分组受到损坏引起的丢失是非常少的(远小于1%),因此分组丢失就意味着在源主机和目的主机之间的某处网络上发生了拥塞。有两种分组丢失的指示:发生超时和接收到重复的确认。如果使用超时作为拥塞指示,则需要使用一个好的RTT算法。拥塞避免算法和慢启动算法是两个目的不同、独立的算法。但是当拥塞发生时,我们希望降低分组进入网络的传输速率,于是可以调用慢启动来作到这一点。在实际中这两个算法通常在一起实现。拥塞避免算法和慢启动算法需要对每个连接维持两个变量:一个拥塞窗口 cwnd和一个慢启动门限ssthresh。这样得到的算法的工作过程如下:1) 对一个给定的 阅读全文
posted @ 2012-02-03 17:50 ggjucheng 阅读(13316) 评论(0) 推荐(3)

摘要: 什么是糊涂窗口综合症当发送端应用进程产生数据很慢、或接收端应用进程处理接收缓冲区数据很慢,或二者兼而有之;就会使应用进程间传送的报文段很小,特别是有效载荷很小。 极端情况下,有效载荷可能只有1个字节;而传输开销有40字节(20字节的IP头+20字节的TCP头) 这种现象就叫糊涂窗口综合症发送端引起的糊涂窗口综合症如果发送端为产生数据很慢的应用程序服务(典型的有telnet应用),例如,一次产生一个字节。这个应用程序一次将一个字节的数据写入发送端的TCP的缓存。如果发送端的TCP没有特定的指令,它就产生只包括一个字节数据的报文段。结果有很多41字节的IP数据报就在互连网中传来传去。解决的方法是防 阅读全文
posted @ 2012-02-03 14:35 ggjucheng 阅读(5132) 评论(0) 推荐(2)

2012年2月2日

摘要: 慢启动定义慢启动,是传输控制协议使用的一种阻塞控制机制。慢启动也叫做指数增长期。慢启动是指每次TCP接收窗口收到确认时都会增长。增加的大小就是已确认段的数目。这种情况一直保持到要么没有收到一些段,要么窗口大小到达预先定义的阈值。如果发生丢失事件,TCP就认为这是网络阻塞,就会采取措施减轻网络拥挤。一旦发生丢失事件或者到达阈值,TCP就会进入线性增长阶段。这时,每经过一个RTT窗口增长一个段。慢启动解析发送方一开始便向网络发送多个报文段,直至达到接收方通告的窗口大小为止。当发送方和接收方处于同一个局域网时,这种方式是可以的。但是如果在发送方和接收方之间存在多个路由器和速率较慢的链路时,就有可能出 阅读全文
posted @ 2012-02-02 16:57 ggjucheng 阅读(30438) 评论(3) 推荐(5)

摘要: 前言虽然网络编程的socket大家很多都会操作,但是很多还是不熟悉socket编程中,底层TCP/IP协议的交互过程,本文会一个简单的客户端程序和服务端程序的交互过程,使用tcpdump抓包,实例讲解客户端和服务端的TCP/IP交互细节。TCP/IP协议IP头和TCP头格式如下:Internet Header Format 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 ... 阅读全文
posted @ 2012-02-02 11:08 ggjucheng 阅读(19045) 评论(1) 推荐(7)

上一页 1 ··· 32 33 34 35 36 37 38 39 40 ··· 43 下一页