计算机网络概论1 | 青训营笔记

164 阅读5分钟
——通过蟹堡王了解计算机网络的运行机制

蟹堡王帝国

1.小目标

蟹老板想赚一个”小目标"——目的

2.三步走战略

1.在比奇堡开通外卖

2.在北京和上海开分店

3.在全国开分店并开通外卖

——方法

3.业务拓展

  • 蟹堡王外卖
  • 北京和上海分店
  • 新的分店
  • 全国分店和通信网络

网络基础

1.网络组成部分

  • 主机:客户端和服务端
  • 路由器
  • 网络协议

2.网络结构︰网络的网络

  • 比奇堡和小区网络:本地网络
  • 北京和上海分店+比奇堡:三个本地网络节点的网络
  • 全国通信网络:本地网络的网络
  • 区域网络、城域网和广域网

3.网络分层

  • 快递员不关心包裹内容
  • 卡车司机不关心车厢里拉的是什么
  • 高速公路不关心开的什么车

4.协议

协议的存在依赖于连接。

01001000 01100101 01101100 01101100 01101111 00101100 00100000 01010111 01101111 01110010 01101100 01100100 00100001

72 101 108 108 111 44 32 87 111 114 108 100 33

H e l l o , W o r l d !

协议定义了在两个或多个通信实体之间交换的报文格式和顺序,以及报文发送和/或接受一条报文或其他事件所采取的动作。

5.标头和载荷

  • 收件人、寄件人关注: 收件地址、寄件地址
  • 收件人、寄件人的姓名和电话
  • 包裹内容

快递公司关注:

  • 收件人、寄件人关注的东西
  • 该由哪个集散点发出,哪个集散点收
  • 哪个网点派送

Web中的网络

HTTP协议

HTTP连接模型 ——队头堵塞

HTTP 1.1:无法多路复用

// main.js
console.log('hello world');

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

HTTP 2:帧

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

HTTP2∶帧带来的额外好处

  • 调整响应传输的优先级
  • 头部压缩
  • Server Push

HTTP2:队头堵塞,但是在TCP上

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

HTTP2: 3 RTT启动

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

HTTP 3: QUIC

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

HTTP 3: QUIC-1 RTT

QUIC第一次访问

  • HTTP客户端:我要和大哥说话!
  • QUIC客户端:嗨!服务端,你在吗?在的话能给我把钥匙吗?
  • QUIC服务端:嗨!客户端,我在,这是你的钥匙!
  • HTTP客户端:今天这么快?我要index.html!
  • QUIC服务端(偷偷地告诉客户端)∶这还有把钥匙,下次找我可以不用问,直接用。

HTTP: QUIC-0 RTT

QUIC第二次访问

  • HTTP客户端:我要和大哥说话!
  • QUIC客户端:嗨! 服务端,你在吗?后面的话我已经用上次你给我的钥匙加密过了,HTTP那小子肯定要index.html !
  • QUIC服务端:嗨!客户端,我在,我知道你要index.html,给你
  • HTTP客户端:?

CDN:你无法突破物理极限的

  • HTTP3快吗?
  • 快!
  • 那从美国到中国,HTTP 3要多久?
  • 150 ms!
  • 和北京到上海比,还快吗?
  • 好像不够?

CDN:你的钱包够鼓吗?

  • 流量多少钱一个G?
  • 1块
  • 那我在北京给上海的人发一部10G电影得10块?
  • 对!
  • 发10次一样的电影要100块?
  • 是的!
  • 我都发到上海了,不能内部共享下吗?

CDN:你,够强大吗?

  • 我们有几台服务器?
  • 1台
  • 他能扛多少流量?
  • 100G!
  • 双十一峰值得1000G 啊,扛得住吗?
  • 不一定,可能挂……

CDN:最多跳两次!

      跳数                                   城市
       0                              北京、上海、广州、成都、长沙、兰州、长春
       
                                      天津、石家庄、沈阳、呼和浩特、南京、杭州、澳门、香
       1                              港、南宁、福州、南昌、武汉、贵阳、拉萨、重庆、西安、                                       西宁、银川、哈尔滨
       
       2                              太原、济南、郑州、乌鲁木齐、台北、昆明、海口、合肥

CDN: DNS 劫持

  • 域名解析一般由网站自己处理
  • 要加速的域名则重定向到CDN厂商的域名解析服务处理
  • CDN厂商根据来源确定最近的CDN服务器的IP
  • 用户直接访问最近的CDN服务器

WebSocket

  • 有状态的持久连接
  • 服务端可以主动推送消息
  • 用WebSocket发送消息延迟比HTTP低

网络安全

  • 网络安全三要素:机密性、完整性和身份验证
  • 在没有提前交换秘密信息的前提下,无法在不安全的信道交换秘密信息
  • PKI保证了普通用户不需要”面对面"和根证书机构交换根证书
  • HTTPS使用PKI完成了除客户端身份验证以外的特性,客户端身份验证靠HTTP 协议实现

收获 通过本次课程的学习,建立对计算机网络的整体认知,对计算机网络中的各种概念(网络分层、网络协议、网络应用等)有初步的理解。希望进而可以在后续的实际工作中能高效解决网络问题。