1.1 网络概念
计算机网络是一组计算机或网络设备通过有形的线缆或无形的媒介如无线,连接起来,按照一定的规则,进行通信的集合。
网络功能和优点
- 数据和应用程序
- 资源
- 网络存储
- 备份设备
作用范围分类
- 广域网(WAN,Wide Area Network)
- 城域网(MAN,Metropolitan Area Network)
- 局域网(LAN,Local Area Network)
1.2 常见的网络物理组件
1.3 网络应用程序
1.3.1 各种网络应用
- Web 浏览器(Chrome、IE、Firefox等)
- 即时消息(QQ、微信、钉钉等)
- 电子邮件(Outlook、foxmail 等)
- 协作(视频会议、VNC、Netmeeting、WebEx 等)
- web网络服务(apache,nginx,IIS)
- 文件网络服务(ftp ,nfs,samba)
- 数据库服务( MySQL,MariaDB,MongoDB)
- 中间件服务(Tomcat,JBoss)
- 安全服务(Netfilter)
1.3.2 应用程序对网络的要求
-
批处理应用程序
- FTP、TFTP、库存更新
- 无需直接人工交互
- 带宽很重要,但并非关键性因素
-
交互式应用程序
- 库存查询、数据库更新
- 人机交互
- 因为用户需等待响应,所以响应时间很重要,但并非关键性因素,除非要等待很长时间
-
实时应用程序
- VoIP、视频
- 人与人的交互
- 端到端的延时至关重要
1.4 网络的特征
- 速度
- 成本
- 安全性
- 可用性
- 可扩展性
- 可靠性
- 拓扑
1.4.1 速度(带宽)
1.4.2 网络拓扑
拓扑结构一般是指由点和线排列成的几何图形
计算机网络的拓扑结构是指一个网络的通信链路和计算机结点相互连接构成的几何图形
拓扑分类
- 物理拓扑描述了物理设备的布线方式
- 逻辑拓扑描述了信息在网络中流动的方式
拓扑结构分类
- 总线拓扑:所有设备均可接收信号
- 星型拓扑:通过中心点传输,单一故障点
- 扩展星型拓扑:比星型拓扑的复原能力更强
- 环拓扑:信号绕环传输,单一故障点
- 双环拓扑:信号沿相反方向传输,比单环的复原能力更强
- 全网状拓扑:容错能力强,实施成本高
- 部分网状拓扑:在容错能力与成本之间寻求平衡
1.5 网络标准
1.5.1 网络标准和分层
旧模型:专有产品,由一个厂商控制应用程序和嵌入的软件
基于标准的模型:多厂商软件,分层方法
层次划分的必要性
计算机网络是由许多硬件、软件和协议交织起来的复杂系统。由于网络设计十分复杂,如何设计、组织和实现计算机网络是一个挑战,必须要采用科学有效的方法
层次划分的方法
- 网络的第一层应当具有相对独立的功能
梳理功能之间的关系,使一个功能可以为实现另一个功能提供必要的服务,从而形成系统的层次结构 - 为提高系统的工作效率,相同或相近的功能仅在一个层次中实现,而且尽可能在较高的层次中实现每一层只为相邻的上一层提供服务
层次划分的优点
- 各层之间相互独立,每一层只实现一种相对独立的功能,使问题复杂程度降低
- 灵活性好,各层内部的操作不会影响其他层
- 结构上可分割开,各层之间都可以采用最合适的技术来实现
- 易于实现和维护,因为整个系统已被分解成相对独立的子系统
- 能促进标准化工作,因为每一层的功能及其提供的服务都有了精确的说明
1.5.2 开放系统互联 OSI
OSI 七层的记忆口诀
All People Seem To Need Data Process
物数网传会表应
在制定计算机网络标准方面,起着重大作用的两大国际组织是:国际电信联盟电信标准化部门,与国际标准组织(ISO),虽然它们工作领域不同,但随着科学技术的发展,通信与信息处理之间的界限开始变得比较模糊,这也成了国际电信联盟电信标准化部门和ISO共同关心的领域。1984年,ISO发布了著名的OSI(Open System Interconnection)标准,它定义了网络互联的7层框架,物理层、数据链路层、网络层、传输层、会话层、表示层和应用层),即OSI开放系统互连参考模型
OSI 模型的七层结构
第7层 应用层
应用层(Application Layer)提供为应用软件而设的接口,以设置与另一应用软件之间的通信。例如:HTTP、HTTPS、FTP、TELNET、SSH、SMTP、POP3、MySQL等
第6层 表示层
主条目:表示层(Presentation Layer)把数据转换为能与接收者的系统格式兼容并适合传输的格式
第5层 会话层
会话层(Session Layer)负责在数据传输中设置和维护电脑网络中两台电脑之间的通信连接。
第4层 传输层
传输层(Transport Layer)把传输表头(TH)加至数据以形成数据包。传输表头包含了所使用的协议等发送信息。例如:传输控制协议(TCP)等。
第3层 网络层
网络层(Network Layer)决定数据的路径选择和转寄,将网络表头(NH)加至数据包,以形成报文。
网络表头包含了网络数据。例如:互联网协议(IP)等。
第2层 数据链接层
数据链路层(Data Link Layer)负责网络寻址、错误侦测和改错。当表头和表尾被加至数据包时,会形成信息框(Data Frame)。数据链表头(DLH)是包含了物理地址和错误侦测及改错的方法。数据链表尾(DLT)是一串指示数据包末端的字符串。例如以太网、无线局域网(Wi-Fi)和通用分组无线服务(GPRS)等。分为两个子层:逻辑链路控制(logical link control,LLC)子层和介质访问控制(Media access control,MAC)子层
第1层 物理层
物理层(Physical Layer)在局部局域网上传送数据帧(Data Frame),它负责管理电脑通信设备和网络媒体之间的互通。包括了针脚、电压、线缆规范、集线器、中继器、网卡、主机接口卡等
1.5.3 网络的通信过程
1.5.3.1 数据封装和数据解封
1.5.3.2 协议数据单元 PDU
PDU: Protocol Data Unit,协议数据单元是指对等层次之间传递的数据单位
- 物理层的 PDU是数据位 bit
- 数据链路层的 PDU是数据帧 frame
- 网络层的PDU是数据包 packet
- 传输层的 PDU是数据段 segment
- 其他更高层次的PDU是消息 message
1.5.3.3 三种通讯模式
- unicast
- broadcast
- multicast
1.5.3.4 冲突域和广播域
冲突域:两个网络设备同时发送数据,如果发生了冲突,则两个设备处于同一个冲突域,反之,则各自处于不同的冲突域
广播域:一个网络设备发送广播,另一个设备收到了,则两个设备处于同一个广播域,反之,则各自处于不同的广播域
1.5.3.5 三种通讯机制
- 单工通信:只有一个方向的通信,如: 收音机
- 半双工通信:通信双方都可以发送和接收信息,但不能同时发送,也不能同时接收,如:对讲机
- 全双工通信:通信双方可以同时发送和同时接收,如: 手机
范例:查看双工和速度
[root@rocky8 ~]# mii-tool eth0
-bash: mii-tool: command not found
[root@rocky8 ~]# dnf -y install net-tools
[root@rocky8 ~]# mii-tool eth0
eth0: negotiated 1000baseT-FD flow-control, link ok
#FD 就是全双工
[root@rocky8 ~]# mii-tool -v eth0
eth0: negotiated 1000baseT-FD flow-control, link ok
product info: Yukon 88E1011 rev 3
basic mode: autonegotiation enabled
basic status: autonegotiation complete, link ok
capabilities: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
advertising: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
link partner: 1000baseT-HD 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
[root@rocky8 ~]# ethtool -i eth0
driver: e1000
version: 7.3.21-k8-NAPI
firmware-version:
expansion-rom-version:
bus-info: 0000:02:01.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no
[root@rocky8 ~]# ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full #Half:半双工, Full :全双工,T:双绞线
Supported pause frame use: No
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full #Duplex:双工 , Full: 表示全双工
Auto-negotiation: on
Port: Twisted Pair #Twisted Pair:双绞线
PHYAD: 0
Transceiver: internal
MDI-X: off (auto)
Supports Wake-on: d
Wake-on: d
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
#网络断开的状态
[root@rocky8 ~]# mii-tool -v eth1
SIOCGMIIPHY on 'eth1' failed: Operation not supported #这就是网线没连接状态
[root@rocky8 ~]# ethtool eth1
Settings for eth1:
Supported ports: [ TP ]
Supported link modes: 1000baseT/Full
10000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: No
Supported FEC modes: Not reported
Advertised link modes: Not reported
Advertised pause frame use: No
Advertised auto-negotiation: No
Advertised FEC modes: Not reported
Speed: Unknown!
Duplex: Unknown! (255)
Auto-negotiation: off
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
MDI-X: Unknown
Supports Wake-on: uag
Wake-on: d
Link detected: no #这就是网线没连接状态
[root@rocky8 ~]# ip link show eth1
3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000
link/ether 00:0c:29:f9:6a:db brd ff:ff:ff:ff:ff:ff