29.Python基础篇-网络基础理论
重要知识点
BS与CS架构
BS(Bro wser/Server)架构:
- 基于浏览器和服务器的架构,客户端通过浏览器访问服务器上的应用程序或服务。
- 特点:客户端只需要一个浏览器,无需安装复杂的软件,服务器端处理大部分业务逻辑。
- 应用:Web应用(如Web浏览器访问网站)。
CS(Client/Server)架构:
- 客户端和服务器通过网络通信,客户端通常有专门的软件进行访问和操作。
- 特点:客户端软件与服务器有明确的职责分离,客户端处理部分数据,服务器处理核心数据和管理。
- 应用:传统的桌面应用(如数据库客户端)。
IP
公网IP:全球唯一的IP地址,用于互联网中各设备的标识。
局域网IP:仅在一个局部网络内部使用,通常由路由器分配。私有IP地址范围包括 192.168.0.0 - 192.168.255.255
、10.0.0.0 - 10.255.255.255
等
回环地址: 127.0.0.1
,叫做回环地址,指代本机,用于网络通信测试。
子网掩码:
- 定义:子网掩码(Subnet Mask)用来划分IP地址的网络部分和主机部分。它的作用是帮助路由器识别属于同一子网的设备。
- 常见示例:
255.255.255.0
表示子网掩码中的前24位用于网络标识,后8位用于主机标识。
IPV4与IPV6
IPv4地址为32位,通常表示为4个十进制数(如:192.168.1.1
)。IPv4支持约42亿个独立的IP地址,随着互联网设备的增长,IPv4地址逐渐紧张。于是,出现了IPV6
IPv6是为了解决IPv4地址不足问题而设计的,使用128位地址,支持更多的设备和网络。IPv6地址通常由8组16进制数表示(如:2001:0db8:85a3:0000:0000:8a2e:0370:7334
)。
mac地址与ARP协议
mac地址
- 定义:每个网卡(NIC)都有一个唯一的硬件地址,称为MAC地址。它用于数据链路层的通信。在生产时就由厂家标识的唯一ID
- 格式:MAC地址通常由6组16进制数表示,例如:
00:14:22:01:23:45
。
arp协议
- 定义:ARP(地址解析协议)用于将IP地址转换为相应的MAC地址。ARP协议在局域网内进行IP地址到MAC地址的映射。
- 工作原理:当一台设备要发送数据到另一台设备时,它需要知道目标设备的MAC地址。如果目标IP地址未知,ARP协议会发送ARP请求广播,目标设备根据IP地址响应其MAC地址。
交换机、路由器、网关、防火墙
交换机:
工作原理:交换机工作在数据链路层(第二层),根据MAC地址转发数据帧。交换机通过学习MAC地址表来决定数据帧的转发路径。
作用:在局域网中连接不同设备,提供高效的点对点通信。
路由器:
工作原理:路由器工作在网络层(第三层),根据IP地址来转发数据包。路由器负责跨越不同的网络(如局域网与广域网)进行数据传输。
作用:连接不同网络并选择最佳路径,将数据包从源网络传输到目标网络。
网关
定义:网关是连接不同网络或不同协议的设备,通常用于跨越不同协议栈的通信(如从IPv4到IPv6的转换)
应用:通常在互联网服务提供商(ISP)处,或者局域网与互联网的边界处。
交换机、路由器、网关三者之间的关系
-
交换机与路由器:
- 交换机和路由器常常在同一个网络环境中共同工作。交换机通常用于局域网内,负责设备之间基于MAC地址的通信;而路由器则负责跨网络(如局域网到广域网,或不同局域网之间)根据IP地址进行数据包的路由。
- 交换机无法处理跨网络的流量,它只会根据设备的MAC地址将数据传递给局域网内的其他设备。路由器则确保数据能够从一个网络转发到另一个网络。
-
路由器与网关:
- 在很多情况下,路由器和网关的作用会重叠。一个典型的家庭或小型企业网络中,路由器通常还担任网关的角色。路由器会处理局域网与互联网之间的数据传输(路由功能),并将内部网络设备的私有IP地址转换为公网IP地址(NAT功能)。
- 网关不仅仅是一个路由器,它的功能可以更加复杂。例如,它可以支持协议转换(如从IPv4到IPv6),或者在不同类型的网络之间进行流量管理。
- 在大型企业中,网关通常会作为连接不同网络、管理不同协议的设备,路由器则负责更直接的路由功能。
防火墙
功能:防火墙用于控制进出网络的流量,监控并限制不安全或不必要的数据传输
工作原理:通过配置规则,防火墙可以阻止恶意访问,确保网络安全
端口
端口的作用:一台电脑上的每个程序都会占用一个端口,通过IP可以在互联网上找到一台电脑,通过端口,则可以找到一台电脑上的某个程序。
端口的使用范围:
- 知名端口(0–1023):主要用于标准化的、最常见的服务和协议。
- 注册端口(1024–49151):用于注册的应用程序或服务,由开发者申请。
- 动态端口(49152–65535):用于操作系统分配给客户端的临时端口,通常用于动态连接。
注意事项:
在日常开发工作中,应使用8000之后的端口,因为之前的端口容易产生端口冲突。
互联网协议与OSI模型
OSI七层模型:
- 物理层:负责数据的物理传输,如电缆和无线信号。
- 数据链路层:确保数据在物理链路上无误地传输,负责MAC地址。
- 网络层:负责数据包的路由和寻址,处理IP地址。
- 传输层:确保数据的可靠性(如TCP协议)。
- 会话层:管理通信会话,控制对话的开始、结束等。
- 表示层:处理数据格式的转换、加密等。
- 应用层:为用户提供直接服务,如HTTP、FTP等。
TCP/IP模型:TCP/IP模型简化了OSI模型,通常分为四层:
- 应用层:提供网络服务和应用接口
- 传输层:处理端到端的数据传输(如TCP、UDP协议)
- 网络层:负责数据包的路由(如IP协议)
- 数据链路层:负责处理mac地址
- 物理层:负责物理传输,对应网线、网卡,发送二进制字节码
TCP协议
TCP协议的定义
TCP(Transmission Control Protocol)是一个面向连接、可靠的传输层协议,确保数据包按顺序到达目的地并且不会丢失。
三次握手与四次挥手
-
三次握手:
- 第一次握手:客户端发送SYN包,表示请求建立连接。
- 第二次握手:服务器响应SYN+ACK包,表示接收连接请求。
- 第三次握手:客户端发送ACK包,表示确认连接。
-
四次挥手:
- 第一次挥手:客户端发送FIN包,表示请求关闭连接。
- 第二次挥手:服务器回应ACK包,表示同意关闭连接。
- 第三次挥手:服务器发送FIN包,表示请求关闭连接。
- 第四次挥手:客户端回应ACK包,连接完全关闭。
UDP协议
UDP协议的定义:
UDP(User Datagram Protocol)是无连接的传输层协议,不提供可靠性保障,适用于需要高效率和实时性的应用。
特点:
没有建立连接的过程,不进行数据确认和重传,传输速度快,适用于视频、语音等实时应用。
TCP协议与UDP协议的区别