2.计算机网络基础

网络基础

一.网络的重要性
二.网络设备

有线网卡 无线网卡 集线器 交换机路由器 光猫(调制解调器光纤信号转换电信号) 交换机 运营商

带宽 通信介质 多操作系统兼容 协议

三.osi七层模型

1.应用层

1.1应用层

各种应用程序协议 直接与用户和和应用程序打交道,负责对软件提供接口以使程序能使用网络服务

超文本传输协议HTTP 文件传输协议FTP 电子邮件协议SMTP 邮局协议POP3 域名DNS

1.2会话层

利用传输层提供的端到端服务,向表示层或会话用户提供会话服务

1.3表示层

负责将应用层的信息“表示”成一种格式,让对端设备能够正确识别,它主要关注传输信息的语义和语法,负责数据的加密和压缩。

2.传输层

传输层提供进程和进程(端到端)之间的逻辑通信。与网络层的区别是,网络层提供的是主机之间的逻辑通信。应用进程之间的通信又称端到端的逻辑通信。

TCP UDP

3.网络层

控制子网的运行 逻辑编制 分组传输 路由选择

IP

4.数据链路层

物理寻址 同时将原始比特流转变为逻辑传输路线 可靠地传输到相邻节点的目标机网络层,数据链路层在不可靠的物理介质上提供可靠的传输。

5.物理层

机械 电子 定时接口通信信道上的原始比特流传输

四. 数据的封装与解封装

![alt](C:\Users\Administrator\Pictures\Camera Roll\4d0d4b4ff0ffa09bcb6be507918fdc8a.png)

  1. 计算机A到交换机B
    封装过程
    应用层:生成应用层数据(如HTTP请求)。
    传输层:封装成传输层段(如TCP段),加上传输层头部。
    网络层:封装成网络层数据包,加上网络层头部(如IP头部,源IP是A的IP地址,目标IP是F的IP地址)。
    数据链路层:封装成数据帧,加上数据链路层头部和尾部(如以太网帧,源MAC地址是A的MAC地址,目标MAC地址是B的MAC地址)。
    注意: 应用层、传输层、网络层和数据链路层的封装都发生在计算机内部。

解封装过程
交换机B只工作在数据链路层,所以它检查帧头中的目标MAC地址,根据其转发表决定将数据帧转发给下一个设备(C),而不会解封装上层协议的数据。

  1. 交换机B到路由器C
    交换机B将数据帧转发到路由器C。

  2. 路由器C的处理
    解封装过程
    数据链路层:解封装数据帧,检查帧头中的目标MAC地址,确定目标是路由器C。
    网络层:解封装数据包,检查包头中的目标IP地址,查找路由表,确定下一跳是路由器D。
    封装过程
    数据链路层:重新封装成数据帧,加上新的数据链路层头部(如以太网帧,源MAC地址是C的MAC地址,目标MAC地址是D的MAC地址)。

  3. 路由器C到路由器D
    路由器C将重新封装的数据帧转发到路由器D。

  4. 路由器D的处理
    解封装过程
    数据链路层:解封装数据帧,检查帧头中的目标MAC地址,确定目标是路由器D。
    网络层:解封装数据包,检查包头中的目标IP地址,查找路由表,确定下一跳是交换机E。
    封装过程
    数据链路层:重新封装成数据帧,加上新的数据链路层头部(如以太网帧,源MAC地址是D的MAC地址,目标MAC地址是E的MAC地址)。

  5. 路由器D到交换机E
    路由器D将重新封装的数据帧转发到交换机E。

  6. 交换机E的处理
    交换机E只工作在数据链路层,所以它检查帧头中的目标MAC地址,根据其转发表决定将数据帧转发给计算机F。

  7. 交换机E到计算机F
    交换机E将数据帧转发到计算机F。

  8. 计算机F的解封装过程
    数据链路层:解封装数据帧,检查帧头中的目标MAC地址,确定目标是F的MAC地址。
    网络层:解封装数据包,检查包头中的目标IP地址,确定目标是F的IP地址。
    传输层:解封装传输层段,检查段头中的目标端口号,确定目标应用程序。
    应用层:处理应用层数据(如HTTP请求)。
    至此计算机A和计算机F数据的封装和解封装完毕。

