对tcp/ip协议层次的新认识
链路层根据不同的MAC地址将数据分流到不同的物理实体;
IP层根据不同的IP将数据分流到不同的网络实体;
传输层根据不同的端口将数据分流到不同的网络应用程序;
套接字层根据不同的socket描述符将应用程序的数据分发到不同的线程与进程。
对tcp/ip中的listen与accept的新认识
主要是accept,它会将应用程序阻塞,accept会返回一个新的socket描述符。
那么这个socket描述符会与新的端口挂钩吗?
新创建的socket描述符并未与任何端口绑定,也就是说没有占用新的端口。
也就是说listen与accept使用的是同一个端口。
也正好说明端口表示这网络实体上的应用程序。
端口代表着应用程序。
socket描述符与端口的新认识
socket描述符并不是与端口一一对应的,一个端口对应多个socket描述符。
例如:
listen在某个端口上监听,accept接受多个新的连接,也就是socket描述符。
连接的概念就是建立的端口之上的。
常见的epoll,poll,select是处在套接字层次的系统调用,实际上可以认为同一个端口上的数据分流就是多个socket描述符体现。
阅读(1270) | 评论(0) | 转发(0) |