计算机网络
文章平均质量分 82
长着胡萝卜须的栗子
这个作者很懒,什么都没留下…
展开
-
IO多路复用之epoll函数详解
epoll 在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。 相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。 相对于select和poll来说,epoll更加灵活,没有描述符原创 2016-08-17 01:34:07 · 7549 阅读 · 1 评论 -
IO多路复用之poll函数详解
poll poll的机制与select类似,与select在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是poll没有最大文件描述符数量的限制。 poll和select同样存在一个缺点就是,包含大量文件描述符的数组被整体复制于用户态和内核的地址空间之间,而不论这些文件描述符是否就绪,它的开销随着文件描述符数量的增加而线性增大。poll函数 函数格式如下所示:原创 2016-08-17 01:05:01 · 6916 阅读 · 0 评论 -
【TCP/IP协议】计算机网络中端口号及分类
端口号 任何时候,多个进程都可能同时使用TCP,UDP和SCTP这三种传输层协议中的任何一种,这三种协议都是用16位整数的端口号来区分这些进程。 简单来说: IP地址是标识在网络内的唯一一台主机端口号是标识在主机内中唯一的一个进程 所以IP地址加端口号就可以标识一个网络中的唯一一个进程,这就是网络通信的原理,在socket编程中,IP地址加端口号就是套接字。 这方面的知识在原创 2016-08-05 16:37:37 · 3429 阅读 · 0 评论 -
【计算机网络】——TCP/IP网络层,IP地址,IP协议,IP数据报的分片及组装详解
网络层 TCP/IP体系中网络层十分重要,本篇文章主要介绍IP(Internet Protocol)协议。 网络层的主要作用是“实现终端节点之间的通信”。这种终端节点之间的通信也叫作“点对点通信”。 网络层的下一层——数据链路层,主要作用是在互联同一种数据链路的节点之间进行宝传递。如果要跨越多种数据链路,就要借助网络层了。 网络层可以跨越不同的数据链路,即使在不同的数据链路上也能原创 2016-08-02 01:42:59 · 3160 阅读 · 0 评论 -
【TCP/IP】TIME_WAIT状态及地址reuse问题,SO_REUSEADDR参数详解
TCP/IP四次挥手 在TCP/IP协议取消连接的时候会进行四次挥手过程: 当某个应用进程主动关闭的时候,该端TCP会发送一个FIN分节,表示数据发送完毕。 接收到这个FIN的对端执行被动关闭,这个FIN由TCP进行确认,他的接受也作为一个文件结束符EOF传递给接收端应用进程,因为FIN的接受意味着接收端应用进程在相应连接上再无额外数据可以接受。 一段时间后,接受原创 2016-08-07 01:26:45 · 4947 阅读 · 1 评论 -
【TCP/IP】TCP的三次握手,四次挥手过程详解
TCP传输控制协议 TCP是一个面向连接的协议,为用户进程提供可靠的全双工字节流。TCP套接字是一种流套接字,TCP关心确认、超时和重传之类的细节。 首先,TCP提供客户与服务器之间的连接。TCP客户先与某个给定服务器建立一个连接,再跨该连接与那个服务器交换数据,然后终止这个连接。可靠性 其实TCP还提供了可靠性。当TCP向另一端发送数据时,他要求对端返回一个确认,如果没有收到确认,TCP就自原创 2016-08-07 17:31:42 · 2462 阅读 · 0 评论 -
服务器编程——gethostbyname函数
使用这个函数,首先要包含2个头文件:#include <netdb.h>#include <sys/socket.h>struct hostent *gethostbyname(const char *name); 这个函数的传入值是域名或者主机名,例如”www.google.com”,”wpc”等等。 传出值,是一个hostent的结构(如下)。 如果函数调用失败,将返回NULL。原创 2016-09-17 15:09:10 · 1895 阅读 · 0 评论 -
socket编程选项——setsockopt和getsockopt
头文件:#include <sys/types.h> #include <sys/socket.h> setsockopt函数原型: int setsockopt(int sockfd, int level, int optname, const void* optival, socklen_t optlen); 功能: 用于任意类型、任意状态套接口的设置选项值. 参数: sockf原创 2016-09-17 15:33:34 · 4177 阅读 · 0 评论 -
select,poll,epoll优缺点及比较
在之前我已经分析了这三个函数,请看我之前的文章: IO多路复用之select函数详解 IO多路复用之poll函数详解 IO多路复用之epoll函数详解 这篇文章只总结优缺点,以便面试时回答。select优点1)select()的可移植性更好,在某些Unix系统上不支持poll() 2)select() 对于超时值提供了更好的精度:微秒,而poll是毫秒。select缺点1) 单个进程原创 2016-08-17 01:51:11 · 15088 阅读 · 8 评论