五.tcp三次握手和四次挥手

TCP三次握手(建立连接)

三次握手的过程是为了确认双方的接收能力和发送能力是否正常。具体步骤如下:

第一次握手:客户端发送一个带有SYN标志的TCP报文到服务器,并指定一个初始序列号。此时客户端进入SYN-SENT状态。第二次握手:服务器收到这个报文后,如果同意建立连接,则会发送一个带有SYN和ACK标志的TCP报文,确认号为客户端的初始序列号加1,并指定自己的一个初始序列号。服务器此时进入SYN-RCVD状态。第三次握手:客户端收到服务器的确认后,会发送一个带有ACK标志的TCP报文,确认号为服务器的初始序列号加1。此时,双方建立连接,客户端和服务器都进入ESTABLISHED状态。

三次握手的目的是防止已失效的连接请求报文突然又传送到服务器,造成错误。如果只有两次握手,可能会出现服务器端误认为客户端请求建立连接的情况,导致资源浪费。

TCP四次挥手(断开连接)

四次挥手的过程是为了终止双方的连接。具体步骤如下:

第一次挥手:客户端发送一个带有FIN标志的TCP报文到服务器,表示没有数据发送了,客户端进入FIN-WAIT-1状态。第二次挥手:服务器收到这个报文后,发送一个带有ACK标志的TCP报文作为确认,服务器进入CLOSE-WAIT状态。第三次挥手:服务器发送完所有数据后,会向客户端发送一个带有FIN标志的TCP报文,请求关闭连接,服务器进入LAST-ACK状态。第四次挥手:客户端收到这个报文后,发送一个带有ACK标志的TCP报文作为确认,然后进入TIME-WAIT状态。经过一段时间(2MSL)后,客户端进入CLOSED状态。服务器在收到客户端的确认报文后,也会进入CLOSED状态。

客户端在TIME-WAIT状态等待的原因是为了确保服务器收到了最后一个ACK报文。如果服务器没有收到,它会重新发送FIN报文。客户端在收到重发的FIN后,可以再次发送ACK报文,并重新启动2MSL计时器。

六.ip地址划分

IP地址本质上是32位二进制数,共四个字节,第一部分是网络位,这一部分用来表示所属的网段,第二部分是主机位,用来唯一标识本网段上的某台网络设备。IPv4地址被划分为A、B、C、D、E五类,每类地址的网络号包含不同的字节数。A类,B类和C类地址为可分配IP地址,每类地址支持的网络数和主机数不同。32位的IP地址分为4个字节,每个字节有256(0-255)个取值。因此,理论上IPv4可以有4294967296个IP地址,但实际上只有其中一部分地址可以分配给网络设备使用。A类地址:第一个bit必须为0,这样就能计算出A类地址的第一个字节的取值范围为0-127或(00000000)2-(01111111)2,第一个字节为网络位区间,后三个字节为主机位区间。在A类地址中当第一个字节为0或127时,它不归属于A类网络,我们在4.2.3中介绍。

B类地址:前2bit必须为10,那么B类网络地址第一个字节的取值范围为128-191或(10000000)2-(10111111)2,前两个字节段为网络位区间,后两个字节段为主机位区间。

C类地址:前3bit必须为110,第一个字节取值范围为192-223或(11000000)2-(11011111)2。C类地址前三个字节为网络位区间,第四个字节为主机位区间。

D类地址:这一类被定义为组播地址。

E类地址:用于科学研究。

关于D类,E类地址具体范围如图4-3,其详情本节不做讨论。2.3.2私有IP地址
现阶段世界上所有终端系统和网络设备都需要IP地址,远远超过了32位IPv4地址所能支持的最大地址数为4,294,967,296。网络工程师们为节省IP地址将A、B、C类地址段中都预留了特定范围的地址作为私有地址——内网使用地址。为主机分配私有地址节省了公网地址,这样可以用来缓解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地址结构类似,子网掩码由32bit(四字节)组成,以点分十进制表示。子网掩码并不是IP地址,只是用于区分网络部分和主机部分。子网掩码中的1表示网络位,0表示主机位,连续的1数量称为一个子网掩码的长度。举个例子,子网掩码255.255.0.0 转换为二进制11111111.11111111.00000000.00000000,观察得出他是一个16位掩码。每个IP地址和子网掩码一起可以用来唯一的标识一个网段中的某台网络设备

