计算机网络

层次模型:

  • 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协议
  • 超时重传