linux网络基础

linux

网络基础

学习来自千峰云计算,注:磊哥讲解部分

感谢“云计算磊哥”的开源精神!

https://www.bilibili.com/video/BV1GC4y1s737?p=95&spm_id_from=pageDriver

网络管理


#网卡文件路径/etc/sysconfig/network-scripts
#名字ifcfg-eno*  名字多样的可自定义  
#可以使用find查找  如:find /etc/ -name 'ifcfg*'
#systemctl status NetworkManager #网络管理主服务命令,一般用子管理即可
#systemctl status/stop/restat network  网卡子管理服务,重启停止等命令
#nmtui 网卡图形管理命令 
#ping 测试到另一个地址是否连通
	ping -c 1000 -i 0.01 url #ping一千个包,每个ping间隔0.01秒 跟ip或域名
#ping 127.0.0.1 ping自己	
	#ip a 或ifconfig 查看所有Ip
	#ip r 查看路由,查看网关 
	#ip neigh  查看ping通的主机

#ss -ntl 查看所有端口
	[root@192 conf.d]# ss -tnl
	State      Recv-Q Send-Q Local Address:Port               Peer 	Address:Port              
	LISTEN     0      128             :::80                          :::*         #80端口为httpd的端口         
	LISTEN     0      128             :::22                          :::*  

#traceroute  hostname/域名 
	#是用来检测发出数据包的主机到目标主机之间所经过的网关数量的工具
	#1.命令: traceroute -p 6888 www.bilibili.com #2探测包使用的基本UDP端口设置6888
	示例:[root@localhost ~]# traceroute www.bilibili.com
	traceroute to www.bilibili.com (47.103.24.173), 30 hops max, 60 byte packets
 	1  192.168.32.2 (192.168.32.2)  0.093 ms  0.034 ms  0.029 ms 
 		#三个时间是向每个网关发送3个数据包,网关响应后返回的时间 1.192.168.32.2是第一跳的网关
 	2  * * *  #第二跳网关,*可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据
	
	
#hostname 查看修改主机名称
#hostname 直接修改主机名称(centOS7 )
    #用法:hostnamectl set-hostname 主机名称
    #也可以直接在/etc/hostname/里边直接修改,重启生效
#systemctl stop firewalld centos7关闭防火墙命令
#systemctl disable firewalld 这个是永久关闭

#查看selinux的模式 (必须让他是关闭状态)
	getenforce 查看命令
	开启模式显示结果:Enforcing
	关闭模式显示结果:Permissive
		临时性关闭	# setenforce 0 #设置selinux为permissive模式(即关闭)
		永久关闭:vim /etc/sysconfig/selinux 里边的SELINUX=disable必须是这样 #重启生效

网卡配置

image-20220210205901153

以下是网卡字段说明
	TYPE="Ethernet"	#定义以太网接口类型
	BOOTPROTO="none"  #dhcp自动分配地址  none/static手动/静态
	IPADDR=192.168.32.135   #改为手动后需要添加字段IPADDR,并写上地址		#ip 互联网协议 address地址
	NETMASK=255.255.255.0   #子网掩码与IP成对出现,	#net网络 mask掩码
	GATEWAY=192.168.32.2		#添加字段GATEWAY网关,也叫默认路由
	DNS=192.168.32.2				#DNS???
	PEERROUTES="yes"	#是否从DHCP服务器获取用于定义接口的默认网关的信息的路由表条目
	IPV4_FAILURE_FATAL="no"	#如果ipv4配置失败不禁用设备 #no不禁用yes禁用
	NAME="eno16777736"					#网卡名字
	UUID="baa81b06-fd9b-4484-ace6-daf700d0e746"	#网卡身份
	DEVICE="eno16777736"				#网卡身份
	ONBOOT="yes"    #ONBOOT决定网卡是否开启启动 yes是/no否



配置一个动态IP只需要配置以下内容
	TYPE="Ethernet"
	BOOTPROTO="dhcp"
	NAME="eno16777736"
	DEVICE="eno16777736"
	ONBOOT="yes"
