网络笔记

Posted by 杨一 on 2020-05-29

网络笔记

  • TCP 连接建立时为何握手三次?

    TCP 提供可靠交付的服务,为了保证信息的准确性,即获得同步序列号,在进行数据传输之前必须进行握手连接。
    其中三次握手是为了尽可能次数少的完成连接工作的次数。

  • TCP 传输协议

    • 停止等待协议
      “停止等待”就是每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。
      ① 无差错情况
      ② 出现差错
      ③ 确认丢失和确认迟到
      ④ 信道利用率

    • ARQ 协议
      连续ARQ协议规定,发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。
      接收方一般都是采用累积确认的方式。这就是说,接收方不必对收到的分组逐个发送确认,而是在收到几个分组后,对按序到达的最后一个分组发送确认,这就表示:到这个分组为止的所有分组都已正确收到了。
      优点:容易实现,即使确认丢失也不必重传。
      缺点:不能向发送方反映出接收方已经正确收到的所有分组的信息,举例:发送了5个数据包,其中丢失了3个数据包,但是服务器只能返回第1个数据包确认号,发送端无法得知 2、3、4、5 数据包的接收信息,因此只能重发 2、3、4、5 数据包。

    • 滑动窗口协议
      TCP的滑动窗口是以字节为单位的。为了便于说明滑动窗口的工作原理,我们故意把后面图5-15至图5-18中的字节编号都取得很小。现假定A收到了B发来的确认报文段,其中窗口是20字节,而确认号是31(这表明B期望收到的下一个序号是31,而序号30为止的数据已经收到了)。根据这两个数据,A就构造出自己的发送窗口,如图5-15所示。
      请注意,B只能对按序收到的数据中的最高序号给出确认!!!,因此B发送的确认报文段中的确认号仍然是31(即期望收到的序号),而不能是32或33,此时 A 再次发送以31开头的数据。

  • 输入URL 会发生什么?

    • 解析域名
      从本机Host文件、到最近的DNS服务器、途中可经过路由器、交换机、反向路由、正向路由、得到最终服务器地址;然后根据Http请求,建立TCP连接,服务器返回Http相应,浏览器收到相关html、css、js等数据,开始加载DOM树、CSS树和Js渲染,最终展示。
  • Http 的长连接和短连接有什么不同?

    在HTTP/1.0中默认使用短连接。也就是说,客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。当客户端浏览器访问的某个HTML或其他类型的Web页中包含有其他的Web资源(如JavaScript文件、图像文件、CSS文件等),每遇到这样一个Web资源,浏览器就会重新建立一个HTTP会话。
    而从HTTP/1.1起,默认使用长连接,用以保持连接特性。使用长连接的HTTP协议,会在响应头加入这行代码: Connection:keep-alive
    在使用长连接的情况下,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,客户端再次访问这个服务器时,会继续使用这一条已经建立的连接。Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。实现长连接需要客户端和服务端都支持长连接。
    • 长连接
      优点 : 减少握手、减少慢启动、允许HTTP pipelining 管道化(HTTP 1.1中支持)的请求及响应模式:、当发生错误时,可以在不关闭连接的情况下进行提示、减少后续请求的响应时间,因为此时不需要建立TCP,也不需要TCP握手等过程;
      缺点 : 由于管道化发生的 Http 队头阻塞,管道化要求服务端按照请求发送的顺序返回响应(FIFO),原因很简单,HTTP请求和响应并没有序号标识,无法将乱序的响应与请求关联起来。
      客户端需要保持未收到响应的请求,当连接意外中断时,需要重新发送这部分请求。
      只有幂等的请求才能进行管道化,也就是只有GET和HEAD请求才能管道化,否则可能会出现意料之外的结果
  • 短连接
    优点:短连接对于服务器来说较为简单,存在的连接都是有用的连接,不需要额外的控制;
    缺点:如果客户端连接频繁,会在tcp的建立和关闭上浪费时间。
  • 多播何如实现?

  • 服务器最大并发数是多少?

    根据TCP四元组(源ip、源端口、目的ip、目的端口),理论上可以连接2^32 * 2^16=2^48个连接,但是从实际中出发,受限于内存、CPU等硬件因素。

  • TCP UDP 何如选择?

    • UDP
      适合车联网发送位置包、视频直播等;
    • TCP
      安全文件传输等;
  • TLS/SSL如何保证信息安全的?

    • PKI证书体系
    • 对称加密算法
    • 密钥交换协议
  • Http2.0协议有哪些优缺点?

    或许放弃TCP连接,使用UDP连接。