知识储备先:
- C语言实现P2P通信:socket
- TCP/IP协议:
- 进程——进程;差错检测;可靠传输;连接管理;拥塞控制
- 协议特性,连接性:两端维护,实体与实体之间传,一对一单播,暂存发送信息,什么时候发由实现TCP实现(程序员),客户机——服务机:通过socket传输数据
- 报文格式大概了解,传输中我觉得很重要的是URG(立即发送)和PSH(接受后立即执行)位和URG指针指示紧急数据(控制信息), SYN建立连接,FIN释放连接;MSS:同一物理网络【硬件介质(网线、交换机、路由器、主机)连接而成的网络】,最大MTU,不同物理网络,最小MTU,因为减少路由器存储转发次数,提高传输效率;
- 差错检测:校验和+伪头;两次检测;前缀不属于TCP段;含有源IP,目标IP,协议特性,TCP段长;
- 多路复用/分用的实现:端口号;(TCP+端口号)TCP段(数据来源/目的地的应用程序)->(TCP+端口号+ip地址)IP报文(来源/目的主机)->数据帧,网卡地址(下一跳)Mac地址802.3
- TCP连接的建立和释放(三次握手):