将IP地址和它的子网掩码进行与运算得出网络地址。运算法则为同为1时为1,其他情况为0。

八.dns解析

什么是DNS域名解析
我们首先要了解域名和IP地址的区别。IP地址是互联网上计算机唯一的逻辑地址,通过IP地址实现不同计算机之间的相互通信,每台联网计算机都需要通过IP地址来互相联系和分别。

但由于IP地址是由一串容易混淆的数字串构成,人们很难记忆所有计算机的IP地址,这样对于我们日常工作生活访问不同网站是很困难的。基于这种背景,人们在IP地址的基础上又发展出了一种更易识别的符号化标识,这种标识由人们自行选择的字母和数字构成,相比IP地址更易被识别和记忆,逐渐代替IP地址成为互联网用户进行访问互联的主要入口。这种符号化标识就是域名。

域名虽然更易被用户所接受和使用,但计算机只能识别纯数字构成的IP地址,不能直接读取域名。因此要想达到访问效果,就需要将域名翻译成IP地址。而DNS域名解析承担的就是这种翻译效果。

DNS域名解析过程
当我们在浏览器地址栏中输入www.baidu.com时,DNS解析将会有将近10个步骤,这个过程大体大体由一张图可以表示:

整个过程大体描述如下,其中前两个步骤是在本地电脑内完成的,后8个步骤涉及到真正的域名解析服务器:

第一步、

本地电脑会检查浏览器缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就结束。浏览器缓存域名也是有限制的,不仅浏览器缓存大小有限制,而且缓存的时间也有限制,通常情况下为几分钟到几小时不等,域名被缓存的时间限制可以通过TTL属性来设置。这个缓存时间太长和太短都不太好,如果时间太长,一旦域名被解析到的IP有变化,会导致被客户端缓存的域名无法解析到变化后的IP地址,以致该域名不能正常解析,这段时间内有一部分用户无法访问网站。如果设置时间太短,会导致用户每次访问网站都要重新解析一次域名。

第二步、

如果浏览器缓存中没有数据,浏览器会查找操作系统缓存中是否有这个域名对应的DNS解析结果。其实操作系统也有一个域名解析的过程,在Linux中可以通过/etc/hosts文件来设置,而在windows中可以通过配置C:\Windows\System32\drivers\etc\hosts文件来设置,用户可以将任何域名解析到任何能够访问的IP地址。例如,我们在测试时可以将一个域名解析到一台测试服务器上,这样不用修改任何代码就能测试到单独服务器上的代码的业务逻辑是否正确。正是因为有这种本地DNS解析的规程,所以有黑客就可能通过修改用户的域名来把特定的域名解析到他指定的IP地址上,导致这些域名被劫持。

第三步、

前两个过程无法解析时,就要用到我们网络配置中的"DNS服务器地址"了。操作系统会把这个域名发送给这个本地DNS服务器。每个完整的内网通常都会配置本地DNS服务器,例如用户是在学校或工作单位接入互联网,那么用户的本地DNS服务器肯定在学校或工作单位里面。它们一般都会缓存域名解析结果,当然缓存时间是受到域名的失效时间控制的。大约80%的域名解析到这里就结束了,后续的DNS迭代和递归也是由本地DNS服务器负责。

第四步、

如果本地DNS服务器仍然没有命中,就直接到根DNS服务器请求解析。

第五步、

根DNS服务器返回给本地DNS域名服务器一个顶级DNS服务器地址,它是国际顶级域名服务器,如.com、.cn、.org等,全球只有13台左右。

第六步、

本地DNS服务器再向上一步获得的顶级DNS服务器发送解析请求。

