2013年7月28日

UNIX网络编程——TCP—经受时延与nagle算法、滑动窗口、拥塞窗口

摘要: 1、经受时延: TCP在接收到数据时并不立即发送ACK,相反,它推迟发送,以便将ACK与需要沿该方向发送的数据一起发送,时延为200ms,超过时延范围,发送确认。 2、nagle算法: 一个TCP连接上最多只能有一个未被确认的未完成的小分组,在该分组的确认到达之前不能发送其他的小分... 阅读全文

posted @ 2013-07-28 23:07 疯子123 阅读(157) 评论(0) 推荐(0) 编辑

UNIX网络编程——带外数据小结

摘要: TCP没有真正的带外数据,不过提供紧急模式和紧急指针。一旦发送端进入紧急模式,紧急指针就出现在发送到对端的分节中的TCP首部中。连接的对端收取该指针是在告知接收进程发送端已经进入紧急模式,而且该指针指向紧急数据的最后一个字节。然而所有数据的发送仍然受TCP正常的流量控制支配。 ... 阅读全文

posted @ 2013-07-28 22:57 疯子123 阅读(114) 评论(0) 推荐(0) 编辑

UNIX网络编程——send与recv函数详解

摘要: #include ssize_t recv(int sockfd, void *buff, size_t nbytes, int flags);ssize_t send(int sockfd, const void *buff, size_t nbytes, int flags);send和rec... 阅读全文

posted @ 2013-07-28 22:43 疯子123 阅读(180) 评论(0) 推荐(0) 编辑

UNIX网络编程——关于socket阻塞与非阻塞情况下的recv、send、read、write返回值

摘要: 1、阻塞模式与非阻塞模式下recv的返回值各代表什么意思?有没有 区别?(就我目前了解阻塞与非阻塞recv返回值没有区分,都是 0接收到数据大小,特别:返回 值 0发送数据大小,特别:返回值 0表示接收到数据。 这2种模式下的返回值是不是这么理解,有没有跟详细的理解或跟准确的 说明? 4、阻塞模... 阅读全文

posted @ 2013-07-28 21:37 疯子123 阅读(200) 评论(0) 推荐(0) 编辑

UNIX网络编程——TCP服务器“拒绝服务攻击” 解决方案

摘要: 前面的博客>里面的拒绝服务型攻击也有提到。 说这是一个完全的解决方案,其实有点夸大了,但这个方案确实可以缓解TCP服务器遭受“拒绝服务攻击”时表现出的脆弱性。 当服务器以TCP的方式提供服务时,客户端通过tcp连接上服务器。这时,恶意的程序,也可以通过tcp连... 阅读全文

posted @ 2013-07-28 21:25 疯子123 阅读(225) 评论(0) 推荐(0) 编辑

UNIX网络编程——客户/服务器心搏函数

摘要: 阅读此博客时,可以参考以前的博客>和>。 下面是关于回送客户和服务器程序开发一些简单的心搏函数。这些函数可以发现对端主机或到对端的通信路径的过早失效。 在给出这些函数之前我们必须提出一些警告。首先,有人会想到使用TCP的保持存活特性(SO_KEEP... 阅读全文

posted @ 2013-07-28 20:31 疯子123 阅读(187) 评论(0) 推荐(0) 编辑

UNIX网络编程——TCP带外数据小结

摘要: 带外数据概念实际上时向接收端传送三个不同的信息:(1)发送端进入紧急模式这个事实。接收进程得以通知这个事实的手段不外乎SIGURG信号或select调用。本通知在发送进程发送带外字节后由发送端TCP立即发送,即使往接收端的任何数据发送因流量控制而停止了,TCP仍然发送本通知。本通知可... 阅读全文

posted @ 2013-07-28 20:04 疯子123 阅读(183) 评论(0) 推荐(0) 编辑

UNIX网络编程——sockatmark函数

摘要: 每当收到一个带外数据时,就有一个与之关联的带外标记。这是发送进程发送带外字节时该字节在发送端普通数据流中的位置。在从套接字读入期间,接收进程通过调用sockatmark函数确定是否处于带外标记。#include int sockatmark(int sockfd); /* 返回值:如... 阅读全文

posted @ 2013-07-28 19:36 疯子123 阅读(173) 评论(0) 推荐(0) 编辑

导航