配置一个静态IP只需要配置以下内容
	TYPE="Ethernet"	#定义以太网接口类型
	BOOTPROTO="none"  #dhcp自动分配地址  none/static手动/静态
	IPADDR=192.168.32.132   #改为手动后需要添加字段IPADDR,并写上地址		#ip 互联网协议 address地址
	NETMASK=255.255.255.0   #子网掩码与IP成对出现,	#net网络 mask掩码
	GATEWAY=192.168.32.2		#添加字段GATEWAY网关,也叫默认路由
	DNS1=192.168.32.2				#DNS1 当地的DNS地址
	NAME="eno16777736"					#网卡名字
	DEVICE="eno16777736"				#网卡身份
	ONBOOT="yes"    #ONBOOT决定网卡是否开启启动 yes是/no否
	DNS2=114.144.144.144  #公共DNS地址 (或填写离自己最近的DNS地址)


#ip地址是一台主机在网络中的标识。同一个网络可以直接通信,ip地址是定位主机的
IPADDR=IP地址,NETMASK=子网掩码,这两个字段是成对出现的
如:IPADDR=192.168.32.135
		NETMASK=255.255.255.0  
			NETMASK=掩码是用来定义网络的,只有掩码一样才是同一个网络
				掩码分两部分

网络端口

是指TCP/IP协议中的端口,端口号的范围从0到65535

ip地址加端口号来区分不同的服务的


OSI模型

由国际化标准组长IOS制定

总共7层:应,表,会,传,网,数,物

OSI:7层次结构及功能  #信息传递的7个部分  #OSI只有理论没有实践
OSI:开放系统互联协议
应用层:应用程序/原始数据
	#提供应用程序间通信
表示层:格式/压缩/加密; 快速,安全
	#处理数据格式、数据加密等
会话层:会话/全双工/半双工; 验证身份信息 #示例:电话(全双工),对讲机(半双工)
	#建立、维护和管理会话
传输层:分段/重组/端口号; 传输效率
	#建立主机端到端连接
网络层:IP地址/寻址/路由
	#寻址路由
数据链路层:MAC地址/局域网  #MAC地址为网卡唯一地址
	#提供介质访问,链路管理等
物理层:传输介质/比特流; 电流/光/无线信号/4G/5G #比特流(高低电压)
	#比特率传输
	
#问题1:为什么OSI参考模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯?
	其最主要的功能就是帮助不同类型的主机实现数据传输
#问题2:分层结构的优点是?
	开发的标准化接口
	多厂商兼容性
	易于理解、学习和更新协议标准
	实现模块化工程,降低开发实现的复杂度
	便于故障排除

OSI模型与TCP/IP模型的区别是:OSI模型只有理论没有实践,TCP/IP模型是当今通信标准

TCP/IP

TCP/IP:传输控制协议/互联网协议 #是当今通信标准(是由美国军方实践,总结得出结论)

tcp/ip:5层结构/功能
应用层:应用程序/原始数据;格式/压缩/加密;会话/全双工/半双工;
	#提供应用程序间通信;处理数据格式、数据加密等;建立、维护和管理会话
	#应用层常用协议有:HTTP/超文本传输协议/网站;SSH/TELNET/远程控制;FTP/文件传输协议;SMTP/简单邮件传输协议/Email;DNS/域名服务/WWW
传输层:分段/重组/端口号; 传输效率  #封装
	#建立主机端到端连接
	#传输层常用协议:TCP/传输控制协议/可靠;UDP/用户数据报协议/不可靠
网络层:IP地址/寻址/路由	
	#寻址和路由选择
	#网络层常用协议:IP/互联网协议/寻址;ICMP/网络消息管理协议/测试
数据链路层:MAC地址/局域网 
	#提供介质访问,链路管理等
	#MAC地址为网卡地址 
	#数据链路层常用协议:MAC
物理层:传输介质/比特流; 电流/光/无线信号/4G/5G 
	#比特流传输(高低电压)

