遇到的少量计算机网络问题

99 阅读2分钟
  • TCP

    • 三次握手,四次挥别

      www.nowcoder.com/questionTer…

      • 三次握手

        1. 客户端发送SYN请求,进入SYN_SEND状态
        2. 服务端收到SYN请求,并返回一个ACK应答,并发送一个SYN其请求,服务器进入SYN_RECV状态
        3. 客户端收到服务端的SYN请求和ACK应答,发送ACK应答,客户端进入ESTABLISH状态,服务端收到应答后进入ESTABLISH。如果没有收到应答,数据包都会根据TCP的重传机制进行重传。
      • 四次挥别

        1. 客户端发送FIN包,请求断开连接,客户端进入FIN_WAIT1状态
        2. 服务端收到FIN包后返回应答,进入CLOSE_WAIT状态
        3. 客户端收到FIN的应答后进入FIN_WAIT2状态
        4. 服务端发送FIN请求包,进入LAST_ACK状态
        5. 客户端收到FIN请求包后,发送应答进入TIME_WAIT状态
        6. 服务器收到ACK应答后,进入close状态。
      • 同步、异步请求

        • 同步请求:

          在发送一个请求之后,需要等待服务器响应返回,才能够发送下一个请求,之前学的请求是通过浏览器地址栏发送请求,这种方式就是属于同步请求。但是其有两个缺陷:

          ①请求必须要等待响应,如果遇到请求阻塞,网络延迟,用户需要等待,这样用户体验效果不好。

          ②请求时会携带所有的信息,比如说一个form表单,需要填入用户名,密码,手机号,等多个信息。如果其中有一个信息填写错了,请求失败,又要全部重新填写,会很麻烦繁琐。

        • 异步请求:

          和同步请求相对,异步不需要等待响应,随时可以发送下一次请求。如果是同步请求,需要将信息填写完整,再发送请求,服务器响应填写是否正确,再做修改。但是异步请求是局部页面更新。比如上述的手机号、密码,邮箱名,在填写时就会发送一个异步请求。若是格式不正确,会提醒修改,而其它已经填写的正确信息不受影响。