计算机网络

五层协议

  1. 应用层:为应用进程之间提供传输服务(HTTP、DNS、SMTP)
  2. 传输层:为应用进程之间提供传输服务(TCP、UDP)
  3. 网络层:为主机之间提供服务(IP、选路协议)
  4. 数据链路层:为相邻结点提供服务,封装成帧(PPP)
  5. 物理层:传输比特流

传输层

三次握手、四次握手

  • 客户端发送syn包(syn=x)、ACK = 0,并进入SYN_SEND状态
  • 服务端收到syn包后进行确认,返回ack = x+1 、ACK = 1、syn = y,进入SYN_RECVE状态
  • 客户端确认syn,返回ack=y+1、ACK = 1,双方完成三次握手
  • 客户端发送FIN(j)(用来表示自己将不再发送数据)
  • 服务端返回ack = j+1
  • 服务端发送FIN(k)
  • 客户端返回ack = k+1,完成四次握手 等待2MS后关闭

UDP、TCP

  • TCP是面向连接的,UDP是无连接
  • TCP是一对一,UDP一对一、一对多、多对多
  • TCP提供可靠交付,UDP尽最大努力交付
  • UDP没有拥塞控制

TCP滑动窗口协议

  • 滑动窗口协议拥有一个窗口,允许在无应答情况下连续发送窗口中分组
  • 发送窗口的大小由接收窗口的剩余大小决定
  • 接受窗口连续收到多个分组后,统一回复已确定+1,表示期待下一个分组的字节号
  • 发送窗口收到确认后,可以向右滑动
  • 流量控制:防止发送过快,导致分组丢失
  • 拥塞控制:慢开始、拥塞避免(达到界限后),出现超时重传(界限减半,窗口变为1),出现三次重复确认(界限减半,窗口)