tcp/ip数据单元

应用层数据:AP DU #AP=APP DU=用户原始数据  APDU:应用协议数据单元
传输层数据:segment DU #分段数据
网络层数据:packet DU #包 数据  #说的抓包就是网络层
数据链路层数据:frame DU #帧 数据
物理层数据:bit DU #比特 数据

TCP/IP四层模型

最终模型

image-20220213204627891

封装和解封装

#封装:数据要通过网络进行传输,在发送端要从高层一层一层的向下传送,如果一个主机要传送数据到别的主机,先把数据装到一个特殊协议报头中,这个过程叫--封装
#tcp/ip封装和解封装原理
	用户A		         用户B
封装 ↓ (发送)                  
应用层数据		     应用层数据      
传输层数据          	 传输层数据      
网络层数据(封包)	  网络层数据      
数据链路层数据      	数据链路层数据    
物理层数据   →(传输)  物理层数据 
                        解封装↑(接收)

TCP

三次握手四次挥手 #了解

传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议

建立连接

TCP的三次握手 #来自百度百科

TCP是因特网中的传输层协议,使用三次握手协议建立连接。当主动方发出SYN连接请求后,等待对方回答SYN+ACK,并最终对对方的 SYN 执行 ACK 确认。这种建立连接的方法可以防止产生错误的连接

TCP三次握手的过程如下:

1. 客户端发送SYN(SEQ=x)报文给服务器端,进入SYN_SEND状态。
2. 服务器端收到SYN报文,回应一个SYN (SEQ=y)ACK(ACK=x+1)报文,进入SYN_RECV状态。
3. 客户端收到服务器端的SYN报文,回应一个ACK(ACK=y+1)报文,进入Established状态。

三次握手完成,TCP客户端和服务器端成功地建立连接,可以开始传输数据了。

图2 TCP的三次握手

连接终止

四次握手 #来自百度百科

