计算机网络

计算机网络是研究计算机与计算机之间如何传输数据、交换信息的学科。它包括了网络协议、网络硬件、网络软件等方面的内容。以下是一个计算机网络教程的基本概述,涵盖了网络的基础概念、协议、架构和应用。

第一部分:计算机网络基础

1. 计算机网络的定义

计算机网络是由多个计算机系统通过通信链路相连组成的网络,旨在共享资源(如硬件、软件和数据)并实现信息传输。

2. 计算机网络的组成
  • 硬件部分:计算机、路由器、交换机、网卡等。
  • 软件部分:操作系统、网络协议、应用程序等。
  • 通信介质:双绞线、光纤、无线电波等。
3. 计算机网络的分类

根据范围和规模,计算机网络可分为:

  • 局域网(LAN, Local Area Network):覆盖范围较小,通常是一个建筑物或校园。
  • 广域网(WAN, Wide Area Network):覆盖范围广,可能跨越城市、国家或全球。
  • 城域网(MAN, Metropolitan Area Network):介于局域网和广域网之间,通常覆盖一个城市或大范围的区域。

第二部分:网络协议与模型

1. 网络协议

网络协议是指计算机之间进行通信时必须遵守的规则和约定。它们定义了数据的格式、传输方法和错误控制等方面的内容。

2. OSI参考模型

OSI模型(开放系统互联模型)是计算机网络的标准模型,分为七个层次:

  1. 物理层:定义物理设备、传输介质、信号传输等。
  2. 数据链路层:提供可靠的数据传输,处理链路层的错误检测与纠正。
  3. 网络层:负责数据包的路由选择,确保数据能够从源主机传输到目标主机。
  4. 传输层:提供端到端的通信服务,保证数据的完整性与正确性。
  5. 会话层:建立、管理、终止会话,确保数据流的同步与控制。
  6. 表示层:数据的格式化、加密与解密、压缩与解压缩。
  7. 应用层:为用户提供各种网络服务,如文件传输、电子邮件、Web浏览等。
3. TCP/IP模型

TCP/IP模型是互联网的核心协议栈,分为四个层次:

  1. 网络接口层:对应OSI模型的物理层和数据链路层。
  2. 互联网层:对应OSI模型的网络层,主要是IP协议。
  3. 传输层:对应OSI模型的传输层,主要是TCP和UDP协议。
  4. 应用层:对应OSI模型的应用层,包含各种网络应用协议,如HTTP、FTP、SMTP等。

第三部分:网络设备与拓扑

1. 网络设备
  • 路由器(Router):用于不同网络之间的连接,决定数据的最佳传输路径。
  • 交换机(Switch):工作在数据链路层,负责在同一网络内的设备之间转发数据。
  • 集线器(Hub):物理层设备,简单的多端口设备,所有连接的设备共享带宽。
  • 网关(Gateway):连接不同协议或不同类型的网络,处理不同协议之间的转换。
  • 网卡(NIC, Network Interface Card):计算机与网络之间的硬件接口。
2. 网络拓扑

网络拓扑是指网络中各节点(计算机、交换机、路由器等)之间的连接方式。常见的网络拓扑有:

  • 星型拓扑:所有设备通过中心设备(如交换机)连接。
  • 总线拓扑:所有设备共享一条通信线路。
  • 环型拓扑:设备形成一个闭环,数据按环形传输。
  • 网状拓扑:设备之间形成多个连接,提供更高的可靠性。

第四部分:IP地址与子网划分

1. IP地址

IP地址是用来唯一标识网络中设备的地址。它有两种类型:

  • IPv4 :32位地址,由4个字节(8位)组成,格式为xxx.xxx.xxx.xxx
  • IPv6 :128位地址,使用16个字节,格式为xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
2. 子网掩码

子网掩码用于划分IP地址的网络部分和主机部分。通过子网掩码,可以将一个大的网络划分为多个小的子网,从而提高网络管理和资源分配的效率。

3. 私有IP与公有IP
  • 私有IP地址 :用于局域网内部,不能在互联网上直接访问,如192.168.x.x
  • 公有IP地址:用于互联网上的设备通信,必须通过ISP(互联网服务提供商)分配。

