网络基础

Posted 不拨牙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络基础相关的知识,希望对你有一定的参考价值。

******************* 目录 *********************
  一,iso网络七层模型
 
******************* 一,iso网络七层模型 ********************
	   A 主机                                       B 主机  单位
	7,应用层 <------------应用层协议-------------> 应用层 APDU
	 接口|											   |
	6,表示层 <------------ 表示层协议 -----------> 表示层 PPDU
	 接口 |                                            |
	5,会话层 <------------ 会话层协议 -----------> 会话层 SPDU
	 接口 |                                            |
	4,传输层 <------------ 传输层协议 -----------> 传输层 TPDU
	 接口 |                                            |
	3,网络层 <------------ 网络层协议 -----------> 网络层 报文 
	 接口 |                                            |
	2, 数据链路层 <------- 数据链路层协议 -------> 数据链路层 帧
	 接口 |                                            |
	1,物理层 <------------- 物理层协议  ---------> 物理层 比特
	
***************** TCP/IP四层模型 ***********************
        应用层,表示层,会话层 -------> 应用层 (7,FTP 8,SSH)
        传输层                 -------> 传输层 (5,TCP 6,UDP)
        网络层                 -------> 网际互联层 (2,IP,3,IGMP,4,ICMP)
        数据链路层,物理层      -------> 网络接口层 (1,ARP)

		1,ARP
			ARP - 地址解析协议(Address Resolution Protocol)
			ARP - 用于通过 IP 来查找基于 IP 地址的计算机网卡的硬件地址。
			命令:
				(1),查看计算机本地解析IP对应MAC地址
					# arp  -a

		2,IP 网际协议(Internet Protocol)
			IP 负责计算机之间的通信。
			IP 负责在因特网上发送和接收数据包。
			
		3,IGMP
			Internet 组管理协议称为IGMP协议(Internet Group Management Protocol),
			是因特网协议家族中的一个组播协议。
			该协议运行在主机和组播路由器之间。IGMP协议共有三个版本,即IGMPv1、v2 和v3。
			
		4,ICMP 
			ICMP - 因特网消息控制协议(Internet Control Message Protocol)
			ICMP 负责网络中的错误处理。
			
		5,TCP
			传输控制协议
			TCP 用于从应用程序到网络的数据传输控制。
			TCP 负责在数据传送之前将它们分割为 IP 包,然后在它们到达的时候将它们重组
			
		6,UDP
			UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,
			是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,
			提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。UDP在IP报文的协议号是17。

		例 :   FPT封装过程
			应用数据    字节流(数据)
			应用层      FTPc - 字节流(数据)
			传输层      TCF - FTP(21端口) - 字节流(数据)
			网络层      IP头 - FTP(21端口) - 字节流(数据)
			数据链路层  以太帧头 - IP -  FTP(21端口) - 字节流(数据)
			
		7,FTP
			FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。
			用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。
			基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。
			在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。"下载"
			文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝
			至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。
		
		8,SSH
			SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建
			立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性
			的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一
			个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于
			多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平
			台,都可运行SSH。
			
        一,IPV4详情
			1,IP总数量(255*255*255*255 = 4 228 250 625(42亿多))
			2,IP地址分类
				A类 : IP地址范围 1.0.0.0 - 126.255.255.255 (2^24-2的数量)。 私有的IP范围 10.0.0.0 - 10.255.255.255 (1千6百多万)
				B类 : IP地址范围 128.0.0.0 - 191.255.255.255 (2^16-2的数量) 。私有IP范围 172.16.0.0 - 172.31.255.255
				(127.0.0.1代表当前的计算机)
				B类 : IP地址范围 192.0.0.0 - 223.255.255.255 (2^8-2的数量) 。 192.168.0.0 - 192.168.255.255
				
			
		二,通过IP地址和子网掩码计算本机的网络地址和广播地址
			如:IP(192.168.2.187),子网掩码是(255.255.255.0)
				IP(二进制) 11000000:10101000:00000010:00000000
				子网掩码   11111111:11111111:11111111:00000000
				网络地址   11000000:10101000:00000010:00000000 (将IP与子网掩码逻辑与运算,即网络地址十进制是:192.168.2.0)
				广播地址   11000000:10101000:00000010:11111111 (十进制是:192.168.2.255,就是将主机段的最大值255)
				
		三,端口总结(1-65536)
			(1),在计算机每开启一服务,如果需要远程交换数据,则默认打开端口号,远程数据通过端口号与远程交换数据。(如果不是刻意去修改端口号,以端口号,大概知道是运行什么类

型的程序)
			(2),常见端口
				FTP(文件传输协议)    20,21
				SSH(安全的shell协议) 22
				telnet(远程登录协议) 23
				DNS(域名系统)        53
				http(超文本传输协议) 80
				SMTP(简单邮件传输协议)25
				POP3(邮局协议3代)    110 
			(3),查看本机端口
				# netstat -an 
					选项:
						-a    查看所有连接和监听的端口
						-n    显示IP地址和端口号,(而不显示域名和服务名)
			(4),UDP协议不监听远程端口号(不进行握手)。
		四,DNS(domain name system)域名解析
			(1),本机的host域名配置静态IP地址的优先级别高于公网。这有什么用?(可以在windows的配置个静态的IP,这样在Xshell的连接时是IP固定的而不随机)。
			(2),DNS解析流程
				本机---(1,发送网址,如:www.baidu.com)--->DNS服务器---(2,将网址解析成IP)--->本机---(以IP访问,www.baidu.com)--->百度服务器。
			
			(2),DNS查询分类
				1,从查询方式分
					(1),递归查询
						返回查询成功或失败的响应。一般客户机和DNS服务器之间的属于递归查询。即向DNS服务器发出请求,如果当前的DNS服务器查询不到,就向别的DNS