#终止一个连接要经过四次握手,这是由TCP的半关闭(half-close)造成的
1 某个应用进程首先调用close,称该端执行“主动关闭”(active close)。该端的TCP于是发送一个FIN分节,表示数据发送完毕。
2 接收到这个FIN的对端执行 “被动关闭”(passive close),这个FIN由TCP确认。
3 一段时间后,接收到这个文件结束符的应用进程将调用close关闭它的套接字。这导致它的TCP也发送一个FIN。
4接收这个最终FIN的原发送端TCP(即执行主动关闭的那一端)确认这个FIN。 [
既然每个方向都需要一个FIN和一个ACK,因此通常需要4个分节。

img


UDP

原理 了解

用户数据包协议
	#是OSI 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。
    #在OSI模型中,在第四层传输层,处于IP协议的上一层,UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的
UDP特性
	#非面向连接:不用先于对方建立连接
	#不可靠:没有确认机制
	#因为它不属于连接型协议,因而具有资源消耗小,处理速度快的优点,所以通常音频、视频和普通数据在传送时使用UDP较多,因为它们使偶尔丢失一两个数据包,也不会对接收结果产生太大影响

IP

原理 了解

ip协议是TCP/IP协议族中最为核心的协议。所有TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输。

特点:
	#不可靠
		它不能保证IP数据报能成功的到达目的地。IP仅提供尽力而为的传送服务。如果发送某种错误时,如某个路由器暂时用完了缓冲区,IP有一个简单的错误处理方法:丢弃该数据报,然后发送ICMP消息给信源端。任何要求的可靠性必须由上层来提供(如TCP)
	#无连接
    	这个术语的意思是IP并不维护任何关于后续数据报的状态信息。每个数据报的处理是相互独立的,这也说明,IP数据报可以不发送顺序接收。如果一信息源向相同的信宿发送两个连接的数据报(先是A后是B),每个数据报都是独立的进行路由选择,可能选择不同的线路,因此B可能在A达到之前先到达

ARP

原理 了解

arp协议作用
	ARP地址解析协议用于将网络地址(IP地址32位)转化为物理地址(MAC地址48位)[RFC826]。
	ARP协议是属于"数据链路层or网络层"的协议,在以太网中的数据帧从一个主机到达网内的另一台主机是根据48位的以太网地址(硬件地址)来确定接口的,而不是根据32位的IP地址。内核(如驱动)必须知道目的端的硬件地址才能发送数据

ICMP

原理 了解

#ICMP是( Internet Control Message Protocol ) Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

ICMP经常被认为是IP层的一个组成部分。它传递差错报文以及其他需要注意的信息。ICMP报文通常被IP层或更高层协议(TCP或UDP )使用。一些ICMP报文把差错报文返回给用户进程

#主要功能有
侦测远端主机是否存在。
建立及维护路由资料。
重导资料传送路径。

DNS

DNS (Domain Name System 域名服务)(分布式,层次性)
作用:实现域名解析(例如将主机名解析为IP)
#互联网的访问依靠IP地址,但ip地址不好记,所以使用域名服务器(DNS,好记名),来替代访问的地址
	linux也可以(老的域名解析方式)
	[root@ybt ~]#cat /etc/hosts #负责ip地址与域名快速解析的文件
	127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 #自己的地址 映射的本机
	::1         localhost localhost.localdomain localhost6 localhost6.localdomain6  #IPv6
	192.168.32.2   ybt或www.ybt.com  #示例:自己随便建立域名,只要地址是通的,通过域名就能通!; 将主机名解析为IP,同一个网段通过你的主机名就可以访问到你的地址

FQDN(Fully Qualified Domain Name)完全合格域名/全称域名
	主机名.二级域.顶级域.(根域) 因为是美国发明的,所以从右向左分类 #如:www.baidu.com.第一个点“.”是根域 ,com是顶级域,baidu为二级域,www为主机名
	主机名.四级域.三级域.二级域.顶级域.(根域)#简单来说域名只是来解析地址的,只有顶级域(花钱),二级三级随便创;三级域名示例:www.music.baidu.com. #music为三级域
之所以分布式,层次性,是因为方便高效管理!
命名空间name space
	#用于给互联网上的主机命名的一种机制

DNS解析过程
	客户机——递归查询——>本地DNS服务器; DNS服务器 ——迭代查询——>DNS服务器  
	#1.客户先查询自己是否有缓存,没有就前往本地DNS服务器,本地也没有就去更大地区的DNS服务器,2.直到查询到根服务器查询到解析的地址为止(第2步一般出现在全世界电脑的第一次连接)

正向解析
	#把相对应的域名解析为地址
反向解析
	#把地址解析为IP (反垃圾邮件)

物理层

#信号 (了解)

	模拟信号
		不断变换的物理量(高电压代表什么音,底电压代表什么音)

	数字信号
		高低电压(特别容易区分)#高电压代表1底电压代表0

#介质	(了解)
	双绞线
		外形:八根线芯,两两互绞
		功率分类:一般使用cat5(10M-100M)(称为五类或超五类网线)
		功能分类:屏蔽型/非屏蔽型
		接口
			RJ45/水晶头
			线序:EIA/TIA568B:橙白,橙,绿白,蓝,蓝白,绿,宗白,宗
			标准网线:两端线序相同
	光纤
		多模:纤芯粗、低速,传输近,便宜 #相对光纤
		单模:纤芯细,高速,远,贵
		接口:FC/ST/LC

数据链路层

功能
地址
	MAC地址:媒体访问控制地址
		结构:12位16进制/48位2进制数字
		示例:00:0c:29:8a:a9:8c  #前六位是厂商标识,后六位是硬件标识
帧封装
	目标MAC/源MAC/数据/CRC	#了解:CRC循环冗余校验和(用来核查目标MAC到源MAC的数据是否正确)
交换机工作原理
	学习/广播/转发/更新 #更新地址为每300秒更新一次,若地址不在发送数据,交换机将擦除地址
	#交换机不能分割广播域,路由器可以
组建局域网
VLAN
	#vlan的范围 	-4095,共4096个(0和4095为保留,1为默认)
	#组建虚拟局域网
	思科虚拟路由软件的一些命令
		en	提权
 		config t 进入配置行
 		vlan 10	创建vlan10
 		vlan 20	创建vlan20
 		int f0/1 输入接口0/1
 		sw ac vlan 10 将端口0/1分给vlan10
 		int f0/2	输入接口0/2
 		sw ac vlan 20 将端口0/2分给vlan20
 		nt f0/3		输入trunk线的接口0/3
 		switch mode trunk 配置trunk模式
 	
 	在配置命令行输入
 		int f0/2	输入接口0/2
 		no sw ac vlan 10 #在vlan 10中删除刚输入的接口0/2
 		no int 10 #删除vlan 10的配置接口
 		no vlan 10	#删除vlan 10 虚拟局域网
 
		exit退出
	在非配置页面查看
		show  vlan 查看交换机VLA信息		q退出查看
		show mac-address-table 查看交换机的所有mac地址	
		show ip route  查看路由表
	添加路由信息		
		en
		config t
		ip route IP地址&子网掩码 端口 #示例ip route 1.0.0.0/8 f0/1 #因为路由器送到下一跳网段,只用配目的网段就好
	
TRUNK
	#vlan标签只存在trunk线路上
	#trunk作用通过一根线,传递不同vlan信息(同一个vlan只流线自己的vlan)
	#trunk不属于任何vlan
	干道
	配置 # int f(trunk端口)
		# switch mode trunk 配置trunk模式
	总结
		1.access是指定接口连接的是主机 #默认
		2.trunk是指定接口连接的是交换机,需要通过多个vlan的数据

网络层

#网络层(三层):分割广播域,便于寻址
IP地址
	分类
		公网
		A类:1-126 #如1.0.0.0-126.255.255.255
		B类:128-191
		C类:192-223
		#记忆方法127被保留192到223截至
		D类(224-239)组播 #不用记
		E类(240-255)科研 #不用记	
	私有ip分类
		A类:10.0.0.0-10.255.255.255
		B类:172.16.0.0-172.31.255.255
		C类:192.168.0.0-192.168.255.255

	子网掩码
		#子网掩码:把IP和子网掩码逻辑运算,得出网络地址
		#子网掩码定义两个通信对象,是同一网段,可直接通信,不是同一网段,不可直接通信
		#子网掩码定义两个通信对象,是同一网段,可直接通信,不是同一网段,不可直接通信,想要通信必须使用路由器
		作用:运算出IP地址的网络部分 #32位2进制数字
		分类
			A类:255.0.0.0		#/8 
			B类:255.255.0.0		#/16
			C类:255.255.255.0	#/24
			#8,16,24为子网掩码表达方式,8是主机部分8位为A类地址
		#问题1:192.168.1.2这个IP是哪个网段的,总共有几个可用IP
			答:属于这个192.168.1.0网段,总IP为156个,可用IP为254个,因为去掉网络地址(1.0)和广播地址(1.255)还剩余254个
			#最好不要配第一个地址后最后一个地址(经验之谈)
		#问题2:有一个260人的公司,能否用标准的C类地址?
			答:不能,解决方法:使用B类地址。因为B类地址有6万多个,B类地址主机位是16位,B子网掩码位255.255.0.0
		#问题3:超过6万人的局域网,使用什么类型的地址
			答:使用A类地址,因为A类地址主机位有24位,可以提供1600万个地址,A类子网掩码为255.0.0.0
		
	
网络层封装(了解)
	#一个地址到另一个地址需要160二进制
		#分别是32版本号,32位源地址和32目的地址,首部长度,校验和,TTL,协议类型,标识标志偏移量,可选项
路由器(网关)工作原理
	#路由器是用来连接不同网段的网络的设备
	#路由(网关)就是出网入网策略
	1)路由器是依据路由表来转发数据得!
	2)如果成功匹配路由表,则根据表的方向来转发数据!
	3)如果没有匹配路由表,则丢弃数据!
	4)匹配路由表时,优先匹配直连,然后是S,最后是S* 
	#主机配置的出网网关(路由)就是连接路由的ip
	路由表(了解)
		1.路由器中维护的路由条目的集合
		2.路由器根据路由表做路径选择  #网段 端口
	路由表的形成
		直连网段	#路由器已知网段
		非直连网段	#路由器未知网段


