1,TCP/IP协议族分层结构:应用层(HTTP,FTP...),传输层(TCP,UDP),网络层(IP),数据链路层。
2,Socket是对TCP/IP协议中 传输层和网络层的抽象(封装),可以供应用层直接使用。有一个形象的比喻,HTTP比喻为一辆轿车,Socket比喻为一台发动机。
3,IP协议本身决定了其不可靠传输;TCP的三次握手建立连接和四次分手断开连接保证了其相对可靠。
4,UDP在大家的印象中是作为TCP的补充而存在,是无连接、不可靠、无序、无流量控制的传输层协议。但是相对于TCP来说传输的速率较快,消耗较低;通过用户自己可以保证其一定的可靠性,所以现在"可靠UDP"也有比较多的封装和应用。
5,网络IO技术可以分为同步IO,无阻塞式同步IO,异步IO(AIO)。
6,Linux下TCP高并发需要支持可以打开较多的文件句柄(可以使用ulimit -n命令),且要有高效的IO复用方式。由于同步IO(低效),异步IO(没有比较好的实现)都被排除,故只能使用无阻塞式同步IO,包括select(可以打开的文件句柄固定1024以下),poll(采用轮询机制,效率低下)和epoll,故只能使用epoll。