网络知识
网络知识开篇介绍
运维网络知识结构
基础部分
网络通讯原理
路由(IP地址 路由表 路由协议)
交换(MAC地址 mac表 广播域与冲突域)
OSI7层模型
网络通讯数据包分装过程
进阶部分
TCP/IP模型(TCP/IP协议簇)
TCP三次握手/四次挥手状态集转换
深入部分
IP地址分类
IP地址子网划分原理
DNS协议原理
ARP协议原理
操作部分
与系统相关网络操作命令
网络知识学习路径
路由交换部分
网络安全部分
网络运营商部署部分
无线网络技术
语音网络技术
网络基础知识概念
网络通讯原理
到底什么是网络:实现通讯的技术
网络诞生第一步:网络主机
至少两台有通讯需求的主机才能构建网络
网络诞生第二步:硬件网卡
主机之间实现网络通讯需要有硬件支持,网卡就是实现通讯的硬件
网络诞生第三步:传输介质
实现网络通讯还需要有传输介质,常见的传输介质为网线、管线、wifi无线等
网络诞生第四步:数据传输
通过网卡将计算机可以识别的二进制信息转换为电压信息进行传输
调制解调的过程
网络诞生第五步:传输问题
通过网卡和传输介质,定义1个bit传输的单位时间,从而分辨连续相同的信号
网络诞生第六步:传输依赖
在网络数据传输过程中,影响传输速率主要是通讯双方的网卡和传输介质
网络拓扑架构构建
以上就是一个网络拓扑图
网络拓扑==网络设备连接图
做网络拓扑图有助于我们检查问题、解决问题
交换原理概念
问题:
在现实中,需要通讯的主机可不止两台,如何在多台计算机之间通讯,引入设备X(可以配置很多网卡的设备)
主机A发送后信息到主机D,主机B和C会不会响应
主机D接收到A的信息,如何清除是主机A发送的
广播包:当所有主机接入到X设备后,主机会发送一个网络包,识别多有的主机
交换机设备说明:
交换机概念:解决多台主机在一个网络里面通讯的需求
主机身份标识信息:称为叫做mac地址,又称为是一个物理地址(刻录在网卡上面的)
交换机通讯的网络范围:称为叫做一个局域网
交换机传输数据问题:
01. 会有广播风暴产生:会让主机接收到大量广播包,影响主机性能
一个交换机所有接口处于一个广播域内
02. 早期交换网络中,会存在数据冲突问题(数据碰撞)
目前一个交换机每一个接口处于一个冲突域内即可
总结:假设一个24口的交换机;总共有24个冲突域;总共有一个广播域
交换机作用特征说明:
在一个交换机的端口上所连接的所有终端设备,均在一个网段上(称为一个广播域)
并且一个网段会有一个统一的网络标识(mac),会产生广播消耗设备CPU资源(广播问题)
交换机可以隔离冲突域,每一个端口就是一个冲突域
终端用户的设备接入
基本的安全功能
广播域的隔离无法具备的
路由原理概念
大量主机在一个广播域内,会有广播风暴问题,我们可以把一个大的局域网切割成多个小得局域网
当有多个局域网的时候,即多个交换机组成的网络。两个局域网之间的主机之间该如何通讯?
连接路由器的主机通过IP地址识别不同的主机
IP:局域网标识+主机标识
路由器会有一个路由表,记录不同口连接的不同局域网标识
路由器设备说明:
路由器概念说明:实现不同网段主机通讯的需求
路由器身份标识信息:称为ip地址(网段信息+网络主机信息=IP地址),IP地址又称为是一个逻辑地址
总结:假设一个5口的路由器:总共有5个冲突域,总共有5个广播域
路由器作用特征说明:
广播、组播控制
对数据做寻址、选择到达目的网络的最佳路径
流量管理
连接广域网
网络架构层次概念
网络架构模型
网络层次架构组成
核心层:(放置外网互联路由器设备)
核心层的功能主要是实现骨干网络之间的优化传输,骨干层设计任务的重点通常是冗余能力、可靠性和高速的传输。
汇聚层:(放置的3层交换机)
汇聚层是楼群或小区的信息汇聚点,是连接接入层和核心层的网络设备,为接入层提供数据的汇聚\传输\管理\分发处理。
汇聚层为接入层提供基于策略的连接,如地址合并,协议过滤,路由服务,认证管理等。
通过网段划分(如VLAN)与网络隔离可以防止某些网段的问题蔓延和影响到核心层。
汇聚层同时也可以提供接入层虚拟网之间的互连,控制和限制接入层对核心层的访问,保证核心层的安全和稳定。
接入层:(放置2层交换机)
接入层通常指网络中直接面向用户连接或访问的部分。接入层目的是允许终端用户连接到网络,因此接入层交换机具有低成本和高端口密度特性。
网络规模区域划分
局域网:
本地私有的一个网络范围。如果是一个规模比较大的局域网,也会成为是一个园区网。
城域网:
如果一个网络的覆盖面积达到了一个城市,就可以称为城域网。
广域网:(互联网)
如果覆盖面积达到了全国或者全球,就称为广域网,全球最大的广域网就是Internet互联网。
网络互联模型
①. 网络层次模型概念介绍
OSI的概念:
open system interconnect开放系统互连参考模型,是由ISO(国际标准化组织)定义的。
是个灵活的、稳健的和可互操作的模型,并不是协议,是用来了解和设计网络体系结构的。
②. 网络层次模型作用说明
OSI模型的目的:
规范不同系统的互联标准,使两个不同的系统能够较容易的通信,而不需要改变底层的硬件或软件的逻辑。
每一层指定了不同协议标准
③. 网络层次模型组成部分
OSI把网络按照层次分为7层
由下到上分别为物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。每个层次对应了相应的标准或者协议。
④. 网络层次模型逐层说明
传输层:
重要协议:TCP协议和UDP协议
传输层数据包称为报文:会包含两个重要的信息--->源端口信息 目标端口信息
网络层:
重要协议:IP协议
网络层数据包称为包:会包含两个重要的信息--->源IP地址信息 目标IP地址信息
数据链路层:
数据链路层数据包称为帧:会包含两个重要的信息--->源MAC地址信息 目标mac地址信息
物理层:
传输模式:单工(电台广播) 半双工(对讲机) 全双工(电话)(通用模式)
物理拓扑:总线型 星型 环形网络
网络OSI网际互联
①. OSI网际互联数据包封装过程
②. OSI网际互联数据包解封过程
③. OSI网际互联过程的详细描述
网络TCP/IP层次模型
①. 网络层次模型概念介绍
用于简化OSI层次,以及相关的标准。
传输控制协议(tcp/ip)族是相关国防部(DoD)所创建的,主要用来确保数据的完整性及在毁灭性战争中维持通信
是由一组不同功能的协议组合在一起构成的协议簇
利用一组协议完成OSI所实现的功能
DoD(TCP/IP)模型各层包含的协议
②. 网络层次模型作用说明
③. 网络层次模型组成部分
④. 网络层次模型逐层说明
网络TCP/IP模型精讲
①. 网络重要协议说明
TCP与UDP协议对比:
传输控制协议(TCP) 用户数据报文协议(UDP)
面向连接 无连接
可靠传输 不可靠传输
流控 尽力而为,尽力传递
使用TCP应用 使用UDP的应用:
WEB浏览器;电子邮件;文件传输程序 域名系统(DNS);视频流;IP语音(VoIP)
tcp:必须建立连接,需要双方都同意,同步
udp:无需连接,不管对方同意不同意,异步
②. 网络协议报文结构
源端口随机分配,目标端口使用知名端口
[root@test ~]# cat /proc/sys/net/ipv4/ip_local_port_range
32768 61000
由于TCP协议头部使用16位来保存端口号,所以端口的个数最多为65536个,2^16=65536。0号端口不会被tcp和udp协议使用
tcp和udp协议端口号范围是 1~65535 ,并不是所有的端口都能随意使用
http 80 ssh 22 telnet 23
控制字段:
ack:表示确认控制字段,实现数据可靠连接
syn:表示请求建立连接字段
fin :表示请求断开连接字段
说明:控制字段信息默认为0,控制字段功能不起作用;控制字段信息置为1,表示相应控制字段功能开启
应用客户端使用的源端口号一般为系统中未使用的且大于1024的
目的端口号为服务器端应用服务的进程,如telnet为23
TCP报文结构
UDP报文结构
③. 网络连接建立过程
TCP/IP三次握手建立过程
一握手:请求建立连接(syn)
二握手:连接确认再请求(ack syn)
三握手:最后确认,即建立(ack)
④. 网络连接断开过程
TCP/IP三次握手建立过程
一挥手:请求连接要断开(fin)
二挥手:断开请求要确认(ack)
三挥手:思考过后要断开(fin,ack)
四挥手:最后确认,要断开(ack)
⑤. 网络状态转换过程
TCP的十一种状态机转换
另一种挥手情况:ACK确认字段没有被客户端收到,但是等来了FIN ACK,客户端直接变成closing
通过命令netstat -an 查看
[root@luffy-001 scripts]# netstat -an|grep -i es Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 64 10.0.0.200:22 10.0.0.1:51401 ESTABLISHED tcp 0 0 10.0.0.200:22 10.0.0.1:58972 ESTABLISHED Active UNIX domain sockets (servers and established) unix 2 [ ] DGRAM 10926 @/org/freedesktop/hal/udev_event [root@luffy-001 scripts]# netstat -lntup|grep sshd tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1549/sshd tcp 0 0 :::22 :::* LISTEN 1549/sshd
网络TCP/IP涉及原理
①. ARP协议原理
ARP协议的功能
1) 将IPv4地址解析为MAC地址
2) 维护映射的缓存
通过cmd查看arp缓存
win中
[D:\~]$ arp -a 接口: 192.168.0.16 --- 0xb Internet 地址 物理地址 类型 192.168.0.1 a8-6b-7c-08-8b-ee 动态 192.168.0.6 e4-0e-ee-8a-8b-61 动态 192.168.0.14 f4-f5-db-38-21-a0 动态 192.168.0.21 70-47-e9-3d-13-cd 动态 192.168.0.22 60-91-f3-64-5b-94 动态 192.168.0.24 a4-50-46-e5-72-25 动态 192.168.0.31 00-25-ab-55-62-89 动态 192.168.0.255 ff-ff-ff-ff-ff-ff 静态
Linux中
[root@luffy-001 scripts]# arp -a ? (10.0.0.2) at 00:50:56:ef:3e:a0 [ether] on eth0 ? (10.0.0.1) at 00:50:56:c0:00:08 [ether] on eth0
②. DNS协议原理
DNS是什么?DNS(Domain Name System)
DNS称为域名系统,在网站运行中器到了至关重要的作用
主要作用是负责把网站域名解析为对应的IP地址。
域名的层次级别:
第一个级别:称为 根域名服务器 .(全球13个)
第二个级别:称为 顶级域名服务器(一级域名服务器).com .cn .gov
第三个级别:称为 二级域名服务器(授权DNS服务器).baidu.com .jd.com
第四个级别:称为 虚拟主机信息 www.baidu.com www.jd.com
DNS解析相关命令
dig @8.8.8.8 www.xxx.com +trace
nslookup www.xxx.com
host www.xxx.com
ping www.xxx.com
[root@luffy-001 scripts]# dig www.baidu.com ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6 <<>> www.baidu.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8061 ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.baidu.com. IN A ;; ANSWER SECTION: www.baidu.com. 89 IN CNAME www.a.shifen.com. www.a.shifen.com. 89 IN A 163.177.151.109 www.a.shifen.com. 89 IN A 163.177.151.110 ;; Query time: 76 msec ;; SERVER: 223.5.5.5#53(223.5.5.5) ;; WHEN: Wed Feb 20 00:20:04 2019 ;; MSG SIZE rcvd: 90 [root@luffy-001 scripts]# nslookup www.baidu.com Server: 223.5.5.5 Address: 223.5.5.5#53 Non-authoritative answer: www.baidu.com canonical name = www.a.shifen.com. Name: www.a.shifen.com Address: 163.177.151.110 Name: www.a.shifen.com Address: 163.177.151.109 [root@luffy-001 scripts]# host www.baidu.com www.baidu.com is an alias for www.a.shifen.com. www.a.shifen.com has address 163.177.151.109 www.a.shifen.com has address 163.177.151.110 [root@luffy-001 scripts]# ping www.baidu.com PING www.a.shifen.com (163.177.151.110) 56(84) bytes of data. 64 bytes from 163.177.151.110: icmp_seq=1 ttl=128 time=9.61 ms 64 bytes from 163.177.151.110: icmp_seq=2 ttl=128 time=9.51 ms
查看本地DNS缓存ipconfig /displaydns
网络IP地址分类说明
按照IP地址数值范围划分(A B C 类 D类 组播地址 E类 预留研发使用)
32位IP地址,按照每8位划分
按照IP地址用途进行划分(公网地址 私网地址)
划分公网和私网地址最主要的作用:就是避免IP地址资源枯竭
常见私有地址
10.0.0.0/8 (10.0.0.0 到 10.255.255.255)
172.16.0.0/12 (172.16.0.0 到 172.31.255.255)
192.168.0.0/16 (192.168.0.0 到 192.168.255.255)
169.254.0.0/16 (169.254.0.0 到 169.254.255.255)*
IP私网地址类似于我们的身份证
IP公网地址类似于我们的护照信息
按照IP地址通讯方式划分(单播地址 组播地址 广播地址)
单播地址:
就是网卡上配置的IP地址,就称为单播地址
组播地址:
一般为D类地址,称为组播地址,只能在一个组内进行互相访问通讯
广播地址:
就是主机位全为1的,就称为广播地址
网络地址
就是主机位全为0的,就称为网络地址
特殊IP地址说明:
127.0.0.1
表示回环地址,进行测试使用,验证本地的TCP协议簇安装的是否正确。ping 127.0.0.1测试网卡是够正常
0.0.0.0
主机位全为0的称为是网络地址
255.255.255.255
主机位全为1的称为是广播地址,即向所有人发出信息
结论:主机地址可以范围中,不能包含网络地址和广播地址
总结得知:
0和255作为主机的地址,是不能进行分配使用的,只有0-255之间的地址可以进行分配为主机地址使用
根据主机地址范围取值,可以引入一个公式:
可以分配的主机地址个数=2的N次方-2 192.168.12. == 2的8次方=256-2=254 2的16次方=65536-2=65534
N次方的N表示有多少个主机位
-2就表示减去网络地址和广播地址,剩余的就是可分配的主机地址
网络IP地址划分说明
VLSN可变长子网掩码划分过程
IP地址划分子网的原因
172.16.0.0 ==> 2的16次方(n表示B类地址的主机位个数)-2=65536-2=65534
01. 为了避免IP地址资源浪费,会对IP地址进行子网划分
02. 大量的广播包,形成广播风暴,会严重影响主机性能
03. 会对路由器产生压力,路由的性能也会被耗尽
IP地址划分子网计算法
172.16.0.0 == 前两个8位为网络为 后两个8位为主机位
网络掩码概念:
有32位二进制数组成,并且每8位为一组,只要是网络位,都会置为1
172.16.0.0 这个B类地址为例说明:
172-128=44-32=12-8=4
10101100 00010000 00000000 00000000
掩码就是把网络位全置为1
11111111 11111111 00000000 00000000
掩码:
255.0.0.0 A类掩码信息 /8
255.255.0.0 B类掩码信息 /16
255.255.255.0 C类掩码信息 /24
将红线右移
总结得知:
因此可以得到另一个计算公式的结论
可以划分的子网数=2的N次方
其中N表示借用的主机位个数
局域网上网原理讲解
Linux中操作网络命令实现系统的网络通信
01. 系统网卡配置参数说明 网卡配置参数详解 [root@oldboy ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 <- 第一块网卡逻辑设备名;第二块为eth1, 有些系统也会以em等字符标识(centos7系统) TYPE=Ethernet <- 上网类型,目前基本都是以太网 UUID=sasd-sdasd-wqe-12 <- 通用唯一识别码(Universally Unique Identifier); 如果是vmware克隆的虚拟机无法启动网卡可以去除此项。 ONBOOT=yes <- 这个地方要设置为yes,才能保证下次开机启动激活网卡设备 NM_CONTROLLED=no <- 是否通过NetworkManager管理网卡设备(centos6关闭) BOOTPROTO=none <- 启动协议,获取IP地址配置方式,有none|bootp|dhcp三个选项 IPADDR=10.0.0.51 <- 表示本台局域网中服务器的固定IP地址 NETMASK=255.255.255.0 <- 子网掩码,用来规划网络为和主机位的,一般为255.255.255.0 DNS2=223.6.6.6 <- 第二个DNS,这里默认会覆盖以及优选于/etc/resolv.conf的配置文件 GATEWAY=10.0.0.254 <- 局域网上网网关地址 DNS1=223.5.5.5 <- 主DNS,这里默认会覆盖以及优先于/etc/resolv.conf的配置生效 USERCTL=no PEERDNS=yes <- 是否确认网卡配置文件中的DNS配置优先于/etc/resolv.conf配置文件 IPV6INIT=no <- 是否支持IPV6 HWADDR=00:0c:29:10:2e:28 <- 以太网硬件地址即MAC地址,如果是vmware克隆的虚拟机 无法启动网卡可以毫不犹豫的删除此项。 网卡配置生效方法: # 推荐:ifdown,ifup进行指定发卡的重启操作 ifdown eth0 && ifup eth0 <- 重启eth0网卡 ifup eth0 <- 启动eth0网卡 针对所有网卡进行重启操作(工作场景慎用此命令) /etc/init.d/network restart 02. 系统默认网关配置说明
[root@luffy-001 scripts]# route -n 查看路由信息
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
0.0.0.0 10.0.0.2 0.0.0.0 UG 0 0 0 eth0
添加默认网关路由(gw是网关缩写) route add default gw 10.0.0.254 route del default gw 10.0.0.254 添加静态网段路由 route add -net 172.16.1.0 netmask 255.255.255.0 gw 192.168.1.1
或者 route add -net 172.16.1.0/24 gw 192.168.1.1
[root@luffy-001 scripts]# route add -net 172.16.1.0 netmask 255.255.255.0 gw 192.168.1.1
SIOCADDRT: Network is unreachable # 报错,因为网关不存在
[root@luffy-001 scripts]# route add -net 172.16.1.0 netmask 255.255.255.0 gw 10.0.0.254
[root@luffy-001 scripts]# ping 172.16.1.0
PING 172.16.1.0 (172.16.1.0) 56(84) bytes of data.
添加静态主机路由 route add -host 192.168.2.13 dev eth2
route add -host 172.16.2.2 gw 10.0.0.254
03. 系统网卡多个地址配置 IP别名方式配置多地址 ifconfig eth0:1 10.0.0.100/24 up <- 配置别名IP,即虚拟IP(VIP),并启用虚拟IP ifconfig eth0:X down <- 停掉指定别名IP配置 辅助IP方式配置多地址 ip addr add 10.0.0.13/24 dev eth0:1 ip addr add 10.0.0.14/24 broadcast 10.0.0.255 dev ethx 添加广播地址 ip add del 10.0.0.10/24 dev ethx 需要使用 ip address show(简写ip a) 查看用ip addr 命令添加的IP
04. 网络地址信息获取命令 查看网络状态常用命令: ifconfig命令:centos 5 6系统中常用 用于显示网路配置信息 ip命令:centos7系统 用于显示网路配置信息 route命令: 查看路由配置信息
route -n 显示主机名称信息;也可以利用hostname显示ip地址配置信息hostname -I
hostname(uname -n) 显示主机的端口与服务网络连接状态,ESTABLISHED表示建立连接的状态,数量即表示网络连接数
netstat(ss-centos7)
ss -lntup|grep sshd 显示主机的端口与服务网络连接状态。 lsof
lsof -i:22
05. 网络连接异常常用排查命令 ping命令 -c<count> 设置完成要求回应的次数;默认会一直长ping -f 表示极限ping,ping过程中不显示任何信息,效率更高 -i<interval> 指定收发信息的间隔时间 -q 不显示指定执行过程,开头和结尾的相关信息除外 -s <数据包大小> 设置数据包的大小 tracroute/tracert命令,跟踪网络路径 telnet命令 ,查看相应的服务有没有开启
telnet ip 端口 nmap命令 ,与telnet命令类似
nmap ip -p 端口 或者 端口-端口(20-40)