计算机网络概况 | 青训营笔记
网络概况
课程内容
会讲解以下知识点
- 通过一个示例来建立对计算机网络的一个整体认识
- 建立对网络协议的一个分层认知
- 分析HTTP1、2、3之间的关系
- 介绍CDN运行的基本原理
- 了解网络安全的最基本原则
分析方法
- 自底向上
- 从简单开始,一步步转变为复杂
- 将一个个模块逐渐拼凑成一个系统
- 自顶向下
- 从复杂开始,一步步转变为简单
- 从复杂的系统问题入手,拆分为模块问题
示例 :蟹堡王帝国
通过这个示例来建立对计算机网络的一个整体认知
三步走战略
- 在比奇堡开通外卖
- 在北京和上海开分店
- 在全国开分店并开通外卖
小结
- 将蟹堡王顾客比作客户端
- 将蟹堡王分店比作服务端
- 将小区转发点和蟹堡王城市转发分店比作路由器
- 将转发表格比作网络协议
网络基础
网络组成部分
- 主机:客户端和服务端
- 路由器
- 网络协议
网络结构:网络的网络
- 比奇堡和小区网络:本地网络
本地网络即内网也可以称为局域网(Local Area Network,LAN)是指在某一区域内由多台计算机互联成的计算机组。
例如自己的单位或者家庭、小区
主要特点是
1、覆盖的地理范围较小,只在一个相对独立的局部范围内联,如一座或集中的建筑群内,比如校园网 就指定一个校园;
2、使用专门铺设的传输介质进行联网,数据传输速率高(10Mb/s~10Gb/s);
3、通信延迟时间短,可靠性较高;
4、局域网可以支持多种传输介质;
5、通常使用以太网(Ethernet)或无线局域网(Wi-Fi)
-
北京和上海分店+比奇堡:三个本地网络节点的网络
本地网络节点的网络即本地网络节点(Local network node)
本地网络节点指的是连接在本地区域网络 (LAN)上的设备或计算机,它们通过局域网连接到同一物理位置或建筑物中的其他设备。本地网络节点可以是各种各样的设备,例如台式计算机、笔记本电脑、服务器、路由器、交换机、打印机和其他网络设备。
本地网络节点通常通过网络协议进行通信,例如传输控制协议/互联网协议(TCP/IP)。这些协议允许本地网络节点之间进行数据交换和共享资源,例如文件、打印机和互联网连接。
本地网络节点的数量和类型可以根据网络规模和用途而有所不同。在家庭网络中本地网络节点可能只有几台计算机和设备。而在企业网络中,本地网络节点可能包括数百台计算机、服务器、路由器和交换机,用于支持各种业务需求。
-
全国通讯网络:本地网络的网络
本地网络的网络即子网(subnet)
子网是一个计算机网络中的一部分,它是由一组共享相同网络地址前缀的网络设备组成的。在IPv4协议中,IP地址通常由两部分组成: 网络地址和主机地址。子网掩码则用于指定IP地址中哪些位是网络地址,哪些位是主机地址。通过使用子网掩码,网络管理员可以将一个大的IP地址空间划分成多个子网,从而使网络更加灵活和可管理。
使用子网的好处是可以更好地控制网络流量和安全性。例如,一个大型组织可以将其网络分成多个子网,每个子网由一个路由器管理,这样可以减少网络拥塞和增加网络安全性。此外,子网还可以帮助管理员更好地管理IP地址,以避免地址冲突和浪费。
- 区域网络、城域络和广域网
区域网络
区域网络是指一个地理上或逻辑上相对密集的区域内连接在一起的计算机网络。它通常包括多个局域网 (LAN)和广域网 (WAN) ,以及相应的网络设备和协议。区域网络可用于为企业、学校、政府机构等组织提供高速、安全、可靠的网络服务. 区域网络的规模通常比单个局域网大,但比广域网小。它可以覆盖一个建筑物、一个校园、一个城市或一个地区。区域网络可以提供更高的带宽和更低的延迟,从而支持更高效的数据传输和更快的应用程序响应时间。此外,区域网络也可以提供更好的安全性和管理功能,使得网络管理员能够更好地控制和监控网络。 常见的区域网络技术包括以太网、无线局域网 (WLAN)、虚拟专用网络 (VPN)等。区域网络的建立需要一定的网络规划和设计,以确保网络的稳定性和可扩展
城域络
其覆盖范围在局域网和广域网之间。一般指覆盖范围为一个城市的网络。
广域网(Wide Area Network)
指远距离的、大范围的计算机网络。跨地区、跨城市、跨国家的网络都是广域网。由于广域的覆盖范围广,联网的计算机多,因此广域网上的信息量非常大,共享的信息资源很丰富。INTERNET是全球最大的广域网,它覆盖的范围遍布全世界。
电路交换 & 分组交换
- 电路交换
三个阶段
1、建立连接
2、数据传输
3、释放连接
优点:
1、传输速度快,高效率
2、实时传输
缺点:
1、资源消耗较多,利用率低
2、新连接建立时间较长
- 分组交换
优点:
1、设计简单
2、资源利用率高
缺点:
1、不具备实时性,存在延迟
2、存在无用的重复数据,会出现丢包情况
网络分层
网络分层分为七层,从低到高为
- 物理层
- 数据链接层
- 网络层
- 传输层
- 会话层
- 表示层
- 应用层
一般网络协议通常采用TCP/IP协议,分为五层,从低到高为
- 物理层
- 数据链接层
- 网络层
- 运输层/传输层
- 应用层
-
快递员不关心包裹内容
应用层
-
卡车司机不关心车厢拉的什么
传输层
-
高速公路不关心开的什么车
网络层
协议
定义了两个或多个通信实体之间交换的报文格式和顺序,以及报文发送/接收一条报文或其他事件所采取的动作
标头(HTTP Headers)
当一个HTTP请求产生,web服务器会提供一个HTTP响应,请求、响应经常携带一些附加信息,这就是HTTP标头
载荷
即协议内的内容
格式
小结
- 网络组成部分:由主机、路由器、交换机等组成
- 网络结构:网络的网络
- 信息交换方式:电路交换和分组交换
- 网络分层:TCP协议分为五层
- 物理层
- 数据链接层
- 网络层
- 传输层
- 应用层
- 网络协议:标头和载荷
Web 中的网络
Web 应用
HTTP协议
HTTP缺点
- 队头堵塞(Head of Line Blocking)
Http1.1
- 无法多路复用
Http 2 :帧带来的额外好处
- 调整响应传输的优先级
- 头部压缩
- Server Push
Http 2:队头堵塞在TCP上
HTTP 2:3 RTT启动
- 效率低,延迟高
HTTP 3:QUIC
- Quick UDP Internet Connection
- 现存网络设备对TCP和UDP支持已经僵化
- UDP不靠谱但QUIC靠谱
- QUIC可以为除HTTP协议以外的应用层协议提供支持
HTTP 3 :QUIC - 1RTT
HTTP:QUIC - 0 RTT
小结
HTTP中请求的第一行为起始行,响应的第一行为状态行,请求和响应的第二行开始到第一个空行为止为头部,第一个空行之后为正文
HTTP1.0请求的截止默认行为为关闭TCP连接,在1.1中设置了不关闭连接
在HTTP2.0中并不能阻止队头阻塞,在HTTP3中可以通过QUIC来解决这个问题
CDN
全称是Content Delivery Network,
即内容分发网络。其目的是通过在现有的internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络边缘,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。CDN有别于镜像,因为它比镜像更智能,或者可以做这样一个比喻:CDN=更智能的镜像+缓存+流量导流。因而,CDN可以明显提高Internet网络中信息流动的效率。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等问题,提高用户访问网站的响应速度。
DNS 劫持
DNS劫持是一种非常常见且有效的互联网攻击方式
供给制通过攻击域名解析服务器(DNS)或伪造域名解析服务器的方法,篡改目标网站的解析结果,将目标网站的域名解析到错误的地址,导致访问该网站的用户被劫持到被指定的网址,从而实现非法窃取用户信息或破坏正常网络服务的目的。
WebSocket
- WebSocket是HTML5下一种新的协议(websocket协议本质上是一个基于tcp的协议)
- 它实现了浏览器与服务器全双工通信,能更好的节省服务器资源和带宽并达到实时通讯的目的
- Websocket是一个持久化的协议
- 有状态的持久连接
- 服务端可以主动推送消息
- 用WebSocket发送消息延迟比HTTP低
- 不需要关系QUIC的连接
WebSocket 示例
服务端
客户端
小结
- HTTP 1 2 3的演进历史
- CDN 解决了HTTP协议之外的问题
- WebSocket从HTTP协议升级而来
网络安全
三要素
- 机密性:攻击者无法获取通信内容
- 完整性:攻击者对内容进行篡改时能被发现
- 身份验证:攻击者无法伪装成通信双方的任意一方与另一方通信
机密性
- 加密需要加密算法和密钥等消息(统称为秘密信息)
- 网络是明文的,不安全
完整性和身份验证
完整性和身份验证相互关联
对称加密与非对称加密
- 对称加密:加密,解密用同样的密钥
- 非对称加密:加密,解密使用不同的密钥(公钥和私钥),而且公钥加密只能用私钥解密,私钥加密只能用公钥解密
密码散列函数(哈希函数)
- 输入:任意长度的内容
- 输出:固定长度的哈希值
哈希值
是一个十进制的整数,有系统随机给出(就是对象的地址值,是一个逻辑地址,是模拟出来的地址,不是数据实际存储的物理地址)
- 性质:找到两个不同的输入经过密码散列函数后相同的哈希值,是不可能的
如何实现三要素
机密性
- 想要通过明文通信交换秘密信息,通信双方需要先有秘密信息
完整性
- 密码散列函数性质
- 想要实现完整性,通信双方需要先有秘密信息
身份验证
- 签名:用于鉴别身份和防止伪造
- 非对称加密:加密,解密使用不同的密钥(公钥和私钥),而且公钥加密只能用私钥解密,私钥加密只能用公钥解密
- 保证了机密性,完整性和身份验证
- 根证书是证书链的尽头
- 验证的一连串证书为证书链
- 分发证书和验证证书的基础设施称为 PKI,Public Key Infrastructure
- 想要实现身份验证,通信双方需要先有秘密信息,即根证书中的公钥
HTTPS
通常,HTTP 直接和 TCP 通信。当使用 SSL 时,则演变成先和 SSL 通信,再由 SSL 和TCP 通信了。简言之,所谓 HTTPS,其实就是身披 SSL 协议这层外壳的 HTTP。
SSL 是独立于 HTTP 的协议,所以不光是 HTTP 协议,其他运行在应用层的 SMTP 和Telnet 等协议均可配合 SSL 协议使用。可以说 SSL 是当今世界上应用最为广泛的网络安全技术。
HTTPS相当于基于SSL的HTTP,更详细来说HTTPS=HTTP+加密+认证+完整性保护。
小结
- 网络安全三要素:机密性、完整性、身份验证
- 在双方没有提前交换秘密信息的前提下,无法在不安全的信道交换秘密信息
- PKI保证了普通用户不需要“面对面”和根证书互相交换
- HTTPS 使用 PKI 完成了除客户端身份验证以为的特性,客户端身份验证靠HTTP协议实现