![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络技术
文章平均质量分 78
haoyu_linux
先做知识的搬运工,然后再谈创造。
展开
-
如何设置linux socket为非阻塞
将一个socket 设置成阻塞模式和非阻塞模式,使用fcntl方法,即:设置成非阻塞模式:先用fcntl的F_GETFL获取flags,用F_SETFL设置flags|O_NONBLOCK; 即: flags = fcntl(sockfd, F_GETFL, 0); //获取文件的flags值。 f转载 2015-03-16 15:27:39 · 10006 阅读 · 3 评论 -
NAT打洞原理(转)
NAT路由器打洞原理什么是打洞,为什么要打洞由于Internet的快速发展 IPV4地址不够用,不能每个主机分到一个公网IP 所以使用NAT地址转换。下面是我在网上找到的一副图 一般来说都是由私网内主机(例如上图中“电脑A-01”)主动发起连接,数据包经过NAT地址转换后送给公网上的服务器(例如上图中的“Server”),连接建立以后可双向传送数据,NAT设备允许私转载 2015-03-13 11:32:43 · 588 阅读 · 0 评论 -
什么是带外数据?
带外数据(out—of—band data),有时也称为加速数据(expedited data), 是指连接双方中的一方发生重要事情,想要迅速地通知对方。 这种通知在已经排队等待发送的任何“普通”(有时称为“带内”)数据之前发送。 带外数据设计为比普通数据有更高的优先级。 带外数据是映射到现有的连接中的,而不是在客户机和服务器间再用一个连接。 在字节流服务中,由于没转载 2015-04-07 14:16:53 · 2249 阅读 · 0 评论 -
网络拥塞控制---传统TCP存在的缺陷
这个世界在一直变化着,任何事物如果停留在原地,最终是要被淘汰的,TCP的拥塞控制算法也是如此。90年代中后期到21世纪以来,Internet得到迅猛发展,首先是拥塞现象变得越来越严重,其次是高带宽的网络出现,从100Mbps到1Gbps到10Gbps,再者很多对数据敏感的应用越来越多,如音视频应用等,这些对TCP的传统的拥塞控制算法提出了巨大的挑战。首先来看高带宽和高时延网络情况,这种网络转载 2015-04-21 10:15:14 · 771 阅读 · 0 评论 -
关于select中fd限制问题
select 是多路复用,或异步模型中经常用到的一个系统调用。 基本原型为: int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); 该函数的一个缺点就是nfds不能太大。上限为1024.为什么会有这样的限制,今天就来一起看看se转载 2015-05-18 09:48:16 · 780 阅读 · 0 评论 -
几种TCP连接中出现RST的情况
应该没有人会质疑,现在是一个网络时代了。应该不少程序员在编程中需要考虑多机、局域网、广域网的各种问题。所以网络知识也是避免不了学习的。而且笔者一直觉得TCP/IP网络知识在一个程序员知识体系中必需占有一席之地的。在TCP协议中RST表示复位,用来异常的关闭连接,在TCP的设计中它是不可或缺的。发送RST包关闭连接时,不必等缓冲区的包都发出去,直接就丢弃缓存区的包发送RST包。而接收端收到R转载 2015-06-05 09:02:53 · 536 阅读 · 0 评论 -
CRC校验C实现
CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。CRC校验实用程序库在数据存储和数据通讯领域,为了保证数据的正确,就不得不采用检错的手段。以下是CRC32的C语言实现,经过测试,能够正确运行:/***********************************原创 2015-07-13 10:22:35 · 681 阅读 · 0 评论 -
C++的XML编程经验――LIBXML2库使用指南
写这篇文章的原因有如下几点:1)C++标准库中没有操作XML的方法,用C++操作XML文件必须熟悉一种函数库,LIBXML2是其中一种很优秀的XML库,而且它同时支持多种编程语言;2)LIBXML2库的Tutorial写得不太好,尤其是编码转换的部分,不适用于中文编码的转换;3)网上的大多数关于Libxml2的介绍仅仅是翻译了自带的资料,没有详细介绍如何在windows平台下进行编程,更很少提到如转载 2015-07-14 13:56:58 · 404 阅读 · 0 评论 -
iptables 从链、表开始理解
Filter表:过滤数据包,默认表。 (1)INPUT 链:过滤所有目标地址是本机的数据包(对进入本机数据包的过滤)(2)OUTPUT 链:过滤所有本机产生的数据包(对源地址得数据包的过滤) (3)FORWARD链:过滤所有路过本机的数据包(源地址和目标地址都不是本机的数据包。 NAT表:网络地址转换(Network Address Translation转载 2015-09-07 15:30:02 · 486 阅读 · 0 评论