计算机网络概论(二) | 青训营笔记

68 阅读2分钟

今天是参加笔记活动的的第2

HTTP协议示例

链路层-本地帧头部

链路层-IP协议头部

运输层-TCP协议头部

应用层-HTTP协议头部

TCP协议格式

小节

  • 网络组成部分:由主机,路由器,交换机等组成
  • 网络结构:网络的网络
  • 信息交换方式:电路交换和分组交换
  • 网络分层:分清职责,物理层,链路层,网络层,运输层和应用层
  • 网络协议:标头和载荷

web中的网络

HTTP协议

HTTP连接模型

对头阻塞(head of line blocking)

HTTP1.1:无法多路复用

//main.js
console.log('hello world');
/*style.css*/
body{
    color:red;
}
body{
    console.log('hello world');
    color:red;
}

HTTP2:帧

request=style.css,content='body'{'
request=main.js,content='console.log('hello world')'
request=style.css,content=' color:red;'
request=style.css,content='}

前三个字节载荷长度

第四个字节类型

第五个字节类型对应的flags

第六到第九字节

  • 第一位:保留位
  • 第2-32位:流id

随后的8192字节载荷

HTTP2:帧带来的额外好处

  • 调整响应传输的优先级
  • 头部压缩
  • server push

HTTP2:对头阻塞,但是在TCP上

  • TCP包0:包含了(包含了style.css的第一行内容)的HTTP2的帧
  • TCP包1:包含了(包含了main.js的全部内容)的HTTP2的帧
  • TCP包2:包含了(包含了style.css的第二行内容)的HTTP2的帧
  • TCP包3:包含了(包含了style.css的第三行内容)的HTTP2的帧

HTTP2:3 RTT启动

  • HTTP客户端:我要和大哥说话
  • TCP客户端默默对HTTP客户端说,我知道你很急,但你先别急
  • TCP客户端:嗨!服务端,你在吗?
  • TCP服务端:嗨!客户端,我在,你在吗?
  • TLS客户端:hello,能给我吧钥匙吗?
  • TLS服务端:hello,给,你的钥匙
  • HTTP客户端:终于到我了,我要index.html!

HTTP3:QUIC

  1. quick UDP Internet Connection
  2. 现存网络设备对TCP和UDP支持已经僵化
  3. UDP不靠谱但是QUIC靠谱
  4. QUIC可以为除HTTP协议以外的应用层协议提供支持