网络编程基础大纲

  • OSI七层网络协议
  • 经典协议与数据包
  • 三次握手与四次挥手
  • TCP拥塞控制
  • 为啥会出现粘包、拆包、如何处理?
  • 基于golang实现TCP、UDP、HTTP服务器与客户端

image.png
image.png
image.png
image.png
image.png
image.png

TCP为啥需要三次握手、四次挥手?

  • 三次握手的最主要目的是保证连接是双工的,可靠更多的是通过重传的机制来保证的
  • 因为连接是全双工的,双方都必须都收到对方的FIN包及确认才可关闭

    SYN包->S ACK包->. 数据包->P FIN->F

image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png

MSS:1460 1480

image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.pngimage.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png