第七步、

接受请求的顶级DNS服务器查找并返回此域名对应的Name Server域名服务器的地址,这个Name Server服务器就是我要访问的网站域名提供商的服务器,其实该域名的解析任务就是由域名提供商的服务器来完成。 比如我要访问www.baidu.com,而这个域名是从A公司注册获得的,那么A公司上的服务器就会有www.baidu.com的相关信息。

第八步、

Name Server服务器会查询存储的域名和IP的映射关系表,再把查询出来的域名和IP地址等等信息,连同一个TTL值返回给本地DNS服务器。

第九步、

返回该域名对应的IP和TTL值,本地DNS服务器会缓存这个域名和IP的对应关系,缓存时间由TTL值控制。

第十步、

把解析的结果返回给本地电脑,本地电脑根据TTL值缓存在本地系统缓存中,域名解析过程结束在实际的DNS解析过程中,可能还不止这10步,如Name Server可能有很多级,或者有一个GTM来负载均衡控制,这都有可能会影响域名解析过程。

递归查询和迭代查询的区别
DNS客户端和本地名称服务器是递归,而本地名称服务器和其他名称服务器之间是迭代。
DNS递归名称解析: 在DNS递归名称解析中,当所配置的本地名称服务器解析不了时,后面的查询工作是由本地名称服务器替代DNS客户端进行的(以“本地名称服务器”为中心),只需要本地名称服务器向DNS客户端返回最终的查询结果即可。

DNS迭代名称解析:(或者叫“迭代查询”)的所有查询工作全部是DNS客户端自己进行(以“DNS客户端”自己为中心)。在条件之一满足时就会采用迭代名称解析方式:

在查询本地名称服务器时,如果客户端的请求报文中没有申请使用递归查询,即在DNS请求报头部的RD字段没有置1。相当于说“你都没有主动要求我为你进行递归查询,我当然不会为你工作了”。

客户端在DNS请求报文中申请使用的是递归查询(也就是RD字段置1了),但在所配置的本地名称服务器上是禁用递归查询(DNS服务器一般默认支持递归查询的),即在应答DNS报文头部的RA字段置0。

域名解析记录
主要分为A记录、MX记录、CNAME记录、NS记录和TXT记录:

1、A记录

A代表Address,用来指定域名对应的IP地址,如将item.taobao.com指定到115.238.23.xxx,将switch.taobao.com指定到121.14.24.xxx。A记录可以将多个域名解析到一个IP地址,但是不能将一个域名解析到多个IP地址

2、MX记录

Mail Exchange,就是可以将某个域名下的邮件服务器指向自己的Mail Server,如taobao.com域名的A记录IP地址是115.238.25.xxx,如果将MX记录设置为115.238.25.xxx,即xxx@taobao.com的邮件路由,DNS会将邮件发送到115.238.25.xxx所在的服务器,而正常通过Web请求的话仍然解析到A记录的IP地址

3、CNAME记录

Canonical Name,即别名解析。所谓别名解析就是可以为一个域名设置一个或者多个别名,如将aaa.com解析到bbb.net、将ccc.com也解析到bbb.net,其中bbb.net分别是aaa.com和ccc.com的别名

4、NS记录

为某个域名指定DNS解析服务器,也就是这个域名由指定的IP地址的DNS服务器取解析

5、TXT记录

为某个主机名或域名设置说明,如可以为ddd.net设置TXT记录为"这是XXX的博客"这样的说明

九.arp协议

什么是ARP?
ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。

ARP的作用
在以太网环境中,数据的传输所依懒的是MAC地址而非IP地址,而将已知IP地址转换为MAC地址的工作是由ARP协议来完成的。

在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。

所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。

ARP工作流程
假设主机A和B在同一个网段,主机A要向主机B发送信息,具体的地址解析过程如下:

(1) 主机A首先查看自己的ARP表,确定其中是否包含有主机B对应的ARP表项。如果找到了对应的MAC地址,则主机A直接利用ARP表中的MAC地址,对IP数据包进行帧封装,并将数据包发送给主机B。

