网络
文章平均质量分 86
zhaofuguang
这个作者很懒,什么都没留下…
展开
-
recv send 的 MSG_DONTWAIT 、 MSG_WAITALL 参数
基本概念:阻塞IO::socket 的阻塞模式意味着必须要做完IO 操作(包括错误)才会返回。非阻塞IO::非阻塞模式下无论操作是否完成都会立刻返回,需要通过其他方式来判断具体操作是否成功。IO模式设置:一般对于一个socket 是阻塞模式还是非阻塞模式有两种方式::方法1、fcntl 设置;方法2、recv,send 系列的参数。(读取,发送时,临时将sockfd或filefd设置为非阻塞)方法一、fcntl 函数可以将一个socket 句柄设置成非阻塞模...转载 2021-06-15 09:06:37 · 1021 阅读 · 1 评论 -
特殊的IP地址介绍
就像我们每个人都有一个身份证号码一样,网络里的每台电脑(更确切地说,是每一个设备的网络接口)都有一个IP地址用于标示自己。我们可能都知道这些地址由四个字节组成,用点分十进制表示以及它们的A,B,C分类等,然而,在总数大约为四十多亿个可用IP地址里,你知道下面一些常见的有特殊意义地址吗?我们一起来看看吧: 一、0.0.0.0 严格说来,0.0.0.0已经不是一个真正意义上的IP地转载 2014-10-21 10:06:49 · 420 阅读 · 0 评论 -
四种I P广播地址详谈
受限的广播 受限的广播地址是2 5 5 . 2 5 5 . 2 5 5 . 2 5 5。该地址用于主机配置过程中I P数据报的目的地址,此时,主机可能还不知道它所在网络的网络掩码,甚至连它的I P地址也不知道。在任何情况下,路由器都不转发目的地址为受限的广播地址的数据报,这样的数据报仅出现在本地网络中。 一个未解的问题是:如果一个主机是多接口的,当一个进程向本网广播地址发送数据转载 2014-10-21 10:11:48 · 604 阅读 · 0 评论 -
OSI七层模型详解
OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 。完成中继功能的节点通常称为中继系统。在OSI七层模型中,处于不同层的中继系统具有不同的名称。 一个设备工作在哪一层,关键看它工作时利用哪一层的数据头部信息。网桥工作时,是以MAC头部来决定转发端口的,因此显然它是数据链路层的设备。转载 2014-10-28 14:00:56 · 726 阅读 · 0 评论 -
linux服务器上的11种tcp状态
说明: 通常情况下:一个正常的TCP连接,都会有三个阶段:1、TCP三次握手;2、数据传送;3、TCP四次挥手里面的几个概念:SYN: (同步序列编号,Synchronize Sequence Numbers)ACK: (确认编号,Acknowledgement Number)FIN: (结束标志,FINish)TCP三次握手(创建 OPEN)客户端发起一个和服务创转载 2013-10-28 14:41:55 · 1074 阅读 · 0 评论 -
TCP连接的状态与关闭方式,及其对Server与Client的影响
首先介绍一下TCP连接建立与关闭过程中的状态。TCP连接过程是状态的转换,促使状态发生转换的因素包括用户调用、特定数据包以及超时等,具体状态如下所示:CLOSED:初始状态,表示没有任何连接。LISTEN:Server端的某个Socket正在监听来自远方的TCP端口的连接请求。SYN_SENT:发送连接请求后等待确认信息。当客户端Socket进行Connect连接时,会首先发送SYN包,随即进入S原创 2013-10-18 14:55:54 · 9592 阅读 · 0 评论 -
非阻塞socket调用connect, epoll和select检查连接情况示例
我们知道,linux下socket编程有常见的几个系统调用:对于服务器来说, 有socket(), bind(),listen(), accept(),read(),write()对于客户端来说,有socket(),connect()这里主要要讲的是客户端这边的connect函数。对于客户端来说,需要打开一个套接字,然后与对端服务器连接,例如: 1 in转载 2014-07-18 11:10:16 · 444 阅读 · 0 评论 -
linger结构体属性
TCP连接断开的时候调用closesocket函数,已经讨论过有优雅的断开和强制断开,那么如何设置断开连接的方式呢?是通过设置socket描述符一个linger结构体属性。linger结构体数据结构如下:struct linger{ int l_onoff; int l_linger;};有三种组合方式:第一种 l_onoff = 0;转载 2014-07-18 12:26:37 · 1160 阅读 · 0 评论 -
Linux网卡中断使单个CPU过载
Linux内核在性能方面已经经历了很长一段时间的考验,尤其是2.6/3.x内核。然而,在高IO,尤其是网络方面的情况下,对中断的处理可能成为问题。我们已经在拥有一个或多个饱和1Gbps网卡的高性能系统上发现过这个问题,近来在有许多小包并发(大约10000packets/second)超载的虚拟机上也发现了这个问题。原因很清楚:在最简单的模式中,内核通过硬件中断的方式来处理每个来自于网卡转载 2014-08-06 09:43:57 · 2266 阅读 · 0 评论 -
linux内核软中断引起大量丢包
最近用linux做nat多出口时,遇到的几个问题,经过一个星期的资料查找跟具体实践终于给解决了,由于的问题复杂性,加之个人水平十分有限,解决的过程十分的痛苦,为了使更多的人,不痛苦或者少痛苦一点,介绍一下问题解决的过程。先说说环境1.硬件:DELL R4102.网卡:板载1000MBCM57092.OS: RHEL 5.5 x86_643.KERNEL: 2.6.18-194.转载 2014-08-06 10:11:36 · 1497 阅读 · 1 评论 -
socket中的SO_REUSEADDR
Q: 我正在写一个unix server程序,不是daemon,经常需要在命令行上重启它,绝大多数时候工作正常,但是某些时候会报告"bind: address in use",于是重启失败。A: Andrew Gierthserver程序总是应该在调用bind()之前设置SO_REUSEADDR套接字选项。至于TIME_WAIT状态,你无法避免,那是TCP协议的一部分。Q: 如转载 2014-08-18 09:36:09 · 367 阅读 · 0 评论 -
网络原理VMware Workstation虚拟网络
网络原理,以及对VMware Workstation虚拟网络VMnet0、VMnet1、VMnet8的图解借鉴了:http://hi.baidu.com/whitelocus/blog/item/d091ded88ac669e038012f5a.html1. 文中符号的说明: : 可以理解成A,也可以理解成B。2. 术语 调制解调器(Mode转载 2014-10-22 16:43:26 · 800 阅读 · 0 评论 -
TCP协议-TCP包格式
TCP数据包格式TCP协议也是建立在IP协议之上的,不过TCP协议是可靠的.按照顺序发送的.TCP的数据结构比前面的结构都要复杂. 行 0.......4.......8..10...........16..............24..............32 -----------------------------------------------转载 2013-10-28 13:38:17 · 1719 阅读 · 0 评论 -
Windows系统下的TCP参数优化
通常会采用修改注册表的方式改进Windows的系统参数。下面将为大家介绍Windows系统下的TCP参数优化方式,适用于Windows 2003、Windows XP、Windows 7以及Server版。对于具体的系统环境与性能需求,优化方式会有所差异,效果也不尽相同,仅是个人的建议。所有的优化操作都通过修改注册表实现,需要使用regedit命令进入注册表并创建或修改参数,修改完成后需要重启系统原创 2013-10-18 14:55:56 · 910 阅读 · 0 评论