IP地址和子网掩码逻辑运算
举例说明:两个IP地址是不是同一网络,依靠三部曲。
1.IP地址转换2进制
	192.168.1.2
	1100 0000.1010 1000.0000 0001.0000 0010
2.子网掩码转换2进制
	255.255.255.0
	1111 1111.1111 1111.11111111.0000 0000
3.IP地址和子网掩码逻辑运算。
	1100 0000.1010 1000.0000 0001.0000 0010	#ip2进制
	1111 1111.1111 1111.1111 1111.0000 0000 #子网掩码2进制对应相乘
	1100 0000.1010 1000.0000 0001.0000 0000	
	#规律:子网掩码中1的位置,IP地址照抄;子网掩码中0的位置,IP地址全为o
4.得出网络地址(这个地址属于哪个网络)
	192.168.1.0



可变长子网(vlsm)与超网
#概念了解
	子网划分是通过增加掩码中“1"的位数来实现的,而超网划分是通过减少掩码中"1"的位数来实现的。获得超网地址的方法也是将超网掩码和IP地址进行按位"与""运算。
#无类地址
	利用掩码中"1"的位数的增加或减少可以方便地控制网络的规模。为了方便IP地址的分配和提高IP地址的利用率,1996年因特网组织机构发布了无类别域间路由CIDR ( Classless InterdomainRouting ).
    CIDR去掉了A类地址、B类地址和C类地址的概念,采用了无类地址的概念,不再由地址的前几个比特来预先定义网络类别。每一个地址仅仅包含网络号部分和主机号部分。