第五部分:路由与交换

1. 路由

路由是将数据从源设备传输到目标设备的过程。路由器根据目标IP地址、路由表和协议决定数据包的转发路径。

2. 交换

交换是指数据在局域网内的设备之间进行转发,交换机根据MAC地址表来决定数据的转发路径。

第六部分:网络安全

1. 防火墙

防火墙是一种安全设备,用于监控和控制进出网络的数据流,防止非法访问。

2. 加密

加密用于确保数据在传输过程中的机密性,防止被窃听。常见的加密技术有对称加密和非对称加密。

3. VPN(虚拟专用网络)

VPN通过加密和隧道技术,在公用网络上创建一个安全的私人网络,确保数据传输的安全性和隐私。

第七部分:常见网络协议

  • TCP(Transmission Control Protocol):面向连接的传输协议,提供可靠的数据传输。
  • UDP(User Datagram Protocol):无连接的传输协议,速度较快,但不保证数据可靠传输。
  • HTTP(HyperText Transfer Protocol):用于Web通信的应用层协议。
  • FTP(File Transfer Protocol):用于文件传输的协议。
  • DNS(Domain Name System):将域名转换为IP地址的系统。
  • SMTP(Simple Mail Transfer Protocol):用于发送电子邮件的协议。
总结

计算机网络是一个庞大的学科,涉及到的内容丰富且多样。从硬件、协议到应用,网络的各个层面都影响着我们日常的通信和信息传输。理解和掌握计算机网络的基本概念,有助于更好地理解互联网和其他各种网络服务的工作原理。

补充知识点:

IPv4 和 IPv6 :

IPv4IPv6 都是互联网协议(IP,Internet Protocol),用于在计算机网络中标识和定位设备。它们的主要区别在于地址格式、地址数量和一些技术细节。以下是对它们的详细解释:

IPv4 (Internet Protocol version 4)

IPv4 是当前最常用的互联网协议版本,使用 32 位地址来标识每个设备。一个 IPv4 地址通常表示为四个以点分隔的十进制数,例如:192.168.1.1

主要特点:
  1. 地址长度:32 位(4 字节),可以提供大约 43 亿(2^32)个不同的地址。
  2. 表示方法 :使用四个十进制数字,范围从 0 到 255,每个数字由点分隔。例如:192.168.1.1
  3. 地址空间:由于地址有限,IPv4 地址在全球范围内逐渐耗尽,IPv4 地址分配已经接近枯竭。
  4. 私有地址 :IPv4 还定义了一些私有地址范围(例如 192.168.x.x10.x.x.x),用于局域网(LAN)内设备的通信,避免与公网地址冲突。
示例:
  • 公网地址8.8.8.8
  • 私有地址192.168.1.1
IPv6 (Internet Protocol version 6)

IPv6 是为了应对 IPv4 地址耗尽问题而设计的互联网协议新版本,采用 128 位地址,可以提供几乎无限数量的 IP 地址(2^128 个地址)。

主要特点:
  1. 地址长度:128 位(16 字节),可以提供非常庞大的地址空间(约 340 兆兆个地址)。
  2. 表示方法 :IPv6 地址通常由 8 个 4 位十六进制数字组成,每个十六进制数字由冒号分隔。例如:2001:0db8:85a3:0000:0000:8a2e:0370:7334
    • 可以使用 :: 来压缩连续的零,例如:2001:db8::1
  3. 地址空间:IPv6 提供了比 IPv4 更大的地址池,解决了地址耗尽的问题。每个设备可以分配一个全球唯一的地址。
  4. 自动配置:IPv6 具备更强的自动配置能力,设备可以根据网络环境自动生成 IPv6 地址,而不需要依赖 DHCP 服务器。
  5. 安全性:IPv6 原生支持 IPsec(网络安全协议),IPv4 需要额外配置才能实现。
示例:
  • IPv6 地址2001:0db8:85a3:0000:0000:8a2e:0370:7334
