802.1x协议详解:端口控制与EAP认证机制

需积分: 49 2 下载量 71 浏览量 更新于2024-07-12 收藏 1.2MB PPT 举报
"802.1x的体系结构与协议详解" 802.1x是一种基于端口的网络接入控制协议,最初为解决无线局域网(WLAN)的接入认证问题而设计,但其应用已扩展至有线局域网。802.1x体系结构主要包括三个实体:接入系统(Supplicant System)、认证系统(Authenticator System)和认证服务器系统(Authentication Server System)。 接入系统是用户端设备,如计算机,它们需要安装802.1x客户端软件来发起认证请求。认证系统通常集成在网络设备如交换机中,负责管理端口的受控和非受控状态。认证服务器系统则是位于AAA(认证、授权和计费)服务器中,负责处理认证请求并做出是否允许访问网络的决策。 802.1x认证过程中,客户端(Supplicant)与认证器(Authenticator)之间使用EAPoL(EAP over LANs)帧进行通信,而认证器与服务器之间通过EAP(可扩展认证协议)帧交换认证信息。EAP帧内的认证数据会被封装在如RADIUS这样的上层协议报文中,以便在复杂的网络环境中传递。 端口状态是802.1x控制网络访问的关键。非受控端口始终开放,允许设备访问网络资源;受控端口仅在用户设备成功认证后才开启,未认证的设备无法通过此端口访问网络。 802.1x与其他认证方式(如PPPoE和Web认证)相比,具有不需额外安装客户端软件(XP系统除外)、业务报文效率高、组播支持能力强、安全性可扩展以及对设备要求较低等优点,适合于简单的运营管理场景。 配置802.1x时,需要设置Supplicant、Authenticator和Authentication Server之间的交互,包括选择合适的EAP类型和认证方法,以及配置RADIUS服务器参数。此外,802.1x还支持多种特性,如多因素认证、漫游和策略管理,以满足不同网络环境的需求。 802.1x协议的广泛应用,使得网络管理者能够更有效地控制和管理网络接入,确保只有授权用户能够访问网络资源,从而提高了网络安全性和管理效率。在实际部署中,理解802.1x的工作原理和配置方法对于网络运维人员至关重要。

#------(一)方法1:基于指标体系1的结果---- #--------1.数据导入------------- library(xlsx) d1.1 <- read.xlsx('data.xlsx', '2022', encoding = "UTF-8") #读取数据 head(d1.1,10) colnames(d1.1) d1 <- d1.1[,5:ncol(d1.1)] d1 <- abs(d1) #---------2.归一化处理--------------- Rescale = function(x, type=1) { # type=1正向指标, type=2负向指标 rng = range(x, na.rm = TRUE) if (type == 1) { (x - rng[1]) / (rng[2] - rng[1]) } else { (rng[2] - x) / (rng[2] - rng[1]) } } #---------3.熵值法步骤---------- #定义熵值函数 Entropy = function(x) { entropy=array(data = NA, dim = ncol(x),dimnames = NULL) j=1 while (j<=ncol(x)) { value=0 i=1 while (i<=nrow(x)) { if (x[i,j]==0) { (value=value) } else { (value=value+x[i,j]log(x[i,j])) } i=i+1 } entropy[j]=value(-1/log(nrow(x))) j=j+1 } return(entropy) } Entropy_Weight = function(X, index) { pos = which(index == 1) neg = which(index != 1) X[,pos] = lapply(X[,pos], Rescale, type=1) X[,neg] = lapply(X[,neg], Rescale, type=2) P = data.frame(lapply(X, function(x) x / sum(x))) e = Entropy(P) d = 1 - e # 计算信息熵冗余度 w = d / sum(d) # 计算权重向量 list(X = X,P = P, w=w) } #-------4.代入数据计算权重----- # -------二级指标权重------ ind=array(rep(1,ncol(d1))) aa=Entropy_Weight(X = d1,index = ind) weight=as.data.frame(aa["w"]) weigh X <- as.data.frame(aa["X"]) X P <- as.data.frame(aa["P"]) P d1.a <- X[,c(grep("A",colnames(X)))] d1.b <- X[,c(grep("B",colnames(X)))] d1.c <- X[,c(grep("C",colnames(X)))] d1a <- as.matrix(d1.a) d1b <- as.matrix(d1.b) d1c <- as.matrix(d1.c) n1 <- ncol(d1a) n2 <- ncol(d1b) n3 <- ncol(d1c) wa <- weight[1:n1,1] wb <- weight[(n1+1):(n1+n2),1] wc <- weight[(n1+n2+1):(n1+n2+n3),1] wa <- as.matrix(wa,ncol =1) wb <- as.matrix(wb,ncol =1) wc <- as.matrix(wc,ncol =1) indexa <- d1a%%wa indexb <- d1b%%wb indexc <- d1c%*%wc d1abc <- cbind(indexa,indexb,indexc) 参考以上代码,用不同一级指标下分别计算二级指标权重,再求一级指标权重

2023-06-10 上传