计算机网络
网络基础概念
- 计算机网络的定义:什么是计算机网络?
- 网络分类:
- 按范围:局域网(LAN)、广域网(WAN)、城域网(MAN)。
- 按拓扑结构:星型、环型、总线型、网状等。
- 网络设备:路由器、交换机、网关、调制解调器等。
网络协议
OSI 七层模型与四层模型
OSI七层模型:为了使全世界不同体系结构的计算机能够互联,国际化标准组织ISO提出开放系统互联基本参考模型,简称OSI,即七层协议体系结构。
OSI七层模型是一个大而全的理论模型,而TCP/IP四层模型是由实际应用发展总结出来的,但从实质上讲,TCP/IP只有最上面三层,最下面一层没有具体内容,TCP/IP参考模型没有真正描述这一层的实现,只是要求能够提供给其上层-网络互连层一个访问接口,以便在其上传递IP分组。
OSI 七层模型
1. 物理层(Physical Layer)
- 功能:
- 负责在物理介质上传输原始的比特流(0和1)。
- 定义电气、机械、时序和接口标准,确保数据能够通过物理介质(如电缆、光纤、无线电波)传输。
- 不关心数据的含义,只关注如何传输比特流。
- 协议/技术:
- 以太网(Ethernet)、USB、蓝牙、Wi-Fi(IEEE 802.11)、光纤(Fiber Optic)、RS-232等。
- 设备:
- 网卡(NIC)、集线器(Hub)、中继器(Repeater)、调制解调器(Modem)等。
- 实际应用:
- 通过网线将电脑连接到路由器。
- 通过Wi-Fi将手机连接到无线网络。
2. 数据链路层(Data Link Layer)
- 功能:
- 提供节点到节点的数据传输(通常是同一局域网内的设备)。
- 将比特流组织成帧(Frame),并进行错误检测和纠正。
- 管理物理地址(MAC地址),确保数据帧发送到正确的设备。
- 协议/技术:
- 以太网(Ethernet)、PPP(点对点协议)、HDLC(高级数据链路控制)、VLAN(虚拟局域网)等。
- 设备:
- 交换机(Switch)、网桥(Bridge)等。
- 实际应用:
- 交换机根据MAC地址将数据帧转发到目标设备。
- 在局域网中,设备通过MAC地址相互通信。
3. 网络层(Network Layer)
- 功能:
- 负责数据包的路由和转发,实现不同网络之间的通信。
- 使用逻辑地址(如IP地址)来标识设备,并选择最佳路径将数据包从源设备传输到目标设备。
- 处理拥塞控制、分段和重组。
- 协议/技术:
- IP(Internet Protocol)、ICMP(Internet控制消息协议)、ARP(地址解析协议)、RIP(路由信息协议)、OSPF(开放最短路径优先)等。
- 设备:
- 路由器(Router)、三层交换机(Layer 3 Switch)等。
- 实际应用:
- 路由器根据IP地址将数据包从你的电脑发送到远程服务器。
- 互联网中数据包通过多个路由器跳转到达目的地。
4. 传输层(Transport Layer)
- 功能:
- 提供端到端的数据传输服务,确保数据的可靠性和完整性。
- 负责流量控制、错误恢复和数据分段。
- 提供两种主要服务:
- 面向连接的服务(如TCP):确保数据可靠传输。
- 无连接的服务(如UDP):提供高效但不保证可靠性的传输。
- 协议/技术:
- TCP(传输控制协议)、UDP(用户数据报协议)、SCTP(流控制传输协议)等。
- 实际应用:
- TCP用于网页浏览(HTTP)、文件传输(FTP)等需要可靠传输的场景。
- UDP用于视频流、在线游戏等对实时性要求高的场景。
5. 会话层(Session Layer)
- 功能:
- 管理应用程序之间的会话(Session),控制对话的建立、维护和终止。
- 提供同步点,以便在通信中断时恢复会话。
- 管理对话模式(全双工、半双工、单工)。
- 协议/技术:
- NetBIOS、RPC(远程过程调用)、PPTP(点对点隧道协议)等。
- 实际应用:
- 在视频会议中,会话层管理用户之间的连接和断开。
- 在数据库访问中,会话层管理客户端与服务器之间的会话。
6. 表示层(Presentation Layer)
- 功能:
- 负责数据的格式化、加密和解密,确保数据在不同系统间的兼容性。
- 将应用层的数据转换为网络格式,或将网络格式转换为应用层数据。
- 处理数据压缩、加密和字符编码转换。
- 协议/技术:
- SSL/TLS(加密)、JPEG(图像格式)、MPEG(视频格式)、ASCII/Unicode(字符编码)等。
- 实际应用:
- 在HTTPS通信中,表示层使用SSL/TLS对数据进行加密。
- 在文件传输中,表示层将数据转换为适合网络传输的格式。
7. 应用层(Application Layer)
- 功能:
- 提供用户接口和网络服务,支持应用程序之间的通信。
- 直接为用户提供服务,如文件传输、电子邮件、网页浏览等。
- 协议/技术:
- HTTP(网页浏览)、FTP(文件传输)、SMTP(电子邮件)、DNS(域名解析)、DHCP(动态主机配置协议)等。
- 实际应用:
- 使用浏览器访问网页时,应用层使用HTTP协议与服务器通信。
- 发送电子邮件时,应用层使用SMTP协议。
总结
OSI七层模型的核心思想是分层解耦,每一层只关注自己的功能,并通过标准接口与上下层交互。这种设计使得网络协议和设备的开发、维护和升级更加灵活和高效。
| 层级 | 名称 | 功能概述 | 协议示例 | 设备示例 |
|---|---|---|---|---|
| 7 | 应用层 | 提供用户接口和网络服务 | HTTP、FTP、SMTP、DNS | 应用程序 |
| 6 | 表示层 | 数据格式化、加密、压缩 | SSL/TLS、JPEG、MPEG | - |
| 5 | 会话层 | 管理应用程序之间的会话 | NetBIOS、RPC | - |
| 4 | 传输层 | 提供端到端的数据传输服务 | TCP、UDP | 网关 |
| 3 | 网络层 | 负责数据包的路由和转发 | IP、ICMP、ARP | 路由器 |
| 2 | 数据链路层 | 提供节点到节点的数据传输 | 以太网、PPP | 交换机、网桥 |
| 1 | 物理层 | 在物理介质上传输原始比特流 | 以太网、Wi-Fi、USB | 网卡、集线器 |
TCP/IP 四层模型
-
- 网络接口层、网络层、传输层、应用层。
- 常见协议:
- 网络层:IP(IPv4/IPv6)、ICMP、ARP。
- 传输层:TCP、UDP。
- 应用层:HTTP、HTTPS、FTP、DNS、SMTP、WebSocket 等。
IP 地址和子网划分
- IP 地址:
- IPv4 和 IPv6 的区别。
- 公有 IP 和私有 IP。
- 子网划分:
- 子网掩码(Subnet Mask)。
- CIDR(无类别域间路由)表示法。
- NAT(网络地址转换):原理和作用。
传输层协议
- TCP(传输控制协议):
- 三次握手和四次挥手。
- 可靠传输机制(确认、重传、流量控制、拥塞控制)。
- UDP(用户数据报协议):
- 无连接、不可靠传输。
- 适用场景(如视频流、在线游戏)。
HTTP/HTTPS
- HTTP 协议:
- 请求/响应模型。
- 请求方法(GET、POST、PUT、DELETE 等)。
- 状态码(1xx、2xx、3xx、4xx、5xx)。
- Headers(如 Content-Type、Cache-Control、Authorization)。
- HTTPS:
- SSL/TLS 加密机制。
- 证书和 CA(证书颁发机构)。
DNS(域名系统)
- DNS 的作用:将域名解析为 IP 地址。
- DNS 查询过程:递归查询和迭代查询。
- DNS 记录类型:A、CNAME、MX、TXT 等。
网络安全基础
- 加密技术:
- 对称加密(如 AES)。
- 非对称加密(如 RSA)。
- 认证和授权:
- OAuth、JWT(JSON Web Token)。
- 常见攻击与防御:
- DDoS 攻击、SQL 注入、XSS(跨站脚本攻击)、CSRF(跨站请求伪造)。
网络编程
- Socket 编程:
- TCP Socket 和 UDP Socket。
- 客户端-服务器模型。
- RESTful API:
- 设计原则(如资源、HTTP 方法、状态码)。
- 使用工具(如 Postman)测试 API。
网络工具
- Ping:测试网络连通性。
- Traceroute:追踪数据包路径。
- Netstat:查看网络连接状态。
- Wireshark:抓包分析工具。
云计算和网络
- CDN(内容分发网络):加速内容分发。
- 负载均衡:如 Nginx、HAProxy。
- 云服务网络:如 AWS VPC、Azure Virtual Network。
实际应用场景
- Web 开发:理解 HTTP/HTTPS 请求的生命周期。
- 移动开发:处理网络请求和数据同步。
- 微服务架构:服务间通信(如 gRPC、REST)。
- 物联网(IoT):设备与服务器的通信。