(2) 如果主机A在ARP表中找不到对应的MAC地址,则将缓存该数据报文,然后以广播方式发送一个ARP请求报文。

ARP请求报文中的发送端IP地址和发送端MAC地址为主机A的IP地址和MAC地址,目标IP地址和目标MAC地址为主机B的IP地址和全0的MAC地址。

由于ARP请求报文以广播方式发送,该网段上的所有主机都可以接收到该请求,但只有被请求的主机(即主机B)会对该请求进行处理。

(3) 主机B比较自己IP地址和ARP请求报文中的 目标IP 地址,当两者相同时进行如下处理:将ARP请求报文中的发送端(即主机A)的IP地址和MAC地址存入自己的ARP表中。

之后以单播方式发送ARP响应报文给主机A,其中包含了自己的MAC地址。

(4) 主机A收到ARP响应报文后,将主机B的MAC地址加入到自己的ARP表中以用于后续报文的转发,同时将IP数据包进行封装后发送出去。
设备通过ARP解析到目的MAC地址后,将会在自己的ARP表中增加IP地址到MAC地址的映射表项,以用于后续到同一目的地报文的转发。

十.tcpdump抓包

轻量级抓包工具(linux)

安装nginx

yum install epel-release -y
yum install nginx

关防火墙

systemctl stop firewalld

抓包命令:tcpdump -i 网口名字

网卡 tcpdump -i ens33

端口 tcpdump -i ens33 port 80

显示ip地址 tcpdump -i ens33 port 80 -nn

保存为文件 tcpdump -i ens33 port 80 -nn -w 1.pcap(packet carture)

参数

-i  指定网卡名称
-nn 显示ip地址
-c 指定抓包数量
-s 不把随机序列和确认序列解析成绝对值
-w 指定数据包保存的位置
十一.网络工具
  1. namp

    探索主机存活 端口开放

    ip网段哪些IP是存活的 nmap -sn 192.168.30.0/24
    扫描网段端口 namp -sS 192.168.30.0/24
    

扫描单个ip端口 namp -sS 192.168.30.128



2.tracert (windows自带)

路由追踪

``追踪路由跳转 tracert -d www.baidu.com``

3.traceroute(linux)

