网络技术
wangwenwen
这个作者很懒,什么都没留下…
展开
-
网络字节序与主机字节序
问题:在进行TCP通讯时,需要进行主机字节序和网络字节序的转换。可如果我要发送的数据是调用ReadFile()函数从文件里读出来的,也就是读出来的数据都是保存到char[]数组里的,那我用send函数发送时还需要转换字节序吗?回答:协议解析方面的数字类型需要转换,负载字节流的不需要关心。需要让网络函数认识的数据,才需要转换,比如ip,端口号。而实际发送的数据,是没有转换要求的。转载 2011-10-15 16:49:28 · 511 阅读 · 0 评论 -
网络地址相关数据结构与函数
函数声明:char *inet_ntoa (struct in_addr);函数功能:将网络地址转换成“.”点隔的字符串格式。 函数声明:int inet_aton(const char *string, struct in_addr*addr);函数功能:将一个字符串IP地址转换为一个32位的网络序列IP地址。参数描述: 1 输入参数string包含ASCII表示的IP地址。原创 2012-04-25 23:42:45 · 672 阅读 · 0 评论 -
单播、多播、广播、冲突域和广播域
什么是单播、多播、广播单播是客户端与服务器之间的点到点连接。"点到点"指每个客户端都从服务器接收远程流。仅当客户端发出请求时,服务器才发送单播流。多播也叫组播,是一种多地址的广播,发送和接受端是一对多的关系,服务器只向特定的一组用户发送一个数据包,组中的用户可以共享这个数据包,组外的用户是无法接受到的,多播需要全网内的路由器支持多播,否则许多用户是收不到多播数据的,在广域网实现比较困难。转载 2012-04-22 01:23:44 · 2291 阅读 · 0 评论 -
从缓冲上看阻塞与非阻塞socket在发送接收上的区别
首先socket在默认情况下是阻塞状态的,这就使得发送以及接收操作处于阻塞的状态,即调用不会立即返回,而是进入睡眠等待操作完成。 一.发送选用send(这里特指TCP)以及sendto(这里特指UDP)来描述 首先需要说明的是,不管阻塞还是非阻塞,在发送时都会将数据从应用缓冲区拷贝到内核缓冲区(SO_RCVBUF选项声明,除非缓冲区大小为0)。 在阻塞模式下se转载 2012-12-18 09:58:48 · 881 阅读 · 0 评论 -
[总结]TCP滑动窗口和SO_RCVBUF之间的关系
在以Unix为核心的一些操作系统中,SO_RCVBUF选项决定了TCP窗口的大小,你设置为多少窗口就为多少。对于客户端,SO_RCVBUF选项必须在connect之前设置;对于服务器,SO_RCVBUF选项必须在listen前设置。因为TCP的窗口规模选项是在建立连接时用SYN与对方互换得到的。 在Windows上可以随时设置,一但设置后,会随着下一个ACK包,或者普通数据包通告给对方最转载 2012-12-18 09:45:45 · 6339 阅读 · 0 评论 -
UDP传输中的数据包长度问题
在链路层,数据帧的内容最大为1500,即MTU(Maximum Transmission Unit)为1500;在网络层,因为IP包的首部要占用20字节,所以这的MTU为1500-20=1480;在传输层,对于UDP包的首部要占用8字节,所以这的MTU为1480-8=1472;在应用层,你的Data最大长度为1472。(当我们的UDP包中的数据多于MTU(1472)时,发送方的IP原创 2013-05-24 17:22:48 · 4686 阅读 · 0 评论 -
iptable 笔记
iptable更详细的教程:http://man.chinaunix.net/network/iptables-tutorial-cn-1.1.19.htmlIptables和netfilter的关系:这是第一个要说的地方,Iptables和netfilter的关系是一个很容易让人搞不清的问题。很多的知道iptables却不知道netfilter。其实iptables只是Linux防火墙的转载 2013-05-14 10:52:00 · 970 阅读 · 0 评论