Prerequisites

Wha Unix Network Programming didn’t teach

Highlights of this course

常见的误解
- 减少动态内存分配
- 减少STL的使用
Layered Network

Ethernet frame: 帧
IP packet: 组
- 一般不去关注IP分片
TCP segment: 节
Application message: 消息
Common pitfalls of novices

TCP接受数据不完整
- TCP连接断开的时机与条件
- 断开过早,可能导致协议栈RST分解, 将连接重置
- 阻塞编程:
SO_LINGER - 非阻塞编程:
SO_LINGER没用 - 在设计TCP协议时要考虑断连
直接发送C的struct
- 字节对齐, 破坏ABI, 导致第三方API Core Dump
- 扩展性差: 增加新字段, 要升级
- TCP/IP书的示例
- 定长的字段
- bitfield
TCP自连接
- TCP客户端向本机的服务端发送信息, 本机服务端未启动时, 客户端回自己和自己建立连接
TCP/IP over 1Gb Ethernet

