1.基础篇
TCP/IP网络模型:应用层,传输层,网络层,网络接口层
应用层:应用数据
传输层:TCP头+应用数据
网络层:IP头+TCP头+应用数据
网络接口层:帧头+IP头+TCP头+应用数据+帧尾
网络接口层的传输单位是帧(frame),IP 层的传输单位是包(packet),TCP 层的传输单位是段(segment),HTTP 的传输单位则是消息或报文(message)。
OSI网络:应用层+表示层+会话层+传输层+网络层+数据链路层+物理层
电脑与电脑之间通常都是通过网卡、交换机、路由器等网络设备连接到一起
网卡:将数字信息转换为电信号
交换机:将电信号转换为数字信号,校验正确放到缓冲区,查询MAC地址是否有记录,将信号发送到相应的端口。
路由器:MAC地址,IP地址。 源 IP 和目标 IP 始终是不会变的,一直变化的是 MAC 地址
例如:重庆到北京,先坐飞机到南京,再坐高铁到北京。源IP是重庆,目的IP是北京。第一个MAC源地址是重庆,目的MAC是南京。第二个MAC源地址是南京,目的MAC是北京。
2.HTTP篇
HTTP基本概念:HTTP 是超文本传输协议
2**:成功 3**:重定向 4**:客户端错误 5**:服务端错误
GET:从服务器获取指定的资源,参数位置一般是写在 URL 中,GET 方法就是安全且幂等的
POST:根据请求负荷(报文body)对指定的资源做出处理,POST方法是不安全不幂等
HTTP缓存技术:强制缓存和协商缓存。
- 强制缓存:只要浏览器判断缓存没有过期,则直接使用浏览器的本地缓存
- 协商缓存:就是与服务端协商之后,通过协商结果来判断是否使用本地缓存
HTTP/1.1 :HTTP 最突出的优点是「简单、灵活和易于扩展、应用广泛和跨平台」,缺点:「无状态、明文传输、不安全」
HTTPS
- 在 TCP 和 HTTP 网络层之间加入了 SSL/TLS 安全协议,使得报文能够加密传输。
- 在 TCP 三次握手之后,还需进行 SSL/TLS 的握手过程,才可进入加密报文传输。
- 默认端口号是 443。
- 需要向 CA(证书权威机构)申请数字证书,来保证服务器的身份是可信的。
混合加密:采用的是对称加密和非对称加密结合
摘要算法 + 数字签名:哈希函数+非对称加密算法
数字证书:个人信息 + 公钥 + 数字签名
SSL/TLS 协议基本流程:
- 客户端向服务器索要并验证服务器的公钥。
- 双方协商生产「会话秘钥」。
- 双方采用「会话秘钥」进行加密通信。
保证完整性
TLS 在实现上分为握手协议和记录协议两层:
- TLS 握手协议就是我们前面说的 TLS 四次握手的过程,负责协商加密算法和生成对称密钥,后续用此密钥来保护应用程序数据(即 HTTP 数据);
- TLS 记录协议负责保护应用程序数据并验证其完整性和来源,所以对 HTTP 数据加密是使用记录协议;
HTTP/1.1 HTTPS HTTP/2 HTTP/3
3.TCP篇
TCP 是面向连接的、可靠的、基于字节流的传输层通信协议。
- ACK:该位为
1时,「确认应答」的字段变为有效,TCP 规定除了最初建立连接时的SYN包之外该位必须设置为1。 - RST:该位为
1时,表示 TCP 连接中出现异常必须强制断开连接。 - SYN:该位为
1时,表示希望建立连接,并在其「序列号」的字段进行序列号初始值的设定。 - FIN:该位为
1时,表示今后不会再有数据发送,希望断开连接。当通信结束希望断开连接时,通信双方的主机之间就可以相互交换FIN位为 1 的 TCP 段。
建立连接:3次握手
断开连接:4次挥手
Socket 编程
4.IP篇
Ipv4
点分十进制:192.168.1.1/24
ip分类:ABCDE
- 主机号全为 1 指定某个网络下的所有主机,用于广播
- 主机号全为 0 指定某个网络
无分类地址CIDR
10.100.122.2/24 /24表示网络号 剩余8位是主机号
公有 IP 地址与私有 IP 地址
127.0.0.1 作为环回地址
IPv6
- IPv6 可自动配置,即使没有 DHCP 服务器也可以实现自动分配IP地址,真是便捷到即插即用啊。
- IPv6 包头包首部长度采用固定的值
40字节,去掉了包头校验和,简化了首部结构,减轻了路由器负荷,大大提高了传输的性能。 - IPv6 有应对伪造 IP 地址的网络安全功能以及防止线路窃听的功能,大大提升了安全性。
IP 协议相关技术
- DNS 域名解析
- ARP 与 RARP 协议
- DHCP 动态获取 IP 地址
- NAT 网络地址转换
- ICMP 互联网控制报文协议
- IGMP 因特网组管理协议