``` -y
安装 yum provides traceroute
 yum install traceroute -y
追踪 traceroute -n www.baidu.com 
十二.网络配置

1.vmware三种上网模式

在桥接模式下,虚拟机直接连接到物理网络,就像是网络中的另一台独立主机。虚拟机会在物理网络中获得一个独立的IP地址,这个IP地址与宿主机在同一网络段内。桥接模式适用于需要让虚拟机像真实机器一样参与网络的场景。但是,如果网络中IP地址资源有限,使用桥接模式可能会导致IP地址不足。

NAT模式(Network Address Translation)

NAT模式下,虚拟机通过宿主机上的一个虚拟NAT设备连接到外部网络。宿主机充当路由器的角色,为虚拟机提供网络地址转换服务。虚拟机不会在物理网络中获得独立IP地址,而是使用宿主机分配的私有IP地址。这种模式适合于宿主机网络IP资源紧张或者不希望虚拟机直接暴露在外部网络中的情况。

仅主机模式(Host-Only)

在仅主机模式下,虚拟机与外部网络隔离,只能与宿主机进行通信。虚拟机不会获得外部网络的IP地址,只能使用宿主机提供的私有IP地址。这种模式适用于测试和开发环境,当你不希望虚拟机的网络服务对外可见时。

2.虚拟机配置网卡信息

cd /etc/sysconfig/network-scripts   
vi ifcfg-ens33

BOOTPROTO="dhcp"   ----- BOOTPROTO="static"
添加  IPADDR=192.168.30.128
      GATEWAY=192.169.30.2
      NETMASK=255.255.255.0
      DNS1=8.8.8.8
      DNS2=114.114.114.114

3.静态ip配置

十四.上不了网的排查思路

1.检查ip地址是否冲突 与虚拟网卡是否同一网段

2.网络配置文件

3.上网模式是否是nat

十五.静态路由项目
  1. 路由方式分类

    静态路由 动态路由(自学习)

  2. 静态路由配置示例

    2.1环境准备

    2.2设置静态路由规则

    2.3打开路由转发功能

    2.4 数据包转发原理

    主机一 route add -net 172.16.1.0/24 gw 192.168.30.130
    主机三 route add -net 192.168.30.0/24 gw 172.16.1.33
    

主机二 echo 'net.ipv4.ip_forward = 1'>>/etc/sysctl.conf
cat /etc/sysctl.conf
sysctl -p


##### 十六.使用iptables实现nat上网

1.让主机上网

没有配网关情况下 route add -net 0.0.0.0/0 gw 192.168.30.2
可以ping通 235.5.5.5 但ping不通 www.baidu.com
cd /etc/resolv.conf
nameserver 223.5.5.5


2.配置nat让其他主机上网

清空之前的规则 iptables -t nat -F

配置nat路由器 iptables -t nat -A POSTROUTING -s 0.0.0.0/24 -j MASQUERADE

指定nat表 -t nat

数据包离开的时候 做修改 -A (POSTROUTING链)

源ip或ip段 -s

指定动作为 模拟路由器的外网ip -j (MASQUERADE)

3号主机

清空路由规则systemctl restart network
添加静态路由 route add -net 0.0.0.0/0 gw 172.16.1.12


##### 十七.linux的dhcp服务

1.安装dhcp
yum install dhcp -y
2.修改dhcp配置文件
vim /etc/dhcp/dhcpd.conf
subnet(子网范围) 172.16.1.0 netmask 255.255.255.0{
range(分配ip地址范围) 172.16.1.100 172.16.1.250;
option domain-name-servers 119.29.29.29;
option routers(网关) 172.16.1.12;
default-lease-time(dhcp默认租期) 600;
max-lease-time(dhcp最大租期) 7200;
}
3.启动hdcp
systemctl start dhcp
systemctl enable dhcp


##### 十八.防火墙

systemctl start firewalld
systemctl status firewalld
systemctl stop firewalld


查看防火墙开放哪些服务

端口 firewalld-cmd --list-ports
服务 firewalld-cmd --list-service
查看配置文件 cat /etc/firewalld/zones/public.xml
查看ssh服务端口 cat /usr/lib/firewalld/services/ssh.xml


开放端口

添加开放端口 firewall-cmd --zone=public --add-port=80/tcp --permanent
关闭端口 firewall-cmd --zone=public --remove-port=80/tcp
添加服务 firewall-cmd --zone=pulic --add-service=http
删除服务 firewall-cmd --zone=public --remove-service=http
firewall所有服务的定位位置 /usr/lib/firewall/services/


##### 十九.路由器

软件路由 硬件路由

配置win10使用ikuai上网

1.给ikuai配置两块网卡,第一块主机模式(默认内网),第二块nat模式
2.eth0绑定ip地址同网卡(主机)网段
3.登录ikuai管理后台
4.外网绑定eth1(开启dhcp)
5.win10主机用eth0 ip 做网关
6.实现上网


##### 二十.端口映射

1.win10上使用phpstudy部署网站
2.用ikuai将win10内网ip映射到wan口上
3.访问wan口端口 http://192.168.30.129:8080/


#### 二十一.ikuai名词

```:
AC:接入控制设备
AP:wifi接入点
RAID(磁盘列阵卡) raid0:提速,15M分成3个5M,一次传输   raid1:数据备份,15M复制一份
raid5:提速,15M分成3个5M,一次传输,还有一块硬盘记录,可以恢复数据

二十一.vlan

vlan:一个交换机划分多个子网
普通交换机:网管交换机(无需任何配置)
二层交换机:mac地址控制
三层交换机/;配IP 带路由功能 不能拨号上网
四层交换机:连传输层可以控制
cisco 模拟器划分valn

二十二.vpn

vpn virtual private network :虚拟专用网络
打通互联网和内网的隧道
openvpn

二十三.WiFi破解示例

posted @ 2026-05-11 20:42  hello422000  阅读(22)  评论(0)    收藏  举报