网络通信原理算法
路由(IP地址 路由表 路由协议)vim
交换(MAC地址 mac表 广播域与冲突域)centos
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层次,以及相关的标准。
传输控制协议(tcp/ip)族是相关国防部(DoD)所建立的,主要用来确保数据的完整性及在毁灭性战争中维持通讯
是由一组不一样功能的协议组合在一块儿构成的协议簇
利用一组协议完成OSI所实现的功能
DoD(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
①. 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地址数值范围划分(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就表示减去网络地址和广播地址,剩余的就是可分配的主机地址
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表示借用的主机位个数
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) 显示主机的端口与服务网络链接状态。 lsof
05. 网络链接异经常用排查命令 ping命令 -c<count> 设置完成要求回应的次数;默认会一直长ping -f 表示极限ping,ping过程当中不显示任何信息,效率更高 -i<interval> 指定收发信息的间隔时间 -q 不显示指定执行过程,开头和结尾的相关信息除外 -s <数据包大小> 设置数据包的大小 tracroute/tracert命令,跟踪网络路径 telnet命令 ,查看相应的服务有没有开启 telnet ip 端口 nmap命令 ,与telnet命令相似 nmap ip -p 端口 或者 端口-端口(20-40)