zoukankan      html  css  js  c++  java
  • 计算机网络常见问题

    TCP 三次握手、TCP 四次挥手

    三次握手可以两次吗

    为了实现可靠数据传输, TCP 协议的通信双方, 都必须维护一个序列号, 以标识发送出去的数据包中, 哪些是已经被对方收到的。 三次握手的过程即是通信双方相互告知序列号起始值, 并确认对方已经收到了序列号起始值的必经步骤。

    如果只是两次握手, 至多只有连接发起方的起始序列号能被确认, 另一方选择的序列号则得不到确认。在 S ACK 的时候,C 可能已经关闭无法接受信息,导致网络资源浪费。

    四次挥手可以三次吗

    当服务端收到客户端的 SYN 连接请求报文后,可以直接发送 SYN+ACK 报文。其中 ACK 报文是用来应答的,SYN 报文是用来同步的。但是关闭连接时,当服务端收到 FIN 报文时,很可能并不会立即关闭,所以只能先回复一个 ACK 报文。只有等到服务端所有的报文都发送完了,才能发送 FIN 报文,因此不能一起发送。所以需要四次挥手。

    HTTP 报文组成部分

    请求报文:请求行、请求头、空行、请求体

    响应报文:状态行、响应头、空行、响应体

    HTTP/2 特性

    减少传输数据量:通过二进制传输 和 Header 压缩实现

    多路复用:使用同一个 TCP 连接来传输一个域名下的所有请求,请求还可以有优先级

    服务端推送:能够在客户端发送第一个请求到服务端时,提前把一部分内容推送给客户端,放入缓存当中,这可以避免客户端请求顺序带来的并行度不高,从而导致的性能问题。

    丢包重传会导致所有请求阻塞,这种情况下性能反而不如 HTTP/1。基于 QUIC 的 HTTP/3 可以彻底解决 TCP 的队头阻塞问题

    vi设计http://www.maiqicn.com 办公资源网站大全https://www.wode007.com

    HTTPS 的工作原理

    输入 HTTPS 网址,连接 443 端口,发送一个密文族,包括浏览器所支持的加密算法清单

    服务器端选择加密算法,传送证书给客户端

    客户端解析证书,验证证书的颁发机构和过期时间,如果证书没问题,则生成一个随机值,用公钥对该随机值加密,发送给服务端

    服务端用私钥解密,得到随机值。至此,非对称加密过程结束,实现了身份认证和密钥协商。

    服务器端用随机值加密后传输信息给客户端

    客户端可以用之前生成的随机值还原出原文。至此,一个对称加密的过程结束,用于服务器端传送给客户端数据。

    因为非对称加密的性能很差,所以传输的时候用对称加密

  • 相关阅读:
    企业搜索引擎开发之连接器connector(二十九)
    solr&lucene3.6.0源码解析(四)
    solr&lucene3.6.0源码解析(三)
    elasticsearch 7.7.0 最新版+Java High Level REST Client测试
    自制聊天软件测试
    网页正文内容抽取测试
    Kernel Functions for Machine Learning Applications
    Latent semantic analysis note(LSA)
    jQuery插件备忘
    比较成系列的文章[备份.感谢这些作者的辛苦]
  • 原文地址:https://www.cnblogs.com/qianxiaox/p/13767093.html
Copyright © 2011-2022 走看看