1 网络基础
1.1 为什么出现网络
(1)解决计算机通讯的需求
(2)实现计算机信息可以传递
1.2 什么是网络
计算机网络,就是把分布在不同地点的计算机系统进行连接,达到数据共享的目的。
1.3 构成网络的条件
(1)网络中至少有2台设备才能构成一个网络(局域网)
(2)必须要具备一个传输介质
传输介质:(1)导向式(2)非导向式
导向式:① 网线(双绞线)
正双绞线 交换机直连设备 RJ45 8根线 橙白 橙 绿白 蓝 蓝白 绿 棕白 棕
反双绞线 双机互联线
②光纤 ③铜轴
非导向式
①卫星 ②微波 ③红外 ④蓝牙 ⑤量子通讯
1.4 网络通讯的方法
(1)两台主机可以识别数据信息,通过二进制数的方式,利用制定好的协议标准。
(2)在发送数据的时候,将二进制数转换为电信号,在接收数据的时候,将电信号还原为二进制数。通过网卡调制 或接收不同的信号实现。
利用网线传输的是电信号,利用光纤传输的是光信号。
1.5 存储数据与比特换算方式
系统领域:识别数据信息---byte 字节 1byte = 8bit
网络领域:识别数据信息---bit 比特
2 交换机与路由器
2.1 交换机
交换机:适用于局域网之间,内有mac地址表
2.1.1 为什么要有交换机
为了实现多台主机之间互相通讯的需求
交换机可以实现隔离冲突域,但是无法实现隔离广播域
2.1.2 交换机的工作原理
工作原理:如果发送的目标mac地址是在列表中,就通过交换机端口转发数据。
目标地址MAC信息不在列表中,就通过广播域进行广播。
2.1.3 交换机实现互相通讯的要求
(1)找到需要接受我信息的人,在一个交换网络中,需要通过广播实现
(2)让接收人可以获悉接收的信息是发送给自己的,需要借助网络标识,即mac地址。mac地址是物理地址,mac 地址全球唯一
(3)当网络中发送的广播包过多时,也会影响网络中主机的性能,造成这种问题称为广播风暴。
一个广播风暴的波及范围只在一个局域网中。
在一个局域网中,所有的主机在一个广播域,一个交换机有多少个端口,就有多少个冲突域。
2.1.4 交换机的特点
(1)在一个交换机的端口上所连接的所有终端设备,均在一个网段上(称为一个广播域)
(2)并且一个网段会有一个统一的网络标识,会产生广播消耗设备cpu资源。
(3)交换机可以隔离冲突域,每一个端口就是一个冲突域
(4)终端设备接入
(5)基本的安全功能
2.1.4 广播风暴
广播风暴(broadcast storm)简单的讲是指当广播数据充斥网络无法处理,并占用大量网络带宽,导致正常业务不能运行,甚至彻底瘫痪,这就发生了“广播风暴”。一个数据帧或包被传输到本地网段 (由广播域定义)上的每个节点就是广播;由于网络拓扑的设计和连接问题,或其他原因导致广播在网段内大量复制,传播数据帧,导致网络性能下降,甚至网络瘫痪,这就是广播风暴。
缺点:(1)大量的消耗我们的系统资源(CPU 内存 网卡)(2)需要不断的广播
2.2 路由器
路由器:让不同网段(局域网)互相通信,内有路由表ip地址表。
2.2.1 为什么要有路由器
既要隔离广播风暴,有能让不同的局域网中的主机可以实现通讯。
2.2.2 路由器的工作原理
数据格式 = 源信息IP + 目标信息IP + 发送的内容(数据)
路由表 IP地址列表
当你目标信息 IP 地址在路由器的路由表中,它就转发给目标主机。
当你目标信息 IP 址不在路由器的路由表中,路由不认识,就把这一条信息丢弃了。
2.2.3 多个路由器互联
多个路由器互联,路由表信息实现统一一致的过程称为“路由表收敛”,路由器彼此之间说悄悄话,实现路由收敛的方式称为路由器协议。
2.2.4 路由条目
路由表中的每一条信息就叫一个路由条目。
作用:起到了网络的隔离作用。阻断了网络风暴的传播。
2.3 路由协议
2.3.1 静态路由器协议
需要手动的指明我要到达的目标网络,是通过路由器哪个接口对应连接的路由器到达。静态的方式添加路由条目。
优点:访问速度快,效率高。
缺点:需要专业人士才能操作。
2.3.2 动态路由器协议
采用类似广播的方式,每台路由器都告知其他相连的路由器,我所连了哪些网络。动态的方式添加路由条目。
优点:就是这些智能路由器相互之间进行学习,可以把路由条目进行共享。当你的网络拓扑发生变化的时候,也可以自动学习完成路由条目的添加。不需要专业人士进行配置。
缺点:延时了,效率低。
2.4 广播域与冲突域
路由器:每一个端口是一个广播域也是冲突域。
交换机:每一个端口都是一个冲突域,一台交换机共一个广播域。
3 网络划分
3.1 按网路层次划分
核心层、汇聚层、接入层
3.1.1 核心层
将网络主干部分称为核心层,核心层的主要目的在于通过高速转发通信,提供油画,可靠的骨干传输结构,因此核心层交换机应拥有更高的可靠性,性能和吞吐量。
3.1.2 汇聚层
将位于接入层和核心层之间的部分称为分布层或汇聚层,汇聚层交换层是多台接入层交换机的汇聚点,它必须能够处理来自接入层设备的所有通信量,并提供到核心层的上行链路,因此汇聚层交换机与接入层交换机比较,需要更高的性能,更少的接口和更高的交换速率。
3.1.3 接入层
通常将网络中直接面向用户连接或访问网络的部分称为接入层,接入层目的是允许终端用户连接到网络,因此接入层交换机,具有低成本和高端口密度特性。
3.2 按规模划分
局域网、城域网、广域网
3.2.1 局域网
本地私有的一个网络范围,如果是一个规模比较大的局域网,也会成为一个园区网。
3.2.2 城域网
如果一个网络的覆盖面积达到了一个城市,就可以成为城域网
3.2.3 广域网
如果覆盖的面积达到了全国或是全球,就成为广域网。全球最大的广域网是internet 互联网。
4 OSI 七层模型
OSI:开放系统互连参考模型 (Open System Interconnect 简称OSI)是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型,为开放式互连信息系统提供了一种功能结构的框架。它从低到高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
(1)物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换),这一层的数据叫做比特。
(2)数据链路层:定义了如何让格式化数据以进行传输,以及如何让控制对物理介质的访问,这一层通常还提供错误检测和纠正,以确保数据的可靠传输。
(3)网络层:在位于不同地理位置的网络中的两个主机系统之间提供连接和路径选择,Internet的发展使得从世界各站点访问信息的用户数大大增加,而网络层正是管理这种连接的层。
(4)传输层:定义了一些传输数据的协议和端口号(WWW端口80等),如:TCP(传输控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据),UDP(用户数据报协议,与TCP特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如QQ聊天数据就是通过这种方式传输的),主要是将从下层接收的数据进行分段和传输,到达目的地址后再进行重组,常常把这一层数据叫做段。
(5)会话层:通过传输层(端口号:传输端口与接收端口)建立数据传输的通路,主要在你的系统之间发起会话或者接受会话请求(设备之间需要互相认识可以是IP也可以是MAC或者是主机名)。
(6)表示层:可确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。例如,PC程序与另一台计算机进行通信,其中一台计算机使用扩展二一十进制交换码(EBCDIC),而另一台则使用美国信息交换标准(ASCII)来表示相同的字符。如有必要,表示层会通过使用一种通格式来实现多种数据格式之间的转换。
(7)应用层: 是最靠近用户的OSI层,这一层为用户的应用程序(例如电子邮件、文件传输和终端仿真)提供网络服务。
5 VLAN
VLAN,翻译成中文是“虚拟局域网”。LAN可以是由少数几台家用计算机构成的网络,也可以是数以千计的计算机构成的企业网络。VLAN所指的LAN特指使用路由器划分的网络,也就是广播域。
5.1 划分VLAN的原因
(1)提高安全性
举个例子:没有划分VLAN前,交换机端口连接下的所有PC都处于一个VLAN中即一个广播域中,实现ARP中间人攻击太简单了.划分了VLAN之后,缩小了ARP攻击的范围.ARP报文是一个2.5层的报文,只能在同一个VLAN中传播。
(2)提高性能
不划分VLAN,整个交换机都处于一个广播域,随便一台PC发送的广播报文都能传送整个广域播,占用了很多带宽.划分了VLAN,缩小的广播域的大小,缩小了广播报文能够到达的范围。
在实际工程中,VLAN划分和子网划分是同时进行的,通常情况下,一个VLAN对应一个子网,不同的VLAN和子网之间没有路由是无法进行通信的,需要经过三层交换机实现不同VLAN之间的通信。
6 TCP/IP协议
6.1组成
TCP/IP协议簇是Internet的基础,也是当今最流行的组网形式。TCP/IP是一组协议的代名词,包括许多别的协议,组成了TCP/IP协议簇。其中比较重要的有SLIP协议、PPP协议、IP协议、ICMP协议、ARP协议、TCP协议、UDP协议、FTP协议、DNS协议、SMTP协议等。
TCP协议:传输控制协议
IP协议:互联网协议
6.2 TCP协议:传输控制协议
TCP协议格式:
(1)单播:发送者和接收者实现点对点的网络连接。发送者和接收者都是主机。
网络服务的模型:B/S架构 B:浏览器 S:服务器 C/S架构 C:电脑软件 S:服务器
优点:①服务器及时的相应客户端的请求。②服务器针对每一个客户端不同的请求,发送不同的数据,实现这种 可以自定义的服务。
缺点:①服务器针对每个客户都要建立好连接发送数据。服务器流量=客户端的数量乘客户端的流量。
在客户端用户量大,或每个客户端流量大,服务器不堪重负。
②现有的网络宽带是金字塔结构的。客户端越多,网络宽带越小。
(2)组播:在发送者和每一个接收着之间实现点对多点的网络连接。如电话会议/QQ等
优点:①需要相同数据流的客户端加入相同的组共享一条数据。
②组播和单播一样允许在互联网上进行传输。
缺点:①和单播相比没有纠错的机制,发生丢包不好弥补。
(3)广播:广播是指在某一段ip地址中向该子网内所有的主机发送数据包,所有在该子网内的主机都将接收到这些 数据。
优点:设备比较简单,维护也简单成本低。服务器不用向每一个用户单独发送数据,所以服务器流量负载比较低
缺点:广播风暴等
6.2.1 协议名称与对应端口号
端口号:标示协议信息,便于计算机之间进行识别.
0 号端口在udp和tcp 中都不会使用。
协议名称 | 中文释义 | 协议端口 |
---|---|---|
FTP协议 | 文件传输协议 | 21 |
SSH协议 | 安全 Shell(SSH)服务 | 22 |
Telnet协议 | 远程登陆服务的标准协议 | 23 |
SMTP协议 | 简单邮件传输协议 | 25(UDP) |
DHCP协议 | 动态主机配置协议 | 67 68(UDP) |
TFTP协议 | 简单文件传输协议 | 69 |
HTTP协议 | 超文本传输协议 | 80/8080 |
POP3协议 | 邮局协议版本3 | 110 |
rpc协议 | 远程过程调用协议 | 111 |
SNMP协议 | 简单网络管理协议 | 161 |
NFS协议 | 网络文件系统 |
6.2.2 TCP与UDP
TCP (传输控制协议)面向连接的网络协议
UDP (用户报文协议)面向无连接的网络协议
传输控制协议(TCP) | 用户数据报协议(UDP) |
---|---|
面向连接 | 无连接 |
可靠传输 | 不可靠传输 |
流控 | 尽力而为,尽力传递 |
使用TCP应用: WEB浏览器;电子邮件;文件传输服务 |
使用UDP的应用: 域名系统 (DNS);视频流;ip语音(VoIP) |
6.3 IP协议
6.3.1 IP协议是干什么的
寻址 + 路由选择
寻址:寻址不是MAC地址,而是IP地址,逻辑地址。把寻找到的IP协议,交给路由选择。路由器通过路由ip地址列表来查看是否有此IP。
6.3.2 IP是什么
(1)它是由32位二进制数组成。4个字节组成, 1个字节=8个bit。
00000000 00000000 00000000 00000000
(2)ip组成分为网络标识(位) 和 主机标识(位)
32位2进制数中,网络标识为1,主机标识为0
6.3.3 五类IP地址段
A类地址段:000-127
B类地址段:128-191
C类地址段:192-223
D类地址段:224-239
E类地址段:240-255
特殊的IP地址:
192.168.0.1 路由器/网关
192.168.0.254 路由器或网关的地址
127.0.0.1 本地的地址
255.255.255.0 子网掩码
169.168.x.x 不能访问外网(路由器分配的地址能连接,但上不了外网)
0.0.0.0 DNS yum install -y bind
0.0.0.0 3306 MySQL 安全组 0.0.0.0
192.168.0.255 广播地址
6.4 IP地址的换算
表示IP地址的时候:从右到左 位数由低到高 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0
(1)二进制:11000000
十进制:1乘2^7+1乘2^6 = 128 + 64 = 192
(2)二进制:11111111 11111111 11111111 00000000
十进制:255.255.255.0
6.4.1 取余法
有下往上写出
6.4.2 权重法
例如:25换算2进制,25减128,减不到取0 。25减64,减不到取0。一次类推。25-16,减的到取1。然后剩9减8,减得到取1。剩1减4,减不到取0,减2减不到取0,减1减的到取1。
6.5 子网掩码
6.5.1 什么是子网掩码
A类地址的默认子网掩码是255.0.0.0。
B类地址的默认子网掩码是255.255.0.0。
C类地址的默认子网掩码为255.255.255.0。
类型+网络标识+主机标识
A 11111111.00000000.00000000.0000000
255.0.0.0
B 11111111.11111111.00000000.00000000
255.255.0.0
C 11111111.11111111.11111111.00000000
255.255.255.0
常见掩码的表示方式 32位2进制数中 网络标识位都为1,主机标识0
6.5.2 子网掩码作用
(1)用来屏蔽原来的网络划分情况
(2)用于子网划分:使用子网掩码、网络设备可以分析得出一个IP地址的网路地址(路由地址)和子网地址。
(3)便于网络设备的尽快寻址,区分本网段地址和非本网段的地址。
补充:
0000 0101
0000 0011
-----------
0000 0001
两个2进制数对应2进制位上的数如果都是1,那么结果还为1.否则就为0.
7 TCP报文结构
7.1 确认字段ACK
当ACK=1时,表示确认,且确认号有效;当ACK=0时,确认号字段无效
7.2 请求连接字段 SYN
当SYN=1时,表示发起一个连接请求。
7.3 断开连接字段FIN
用来释放连接。当FIN=1时,表明此报文段的发送端的数据已发送完成,并要求释放连接。
7.5 确认号
每一个TCP报文段都会有一个序号,序号字段的值其实是本报文段所发送的数据的第一个字节的序号。
这是因为TCP是面向连接的可靠服务,其每一个字节都会对应一个序号,通过序号来确保服务的可靠性和有序性。
7.6 序号与确认号
发送端发送一个seq序列号x,接收端需要回复一个确认号x+1,并发送一个序列号Y
发送端接收一个seq序列号y,接收端需要回复一个确认号y+1
8 三次握手与四次挥手
tcp协议:再原有的ip协议基础上,增加了确认重发,滑动窗口和复用等机制,提供可靠的面向连接的字节流服务。
特点:(1)字节流的服务,使用tcp协议进行传输的应用程序,数据结构可以认为没有结构的字节流
(2)tcp面向连接的单播协议,在发送数据前,通信的双方都必须在彼此间建立一条连接
什么是连接:就是客户端和服务器端在内存中保存着一份对方的信息。保留了端口号,IP地址等一些信息。
怎样建立一个连接:采用三次握手建立一个连接。
怎样关闭一个连接:采用四次挥手关闭一个连接。
8.1 三次握手
8.1.1 文字说明
(1)客户端发送一个带SYN标志的TCP报文到服务器。
(2)服务器端回应客户端的,这个报文同时带ACK标志和SYN标志。因此它表示对刚才客户端SYN报文的回应;同 时又标志SYN给客户端,询问客户端是否准备好进行数据通讯。
(3)客户必须再次回应服务段一个ACK报文。
8.1.2 三次握手五种状态
LISTEN | 侦听来自远方TCP端口的连接请求 |
---|---|
SYN-SENT | 在发送连接请求后等待匹配的连接请求 |
SYN-RECEIVED | 在收到和发送一个连接请求后等待对连接请求的确认 |
ESTABLISHED | 代表一个打开的连接,数据可以传送给用户 |
CLOSED | 没有任何连接状态 |
8.2 四次挥手
8.2.1 文字说明
(1) TCP客 户端发送一个FIN,用来关闭客户到服务器的数据传送。
(2) 服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一 样,一个FIN将占用一个序号。
(3) 服务器关闭客户端的连接,发送一个FIN给客户端。
(4) 客户段发回ACK报文确认,并将确认序号设置为收到序号加1。
8.2.2 四次挥手四种状态
ESTABLISHED | 代表一个打开的连接,数据可以传送给用户; |
---|---|
FIN-WAIT1 | 等待远程TCP的连接中断请求,或先前的连接中断请求的确认; |
FIN-WAIT2 | 从远程TCP等待连接中断请求; |
CLOSE-WAIT | 等待从本地用户发来的连接中断请求; |
CLOSING | 等待远程TCP对连接中断的确认; |
LAST-ACK | 等待原来发向远程TCP的连接中断请求的确认; |
TIME-WAIT | 等待足够的时间以确保远程TCP接收到连接中断请求的确认; |
CLOSED | 没有任何连接状态; |
8.3 十一种状态集
9 IP地址及子网掩码划分
实战:公司有一段IP地址段192.168.0.0,然后研发部,分50台pc,怎样让这个ip地址段能够容纳50台pc,减少 ip地址资源浪费。写出子网掩码及ip地址的有效范围。
该ip地址段为c类地址段,前三位为网络标识,后一位为主机标识。C类地址主机标识内理论上最多能用有256台pc,但实际中需要分配路由,广播一个。所以只能有254台pc。50台pc在2^6之内,所以ip地址段位192.168.0.0-64。在分配给路由,广播,所以还剩62个。实际的ip地址段为192.168.0.0-63
pc的数量为50,50的二进制数为6,将该地址段的主机标识由后往前置6个0。即主机标识为11000000
所以主机标识二进制数转换为十进制数为192。所以子往掩码为255.255.255.192
常见掩码的表示方式 32位2进制数中 网络标识位都为1,主机标识0.这样的表示方式就是2进制的子网掩码。
10 如何让连个不同网段的主机进行通讯
实战:如何让Route1和Route3进行通讯
Route1的eth0 ip 地址为10.0.0.201
Route2的eth0 ip 地址为10.0.0.202
Route2的eth1 ip 地址为192.168.0.12
Route3的eth0 ip 地址为192.168.0.13
配置命令:
Route1 添加网段192.168.0.0,网关10.0.0.202到路由中
route add -net 192.168.0.0/24 gw 10.0.0.202
Route3 添加网段10.0.0.0,网关192.168.0.12到路由中
route add -net 10.0.0.0/24 gw 192.168.0.12
Route2 开启路由转发功能
第一种方法:echo 1> /proc/sys/net/ipv4/ip_forward ###服务重启或节点重启配置会恢复
第二种方法:sysctl -w net.ipv4.ip_forward=1 ###服务重启或节点重启配置会恢复
第三种方法:echo "net.ipv4.ip_forwad=1">>/etc/sysctl.conf ###持久生效
sysctl -p 检查开启路由转发命令是否执行成功,出现反应即为成功
以上三个命令是开启linux转发功能的,所谓转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的ip地址将包发往本机另一网卡,该网卡根据路由表继续发送数据包。这通常就是路由器所要实现的功能。