#如下
#25位:11111111.11111111.11111111.10000000,换算成十进制为255.255.255.128
#25位:11111111.11111111.11111111.11000000,换算成十进制为255.255.255.192
......
#28位:11111111.11111111.11111111.11110000,换算成十进制为255.255.255.240
#30位:11111111.11111111.11111111.11111100,换算成十进制为255.255.255.252
#25位:11111111.11111111.11111111.10000000,换算成十进制为255.255.255.128

进制转换

二进制,逢二进一

#二进制公式法,快速将十进制转换成2进制
				因为工作中二进制的范围是0~255
				    128	64	32	16	8	4	2	1
				     1	1	1	1	1	1	1	1 
				 -------------------------------------
如:十进制转换二进制
#方法就是能从大到小拆分
20转换2进制=					 1	 0	 1	 0	 0

#掩码了解 (刚好与二进制公式对应)
#25位:11111111.11111111.11111111.10000000,换算成十进制为255.255.255.128
#25位:11111111.11111111.11111111.11000000,换算成十进制为255.255.255.192
......
#28位:11111111.11111111.11111111.11110000,换算成十进制为255.255.255.240
#30位:11111111.11111111.11111111.11111100,换算成十进制为255.255.255.252
#25位:11111111.11111111.11111111.10000000,换算成十进制为255.255.255.128

单位换算

比特=bit=b=I/O

字节=byte=B=8比特 #因为ASCII规定8个二进制为一个字符 ,范围(0~255),0011 0000对应的就是键盘上的0

​ #UTF-8编码:一个英文字符等于一个字节,一个中文(含繁体)等于三个字节;Unicode编码:一个英文等于两个字节,一个中文(含繁体)等于两个字节。

​ #(原理)计算机也是每8位分析一次

1KB=1024B=1024字节

1MB=1024KB

1GB=1024MB

1TB=1024GB

......

posted @ 2022-02-16 20:05  ybt&kexiao  阅读(188)  评论(0编辑  收藏  举报