软件设计师——计算机网络学习笔记

一、计算机网络

网络基础

1. 计算机网络的分类

2. 网络拓扑结构

总线型(利用率低、干扰大、价格低)

星型(交换机形成的局域网、中央单元负荷大)

环型(流动方向固定、效率低扩充难)

树型(总线型的扩充、分级结构)

分布式(任意节点连接、管理难成本高)

一般来说,办公室局域网是星型拓扑结构,中间节点就是交换机,一旦交换机损坏,整个网络都瘫痪了,这就是星型结构。同理,由路由器连接起来的小型网络也是星型结构。

3. OSI参考模型

OSI层 功能 单位 设备
物理层 负责比特流在物理介质上的传输,包括电压、线速、针脚等电气特性。 比特(Bit) 网卡、中继器、集线器
数据链路层 帧传输、错误检测与纠正、MAC寻址 帧(Frame) 交换机、网桥
网络层 负责逻辑寻址和路由选择,实现不同网络间的数据包传输。 数据包(Packet) 路由器、三层交换机
传输层 端到端连接、流量控制、可靠性保障 段(Segment,TCP)或数据报 网关、防火墙
会话层 建立、管理、终止会话 数据(Data) 不常见(软件实现为主)
表示层 数据格式转换、加密/解密、压缩 数据(Data) 软件协议栈
应用层 直接为用户应用提供服务,如文件传输、电子邮件等。 数据(Data) 代理服务器、应用网关

由低层到高层分别为:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层(速记词:巫术忘传会飙鹰)。

网络设备

1. 网卡(Network Interface Card, NIC)

网卡是计算机与网络之间的硬件接口,负责将数据转换为电信号或光信号进行传输。功能包括物理地址(MAC地址)识别、数据封装与解封装、流量控制等。有线网卡通过RJ-45接口连接网线,无线网卡通过天线接收Wi-Fi信号。


2. 中继器(Repeater)

中继器工作在物理层,用于放大或再生网络信号以延长传输距离。作用仅限于信号增强,不改变数据内容,也无法识别数据包的目标地址。中继器功能单一,无法隔离冲突域或广播域。


3. 集线器(Hub)

集线器是物理层设备,功能类似于多端口中继器。所有连接到集线器的设备共享同一冲突域,数据广播到所有端口,缺乏定向传输能力。因其效率低,现代网络已逐渐被交换机取代。


4. 网桥(Bridge)

网桥工作在数据链路层,用于连接两个MAC层协议相同的网络(局域网)并过滤流量。通过MAC地址表学习目标设备位置,仅转发目标地址在另一端的帧,从而减少不必要的广播流量。


5. 交换机(Switch)

交换机是高性能的网桥升级版,在数据链路层转发数据帧,基于MAC地址进行点对点通信。每个端口独立构成冲突域,支持全双工通信。通过MAC地址表实现点对点数据传输,显著提升网络效率。交换机隔离冲突域,但默认不隔离广播域(除非使用VLAN)


6.路由器(Router)

路由器工作在网络层(OSI第三层),负责在不同网络间转发数据包。功能包括IP地址寻址、路由选择(如OSPF、BGP协议)、NAT(网络地址转换)和防火墙基础防护。路由器处理IP地址,而交换机处理MAC地址。


7.网关(Gateway)

网关是高层协议转换设备,工作于传输层及以上(OSI第四至七层)。用于连接不同协议的网络(如TCP/IP与SNA),或实现应用层协议转换(如邮件网关)。广义上,路由器也可视为一种网关。


8.防火墙(Firewall)

防火墙是网络安全设备,工作层次从网络层到应用层不等。监控进出网络的数据流,基于规则允许或拦截流量。功能包括:

  • 包过滤:基于IP、端口等规则阻止非法流量。
  • 状态检测:跟踪连接状态以识别异常会话。
  • 应用层防护:深度检测HTTP、FTP等协议内容。
  • VPN支持 :加密远程访问流量。
    可分为硬件防火墙(如企业级设备)和软件防火墙(如Windows Defender)。

网络协议

1. TCP/IP协议

2. 常见网络协议端口号及作用

端口号 协议名称 作用
20/21 FTP 文件传输协议(20用于数据传输,21用于控制连接)
22 SSH 安全外壳协议,用于加密远程登录和管理
23 Telnet 远程登录协议(明文传输,安全性较低)
25 SMTP 简单邮件传输协议,用于发送邮件
53 DNS 域名系统协议,用于域名解析
67/68 DHCP 动态主机配置协议(67为服务器端,68为客户端)
80 HTTP 超文本传输协议,用于网页浏览
110 POP3 邮局协议版本3,用于接收邮件
143 IMAP 互联网消息访问协议,用于邮件管理(比POP3更高级)
161 SNMP 简单网络管理协议,用于网络设备监控和管理
443 HTTPS 安全的HTTP协议,通过SSL/TLS加密传输数据
465 SMTPS 加密的SMTP协议(基于SSL)
587 SMTP(提交) 邮件提交端口(通常与STARTTLS加密配合使用)
993 IMAPS 加密的IMAP协议(基于SSL/TLS)
995 POP3S 加密的POP3协议(基于SSL/TLS)
3306 MySQL MySQL数据库默认端口
3389 RDP 远程桌面协议,用于Windows远程访问
5432 PostgreSQL PostgreSQL数据库默认端口
5900 VNC 虚拟网络计算协议,用于远程桌面控制
6379 Redis Redis数据库默认端口

