网络编程
yuanzhangmei1
这个作者很懒,什么都没留下…
展开
-
linux套接字选项—getsockopt和setsockopt
1.函数原型:int getsockopt(int sockfd,int level,int optname,void *optval,socklen_t *optlen)int setsockopt(int sockfd,int level,int optname,const void *optval,socklen_t *optlen)2.参数说明:level指定控制套接字转载 2012-11-27 17:19:14 · 1511 阅读 · 0 评论 -
揭开网络编程常见API的面纱【上】
Linux网络编程API函数初步剖析 今天我们来分析一下前几篇博文中提到的网络编程中几个核心的API,探究一下当我们调用每个API时,内核中具体做了哪些准备和初始化工作。 1、socket(family,type,protocol) 当我们在开发网络应用程序时,使用该系统调用来创建一个套接字。该API所做的工作如下所示: 该系转载 2012-11-19 22:28:30 · 533 阅读 · 0 评论 -
linux内核网络,数据发送流程图
4.2 数据发送流程图各层主要函数以及位置功能说明: 1)sock_write:初始化msghdr{}结构 net/socket.c 2)sock_sendmsg:net/socket.c 3)inet_sendmsg:net/ipv4/af_net.c 4)tcp_sendmsg:申请sk_buff{}结构的转载 2012-11-19 22:27:00 · 913 阅读 · 0 评论 -
揭开网络编程常见API的面纱【下】
Linux网络编程数据收发的API流程分析 只要把数据在协议栈中的流动线路和脉络弄清楚了,关于协议栈的实现部分,理解起来就轻松多了。在网络编程章节的数据接收过程中,我们主要介绍过read()、recv()、recvfrom()还有一个recvmsg()没介绍到,今天我们就来看一下这几个API函数到底有什么差别。数据接收 在接收数据的过程,主要分两转载 2012-11-19 22:29:17 · 468 阅读 · 0 评论 -
linux 内核网络,数据接收流程图
4.3 数据接收流程图各层主要函数以及位置功能说明: 1)sock_read:初始化msghdr{}的结构类型变量msg,并且将需要接收的数据存放的地址传给msg.msg_iov->iov_base. net/socket.c 2)sock_recvmsg: 调用函数指针sock->ops->recvmsg(转载 2012-11-19 22:25:59 · 868 阅读 · 1 评论 -
TCP,UDP
TCP : 1、提供一个连接 2、提供可靠性,要求对端返回一个确认信息。失败则重传或等待一段时间,最后不行就放弃。 3、含有动态估算时间RTT算法。 4、关联一个序号,尽管接收方接受的分节不是按顺序的,而接收方可以按照序列号来重新排序。原创 2012-12-01 10:53:30 · 617 阅读 · 0 评论 -
网络互联设备对比
网络互联设备,转发器、集线器、网桥、交换机、路由器和网关转发器、集线器、网桥、交换机、路由器和网关都是网络互连设备。 转发器(Repeater)又被称为中继器或放大器,执行物理层协议,负责第一层(物理层)的数据中继,实现电气信号的“再生”。用于互连两个相同类型的网段,主要功能是延伸网段和改变传输媒体,从而实现信息位的转发。它本身不执行信号的过滤功能。 集线转载 2012-11-29 11:23:25 · 872 阅读 · 0 评论 -
TIME_WAIT是什么?
在TCP断开的过程中会有四个状态变化过程,如下图所示:在连接撤销过程中,有如下过程: 1.HOST1上的应用程序关闭己方的连接导致TCP发送一个FIN消息给HOST2。2.HOST2发送一个确认消息给HOST1,并且HOST2把FIN作为EOF递交给HOST2上的应用程序。3.一段时间转载 2012-11-15 11:23:49 · 504 阅读 · 0 评论 -
非阻塞connect编写方法介绍
TCP连接的建立涉及到一个三次握手的过程,且SOCKET中connect函数需要一直等到客户接收到对于自己的SYN的ACK为止才返回,这意味着每个connect函数总会阻塞其调用进程至少一个到服务器的RTT时间,而RTT波动范围很大,从局域网的几个毫秒到几百个毫秒甚至广域网上的几秒。这段时间内,我们可以执行其他处理工作,以便做到并行。在此,需要用到非阻塞connect。本文主要介绍了非阻塞conn转载 2012-12-07 15:34:41 · 8860 阅读 · 0 评论