服务器
						发起DNS解析请求,直到不停地请求和计算出结果。返回客户机结果。
					(2),迭代查询
						服务器收到一次迭代查询回复一次结果,这个结果不一定是目标IP与域名的直接映射关系。也可以是其它的DNS服务器的地址。
				2,从查询内容上分
					(1),正向查询,由域名-->IP
					(2),反向查询,IP-->域名
					(北京DNS服务器。主:202.106.0.20;备:114.114.114.114)
		五,局域网
			(1),交换机
				负责局域网间的通信。所以只仅是局域网通信,可以没有配置网关,DNS,子网掩码。
			(2),网关(网间连接器)
				负责将局域网的IP转为公网IP实现公网通信
			
***************** linux的网络配置 *******************
	一,查看和临时配置IP
		1,查看
			# ifconfig
			
		2,临时配置
			# ifconfig eth0 [IP地址] netmask [子网掩码

		3,网卡配置文件
			(示例)
			vim /etc/syconfig/network-script/ifcfg-eth0
			DEVICE=eth0          		网卡设备名
			BOOTPROTO=none       		是否自动获取IP(none,static,dhcp)
			HWADDR=XX:XX:XX:XX:XX:XX	MAC地址
			NM_CONTROLLED=yes			是否可以由Network Manager图形管理工具托管
			ONBOOT=yes					是否随网络服务启动,eth0生效
			TYPE=Ethernet				类型为以太网
			UUID="xxxx-xxxx-xxxx-xxxx-xxxx" 唯一识别码
			IPADDR=xxx.xxx.xxx.xxx		IP地址
			NETMASK=255.255.255.0		子网掩码
			GATWAY=192.168.0.1			网关
			DNS1=xxx.xxx.xxx.xxx		DNS
			IPV6INIT=no					IPV6没有启用
			USERCTL=no					不允许非root用户控制此网卡

		4,关于VMware使用Linux的静态IP
			1,不能联外网
				(1),在 /etc/sysconfig/network-script/eth0lk加入
					check_link_down(){
							return 1;
					}
				(2),虚拟机的网络配置:仅主机模式
				(配置的静态IP地址是DHCP随机分配的,# ifconfig 查看的IP就是了。缺点是不能联网)
				(3),在VMware的网络配置选择:仅主机模式与主机共享专有网络
					
			2,能联网
				(1),windwos下的的真实网卡的IP和DNS自动获取
				(2),VMwarer 的网络配置选择:net桥接模式
				(3),cmd输入 ipconfig -all 将 VMnet8 的网卡信息写入eth0网卡的配置文件
					# vim /etc/sysconfig/network-scripts/ifcfg-eth0
					# service network 
				(4),修改指定桥接的网卡
					编辑-->虚拟网络编辑器t(自己选择当前使用的网卡)
					
		5,局域网主机名
			(1),临时修改局域网主机名
				# hostname [主机名]
				优点:立即生效
				缺点:临时生效
			(2),永久修改主机名
				# vim /etc/sysconfig/network
				优点:永久生效
				缺点:重启生效
		6,DNS配置文件
			# vim /etc/resolv.conf
			
		7,网络常用命令
			(1),查看网卡的配置信息
				# ifconfig
			(2),启用和关闭网卡
				# ifdown [网卡名] (禁用网卡)
				# ifup [网卡名] (启用网卡)
		8,查看本机DNS
			# nslookup [任意可用域名]
		9,相看本机网关
			# netstat -rn (# route -n)
		10,netstat命令选项
			-t:列出tcp协议端口
			-u:列出udp协议端口
			-n:不使用域名和服务名,面使用IP地址和端口号
			-l:列出监听状态的网络服务
			-a:列出所有的网络连接
			
			
************************ 网络测试或应用命令 ************************		
	1,ping测试指定的IP或域名是否和本机能连接
		# ping [IP或域名]
	2,telnet 测试指定IP 23端口是否开启
		# telnet [IP] [端口]
	3,路径由追踪命令,查看数据包经过哪些节点
		# traseroute [域名]
	4,下载文件
		# wget [下载链接]
	5,数据包抓取
		例:  # tcpdump -i eth0 -nnX port 21
			选项:
				-i   指定网上的接口
				-nn  将数据包中的域名与服务转为IP和端口
				-X   以十六进制和ASCII码显示数据包内容
				port 指定监听的端口 
	6,测试指定的端口是否开启
		# tcping ip:端口
		(# yum -y install tcping)
	7,路径测试
		# traceroute ip	
		(# yum -y install traceroute)
************************* 安装服务 *********************************
	1,安装ftp
		# yum install 
		
	
************************ SSH服务 **********************************

	1,ssh登录另一台服务器
		# ssh [用户名]@[IP]
	2,文件下载
		# scp [-r] [用户名]@[IP]:[文件路径] [本地路径]
	3,文件上传
		# scp [-r] [本地文件] [用户名]@[IP]:[上传远程主机文件路径]

  

以上是关于网络基础的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段14——Vue的axios网络请求封装

[vscode]--HTML代码片段(基础版,reactvuejquery)

[Go] 通过 17 个简短代码片段,切底弄懂 channel 基础

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

VsCode 代码片段-提升研发效率

201555332盛照宗—网络对抗实验1—逆向与bof基础