** 网际层协议**

IP 的主要功能包括将上层数据(如TCP、UDP数据)或同层的其他数据(如ICMP数据)封装到IP数据中;将IP数据报送到最终目的地;为据报到达其他网络中的目的地的路径。

地址解析协议ARP的作用是将IP地址转换为物理地址,反地址解析协议RARP的作用是将物理地址转换为IP地址。

Internet 控制信息协议(ICMP)是网际层的另一个比较重要的协议。由于 IP 是一种尽力传送的通信协议,即传送的数据报可能会丢失、重复、延迟或乱序,因此IP需要一种避免差错并在发生差错时报告的机制。ICMP就是一个专门用于发送差错报文的协议。ICMP定义了五种差错报文(源抑制、超时、目的不可达、重定向和要求分段)和四种信息报文(回应请求、回应应答、地址屏蔽码请求和地址屏蔽码应答)。
传输层协议

传输控制协议TCP是TCP/IP 协议族中最重要的协议之一,利用TCP在源主机和目的机之间建立和关闭连接操作时,均需要通过三次握手来确认建立和关闭是否成功,如图10-7所示。

用户数据报协议UDP是一种不可靠、无连接的协议。UDP协议软件的主要作用是将UDP消息展示给应用层,并不负责重新发送丢失或出错的数据消息,不对接收到的无序IP数据报重新排序,不消除重复的IP数据报等。

常用的网络诊断命令

ping: 用于测试与目标主机的连通性和延迟。发送ICMP回显请求包,接收回显应答包。
tracert: 追踪数据包从源到目标的路径,显示经过的每一跳(路由器)及延迟。
nslookup: 查询DNS记录,验证域名解析是否正常。
netstat: 显示网络连接、路由表、接口统计等信息。
ipconfig: 查看或配置网络接口信息(IP地址、子网掩码、网关等)。

IP

1. IP地址

计算机存放的IP地址是 32位的二进制代码,每隔8位插入一个空格,可提高可读性,为了便于理解和设置,一般会采用点分十进制方法来表示:将32位二进制代码每8位二进制转换成一进制,就变成了4个十进制数,而后在每个十进制数间隔中插入.如下所示

Internet中的地址可以分为五类:A类、B类、C类、D类和E类,各类地址分配方案如图。

特殊地址:

169.254 是自动专用IP地址,当DHCP故障时为主机分配的临时IP地址
主机位:全0是本地网络地址,全1是广播地址,其他是主机地址。

2. 子网掩码

子网掩码(Subnet Mask)是一种32位的二进制数字,用于划分IP地址的网络部分和主机部分。它与IP地址结合使用,通过逻辑"与"运算确定网络地址。子网掩码由连续的1和连续的0组成,1表示网络位,0表示主机位。

IP地址类别 默认子网掩码 IP地址范围
A类 255.0.0.0 1.0.0.1 - 126.255.255.254
B类 255.255.0.0 128.0.0.1 - 191.255.255.254
C类 255.255.255.0 192.0.0.1 - 223.255.255.254

子网掩码通常有两种表示形式:

  • 点分十进制:如255.255.255.0,对应二进制为11111111.11111111.11111111.00000000。
  • CIDR斜线表示法:如/24,表示掩码中1的个数为24位。

3. 子网划分

我们一般采用子网划分的方法来划分网络,将主机号拿出几位作为子网号,就可以划分出多个子网,此时IP地址组成为:网络号+子网号+主机号 。(本质还是保留了分类编址结构)

网络号和子网号都为1,主机号都为0,这样的地址为子网掩码。

如何判断两个IP地址是否在同一网段?

只需要确定其网络号+子网号是否相同 ,可以将子网掩码和源IP地址进行与运算,得出网络地址,判断网络地址是否相同即可。网络号不同的主机属于不同的网段,不能直接通信,必须通过网络路由才能互相通信。

要注意的是:子网号可以为全0和全1,主机号不能为全0或全1,因此,在计算时,主机数需要 - 2,而子网数不用。

特殊情况处理

如果子网掩码不同,即使IP地址看起来相似,也可能不在同一网段。例如:

IP地址1:192.168.1.10,子网掩码:255.255.0.0,网络地址:192.168.0.0

IP地址2:192.168.1.20,子网掩码:255.255.255.0,网络地址:192.168.1.0

此时网络地址不同,不在同一网段。