select、poll、epoll__2018.07.30

本文探讨了网络编程中的核心概念,包括select与epoll的机制与效率对比,不同网络端口的功能介绍,以及TCP链接管理和心跳包的设计。深入解析了epoll的LT与ET模式,展示了网络编程的细节与技巧。
摘要由CSDN通过智能技术生成

select集合的大小是1024个。

select的效率太低,它在用户空间创建一个描述符的集合,当有时间就绪时,就把整个描述符拷贝到内核空间,在内核空间全部遍历一遍,找出就绪的事件,再进行处理。

epoll直接在内核事件表中添加事件,当有事件就绪时,描述符调用自己的回调函数,处理事件。

epoll的LT模式、ET模式。LT模式会一直提醒,直到读完。ET模式只提醒一次,读不读完是你的事情。

一个进程可以使用多个端口,一个端口也可以共用一个端口号。

http:80

https:443

MySQL:3306

ftp:21、20(控制信息、传输信息)

ssh:22

协议就是共同遵守的标准和约定。

connect建立链接。

如何查看某个网络链接中tcp的发送缓冲区和接收缓冲区还有多少数据没有发送出去,send成功只能说明成功地把数据写到发送缓冲区。

netstat -natp

《uninx网络编程》第五章。

tcp是面向面向链接的,什么时候链接都不能断开,序列号也不能有错误。这种情况会不会断开链接。对方会不会感知到。

当客户端去链接一个没有开启的程序,会返回一个rst报文,复位报文。

tcp的流式服务,会存在一个粘包问题。

心跳包:定时发送一个数据包,去探测一下对方是否存在。

ICMP被封装到IP里面,它和IP是同一层的,但它同IP来直接做。

ARP:地址解析协议。

内核中最常见的就是链表和红黑树。

ep_poll_callback,注册回调函数,当描述符上有数据就绪时,设备驱动程序调用回调函数。

epoll_wait:当rdlist有数据时,将其拷贝到用户空间。拷贝到用户空间的数目,作为返回值。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值