网络编程面试题

1.select/poll/epoll模型的区别

1)select和poll都是扫描,而epoll是回调,后者效率高。

2)select内部是数组实现,poll内部是链表实现,而epoll内部是一棵红黑树。

3)select有最大fd限制,而poll和epoll没有最大限制。

4)select和epoll都有用户态到内核态的拷贝,两者的切换和数据拷贝都很消耗性能。epoll采用共享内存机制,没有用户态和内核态的切换。


2.epoll模型中LT和ET的区别

在LT模式中,内核告诉我们文件描述符是否就绪了,然后我们可以对这个就绪的fd进行IO操作。如果不作任何操作,内核还是会继续通知我们。select和poll都是这种模式。

在ET模式中,内核告诉我们文件描述符是否就绪了,如果我们不立即对就绪的描述符进行操作,描述符将一直处于就绪状态并且内核不在通知该描述符,直到我们的操作使描述符不再为就绪态。


3.影响服务器性能的四大杀手

1)

2)

3)

4)

参考:http://blog.sina.com.cn/s/blog_72995dcc0102uzdg.html


4.大端与小端的概念

对于一个由2字节组成的16位的整数,在内存中存储这两个字节有两种方法:一种是将低序字节存储在起始地址,这称为小端字节序;另一种是将高序字节存储在起始地址,这称为大端字节序。

你可能感兴趣的:(网络编程面试题)