P238:
各位只需记住Linux的writev&readv函数的功能可以通过Windows的“重叠I/O”实现。
P38:
面向连接的套接字(SOCK_STREAM):
传输过程中数据不会消失。
按序传输数据。
传输的数据不存在数据边界。
套接字连接必须一一对应。
总结:可靠的、按序传递的、基于字节的面向连接的数据传输方式的套接字。
P39:
面向消息的套接字(SOCK_DGRAM):
强调快速传输而非传输顺序;
传输的数据可能丢失也可能损毁;
传输的数据有数据边界;
限制每次传输的数据大小。
总结:不可靠的、不按序传递的、以数据的高速传输为目的的套接字。
P48:
NIC(Network Interface Card)网络接口卡
P49:
端口号就是在同一操作系统内为区分不同套接字而设置的。
P50:
POSIX(Portable Operating System Interface,可移植操作系统接口)
P52:
大端序(Big Endian):高位字节存放到低位地址。
小端序(Little Endian):高位字节存放到高位地址。
0x20号 0x21号 0x22号 0x23号
0x12 0x34 0x56 0x78 大端序字节表示
0x78 0x56 0x34 0x12 小端序字节表示
整数0x12345678
P53:
网络字节序:统一为大端序
P61:
127.0.0.1是回送地址(loopback address),指的是计算机自身IP地址。
P70:
TCP/IP协议栈:
P73:
IP层解决数据传输中的路径选择问题。
P103:
SYN Synchronization
P113:
TCP比UDP慢的原因:
收发数据前后进行的数据连接设置及清楚过程;
收发数据过程中为保证可靠性而添加的流控制。
P160:
Nagle算法
P166:
并发服务器端实现模型和方法:
多进程服务器:通过创建多个进程提供服务(Windows不支持);
多路复用服务器:通过捆绑并统一管理I/O对象提供服务;
多线程服务器:通过生成与客户端等量的线程提供服务。
进程:占用内存空间的正在运行的程序。
P180:
sigaction函数
P187:
从严格意义上说,套接字属于操作系统,只是进程拥有代表相应套接字的文件描述符。
P193:
通过管道实现进程间通信。
P240:
多播(Multicast)方式的数据传输是基于UDP完成的。
P241:
隧道技术(Tunneling)
P256:
标准I/O函数优点:
标准I/O函数具有良好的移植性;
标准I/O函数可以利用缓冲提高性能。
P259:
标准I/O函数缺点:
不容易进行双向通信;
有时可能频繁调用fflush函数;
需要以FILE结构体指针的形式返回文件描述符。
P270:
销毁所有文件描述符后才能销毁套接字。
P275:
实现I/O复用的传统方法有select函数和poll函数。
有Linux下的epoll、BSD的kqueue、Solaris的/dev/poll和Windows的IOCP等复用技术。
P283:
条件触发(Level Trigger)
边缘触发(Edge Trigger)
条件触发方式中,只要输入缓冲有数据就会一直通知该事件。
P292:
边缘触发:可以分离接收数据和处理数据的时间点。
P295:
上下文切换:运行程序前需要将相应进程信息读入内存,如果运行进程A后需要紧接着运行进程B,就应该将进程A相关信息移出内存,并读入进程B相关信息。
P296:
进程:在操作系统构成单独执行流的单位。
线程:在进程构成单独执行流的单位。
P297:
POSIX(Portable Operating System Interface for Computer Environment 适用于计算机环境的可移植操作系统接口)
P326:
内核对象
P356:
异步通知I/O模型:WSAEventSelect函数和WSAAsyncSelect函数
P367:
重叠I/O:同一线程内部向多个目标传输(或从多个目标接收)数据引起的I/O重叠现象。
P381:
在硬件性能和分配带宽充足的情况下,如果响应时间和并发数量出了问题,首先怀疑两点:
低效的I/O结构或低效的CPU使用;
数据库设计和查询语句的结构。
P402:
Cookie和Session
P414:
《UNIX环境高级编程(第2版)》
《Windows核心编程》
《TCP/IP详解》(卷1~卷3)
《TCP/IP协议族》
-------流媒体服务器开发知识持续发布中,如果能学到一点点知识,请收藏关注,共同学习进步-------------------