IPv4 和 IPv6 的主要区别
特性 IPv4 IPv6
地址长度 32 位(4 字节) 128 位(16 字节)
地址表示 以点分隔的十进制数(例如:192.168.1.1 以冒号分隔的十六进制数(例如:2001:0db8::1
可用地址数量 约 43 亿(2^32)个 约 340 万亿万亿(2^128)个
地址类型 公网地址、私有地址、回环地址等 全球唯一地址,具有更高的私有地址支持
地址配置 手动配置或使用 DHCP 自动配置,支持无状态自动配置(SLAAC)
安全性 需要额外配置(如 IPsec) 原生支持 IPsec,安全性更高
为什么需要 IPv6?
  1. IPv4 地址耗尽:随着互联网设备的增加,IPv4 的地址已经接近枯竭,尤其是由于移动设备和物联网设备的迅速增加。
  2. 更大的地址空间:IPv6 提供了几乎无限的地址空间,可以为每个设备分配一个唯一的地址,这对于全球互联设备的增长至关重要。
  3. 改进的网络功能:IPv6 提供了更强的自动配置能力,更高效的路由机制,以及内建的安全性。
总结
  • IPv4 :仍然是当前互联网中使用最广泛的协议,但由于地址枯竭,需要逐步过渡到 IPv6
  • IPv6:虽然仍在逐步部署,但它为互联网的未来提供了更广阔的前景,支持更强的自动配置和更大的地址池。

linux操作系统网络教程:

基础命令:

ip addr 查看所有网络接口及其状态

ifconfig 查看所有网络接口及其状态

ip route 查看路由表

ip link show 查看网络接口的详细信息

nmcli connection show 查看所有连接

nmcli device status 查看网络设备状态

ip a 用于显示所有网络接口及其 IP 地址

ping www.baidu.com 测试与百度主机之间的连通性

traceroute www.baidu.com 显示数据包到达目标主机的路径,traceroute 或 tracepath都可以。

netstat -a 查看所有网络连接

netstat -i 查看网络接口统计信息

ss -l 查看正在监听的端口

curl www.baidu.com 测试 HTTP/HTTPS 请求

wget www.baidu.com 从网络上下载文件

dig www.baidu.com 查询 DNS(域名系统)信息的命令

arp 命令:

arp(Address Resolution Protocol)命令用于查看和管理ARP缓存表,该表存储了IP地址与MAC地址的映射关系。以下是arp命令的总结表格,涵盖了常见用法和选项。

命令 功能描述 说明
arp -a 显示当前所有的ARP缓存表 列出本地缓存的所有IP地址与MAC地址的映射关系。
arp -d 删除指定IP地址的ARP缓存 arp -d <IP地址> 删除指定IP地址的ARP缓存项。
arp -s 手动添加一个静态的ARP缓存项 arp -s <IP地址> <MAC地址> 添加一个指定的IP和MAC的静态映射。
arp -n 以数字格式显示ARP表 显示ARP缓存时,IP地址和MAC地址都以数字形式显示。
arp -v 显示详细的ARP表 显示每个ARP条目的详细信息,如过期时间等。
arp -i <接口> 显示指定接口的ARP缓存表 arp -i eth0 显示eth0接口的ARP表。
说明:
  • arp -a:显示当前计算机的ARP缓存表,通常以可读格式(包括IP地址和相应的MAC地址)展示。
  • arp -d <IP地址>:用于删除指定的IP地址与MAC地址的映射。此操作可能会迫使系统重新请求该地址的映射。
  • arp -s <IP地址> <MAC地址>:用于手动指定静态的IP和MAC地址映射。这样可以避免系统动态地查询ARP请求。
  • arp -n:通常与arp -a配合使用,以数字形式显示ARP条目,不进行DNS名称解析。

arp命令在调试网络问题时非常有用,尤其是在处理网络中的IP与MAC地址映射时。

网络服务命令:

使用systemctl 命令设置网络服务:

启动网络服务: sudo systemctl start network

停止网络服务: sudo systemctl stop network

设置自启动: sudo systemctl enable network

禁止网络服务: sudo systemctl disable network

查看网络服务开关状态:systemctl status network

使用chkconfig命令设置网络服务:

禁止网络服务: sudo chkconfig network off

设置网络服务自启动: sudo chkconfig network on

查看网络服务开关状态:sudo chkconfig --list network

设置1启动或者关闭: sudo chkconfig --level 1 network on/off

静态ip地址配置:

网络配置文件

/etc/network/interfaces(Debian/Ubuntu 系统):

配置网络接口的静态 IP 地址和其他设置。

/etc/sysconfig/network-scripts/(Red Hat/CentOS 系统):

存放网络接口配置文件,通常为 ifcfg-<interface> 文件。

DNS配置:

cat /etc/resolv.conf 查看DNS

vim /etc/resolv.conf 编辑DNS

静态IP配置:

cd /etc/sysconfig/network-scripts/ 进入网络信息配置文件目录

ll 查看目录下面的所有文件

vim ifcfg-ens33 编辑修改网络配置文件

TYPE="Ethernet"

PROXY_METHOD="none"

BROWSER_ONLY="no"

BOOTPROTO="static" //修改将 DHCP 改为 static

DEFROUTE="yes"

IPV4_FAILURE_FATAL="no"

IPV6INIT="yes"

IPV6_AUTOCONF="yes"

IPV6_DEFROUTE="yes"

IPV6_FAILURE_FATAL="no"

IPV6_ADDR_GEN_MODE="stable-privacy"

NAME="ens33"

UUID="b4da7c7b-1bc7-49b0-8868-5f98fc197563"

DEVICE="ens33"

ONB00T=yes //修改:修改为yes, 配置网卡开机自启动

IPADDR=192.168.64.88 //新增:配置静态ip地址

NETMASK=255.255.255.0 //新增:配置子网掩码

GATEWAY=192.168.64.2 //新增:配置网关

DNS1=192.168.64.2 //新增:配置DNS1

DNS2=8.8.8.8 //新增:配置DNS2

nmtui 图形化命令

在终端中输入 nmtui启动图形界面,进行手工配置网络信息。

nmcli 命令:

nmcli 是用于管理 NetworkManager 的命令行工具,在 Linux 系统中广泛用于配置和管理网络接口、Wi-Fi 连接、VPN、以及其他网络设置。以下是 nmcli 常见命令的总结表格:

nmcli 常用命令总结表格

命令 功能描述 说明
nmcli device 列出所有设备及其状态 nmcli devicenmcli device status 显示所有网络设备的状态。
nmcli device status 查看设备状态 显示所有设备的详细状态,如连接状态、设备类型等。
nmcli connection show 显示所有连接配置 显示当前配置的所有连接信息,包括接口、IP 地址等。
nmcli connection up <name> 激活指定的连接 激活一个已经配置好的连接。<name> 为连接名称。
nmcli connection down <name> 停用指定的连接 停止一个已连接的网络。<name> 为连接名称。
nmcli connection add 添加一个新的连接 用于创建新的连接,支持有线、Wi-Fi、VPN 等多种连接类型。
nmcli connection modify <name> 修改现有连接的配置 修改指定连接的设置,如 IP 地址、DNS、网关等。
nmcli connection delete <name> 删除指定连接 删除一个指定的连接配置。
nmcli device wifi list 列出可用的 Wi-Fi 网络 显示附近可连接的无线网络列表。
nmcli device wifi connect <SSID> 连接到指定的 Wi-Fi 网络 连接到指定 SSID 的 Wi-Fi 网络。
nmcli device wifi disconnect 断开当前连接的 Wi-Fi 网络 断开当前连接的 Wi-Fi 网络。
nmcli device wifi hotspot 创建一个 Wi-Fi 热点 将设备设置为 Wi-Fi 热点。
`nmcli device set <device> managed yes no` 设置设备是否由 NetworkManager 管理
nmcli networking off 禁用 NetworkManager 网络管理 禁用 NetworkManager 功能,通常用于关闭网络管理。
nmcli networking on 启用 NetworkManager 网络管理 启用 NetworkManager 功能,恢复网络管理。
nmcli general status 查看 NetworkManager 的状态 显示 NetworkManager 的状态,是否启用、是否在线等。
nmcli general hostname 查看或设置主机名 显示或设置主机名。
nmcli connection show <name> 显示指定连接的详细信息 查看某个连接的详细配置信息。
nmcli device status <device> 查看指定设备的状态 查看某个设备(如 eth0, wlan0)的状态信息。
nmcli connection reload 重新加载所有连接配置 用于重新加载 NetworkManager 配置。
nmcli device disconnect <device> 断开指定设备的连接 断开指定设备(如以太网、Wi-Fi)的连接。
nmcli device connect <device> 重新连接指定设备 重新连接指定设备(如以太网、Wi-Fi)。

总结:

nmcli 是一个功能强大的工具,可以通过命令行方便地管理 Linux 系统中的网络设置,包括设备管理、Wi-Fi 配置、VPN 连接、以及网络状态监控等。通过这些命令,用户可以轻松进行网络故障排除或自动化网络配置任务。

traceroute 命令

traceroute 是一种网络诊断工具,用于显示数据包从源主机到目标主机所经过的每一跳路由器的路径。它可以帮助我们分析网络延迟、丢包、路由问题等。以下是 traceroute 命令的常见选项和用法总结:

traceroute 常用命令总结表格

命令/选项 功能描述 说明
traceroute <目标地址> 跟踪到指定主机的路由路径 显示数据包从源到目标的路由跳数,以及每一跳的响应时间。
traceroute -m <最大跳数> <目标> 设置最大跳数 -m 选项用于指定最大跳数,避免无限循环,通常设置为 30。
traceroute -n <目标> 不解析主机名 使用 IP 地址而非主机名显示每跳路由,提升速度。
traceroute -w <超时时间> <目标> 设置每次跳数的超时时间(秒) -w 用于设置每个跳数的等待时间,默认 5 秒。
traceroute -q <查询次数> <目标> 设置每跳的查询次数 -q 用于设置每个跳数发送的探测数据包数,默认是 3。
traceroute -p <端口> <目标> 使用指定的端口进行探测 -p 指定探测的端口,通常用于 TCP 路由追踪。
traceroute -T <目标> 使用 TCP 协议进行追踪 -T 用于指定使用 TCP 进行追踪,而不是 ICMP。
traceroute -I <目标> 使用 ICMP 协议进行追踪(默认) -I 强制使用 ICMP 协议进行追踪,适用于多数情况。
traceroute -f <起始跳数> <目标> 设置起始跳数 -f 设置从指定的跳数开始追踪,可以用于跳过部分路由。
traceroute -v <目标> 打印详细的调试信息 -v 打印更多调试信息,有助于诊断问题。
traceroute --help 查看帮助信息 显示 traceroute 的所有选项和用法。
traceroute -4 <目标> 强制使用 IPv4 协议进行追踪 -4 强制使用 IPv4 地址进行路由追踪。
traceroute -6 <目标> 强制使用 IPv6 协议进行追踪 -6 强制使用 IPv6 地址进行路由追踪。

traceroute 是一个强大的网络工具,常用于诊断和分析网络路径,帮助识别中途的瓶颈或故障。通过灵活使用各种选项,可以更精准地控制追踪行为,帮助网络工程师定位问题。

相关推荐
lllsure4 小时前
Linux 实用指令
linux·物联网
努力的小T4 小时前
使用 Docker 部署 Apache Spark 集群教程
linux·运维·服务器·docker·容器·spark·云计算
Nerd Nirvana5 小时前
OpenSSL crt & key (生成一套用于TLS双向认证的证书密钥)
linux·ssl·shell·认证·加密·tls·oepnssl
letisgo56 小时前
记录一次部署PC端网址全过程
linux·阿里云·服务器运维
猫猫的小茶馆6 小时前
【网络编程】UDP协议
linux·服务器·网络·网络协议·ubuntu·udp
尚墨11116 小时前
linux 安装启动zookeeper全过程及遇到的坑
linux·zookeeper
鱼嘻6 小时前
Linux自学day23-进程和线程
linux·服务器·c语言·进程和线程
AuGuSt_816 小时前
在windows下安装windows+Ubuntu16.04双系统(下)
linux·ubuntu·双系统
old_power6 小时前
Linux(Ubuntu24.04)源码编译安装OpenCV4.6.0
linux·opencv
爆更小小刘7 小时前
Linux下基本指令(4)
linux·运维·服务器