BLOOK

GP's blog and book

计算机网络相关

  • 计算机通信 是两个运行的进程之间的通信
  • 网络边缘边通信分两种: 1、客户-服务器方式(c/s)(b/s 是一种特例); 2、对等方式p2p (peer)
  • OSI: open systems interconnection 开放系统互连基本参考模型

五层协议?

五层协议

注 五层协议的体系结构只为介绍网络原理而设计,实用应用的还是tcp/ip四层体系结构

  1. 应用层
    进程间的协议 数据单元称为报文
  2. 运输层
    传输控制协议TCP transmission control protocol 提供面向连接的、可靠的数据传输服务,其数据传输的单位是报文段
    用户数据报协议 UDP user datagram protocol 提供无连接的,尽最大努力的数据传输服务,不保证数据传输的可靠性,其数据传输的单位是 用户数据报

  3. 网络层
    IP协议 数据分组,2.要选择合适的路由,能够通过网络中的路由器找到目的主机。

  4. 数据链路层
    加上首部和尾部 组装成帧

  5. 物理层
    从首部传开始传 不再加首部


TCP/UDP区别

  • UDP
    在传送数据之前不需要先建立连接. 远地主机的运输层在收到 UDP 报文后, 不要给出任何确认. 虽然 UDP 不提供可靠交付. 但在某些情况下 UDP 却是一种最有效的工方式.

  • TCP
    则提供面向连接的服务。在传送数据之前必须先建立连接,数据传送结束后要放连接. TCP 不提供广播或多插服务. 由于 TCP 要提供可靠的、 面向连接的运输眠务,此不可避免地增加了许多的开销,如确认、流量控制、计时器以及连接管理等.这不仅使协议数据单元的首部增大很多.还要占用许多的处理机资源

    tcp

socket - (IP 地址: 端口号)
每一条TCP连接唯一地被通信两端的两个端点 (即两个套接宇) 所确定.
即TCP 连接 ::= {socket1, socket2} = {(IP1: port1), (IP2: port2)}

TCP怎么做到的可靠传输?

  1. 停止等待协议
  2. 超时重传

HTTPS和HTTP的区别

一、https协议需要到ca申请证书,一般免费证书很少,需要交费。
二、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
四、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

HTTP2

一、二进制分帧数据层
二、服务器端推送
三、所有通信都在一个TCP连接
四、头部进行压缩

  • 流是连接中的一个虚拟信道,可以承载双向的消息;每个流都有一个唯一的整数
    标识符(1、2…N)。

  • 消息是指逻辑上的 HTTP 消息,比如请求、响应等,由一或多个帧组成

  • 帧是最小的通信单位,承载着特定类型的数据,如 HTTP 首部、负荷,等等。
  • 有了新的分帧机制后,HTTP 2.0 不再依赖多个 TCP 连接去实现多流并行了。
    现在, 每个数据流都拆分成很多帧,而这些帧可以交错,还可以分别优先级。
    于是,所有 HTTP 2.0 连接都是持久化的,而且客户端与服务器之间也只需要一个连接即可。

    1. Connection: Upgrade, HTTP2-Settings
    2. Upgrade: HTTP/2.0
    3. Upgrade 101 Switching Protocols
    4. 无论哪种情况,都不需要 额外往返。