《天净沙·我·网络协议篇》 双非菜鸡奇葩,面试项目框架,java java,卑微学子去哪?


别问 问就是为了面试豁出了老命

五层协议体系结构

  1. 应用层

    顾名思义就是上层的网络应用 域名,Http协议等

  2. 运输层

    两台主机之间提供统用的数据传输服务

  3. 网络层

    选择合适的路由进行数据交换

  4. 数据链路层

    一段一段的将数据发送

  5. 物理层

    物理主机之间的比特流交换

三次握手四次挥手

三次握手

  1. 第一次握手: 客户端(client)向接收端(server)发送标志SYN/ACK,但是 客户端什么都不知道(接收端直到了自己接收正常,也知道客户端发送正常)
  2. 第二次握手: 接收端(server)向客户端(client)发送标志SYN/ACK数据包,现在客户端知道自己接收正常,自己发送正常,但是服务端不知道自己是不是发送正常
  3. 第三次握手, 客户端(client)向接收端(server)发送标志ACK数据包,现在客户端知道自己发送接收正常,服务端也直到自己发送接收正常

总结:三次握手的原因就是因为数据传输时单向的,对方接收后,发送方属于不知情着,所以才有了三次握手

四次挥手

  1. 客户端向接收端发送Fin请求,告诉接收端说我这边没什么要发送的了
  2. 接收端向客户端发送一个ACK,告诉客户端说我知道你这边没啥要发送的了
  3. 接收端向客户端发送一个Fin,也告诉客户端说我也没什么要发送的了
  4. 客户端也发送一个ACK给接收端,确认知道了接收端没什么要发送的了

TCP VS UDP

TCP保证可靠的连接,UDP只负责交付数据,因此UDP占用的资源少,发送的数据多,TCP占用资源多,发送的数据较少,但是保证了数据传输的绝对稳定

TCP为啥稳定

  • TCP会把数据自动分成合适有序有编号的数据包
  • TCP发送的时候会对头部和数据进行校验
  • TCP会有流量控制,会设立缓冲区,每次发送的时候也是从缓冲区中读取发送
  • 发送超时会重新进行发送