计算机网络
层次模型:
- OSI 七层模型:物理层、数据链路层、网络层、运输层、会话层、表示层、应用层
- TCP / IP 四层模型:网络接口层、网际层、运输层、应用层
- 五层模型:物理层、数据链路层、网络层、运输层、应用层
TCP 三次握手
三次握手:
- client->server:SYN=1, seq=x
- server->client:SYN=1, ACK=1, seq=y, ack=x+1
- client->server:ACK=1, seq=x+1, ack=y+1
四次挥手:
- client->server:FIN=1, seq=u
- server->client:ACK=1, seq=v, ack=u+1
- client->server:FIN=1, ACK=1, seq=w, ack=u+1
- server->client:ACK=1, seq=u+1, ack=w+1
TCP 和 UDP 协议区别:
是否面向连接 | 传输形式 | 应用场景 | 首部字节 | |
---|---|---|---|---|
TCP | 面向有连接 | 字节流 | 要求通信数据可靠(如文件传输、邮件传输) | 20 - 60 |
UDP | 面向无连接 | 数据报文段 | 要求通信速度高(如域名转换) | 8 个字节(由 4 个字段组成) |
TCP 如何保证可靠传输:
- 应⽤数据被分割成 TCP 认为最适合发送的数据块。
- TCP 给发送的每⼀个包进⾏编号,接收⽅对数据包进⾏排序,把有序数据传送给应⽤层
- 校验和
- TCP 的接收端会丢弃重复的数据。
- 流量控制
- 拥塞控制
- ARQ(Automatic Repeat-reQuest)协议
- 超时重传