网络知识进阶
简述常见HTTP状态码分类?
有时候我们在访问一些网站的时候会经常看到一些网站有报错情况,同时在浏览器中会显示某些错误代码,很多人并不清楚这些错误代码代表的是什么意思。今天收集整理一下目前浏览器中常见的HTTP状态码以备查阅了解。
HTTP状态码概念
当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含 HTTP 状态码的信息头(server header)用以响应浏览器的请求。
HTTP状态码的英文为HTTP Status Code。
下面是常见的HTTP状态码:
★ 200 - 请求成功
★ 301 - 资源(网页等)被永久转移到其它URL
★ 404 - 请求的资源(网页等)不存在
★ 500 - 内部服务器错误
HTTP状态码分类
HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP状态码共分为5种类型:
分类 分类描述
1xx :信息,服务器收到请求,需要请求者继续执行操作。
2xx :成功,操作被成功接收并处理。
3xx :重定向,需要进一步的操作以完成请求。
4xx :客户端错误,请求包含语法错误或无法完成请求。
5xx :服务器错误,服务器在处理请求的过程中发生了错误。
HTTP状态码列表
1. 1xx 临时响应
100 Continue/继续;HTTP 1.1 新增状态码。请求已被服务器接收,正在等待剩余部分。
101 Switch Protocols/协议转换;HTTP 1.1 新增状态码。请求已被服务器接收,将通知客户端切换协议完成请求。
2. 2xx 成功
200 OK/正常;请求已成功,请求内容将同时返回。
201 已创建;请求已实现,已根据请求创建了新资源,将同时返回资源的URI。
202 接受;请求已接受,服务器正在处理。
203 非官方信息;HTTP 1.1 新增状态码。内容已正常返回,但可能来自另一来源。
204 无内容;HTTP 1.1 新增状态码。请求已处理,但不需要或没有内容返回。
205 重置内容;HTTP 1.1 新增状态码。请求已处理,没有内容返回,但需要重置文档。
206 局部内容;HTTP 1.1 新增状态码。请求已处理,局部内容(片段)已正常返回。
3. 3xx 重定向
300 多重选择;被请求的资源有多个可选的项,客户端可自己选择重定向。
301 永久移动;被请求的资源已永久移到到新位置。
302 已找到;被请求的资源临时从不同位置响应。
303 查看其他位置;HTTP 1.1 新增状态码。被请求的资源可在另一位置找到,并应采用 GET 方式访问。
304 未修改;客户端请求的内容并未改变,服务器将返回空内容。
305 使用代理;HTTP 1.1 新增状态码。被请求的资源必须通过指定的代理访问。
307 临时重定向;HTTP 1.1 新增状态码。被请求的资源可在另一位置找到,并应采用。 POST 方式访问。
4. 4xx 客户端错误(常见)
400 错误请求;客户端请求有语法错误,不能被服务器所理解。
401 未授权;客户端的请求需要身份验证,服务器验证未通过。
403 禁止;服务器拒绝执行客户端的请求。
404 未找到;客户端所请求的资源未找到。
5. 5xx 服务器错误
500 内部服务器错误;服务器遇到未知错误导致请求无法完成。
501 未实现;服务器不支持客户端请求的功能。
502 网关错误;网关或代理服务器接收到远端服务器的无效响应。
503 服务无法获得;服务器已超载或维护中导致请求无法完成。
504 网关超时;HTTP 1.1新增状态码。网关或代理服务器等待远端服务器的响应时间超长。
505 HTTP 版本不支持;HTTP 1.1 新增状态码。服务器不支持请求标明的 HTTP 版本。简述什么是服务端包含(Server Side Include)?
Server-side include(服务器端包括)是浏览器向服务器请求您的文档时并入您的文档的一个文件。
当访问者浏览器请求含有 include(包括)指令的文档时,服务器处理 include(包括)指令并创建新的文档,在新文档中 include(包括)指令被所包括的文件内容取代。然后服务器将此新文档发送给访问者的浏览器。但当您在浏览器中直接打开一个本地文档时,因为没有服务器可以处理该文档中的 include(包括)指令,所以浏览器不处理这些指令即打开该文档,并且本应包括在内的文件并未在该浏览器中出现。因此,如果不使用 Dreamweaver,可能很难查看到本地文件在放置到服务器后对访问者的显示效果。
通过使用 Dreamweaver,无论是在“设计”视图中还是在浏览器中预览时,您都可以预览文档在放置到服务器后的显示效果。
在将 server-side include(服务器端包括)放置于文档中时,将插入对外部文件的引用,但它并不会在当前文档中插入指定文件的内容。Dreamweaver 在“设计”视图中显示外部文件的内容,这使得页面设计变得更加容易。
您不能在文档中直接编辑包括的文件。若要编辑 server-side include(服务器端包括)的内容,您必须直接编辑您所包括的文件。请注意,对外部文件的任何更改都将自动反映在包括该文件的每一文档中。
有两种类型的 server-side include(服务器端包括):“虚拟”类型和“文件”类型。选择一种与您使用的 web 服务器类型相应的类型:
如果您的服务器是 Apache Web 服务器,则选择“虚拟”。在 Apache 中,“虚拟”可以适用于所有情况,而“文件”只适用于某些情况。
如果您的服务器是 Microsoft Internet Information Server (IIS),则选择“文件”。(“虚拟”只在某些特定的情况下才可用于 IIS。)
注意:
但可惜的是,除非在服务器上已安装了特殊的软件,否则 IIS 不允许您包括在文件夹层次结构中高于当前文件夹的文件夹中的文件。如果您需要在 IIS 服务器上包括来自文件夹层次结构中更高层次的文件夹中的文件,请向您的系统管理员咨询以了解是否安装了必需的软件。
对于其它类型的服务器,或者如果您不知道您正使用哪一类型的服务器,请向您的系统管理员咨询要使用的选项。
某些服务器经过配置,可以检查所有文件以查看它们是否包含 server-side include(服务器端包括);而其它一些服务器经过配置,只检查具有特定文件扩展名的文件,例如 .shtml、.shtm 或 .inc。如果某一 server-side include(服务器端包括)不适用于您,请向您的系统管理员咨询是否需要在使用 include(包括)的文件的名称中使用特殊扩展名。(例如,如果该文件名为 canoe.html,则您可能需要将其重命名为 canoe.shtml。)如果您希望您的文件保留 .html 或 .htm 扩展名,请要求您的系统管理员对服务器进行配置,以检查所有文件(而不只是具有某一扩展名的文件)是否具有 server-side include(服务器端包括)。但由于为 server-side include(服务器端包括)分析文件需要多花一些时间,所以服务器进行分析的那些页面可能要比其它页面稍晚一点才可使用;因此某些系统管理员将不提供对所有文件进行分析的选项。HTTP响应的结构是怎么样的?
HTTP响应由三个部分组成:
1:状态码(Status Code):描述了响应的状态。可以用来检查是否成功的完成了请求。请求失败的情况下,状态码可用来找出失败的原因。如果Servlet没有返回状态码,默认会返回成功的状态码HttpServletResponse.SC_OK。
2:HTTP头部(HTTP Header):它们包含了更多关于响应的信息。比如:头部可以指定认为响应过期的过期日期,或者是指定用来给用户安全的传输3:实体内容的编码格式。如何在Serlet中检索HTTP的头部看这里。
主体(Body):它包含了响应的内容。它可以包含HTML代码,图片,等等。主体是由传输在HTTP消息中紧跟在头部后面的数据字节组成的。HTTP 状态中302、403、 500代码含义 ?
12345原则:
一. 消息系列
二 成功系列
三. 重定向系列
四. 请求错误系列
五. 服务器端错误系列
302:临时转移成功,请求的内容已转移到新位置 403:禁止访问 500:服务器内部错误 401代表未授权简述网络分层里七层模型 ?
应用层:应用层、表示层、会话层(从上往下)(HTTP、FTP、SMTP、DNS)传输层(TCP和UDP)网络层(IP)物理和数据链路层(以太网)
每一层的作用如下:
物理层:通过媒介传输比特,确定机械及电气规范(比特Bit)
数据链路层:将比特组装成帧和点到点的传递(帧Frame)
网络层:负责数据包从源到宿的传递和网际互连(包PackeT)
传输层:提供端到端的可靠报文传递和错误恢复(段Segment)
会话层:建立、管理和终止会话(会话协议数据单元SPDU)
表示层:对数据进行翻译、加密和压缩(表示协议数据单元PPDU)
应用层:允许访问OSI环境的手段(应用协议数据单元APDU)整理归纳HTTP 状态码 ?
(1)100 Continue表示继续,一般在发送post请求时,已发送了 HTTP header之后,服务器端将返回此信息,表示确认,之后发送具体参数信息。
(2)200 OK表示正常返回信息
(3)201 Created表示请求成功并且服务器创建了新的资源。
(4)202 Accepted表示服务器已接受请求,但尚未处理。
(5)301 Moved Permanently表示请求的网页已永久移动到新位置。
(6)302 Found表示临时性重定向。
(7)303 See Other表示临时性重定向,且总是使用GET请求新的URI。
(8)304 Not Modified表示自从上次请求后,请求的网页未修改过,
(9)400 Bad Request表示服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求。
(10)401 Unauthorized表示请求未授权。
(11)403 Forbidden表示禁止访问。
(12)404 Not Found表示找不到如何与URI相匹配的资源。
(13)500 Internal Server error表示最常见的服务器端错误。
(14)503 Service Unavailable表示服务器端暂时无法处理请求(可能是过载或维护)。简述四层和七层负载均衡?
四层负载均衡:
所谓四层负载均衡是指OSI七层模型中的传输层, 那么传输层Nginx已经支持TCP/IP的控制, 所以只需要对客户端的请求进行TCP/IP协议的包转发就可以实现负载, 那么他的好处是性能非常快, 只需要底层进行应用处理,而不需要进行一些复杂的逻辑.
七层负载均衡:
七层负载均衡是在应用层,那么他可以完成后很多应用方面的协议请求,
当然四层有四层的好处,七层七层的好处,四层就不支持协议的转发,(http,https,DNS等)只支持IP,但是它的速度快.
应用层虽然没有四层负载快,但是支持很多功能,比如说他支持http信息的改写、头部信息的改写、(意识是,七层代理着用户往后请求的时候把我们用户请求的头部信息加上,长连接协议也可以修改等)、安全应用规则控制、URL匹配规则控制、以及转发、rewrite等一些规则,所以在应用层的服务里面,可以做的内容就更多了。Nginx是一个典型的七层负载均衡
【四层和七层的区别】
四层负载均衡数据在底层就进行了分发,而七层负载均衡数据包则是在最顶层进行分发,由此可以看出,七层负载均衡效率没有四层负载均衡高。
但是七层负载均衡更贴近于服务,如HTTP协议就是七层协议,我们可以用Nginx可以作会话保持,URL路径规则匹配,head头改写等等,这些都是四层负载均衡无法实现的。
注意:四层负载均衡不识别域名,七层负载均衡识别域名简述 OSI七层模型 ?
从低到高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
应用层:网络服务与最终用户的一个接口,常见的协议有:HTTP FTP SMTP SNMP DNS.
表示层:数据的表示、安全、压缩。确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。
会话层:建立、管理、终止会话,对应主机进程,指本地主机与远程主机正在进行的会话.
传输层:定义传输数据的协议端口号,以及流控和差错校验,协议有TCP UDP.
网络层:进行逻辑地址寻址,实现不同网络之间的路径选择,协议有ICMP IGMP IP等.
数据链路层:在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路。
物理层:建立、维护、断开物理连接简述 HTTP2的理解?
HTTP/2引入了“服务器端推送”(server push)的概念,它允许服务器端在客户端需要数据之前主动将数据发送到客户端缓存中,从而提高性能。
HTTP/2提供更多的加密支持。
HTTP2使用多路技术,允许多个消息在一个连接上同时交差。
它增加了头压缩( header compression),因此请求非常小,请求和响应的 header都只会占用很小的带宽比例简述HTTP中有哪些请求方式?
(1)GET:请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL,给服务器传递参数数据
(2)POST:传输信息给服务器,主要功能与GET方法类似,但传递的数据量通常不受限制。
(3)PUT:传输文件,报文主体中包含文件内容,保存到对应URI位置。
(4)HEAD:获得报文首部,与GET方法类似,只是不返回报文主体,一般用于验证URI是否有效。
(5) DELETE:删除文件,与PUT方法相反,删除对应URL位置的文件。
(6)OPTIONS:查询相应URI支持的HTTP方法简述完整的HTTP事务流程 ?
基本流程如下。
(1)域名解析。
(2)发起TCP的3次握手。
(3)建立TCP连接后发起HTTP请求。
(4)服务器端响应HTTP请求,浏览器得到HTML代码。
(5)浏览器解析HTML代码,并请求HTML代码中的资源。
(6)浏览器对页面进行渲染并呈现给用户简述HTTP协议中1.0版本规范与1.1版本规范的区别是什么?
在HTTP1.0中,当建立连接后,客户端发送一个请求,服务器端返回一个信息后就关闭连接,当浏览器下次请求的时候又要建立连接。显然,这种不断建立连接的方式会造成很多问题。
在HTTP1.1中,引入了持续连接的概念。通过这种连接,浏览器可以在建立一个连接之后,发送请求并得到返回信息,然后继续发送请求再次等到返回信息。也就是说,客户端可以连续发送多个请求,而不用等待每一个响应的到来HTTPS相比,HTTP有什么缺点?
HTTP的缺点如下。
(1)通信使用明文,不加密,内容可能被窃听,也就是被抓包分析。
(2)不验证通信方身份,可能遭到伪装。
(3)无法验证报文完整性,可能被篡改。
HTTPS就是HTTP+加密处理(一般是SSL安全通信线路)+认证+完整性保护简述Expires和 Cache- Control的作用?
Expires要求客户端和服务器端的时间严格同步。HTTP1.1引入Cache-Control来克服 Expires头的限制。如果max-age和 Expires同时出现,则max-age有更高的优先级。
具体代码如下所示。
Cache-Control:no-cache, private, max-age=0
ETag:"8b4c-55f16e2e30000"
Expires:Thu, 02 Dec 2027 11:37:56 GMT
Last-Modified:Wed, 29 Nov 2017 03:39:44 GMT简述什么是防火墙以及作用?
防火墙是一个分离器、一个限制器,也是一个分析器,有效地监控了内部网和Internet之间的任何活动,保证了内部网络的安全
作用
(1)防火墙是网络安全的屏障
(2)可以强化网络安全策略
(3)对网络存取和访问进行监控审计
(4)防止内部信息的外泄
(5)除了安全作用,防火墙还支持具有Internet服务特性的企业内部网络技术体系VPN(虚拟专用网)。简述什么是Socket?简述基于TCP协议的套接字通信流程
Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。
在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,
对用户来说,一组简单的接口就是全部。HTTP的请求报文和响应报文包含哪些部分?
请求报文包含3部分。
(1)请求行,包含请求方法、URI、HTTP版本信息。
(2)请求首部字段。
(3)请求内容实体。
响应报文包含3部分。
(1)状态行,包含HTTP版本、状态码、状态码的原因短语。
(2)响应首部字段。
(3)响应内容实体简述URI的格式和意义?
URI叫做统一资源标识符,主要分四部分,第一部分是协议名称,可以是官方的,也可以自定义,第二部分是是URI的授权部分,是唯一标识符,用来定位ContentProvider。格式一般是自定义ContentProvider类的完全限定名称,注册时需要用到
,如:com.alexzhou.provider.NoteProvider第三部分部分和第四部分部分:是每个ContentProvider内部的路径部分,C和D部分称为路径片段,C部分指向一个对象集合,一般用表的名字,如:/notes表示一个笔记集合;D部分指向特定的记录,如:/notes/1表示id为1的笔记,如果没有指定D部分,则返回全部记录。活动目录的作用?
Active Directory存储了有关网络对象的信息,并且让管理员和用户能够轻松地查找和使用这些信息。
Active Directory使用了一种结构化的数据存储方式,并以此作为基础对目录信息进行合乎逻辑的分层组织。阐述服务器磁盘接口 ?
1. IDE
IDE(ATA)全称 Advanced Technology Attachment,接口速度最大为 133MB/s,因为并口线的抗干扰性太差,且排线占用空间较大,不利电脑内部散热,已逐渐被 SATA 所取代。
2. SATA
SATA 全称 Serial ATA,也就是使用串口的 ATA 接口,抗干扰性强,且对数据线的长度要求比 ATA 低很多,支持热插拔等功能。SATA-II 的接口速度为 300MiB/s,而 SATA-III 标准可达到 600MiB/s 的传输速度。SATA 的数据线也比 ATA 的细得多,有利于机箱内的空气流通,整理线材也比较方便。
3. SCSI
SCSI 全称是 Small Computer System Interface(小型机系统接口),SCSI 硬盘广为工作站以及个人电脑以及服务器所使用,因此会使用较为先进的技术,如碟片转速 15000rpm 的高转速,且传输时 CPU 占用率较低,但是单价也比相同容量的 ATA 及 SATA 硬盘更加昂贵。
4. SAS
SAS(Serial Attached SCSI)是新一代的 SCSI 技术,和 SATA 硬盘相同,都是采取序列式技术以获得更高的传输速度,可达到 6Gb/s。此外也通过缩小连接线改善系统内部空间等。简述什么是域名解析?
在互联网上,所有的地址都是ip地址,现阶段主要是IPv4(比如:110.110.110.110)。
但是这些ip地址太难记了,所以就出现了域名(比如http://baidu.com)。
域名解析就是将域名,转换为ip地址的这样一种行为。四层、五层、七层网络模型有什么区别?
TCP/IP模型原为四层,而TCP/IP五层模型实际上是TCP/IP与OSI七层模型的混合后的产物。说到底,这些模型的出现目的是为了使大家都使用统一的协议(通信规则)来通信。可以看到,五层模型和七层模型在物理层、数据链路层、网络层、传输层都用的是相同的协议,他们是统一的。不同点只在于应用层部分。应用程序复杂多变,比如电子邮件用的是SMTP协议、WEB服务器用HTTP协议。应用程序可以根据自己的需求特点,来使用各种不同的协议。而五层模型和七层模型在应用层的理念各有优劣,也因此在不同的协议中得到实现。
TCP/IP协议是互联网协议(簇)的统称,他是互联网标准通信的基础,它提供点对点的链接机制,将数据应该如何封装、定址、传输、路由以及在目的地如何接收,都加以标准化。而OSI模型是开放式系统互联通信参考模型——笔者的理解是:
OSI是一个完整的、完善的宏观模型,他包括了硬件层(物理层),当然也包含了很多上面途中没有列出的协议(比如DNS解析协议等);而TCP/IP(参考)模型,更加侧重的是互联网通信核心(也是就是围绕TCP/IP协议展开的一系列通信协议)的分层,因此它不包括物理层,以及其他一些不想干的协议;其次,之所以说他是参考模型,是因为他本身也是OSI模型中的一部分,因此参考OSI模型对其分层。简述PING 的作用?
PING 主要的作用就是测试在两台主机之间能否建立连接,如果 PING 不通就无法建立连接。
它其实就是向目的主机发送多个 ICMP 回送请求报文
如果没有响应则无法建立连接
如果有响应就可以根据目的主机返回的回送报文的时间和成功响应的次数估算出数据包往返时间及丢包率HTTP2 和 HTTP1.1 的区别是什么?
1.头部压缩
在 HTTP2 当中,如果你发出了多个请求,并且它们的头部(header)是相同的,那么 HTTP2 协议会帮你消除同样的部分。(其实就是在客户端和服务端维护一张索引表来实现)
2.二进制格式
HTTP1.1 采用明文的形式
HTTP/2 全⾯采⽤了⼆进制格式,头信息和数据体都是⼆进制
3.数据流
HTTP/2 的数据包不是按顺序发送的,同⼀个连接⾥⾯连续的数据包,可能属于不同的回应。(对数据包做了标记,标志其属于哪一个请求,其中规定客户端发出的数据流编号为奇数,服务器发出的数据流编号为偶数。客户端还可以指定数据流的优先级,优先级⾼的请求,服务器就先响应该请求)
4.IO多路复用
如:在⼀个连接中,服务器收到了客户端 A 和 B 的两个请求,但是发现在处理 A 的过程中⾮常耗时,索性就先回应 A 已经处理好的部分,再接着回应 B 请求,最后再回应 A 请求剩下的部分。
HTTP/2 可以在⼀个连接中并发多个请求或回应。
5.服务器推送
服务器可以主动向客户端发送请求简述HTTPS的完整处理过程 ?
HTTPS通信主要包括几个节点,发起请求、验证身份、协商秘钥、加密会话,具体流程如下(此例子只有客户端对服务端的单向验证):
1、客户端向服务端发起建立HTTPS请求。
2、服务器向客户端发送数字证书。
3、客户端验证数字证书,证书验证通过后客户端生成会话密钥(双向验证则此处客户端也会向服务器发送证书)。
4、服务器生成会话密钥(双向验证此处服务端也会对客户端的证书验证)。
5、客户端与服务端开始进行加密会话。
具体的步骤如下:
第一步:客户端向服务端发起请求
1、客户端生成随机数R1 发送给服务端;
2、告诉服务端自己支持哪些加密算法;
第二步:服务器向客户端发送数字证书
1、服务端生成随机数R2;
2、客户端支持的加密算法中选择一种双方都支持的加密算法(此算法用于后面的会话密钥生成)
3、服务端生成把证书、随机数R2、会话密钥生成算法,一同发给客户端;
第三步:客户端验证数字证书。
1、验证证书的可靠性,先用CA的公钥解密被加密过后的证书,能解密则说明证书没有问题,然后通过证书里提供的摘要算法进行对数据进行摘要,然后通过自己生成的摘要与服务端发送的摘要比对。
2、验证证书合法性,包括证书是否吊销、是否到期、域名是否匹配,通过后则进行后面的流程
3、获得证书的公钥、会话密钥生成算法、随机数R2
4、生成一个随机数R3。
5、根据会话秘钥算法使用R1、R2、R3生成会话秘钥。
6、用服务端证书的公钥加密随机数R3并发送给服务端。
第四步:服务器得到会话密钥
1、服务器用私钥解密客户端发过来的随机数R3
2、根据会话秘钥算法使用R1、R2、R3生成会话秘钥
第五步:客户端与服务端进行加密会话
1、客户端发送加密数据给服务端
发送加密数据:客户端加密数据后发送给服务端。
2、服务端响应客户端
解密接收数据:服务端用会话密钥解密客户端发送的数据;
加密响应数据:用会话密钥把响应的数据加密发送给客户端。
3、客户端解密服务端响应的数据
解密数据:客户端用会话密钥解密响应数据;对称加密和非对称加密的区别?
对称加密算法:加密和解密使用相同密钥的加密算法。常见的对称加密算法有AES、3DES、DES、RC5、RC6等。
非对称加密算法:非对称加密算法需要两个密钥(公开密钥和私有密钥)。公钥与私钥是成对存在的,如果用公钥对数据进行加密,只有对应的私钥才能解密。主要的非对称加密算法有:RSA、Elgamal、DSA、D-H、ECC。简述什么是SSO?
单点登录(SingleSign-On,SSO)是一种帮助用户快捷访问网络中多个站点的安全通信技术。单点登录系统基于一种安全的通信协议,该协议通过多个系统之间的用户身份信息的交换来实现单点登录。使用单点登录系统时,用户只需要登录一次,就可以访问多个系统,不需要记忆多个口令密码。单点登录使用户可以快速访问网络,从而提高工作效率,同时也能帮助提高系统的安全性。
客户端持有ID,服务端持有session,两者一起用来保持登录状态。客户端需要用ID来作为凭证,而服务端需要用session来验证ID的有效性。但是session这东西一开始是每个server自己独有的,而记录ID的cookie又是不能跨域的。所以,我们要实现一次登录一次退出,只需要想办法让各个server的共用一个session的信息,让客户端在各个域名下都能持有这个ID就好了。再进一步讲,只要各个server拿到同一个ID,都能有办法检验出ID的有效性、并且能得到ID对应的用户信息就行了,也就是能检验ID。简述互联网模型中应用层提供的一些服务?
Internet模型中应用层提供的一些服务如下:
邮件服务
目录服务
文件传输
访问管理
网络虚拟终端简述什么是VPN?
VPN代表虚拟专用网络。虚拟专用网络 (VPN) 是一种在不太安全的网络(例如 Internet)上创建安全和加密连接的技术。虚拟专用网络是一种使用公共网络(例如 Internet)扩展专用网络的方法。该名称仅表明它是一个虚拟“专用网络”,即用户可以是位于远程位置的本地网络的一部分。它利用隧道协议建立安全连接
VPN 三种解决方案分别是:远程访问虚拟网( AccessVPN)、企业内部虚拟网( IntranetVPN ) 和企业扩展虚拟网 (ExtranetVPN ),这三种类型的 VPN分别与传统的远程访问网络、 企业内 部的 Intranet 以及企业网和相关合作伙伴的企业网所构成的 Extranet 相对应。简述什么是网络通讯的机密性、完整性和可用性?
机密性——意味着信息不会透露给未经授权的个人、实体和流程。例如,如果我们说我有我的 Gmail 帐户的密码,但有人在我登录 Gmail 帐户时看到了密码。在那种情况下,我的密码已被泄露并且机密性已被破坏。
完整性——意味着保持数据的准确性和完整性。这意味着不能以未经授权的方式编辑数据。例如,如果一名员工离开了一个组织,那么在这种情况下,该员工在所有部门(如账户)的数据都应该更新以反映 JOB LEFT 的状态,以便数据完整和准确,此外,这只是被授权的人允许编辑员工数据。
可用性——意味着信息必须在需要时可用。例如,如果需要访问特定员工的信息以检查员工是否超出了休假数量,在这种情况下,它需要来自不同组织团队的协作,如网络运营、开发运营、事件响应和政策/变更管理。
拒绝服务攻击是阻碍信息可用性的因素之一。简述什么是授权?
授权提供了在用户通过身份验证获得对网络资源的访问权限后对网络资源实施策略的能力。认证成功后,可以通过授权来决定允许用户访问哪些资源,以及可以进行哪些操作简述什么是定义数字签名?
数字签名就是通过一个单向函数对要传送的报文进行处理得到的用以认证报文来源并核实报文是否发生变化的一个字母数字串,该字母数字串被成为该消息的消息鉴别码或消息摘要,这就是通过单向哈希函数实现的数字签名;在公钥体制签名的时候用户用自己的私钥对原始数据的哈希摘要进行加密所得的数据,然后信息接收者使用信息发送者的公钥对附在原始信息后的数字签名进行解密后获得哈希摘要,并通过与用自己收到的原始数据产生的哈希摘要对照,便可确信原始信息是否被篡改,这样就保证了数据传输的不可否认性。这是公钥签名技术。简述光纤有哪些优点?
(1)带宽高于铜缆
(2)更少的功率损耗,允许更远距离的数据传输
(3)光缆抗电磁干扰
(4)光缆尺寸是铜线的 4.5 倍
(5)由于电缆更轻、更薄,因此与铜线相比它们使用的面积更少
(6)由于重量轻,安装非常容易。
(7)光缆极难窃听,因为它们不产生电磁能。这些光纤电缆对于传输数据非常安全。
(8)这种电缆抵抗大多数接触铜线的酸性元素,而且本质上是柔性的。
(9)光纤电缆通常比同等长度的铜线更便宜。
(10)光在宇宙中的速度最快,信号快得多
(11)光纤电缆比铜双绞线电缆允许更多的电缆。
(12)光纤电缆比铜质双绞线电缆具有更多的带宽。光纤链路中使用了哪种多路复用技术?
波分复用通常用于光纤链路简述什么是反向代理,什么是正向代理?
一、什么是正向代理?
百度百科的解释
正向代理:是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。
正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。正向代理还可以使用缓冲特性(由mod_cache提供)减少网络使用率。
使用ProxyRequests指令即可激活正向代理。因为正向代理允许客户端通过它访问任意网站并且隐藏客户端自身,因此你必须采取安全措施以确保仅为经过授权的客户端提供服务。
【自己的理解】:我们要从自己的电脑上,请求到公司内网中,需要工具,这里就是正向代理,把自己的请求发到代理服务器,例如http://www.a.com统一代理客户端发来的请求,并隐藏了客户端的ip。
二、什么是反向代理?
百度百科的解释
反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。
【自己的理解】:ngnix其实就是做了反向代理这件事,比如我请求baidu,但是百度背后不止一台服务器,我的请求具体到哪一台服务器,并不需要我去处理,我只需要请求http://www.baidu.com就行,既:ngnix隐藏了具体服务器的ip。
三、正向代理和反向代理的区别【简单理解】
1. 正向代理是为了隐藏客户端信息例如ip,反向代理是为了隐藏服务器信息,例如ip。
2. 正向代理是有感知的(就是说你需要用vpn你需要自己去配置),反向代理是无感知的(只需要输入www.baidu.com就可以访问到百度不同服务器上的资源,配置过程不是用户去做的)。简述Web常见端口和服务 ?
网络常用端口与协议
HTTP:80:www服务。
DHCP:服务器端的端口号是67
DHCP:客户机端的端口号是68
POP3:POP3仅仅是接收协议,POP3客户端使用SMTP向服务器发送邮件。POP3所用的端口号是110。
SMTP: 端口号是25。SMTP真正关心的不是邮件如何被传送,而只关心邮件是否能顺利到达目的地。SMTP具有健壮的邮件处理特性,这种特性允许邮件依据一定标 准自动路由,SMTP具有当邮件地址不存在时立即通知用户的能力,并且具有在一定时间内将不可传输的邮件返回发送方的特点。
Telnet:端口号是23。Telnet是一种最老的Internet应用,起源于ARPNET。它的名字是“电信网络协议(Telecommunication Network Protocol)”的缩写。
FTP:FTP使用的端口有20和21。20端口用于数据传输,21端口用于控制信令的传输,控制信息和数据能够同时传输,这是FTP的特殊这处。FTP采用的是TCP连接。
TFTP:端口号69,使用的是UDP的连接。
DNS:53,名称服务
NetBIOS: 137,138,139,其中137、138是UDP端口,当通过网上邻居传输文件时用这个端口。而139端口:通过这个端口进入的连接试图获得 NetBIOS/SMB服务。这个协议被用于windows文件和打印机共享和SAMBA。还有WINS Regisrtation也用它。
NNTP 网络新闻传输协议:119
SNMP(简单网络管理协议):161端口
RPC(远程过程调用)服务:135端口
QQ:使用8000(服务端)和4000端口(客户端)
21 端口:21 端口主要用于FTP(File Transfer Protocol,文件传输协议)服务。
23 端口:23 端口主要用于Telnet(远程登录)服务,是Internet上普遍采用的登录和仿真程序,最初设计被用来方便管理员远程管理计算机,可现在真正将其发挥到极致的是"黑客"!
25 端口:25 端口为SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)服务器所开放,主要用于发送邮件,如今绝大多数邮件服务器都使用该协议。
53 端口:53 端口为DNS(Domain Name Server,域名服务器)服务器所开放,主要用于域名解析,DNS 服务在NT 系统中使用的最为广泛。
67、68 端口:67、68 端口分别是为Bootp 服务的Bootstrap Protocol Server(引导程序协议服务端)和Bootstrap Protocol Client(引导程序协议客户端)开放的端口。
69 端口:TFTP 是Cisco 公司开发的一个简单文件传输协议,类似于FTP。
79 端口:79 端口是为Finger 服务开放的,主要用于查询远程主机在线用户、操作系统类型以及是否缓冲区溢出等用户的详细信息。
80 端口:80 端口是为HTTP(HyperText Transport Protocol,超文本传输协议)开放的,这是上网冲浪使用最多的协议,主要用于在WWW(World Wide Web,万维网)服务上传输信息的协议。
99 端口:99 端口是用于一个名为“Metagram Relay”(亚对策延时)的服务,该服务比较少见,一般是用不到的。
109、110 端口:109 端口是为POP2(Post Office Protocol Version2,邮局协议2)服务开放的,110 端口是为POP3(邮件协议3)服务开放的,POP2、POP3 都是主要用于接收邮件的。
111 端口:111 端口是SUN 公司的RPC(Remote Procedure Call,远程过程调用)服务所开放的端口,主要用于分布式系统中不同计算机的内部进程通信,RPC 在多种网络服务中都是很重要的组件。
113 端口:113 端口主要用于Windows 的“Authentication Service”(验证服务)。
119 端口:119 端口是为“Network News Transfer Protocol”(网络新闻组传输协议,简称NNTP)开放的。
135 端口:135 端口主要用于使用RPC(Remote Procedure Call,远程过程调用)协议并提供DCOM(分布式组件对象模型)服务。
137 端口:137 端口主要用于“NetBIOS Name Service”(NetBIOS名称服务)。
139 端口:139 端口是为“NetBIOS Session Service”提供的,主要用于提供Windows 文件和打印机共享以及Unix 中的Samba 服务。
143 端口:143 端口主要是用于“Internet Message Access Protocol”v2(Internet 消息访问协议,简称IMAP)。
161 端口:161 端口是用于“Simple Network Management Protocol”(简单网络管理协议,简称SNMP)。
443 端口:443 端口即网页浏览端口,主要是用于HTTPS 服务,是提供加密和通过安全端口传输的另一种HTTP。
554 端口:554 端口默认情况下用于“Real Time Streaming Protocol”(实时流协议,简称RTSP)。
1024 端口:1024 端口一般不固定分配给某个服务,在英文中的解释是“Reserved”(保留)。
1080 端口:1080 端口是Socks 代理服务使用的端口,大家平时上网使用的WWW 服务使用的是HTTP 协议的代理服务。
1755 端口:1755 端口默认情况下用于“Microsoft Media Server”(微软媒体服务器,简称MMS)。
3389端口:远程桌面 (嘿嘿!3389入侵就是用的这个口)HTTP GET 的长度限制是多少?
HTTP中的GET方法是通过URL传递数据的,但是URL本身其实并没有对数据的长度进行限制,真正限制GET长度的是浏览器。
例如IE浏览器对URL的最大限制是2000多个字符,大概2kb左右,像Chrome、Firefox等浏览器支持的URL字符数更多,其中FireFox中URL的最大长度限制是65536个字符,Chrome则是8182个字符。
这个长度限制也不是针对数据部分,而是针对整个URL。URI 和 URL 有什么区别?
URI,统一资源标识符(Uniform Resource Identifier, URI),标识的是Web上每一种可用的资源,如 HTML文档、图像、视频片段、程序等都是由一个URI进行标识的。
URL,统一资源定位符(Uniform Resource Location),它是URI的一种子集,主要作用是提供资源的路径。
它们的主要区别在于,URL除了提供了资源的标识,还提供了资源访问的方式。这么比喻,URI 像是身份证,可以唯一标识一个人,而 URL 更像一个住址,可以通过 URL 找到这个人——人类住址协议://地球/中国/北京市/海淀区/xx职业技术学院/14号宿舍楼/525号寝/张三.男。HTTP 如何实现长连接?在什么时候会超时?
什么是 HTTP 的长连接?
HTTP 分为长连接和短连接,本质上说的是 TCP 的长短连接。TCP 连接是一个双向的通道,它是可以保持一段时间不关闭的,因此 TCP 连接才具有真正的长连接和短连接这一说法。
TCP 长连接可以复用一个 TCP 连接,来发起多次的 HTTP 请求,这样就可以减少资源消耗,比如一次请求 HTML,如果是短连接的话,可能还需要请求后续的 JS/CSS。
如何设置长连接?
通过在头部(请求和响应头)设置 Connection 字段指定为keep-alive,HTTP/1.0 协议支持,但是是默认关闭的,从 HTTP/1.1 以后,连接默认都是长连接。
在什么时候会超时呢?
HTTP 一般会有 httpd 守护进程,里面可以设置 keep-alive timeout,当 tcp 连接闲置超过这个时间就会关闭,也可以在 HTTP 的 header 里面设置超时时间
TCP 的 keep-alive 包含三个参数,支持在系统内核的 net.ipv4 里面设置;当 TCP 连接之后,闲置了 tcp_keepalive_time,则会发生侦测包,如果没有收到对方的 ACK,那么会每隔 tcp_keepalive_intvl 再发一次,直到发送了 tcp_keepalive_probes,就会丢弃该连接。
复制代码
1. tcp_keepalive_intvl = 15
2. tcp_keepalive_probes = 5
3. tcp_keepalive_time = 1800如何理解 HTTP 协议是无状态的?
这个无状态的的状态值的是什么?是客户端的状态,所以字面意思,就是HTTP协议中服务端不会保存客户端的任何信息。
比如当浏览器第一次发送请求给服务器时,服务器响应了;如果同个浏览器发起第二次请求给服务器时,它还是会响应,但是呢,服务器不知道你就是刚才的那个浏览器。
那有什么办法记录状态呢?
主要有两个办法,Session和Cookie。客户端无法使用Cookie怎么办?
有可能客户端无法使用Cookie,比如浏览器禁用Cookie,或者客户端是安卓、IOS等等。
这时候怎么办?SessionID怎么存?怎么传给服务端呢?
首先是SessionID的存储,可以使用客户端的本地存储,比如浏览器的sessionStorage。
接下来怎么传呢?
拼接到URL里:直接把SessionID作为URL的请求参数
放到请求头里:把SessionID放到请求的Header里,比较常用CLOSE-WAIT 和 TIME-WAIT 的状态和意义?
CLOSE-WAIT状态有什么意义?
服务端收到客户端关闭连接的请求并确认之后,就会进入CLOSE-WAIT状态。此时服务端可能还有一些数据没有传输完成,因此不能立即关闭连接,而CLOSE-WAIT状态就是为了保证服务端在关闭连接之前将待发送的数据处理完。
TIME-WAIT有什么意义?
TIME-WAIT状态发生在第四次挥手,当客户端向服务端发送ACK确认报文后进入TIME-WAIT状态。
它存在的意义主要是两个:
防⽌旧连接的数据包如果客户端收到服务端的FIN报文之后立即关闭连接,但是此时服务端对应的端口并没有关闭,如果客户端在相同端口建立新的连接,可能会导致新连接收到旧连接残留的数据包,导致不可预料的异常发生。
保证连接正确关闭假设客户端最后一次发送的ACK包在传输的时候丢失了,由于TCP协议的超时重传机制,服务端将重发FIN报文,如果客户端没有维持TIME-WAIT状态而直接关闭的话,当收到服务端重新发送的FIN包时,客户端就会使用RST包来响应服务端,导致服务端以为有错误发生,然而实际关闭连接过程是正常的。简述UDP协议为什么不可靠?
UDP在传输数据之前不需要先建立连接,远地主机的运输层在接收到UDP报文后,不需要确认,提供不可靠交付。总结就以下四点:
(1)不保证消息交付:不确认,不重传,无超时
(2)不保证交付顺序:不设置包序号,不重排,不会发生队首阻塞
(3)不跟踪连接状态:不必建立连接或重启状态机
(4)不进行拥塞控制:不内置客户端或网络反馈机制DNS为什么要用UDP?
更准确地说,DNS既使用TCP又使用UDP。
当进行区域传送(主域名服务器向辅助域名服务器传送变化的那部分数据)时会使用TCP,因为数据同步传送的数据量比一个请求和应答的数据量要多,而TCP允许的报文长度更长,因此为了保证数据的正确性,会使用基于可靠连接的TCP。
当客户端想DNS服务器查询域名(域名解析)的时候,一般返回的内容不会超过UDP报文的最大长度,即512字节,用UDP传输时,不需要创建连接,从而大大提高了响应速度,但这要求域名解析服务器和域名服务器都必须自己处理超时和重传从而保证可靠性简述IP 协议的定义和作用?
IP协议(Internet Protocol)又被称为互联网协议,是支持网间互联的数据包协议,工作在网际层,主要目的就是为了提高网络的可扩展性。
通过网际协议IP,可以把参与互联的,性能各异的网络看作一个统一的网络。
和传输层TCP相比,IP协议是一种无连接/不可靠、尽力而为的数据包传输服务,和TCP协议一起构成了TCP/IP协议的核心。
IP协议有哪些作用?
IP协议主要有以下几个作用:
寻址和路由:在IP数据报中携带源IP地址和目的IP地址来表示该数据包的源主机和目标主机。IP数据报在传输过程中,每个中间节点(IP网关、路由器)只根据网络地址来进行转发,如果中间节点是路由器,则路由器会根据路由表选择合适的路径。IP协议根据路由选择协议提供的路由信息对IP数据报进行转发,直至目标主机。
分段和重组:IP数据报在传输过程中可能会经过不同的网络,在不同的网络中数据报的最大长度限制是不同的,IP协议通过给每个IP数据报分配一个标识符以及分段与组装的相关信息,使得数据报在不同的网络中能够被传输,被分段后的IP数据报可以独立地在网络中进行转发,在达到目标主机后由目标主机完成重组工作,恢复出原来的IP数据报。IP 地址有哪些分类?
一个IP地址在这鞥个互联网范围内是惟一的,一般可以这么认为,IP 地址 = {<网络号>,<主机号>}。
网络号:它标志主机所连接的网络地址表示属于互联网的哪一个网络。
主机号:它标志主机地址表示其属于该网络中的哪一台主机。
IP 地址分为 A,B,C,D,E 五大类:
A 类地址 (1~126):以 0 开头,网络号占前 8 位,主机号占后面 24 位。
B 类地址 (128~191):以 10 开头,网络号占前 16 位,主机号占后面 16 位。
C 类地址 (192~223):以 110 开头,网络号占前 24 位,主机号占后面 8 位。
D 类地址 (224~239):以 1110 开头,保留为多播地址。
E 类地址 (240~255):以 1111开头,保留位为将来使用简述域名和 IP 的关系?一个 IP 可以对应多个域名吗?
IP地址在同一个网络中是惟一的,用来标识每一个网络上的设备,其相当于一个人的身份证号
域名在同一个网络中也是惟一的,就像是一个人的名字、绰号
假如你有多个不用的绰号,你的朋友可以用其中任何一个绰号叫你,但你的身份证号码却是惟一的。但同时你的绰号也可能和别人重复,假如你不在,有人叫你的绰号,其它人可能就答应了。
一个域名可以对应多个IP,但这种情况DNS做负载均衡的,在用户访问过程中,一个域名只能对应一个IP。
而一个IP却可以对应多个域名,是一对多的关系IPV4 地址不够如何解决?
IP地址有32位,可以标记2的32次方个地址,听起来很多,但是全球的网络设备数量已经远远超过这个数字,所以IPV4地址已经不够用了,那怎么解决呢?
DHCP:动态主机配置协议,动态分配IP地址,只给接入网络的设备分配IP地址,因此同一个MAC地址的设备,每次接入互联网时,得到的IP地址不一定是相同的,该协议使得空闲的IP地址可以得到充分利用。
CIDR:无类别域间路由。CIDR消除了传统的A类、B类、C类地址以及划分子网的概念,因而更加有效地分配IPv4的地址空间,但无法从根本上解决地址耗尽的问题。
NAT:网络地址转换协议,我们知道属于不同局域网的主机可以使用相同的IP地址,从而一定程度上缓解了IP资源枯竭的问题,然而主机在局域网中使用的IP地址是不能在公网中使用的,当局域网主机想要与公网主机进行通信时,NAT方法可以将该主机IP地址转换为全球IP地址。该协议能够有效解决IP地址不足的问题。
IPv6:作为接替IPv4的下一代互联网协议,其可以实现2的128次方个地址,而这个数量级,即使给地球上每一粒沙子都分配一个IP地址也够用,该协议能够从根本上解决IPv4地址不够用的问题。MAC地址和IP地址都有什么作用?
MAC地址是数据链路层和物理层使用的地址,是写在网卡上的物理地址,用来定义网络设备的位置,不可变更。
IP地址是网络层和以上各层使用的地址,是一种逻辑地址。IP地址用来区别网络上的计算机解释为什么有了MAC地址还需要IP地址?
如果我们只使用MAC地址进行寻址的话,我们需要路由器记住每个MAC地址属于哪个子网,不然一次路由器收到数据包都要满世界寻找目的MAC地址。而我们知道MAC地址的长度为48位,也就是最多共有2的48次方个MAC地址,这就意味着每个路由器需要256T的内存,显然是不现实的。
和MAC地址不同,IP地址是和地域相关的,在一个子网中的设备,我们给其分配的IP地址前缀都是一样的,这样路由器就能根据IP地址的前缀知道这个设备属于哪个子网,剩下的寻址就交给子网内部实现,从而大大减少了路由器所需要的内存。解释为什么有了IP地址还需要MAC地址?
只有当设备连入网络时,才能根据他进入了哪个子网来为其分配IP地址,在设备还没有IP地址的时候,或者在分配IP的过程中。我们需要MAC地址来区分不同的设备。
IP 地址可以比作为地址,MAC 地址为收件人,在一次通信过程中,两者是缺一不可的。简述 Ping 的原理?
ping,Packet Internet Groper,是一种因特网包探索器,用于测试网络连接量的程序。Ping 是工作在 TCP/IP 网络体系结构中应用层的一个服务命令, 主要是向特定的目的主机发送 ICMP(Internet Control Message Protocol 因特网报文控制协议) 请求报文,测试目的站是否可达及了解其有关状态。
一般来说,ping 可以用来检测网络通不通。它是基于ICMP协议工作的。假设机器 Aping 机器 B,工作过程如下:
(1)ping 通知系统,新建一个固定格式的 ICMP 请求数据包
(2)ICMP 协议,将该数据包和目标机器 B 的 IP 地址打包,一起转交给 IP 协议层
(3)IP 层协议将本机 IP 地址为源地址,机器 B 的 IP 地址为目标地址,加上一些其他的控制信息,构建一个 IP 数据包
(4)先获取目标机器 B 的 MAC 地址。
(5)数据链路层构建一个数据帧,目的地址是 IP 层传过来的 MAC 地址,源地址是本机的 MAC 地址
(6)机器 B 收到后,对比目标地址,和自己本机的 MAC 地址是否一致,符合就处理返回,不符合就丢弃。
(7)根据目的主机返回的 ICMP 回送回答报文中的时间戳,从而计算出往返时间
(8)最终显示结果有这几项:发送到目的主机的 IP 地址、发送 & 收到 & 丢失的分组数、往返时间的最小、最大 & 平均值静态路由和动态路由有什么区别?
静态路由是由管理员手工配置的,适合比较简单的网络或需要做路由特殊控制。而动态路由则是由动态路由协议自动维护的,不需人工干预,适合比较复杂大型的网络PC 机不能上网 ,那么你会怎么解决呢?
检查网卡连接;
检查 IP 地址设置是否正确,如果是动态获取地址,检查有没有 取到,获取的是否正确;
检查 PC 能否同本网络其它主机通讯;
检查 PC 能否与网关通讯;
检查 PC 的 DNS 设置是否正确;
检查能否和 DNS 通讯;
检查能否 PING 通服务器;
杀毒;简述什么是VLAN?
VLAN又称虚拟局域网,是指在网络层对局域网进行划分,一个VLAN组成一个逻辑子网,即一个独立的广播域,各子网自己产生的广播网络流量被限制在各子网内部,降低数据帧的碰撞率,它可以覆盖多个网络设备,允许处于不同地理位置的网络用户加入到一个逻辑子网中。简述什么是子网掩码 ?
子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。
子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在广域网上。
子网掩码是在IPv4地址资源紧缺的背景下为了解决lP地址分配而产生的虚拟lP技术,通过子网掩码将A、B、C三类地址划分为若干子网,从而显著提高了IP地址的分配效率,有效解决了IP地址资源紧张的局面。另一方面,在企业内网中为了更好地管理网络,网管人员也利用子网掩码的作用,人为地将一个较大的企业内部网络划分为更多个小规模的子网,再利用三层交换机的路由功能实现子网互联,从而有效解决了网络广播风暴和网络病毒等诸多网络管理方面的问题。
在大多数的网络教科书中,一般都将子网掩码的作用描述为通过逻辑运算,将IP地址划分为网络标识(Net.ID)和主机标识(Host.ID),只有网络标识相同的两台主机在无路由的情况下才能相互通信。
根据RFC950定义,子网掩码是一个32位的2进制数, 其对应网络地址的所有位都置为1,对应于主机地址的所有位置都为0。子网掩码告知路由器,地址的哪一部分是网络地址,哪一部分是主机地址,使路由器正确判断任意IP地址是否是本网段的,从而正确地进行路由。网络上,数据从一个地方传到另外一个地方,是依靠IP寻址。从逻辑上来讲,是两步的。第一步,从IP中找到所属的网络,好比是去找这个人是哪个小区的;第二步,再从IP 中找到主机在这个网络中的位置,好比是在小区里面找到这个人。
子网掩码的设定必须遵循一定的规则。与二进制IP地址相同,子网掩码由1和0组成,且1和0分别连续。子网掩码的长度也是32位,左边是网络位,用二进制数字“1”表示,1的数目等于网络位的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。这样做的目的是为了让掩码与IP地址做按位与运算时用0遮住原主机数,而不改变原网络段数字,而且很容易通过0的位数确定子网的主机数(2的主机位数次方-2,因为主机号全为1时表示该网络广播地址,全为0时表示该网络的网络号,这是两个特殊地址)。通过子网掩码,才能表明一台主机所在的子网与其他子网的关系,使网络正常工作。
子网掩码的功能
子网掩码是一个32位地址,是与IP地址结合使用的一种技术。它的主要作用有两个,一是用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。二是用于将一个大的IP网络划分为若干小的子网络。
使用子网是为了减少IP的浪费。因为随着互联网的发展,越来越多的网络产生,有的网络多则几百台,有的只有区区几台,这样就浪费了很多IP地址,所以要划分子网。使用子网可以提高网络应用的效率。
通过计算机的子网掩码判断两台计算机是否属于同一网段的方法是,将计算机十进制的IP地址和子网掩码转换为二进制的形式,然后进行二进制“与”(AND)计算(全1则得1,不全1则得0),如果得出的结果是相同的,那么这两台计算机就属于同一网段简述如何划分子网以及基本的原理 ?
子网掩码机制提供了子网划分的方法。其作用是:减少网络上的通信量;节省IP地址;便于管理;解决物理网络本身的某些问题。使用子网掩码划分子网后,子网内可以通信,跨子网不能通信,子网间通信应该使用路由器,并正确配置静态路由信息。划分子网,就应遵循子网划分结构的规则。就是用连续的1在IP地址中增加表示网络地址,同时减少表示主机地址的位数。例如,IP地址为130.39.37.100,网络地址为130.39.37.0、子网地址为130.39.37.0、子网掩码为255.255.255.0,网络地址部分和子网标识部分为“1”所对应,主机标识部分为“0”所对应。 使用CIDR表示为:130.39.37.100/24即IP地址/ 掩码长度。其中第三个字节上的255 所对应的8位二进制数值就是将主机地址位数借给了网络地址部分,充当了划分子网的位数。
例子
1、255.255.255.0
子网掩码由连续的1和0组成,连续的1表示网络地址,连续的0表示主机地址,通过0的个数可以计算出子网的容量(子网中主机的IP地址范围)。首先来看看默认的子网掩码255.255.255.0是怎么划分子网的,将该子网掩码的二进制由24个1和8个0组成,8个0表示该子网掩码划分出的子网容量为256(2的8次方),也就是说192.168.1.0-255都在同一个子网中,这256个地址中可用地址只有254个,因为规定每个子网的第一个IP地址为网段地址,最后一个IP地址为广播地址,都不可用。举例说明:对于网段192.168.1.0,如果子网掩码设置255.255.255.0,192.168.1.1-192.168.1.254为可用IP地址,设置这个范围内的IP地址,计算机之间能正常联网。
2、255.255.255.252
当然上面是默认的情况,也是最简单的情况。下面我们分析子网掩码255.255.255.252是怎么划分子网的。将该子网掩码转换成二进制为30个1和2个0,表示每个子网中只有4个IP地址(2的2次方),192.168.1.0-255的地址段共可划分64个子网,第一个子网的地址范围是192.168.1.0-192.168.1.3,第二个子网的地址范围是192.168.1.4-192.168.1.7,依次类推。其中每个子网第一个和最后一个IP地址不可用,可用的只有2个IP地址。也就是说:如果子网掩码设置为255.255.255.252,那么该子网只能容纳两台电脑,而且这两台电脑的IP必须在一个子网内才能正常联网,例如一台电脑的IP设为192.168.1.10,另外一台电脑的IP必须设置为192.168.1.9。
子网划分实战
通过以上两个例子读者应该明白子网掩码的作用了,下面通过一个实际的例子检验刚才的学习成果。某个小型公司有四个部门:行政、研发、营销、售后,每个部门各40台计算机接入公司局域网交换机,如果要在192.168.1.0网段为每个部门划分子网,子网掩码应该怎么设置,每个子网的地址范围分别是什么?
192.168.1.0网段共256个地址,划分4个子网,每个子网需要64个地址;64是2的6次方,子网掩码应该以6个0结尾,剩下的用1补齐,由26个1和6个0组成,转换成十进制是255.255.255.192;每个子网共64个IP地址,掐头去尾后可用地址只有62个,第1个子网的可用IP地址范围是:192.168.1.1-62,第2个子网可用IP地址范围是192.168.1.65-126,第3个子网的可用IP地址范围是:192.168.1.129-190,第4个子网可用IP地址范围是192.168.1.193-254;该公司各部门计算机按照3中的IP地址范围进行设置,所有计算机的子网掩码都必须设置为255.255.255.192,设置完毕后各部门内的计算机能正常联网,不同部门间的计算机无法直接联通。网络打印和共享打印的区别?
网络打印是指网络打印机可以在网络上作为一个独立的个体使用,无需 PC与之相连, 只需把普通网线插入打印机的以太网接口并在打印机管理页面为打印机分配一个 IP 地址, 那么局域网内的用户便可访问此 IP 地址来进行自己的打印作业。在这里打印机已经不是一 个外设,而作为网络上的一个节点存在;
共享打印是需要通过一台安装打印机驱动的电脑来实现打印的, 也就是说, 那个电脑就 像是这个打印机的服务器. PC 服务器来连接打印机实现简单的网络连接,数据传输仍然必 须通过打印机的并口或 USB口来进行,因此速度较低磁盘 RAID 级别有几种, 分别是哪几种?你了解或者使用过哪几种?
RAID分为8个级别,分别如下:
RAID 0
RAID 0是组建磁盘阵列中最简单的一种形式,只需要2块以上的硬盘即可,成本低,可以提高整个磁盘的性能和吞吐量。RAID 0没有提供冗余或错误修复能力,但实现成本是最低的。
RAID 1
RAID 1主要是通过二次读写实现磁盘镜像,所以磁盘控制器的负载也相当大,尤其是在需要频繁写入数据的环境中。为了避免出现性能瓶颈,使用多个磁盘控制器就显得很有必要。
RAID 0+1
RAID 0+1是把RAID0和RAID1技术结合起来,数据除分布在多个盘上外,每个盘都有其物理镜像盘,提供全冗余能力,允许一个以下磁盘故障,而不影响数据可用性,并具有快速读/写能力。
RAID: LSI MegaRAID、Nytro和Syncro
MegaRAID、Nytro和Syncro都是LSI 针对RAID而推出的解决方案,并且一直在创造更新。LSI通过MegaRAID提供基本的可靠性保障;通过Nytro实现加速;通过Syncro突破容量瓶颈,让价格低廉的存储解决方案可以大规模扩展,并且进一步提高可靠性。
RAID2:带海明码校验
RAID 2 同RAID 3类似, 两者都是将数据条块化分布于不同的硬盘上, 条块单位为位或字节。然而RAID 2 使用一定的编码技术来提供错误检查及恢复。
RAID3:带奇偶校验码的并行传送
RAID3访问数据时一次处理一个带区,这样可以提高读取和写入速度。校验码在写入数据时产生并保存在另一个磁盘上。
RAID4:带奇偶校验码的独立磁盘结构
RAID4和RAID3很象,不同的是,它对数据的访问是按数据块进行的,也就是按磁盘进行的,每次是一个盘。
RAID5:分布式奇偶校验的独立磁盘结构
RAID5的奇偶校验码存在于所有磁盘上,其中的p0代表第0带区的奇偶校验值,其它的意思也相同。RAID5的读出效率很高,写入效率一般,块式的集体访问效率不错。
RAID6:带有两种分布存储的奇偶校验码的独立磁盘结构
RAID6是对RAID5的扩展,主要是用于要求数据绝对不能出错的场合。
RAID7:优化的高速数据传送磁盘结构
RAID7所有的I/O传送均是同步进行的,可以分别控制,这样提高了系统的并行性,提高系统访问数据的速度;每个磁盘都带有高速缓冲存储器,实时操作系统可以使用任何实时操作芯片,达到不同实时系统的需要。
RAID10:高可靠性与高效磁盘结构
RAID10是一个带区结构加一个镜象结构,新结构的价格高,可扩充性不好。主要用于数据容量不大,但要求速度和差错控制的数据库中。
RAID53:高效数据传送磁盘结构
RAID53就是RAID3和带区结构的统一,因此它速度比较快,也有容错功能。但价格十分高,不易于实现。简述DHCP以及工作原理 ?
动态主机配置协议DHCP(Dynamic Host Configuration Protocol)是一种用于集中对用户IP地址进行动态管理和配置的技术。即使规模较小的网络,通过DHCP也可以使后续增加网络设备变得简单快捷。
DHCP协议由RFC 2131定义,采用客户端/服务器通信模式,由客户端(DHCP Client)向服务器(DHCP Server)提出配置申请,服务器返回为客户端分配的配置信息。
DHCP可以提供两种地址分配机制,网络管理员可以根据网络需求为不同的主机选择不同的分配策略。
动态分配机制:通过DHCP为主机分配一个有使用期限(这个使用期限通常叫做租期)的IP地址。
这种分配机制适用于主机需要临时接入网络或者空闲地址数小于网络主机总数且主机不需要永久连接网络的场景。
静态分配机制:网络管理员通过DHCP为指定的主机分配固定的IP地址。
相比手工静态配置IP地址,通过DHCP方式静态分配机制避免人工配置发生错误,方便管理员统一维护管理。简述交换机是如何转发数据包的 ?
交换机收到流量后,首先进行自学习功能,即将数据包中的MAC地址与接收到的接口进行绑定 存储在本地的MAC地址表中(二进制表格,CAM表),然后查看数据包中的目的MAC地址,查询本地的MAC地址表,如果存在记录,则按其进行转发即可,若不存在,那就除接收到的接口,向其他所有的接口进行洪范,这里其实是向处在同一个VLAN下的其他所有接口继续洪范网络冗余技术有哪些(网络冗余是什么意思) ?
交换机的冗余性:spanning-tree、ethernet-channel
路由的冗余性:HSRP,VRRP,GLBP.简述什么是SNMP协议 ?
由于网络设备越来越多,网络规模越来越大,管理这些设备也越来越重要。远程管理网络的需求日益迫切,SNMP 应运而生。
SNMP 协议能够帮助网络管理员提高网络管理效率,及时发现和解决网络问题,对网络增长做好规划。网络管理员还可以通过 SNMP 协议,接收网络节点的通知消息和警告事件报告等,从而获知网络出现的问题。
SNMP 目前共有 3 个版本,分别为 v1、v2 和 v3,说明如下:
SNMP v1:是 SNMP 协议的最初版本,在 1988 年被制定,并被 Internet 体系结构委员会(IAB)采纳作为一个短期的网络管理解决方案。
SNMP v2:是 1992 年发布的 SNMP 的第二个版本。它修订了第一版,并且在性能、安全、机密性和管理者之间通信等方面进行了大量改进。
SNMP v3:是目前最新的版本。它是 2004 年制定的,协议编号为 RFC3411-RFC3418(STD0062)。它为提升协议的安全性,增加了认证和密文传输功能。SNMP 的两种工作方式是什么,有什么特点?
SNMP 是基于 UDP 的,有两种工作方式,一种是轮询,一种是中断. 轮询:网管工作站随机开端口轮询被管设备的 UDP 的 161 端口. 中断:被管设备将 trap 报文主动发给网管工作站的 UDP 的 162 端口. 特点:轮询一定能够查到被管设备是否出现了故障,但实时性不好. 中断实时性好(触发更新),但不一定能够将 trap 报文报告给网管工作站简述VLAN 和 VPN 有什么区别?
VPN 是一种三层封装加密技术,VLAN 则是一种第二层的标志技术(尽管 ISL 采用封装),尽 管用户视图有些相象,但他们不应该是同一层次概念。
VLAN(V irtual Local Area Network)即虚拟局域网,是一种通过将局域网内的设备逻辑地而 不是物理地划分成一个个网段从而实现虚拟工作组的新兴技术。
VLAN 在交换机上的实现方法,可以大致划分为 2 大类:基于端口划分的静态 VLAN;2、 基于 MAC 地址|IP 等划分的动态 VLAN。当前主要是静态 VLAN 的实现。
跨交换机 VLAN 通讯通过在 TRUNK 链路上采用 Dot1Q 或 ISL 封装(标识)技术。VPN(虚拟专用网)被定义为通过一个公用网络(通常是因特网)建立一个临时的、安全的 连接,是一条穿过混乱的公用网络的安全、稳定的隧道。
VPN 使用三个方面的技术保证了通信的安全性:隧道协议、数据加密和身份验证。
■VPN 使用两种隧道协议:点到点隧道协议(PPTP)和第二层隧道协议(L2TP)。
■VPN 采用何种加密技术依赖于 VPN 服务器的类型,因此可以分为两种情况。
对于 PPTP 服务器,将采用 MPPE 加密技术 MPPE 可以支持 40 位密钥的标准加密方案和 128 位密钥的增强加密方案。只有在 MS-CHAP、MS-CHAP v2 或 EAP/TLS 身份验证被协商之后, 数据才由 MPPE 进行加密,MPPE 需要这些类型的身份验证生成的公用客户和服务器密钥。对于 L2TP 服务器,将使用 IPSec 机制对数据进行加密 IPSec 是基于密码学的保护服务和安全 协议的套件。IPSec 对使用 L2TP 协议的 VPN 连接提供机器级身份验证和数据加密。在保 护密码和数据的 L2TP 连接建立之前,IPSec 在计算机及其远程 VPN 服务器之间进行协商。IPSec 可用的加密包括 56 位密钥的数据加密标准 DES 和 56 位密钥的三倍 DES (3DES)。
■VPN 的身份验证方法
前面已经提到 VPN 的身份验证采用 PPP 的身份验证方法,下面介绍一下 VPN 进行身份验证 的几种方法。
CHAP CHAP 通过使用 MD5(一种工业标准的散列方案)来协商一种加密身份验证的安全形 式。CHAP 在响应时使用质询-响应机制和单向 MD5 散列。用这种方法,可以向服务器证明 客户机知道密码,但不必实际地将密码发送到网络上。
MS-CHAP 同 CHAP 相似,微软开发 MS-CHAP 是为了对远程 Windows 工作站进行身份验证, 它在响应时使用质询-响应机制和单向加密。而且 MS-CHAP 不要求使用原文或可逆加密密 码。
MS-CHAP v2 MS-CHAP v2 是微软开发的第二版的质询握手身份验证协议,它提供了相互身份 验证和更强大的初始数据密钥,而且发送和接收分别使用不同的密钥。如果将 VPN 连接配 置为用 MS-CHAP v2 作为唯一的身份验证方法,那么客户端和服务器端都要证明其身份,如 果所连接的服务器不提供对自己身份的验证,则连接将被断开。
EAP EAP 的开发是为了适应对使用其他安全设备的远程访问用户进行身份验证的日益增长 的需求。通过使用 EAP,可以增加对许多身份验证方案的支持,其中包括令牌卡、一次性 密码、使用智能卡的公钥身份验证、证书及其他身份验证。对于 VPN 来说,使用 EAP 可以 防止暴力或词典攻击及密码猜测,提供比其他身份验证方法(例如 CHAP)更高的安全性。在 Windows 系统中,对于采用智能卡进行身份验证,将采用 EAP 验证方法;对于通过密码 进行身份验证,将采用 CHAP、MS-CHAP 或 MS-CHAP v2 验证方法。简述网络通讯常见的认证方式?
1)口令验证协议(PAP)
PAP 是一种简单的明文验证方式。NAS(网络接入服务器,Network Access Server)要求 用户提供用户名和口令,PAP 以明文方式返回用户信息。很明显,这种验证方式的安全性较 差,第三方可以很容易的获取被传送的用户名和口令,并利用这些信息与 NAS 建立连接获 取 NAS 提供的所有资源。所以,一旦用户密码被第三方窃取,PAP 无法提供避免受到第三方 攻击的保障措施。
2)挑战-握手验证协议(CHAP)
CHAP 是一种加密的验证方式,能够避免建立连接时传送用户的真实密码。NAS 向远程
用户发送一个挑战口令(challenge),其中包括会话 ID 和一个任意生成的挑战字串(arbitrary challengestring)。远程客户必须使用 MD5 单向哈希算法(one-way hashing algorithm)返回 用户名和加密的挑战口令,会话 ID 以及用户口令,其中用户名以非哈希方式发送。
CHAP 对 PAP 进行了改进,不再直接通过链路发送明文口令,而是使用挑战口令以哈希 算法对口令进行加密。因为服务器端存有客户的明文口令,所以服务器可以重复客户端进行 的操作,并将结果与用户返回的口令进行对照。CHAP 为每一次验证任意生成一个挑战字串 来防止受到再现攻击(replay attack)。在整个连接过程中,CHAP 将不定时的向客户端重复 发送挑战口令,从而避免第 3 方冒充远程客户(remote client impersonation)进行攻击。常用的备份方式有哪些?
完全备份( Full Backup )
备份全部选中的文件夹,并不依赖文件的存档属性来确定备份那些文件。在备份过程中,任何现有的标记都被清除,每个文件都被标记为已备份。换言之,清除存档属性。完全备份就是指对某一个时间点上的所有数据或应用进行的一个完全拷贝。
实际应用中就是用一盘磁带对整个系统进行完全备份, 包括其
中的系统和所有数据。这种备份方式最大的好处就是只要用一盘磁带,就可以恢复丢失的数据。因此大大加快了系统或数据的恢复时间。然而它的不足之处在于,各个全备份磁带中的备份数据存在大量的重复信息;另外,由于每次需要备份的数据量相当大,因此备份所需时间较长。
差异备份( Differential Backup )
备份自上一次完全备份之后有变化的数据。差异备份过程中,只备份有标记的那些选中的文件和文件夹。它不清除标记,也即备份后不标记为已备份文件。换言之,不清除存档属性。差异备份是指在一次全备份后到进行差异备份的这段时间内,对那些增加或者修改文件的备份。在进行恢复时,我们只需对第一次全备份
和最后一次差异备份进行恢复。差异备份在避免了另外两种备份策略缺陷的同时,又具备了它们各自的优点。首先,它具有了增量备份需要时间短、节省磁盘空间的优势;其次,它又具有了全备份恢复所需磁带少、恢复时间短的特点。系统管理员只需要两盘磁带,即全备份磁带与灾难发生前一天的差异备份磁带,就可以将系统恢复。
增量备份 (Incremental Backup )
备份自上一次备份(包含完全备份、差异备份、增量备份)之后有变化的数据。增量备份过程中,只备份有标记的选中的文件和文件夹,它清除标记,既:备份后标记文件,换言之,清除存档属性。增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加和者被修改的文件。这就意味着,第一次增量备份的对象是进行全备后所产生的增加和修改的文件; 第二次增量备份的对象是进行第一次增量备份后所产生的增加和修改的文件, 如此类推。这种备份方式最显著的优点就是:没有重复的备份数据,因此备份的数据量不大,备份所需的时间很短。但增量备份的数据恢复是比较麻烦的。您必须具有上一次全备份和所有增量备份磁带(一旦丢失或损坏其中的一盘磁带,就会造成恢复的失败),并且它们必须沿着从全备份 到依次增量备份的时间顺序逐个反推恢复,因此这就极大地延长了恢复时间举例几种代理服务器有哪些?
WinGate、Microsoft 、ProxyServer、WinRoute、ccproxy、SyGate简述禁用Cookie的Session使用方案 ?
因为Cookie是保存在客户端浏览器的,而且客户端浏览器是允许用户自行设置是否关闭Cookie的。所以对于WEB开发人员而言,一定要做好兼容性处理,一般在项目开发中我们是这样来处理Cookie和Session的。
1、WEB前端判断用户浏览器的Cookie是否处于开启状态:
可以通过前端JS代码来尝试写入Cookie,看是否正常,如果客户端浏览器的Cookie是禁用状态,那需要将服务器端生成的SessionID以GET方式附加到每次请求中,比如这种形式:
http://xxx.com/index.php?id=123&sessid=xxxxxxxx
2、服务器端接收GET传参中的SessionID
如果用户GET请求中含有SessionID的传参(如上面例子中的 sessid参数),那我们在服务器端要获取到这个传参的值,然后以此值作为SessionID去寻找对应的Session即可。比如PHP语言可以通过session_id()函数来获取、设置SessionID。
3、客户端友好页面引导用户去开启Cookie
若前期项目没有做好这方面的兼容性处理,而且改造起来代价很大,那我们可以在前端做个引导页,如果Cookie是禁用状态,则弹出此引导页引导用户开启Cookie。请解释什么是HTTP隧道?
HTTP(Hypertext Transfer Protocol)隧道是一种在两个网络节点之间建立一条双向的网络连接,以便在这两个节点之间进行数据传输。HTTP隧道是一种简单且可靠的方式,它可以帮助用户在不需要改变其基础设施的情况下,实现多种功能。
HTTP隧道的使用可以让用户在不受限制的情况下,在多个网络之间进行数据传输。例如,用户可以使用HTTP隧道来实现从一台服务器到另一台服务器的网络连接。此外,用户也可以使用HTTP隧道来实现跨网络的数据传输,例如从公司内部的某一网络到Internet上的另一个网络。
HTTP隧道的优点在于它可以帮助用户实现各种功能,而无需改变其基础设施。例如,用户可以使用HTTP隧道来实现安全性更高的数据传输。通过使用HTTP隧道,用户可以将数据传输过程中所有敏感信息加密,从而减少数据泄露的风险。此外,HTTP隧道也可以帮助用户实现多层安全防护,例如对数据传输过程中使用的协议进行检测和限制,从而降低数据泄露的风险。
此外,HTTP隧道还可以帮助用户实现负载均衡,即将一个服务器上的请求平均分布到多个服务器上,从而减少单个服务器的压力。此外,HTTP隧道还可以帮助用户实现负载分流,即将一个服务器上的请求分流到多个服务器上,从而降低单个服务器的压力。
总之,HTTP隧道是一种强大而可靠的方式,它可以帮助用户在不改变其基础设施的情况下,实现多种功能。此外,HTTP隧道也可以帮助用户实现安全性更高的数据传输、负载均衡、负载分流等功能。因此,使用HTTP隧道是一个明智的选择Scoket连接和HTTP连接的区别?
1:HTTP协议是基于TCP连接的,是应用层协议,主要解决如何包装数据。Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议。
HTTP连接:短连接,客户端向服务器发送一次请求,服务器响应后连接断开,节省资源。服务器不能主动给客户端响应(除非采用HTTP长连接技术),iPhone主要使用类NSURLConnection。
2:Socket连接:长连接,客户端跟服务器端直接使用Socket进行连接,没有规定连接后断开,因此客户端和服务器段保持连接通道,双方可以主动发送数据,一般多用于游戏.Socket默认连接超时时间是30秒,默认大小是8K(理解为一个数据包大小)简述HTTP ETag作用和机制 ?
Etag由服务器端生成,客户端通过If-Match或者说If-None-Match这个条件判断请求来验证资源是否修改。常见的是使用If-None-Match。请求一个文件的流程可能如下:
====第一次请求===
1.客户端发起 HTTP GET 请求一个文件;
2.服务器处理请求,返回文件内容和一堆Header,当然包括Etag(例如"2e681a-6-5d044840")(假设服务器支持Etag生成和已经开启了Etag).状态码200
====第二次请求===
客户端发起 HTTP GET 请求一个文件,注意这个时候客户端同时发送一个If-None-Match头,这个头的内容就是第一次请求时服务器返回的Etag:2e681a-6-5d0448402.服务器判断发送过来的Etag和计算出来的Etag匹配,因此If-None-Match为False,不返回200,返回304,客户端继续使用本地缓存;流程很简单,问题是,如果服务器又设置了Cache-Control:max-age和Expires呢,怎么办
答案是同时使用,也就是说在完全匹配If-Modified-Since和If-None-Match即检查完修改时间和Etag之后,
服务器才能返回304.(不要陷入到底使用谁的问题怪圈)
为什么使用Etag请求头?
Etag 主要为了解决 Last-Modified 无法解决的一些问题。Session有什么重大BUG,微软提出了什么方法加以解决?
是iis中由于有进程回收机制,系统繁忙的话Session会丢失,可以用Sate server或SQL Server数据库的方式存储Session不过这种方式比较慢,而且无法捕获Session的END事件详细简述什么是SOAP ?
SOAP(Simpe Object Access Protoco )简单对象访问协议是在分散或分布式的环境中交换信息并执行远程过程调用的协议,是一个基于XML的协议。使用SOAP,不用考虑任何特定的传输协议(最常用的还是HTTP协议),可以允许任何类型的对象或代码,在任何平台上,以任何一直语言相互通信。
SOAP 是一种轻量级协议,用于在分散型、分布式环境中交换结构化信息。 SOAP 利用 XML 技术定义一种可扩展的消息处理框架,它提供了一种可通过多种底层协议进行交换的消息结构。这种框架的设计思想是要独立于任何一种特定的编程模型和其他特定实现的语义。
SOAP 定义了一种方法以便将 XML 消息从 A 点传送到 B 点。为此,它提供了一种基于 XML且具有以下特性的消息处理框架:
1) 可扩展,
2) 可通过多种底层网络协议使用,
3) 独立于编程模型。简述Websoket是什么?
WebSocket是双向的,在客户端-服务器通信的场景中使用的全双工协议,与HTTP不同,它以ws://或wss://开头。它是一个有状态协议,这意味着客户端和服务器之间的连接将保持活动状态,直到被任何一方(客户端或服务器)终止。在通过客户端和服务器中的任何一方关闭连接之后,连接将从两端终止。
让我们以客户端-服务器通信为例,每当我们启动客户端和服务器之间的连接时,客户端-服务器进行握手随后创建一个新的连接,该连接将保持活动状态,直到被他们中的任何一方终止。建立连接并保持活动状态后,客户端和服务器将使用相同的连接通道进行通信,直到连接终止。
新建的连接被称为WebSocket。一旦通信链接建立和连接打开后,消息交换将以双向模式进行,客户端-服务器之间的连接会持续存在。如果其中任何一方(客户端服务器)宕掉或主动关闭连接,则双方均将关闭连接。套接字的工作方式与HTTP的工作方式略有不同,状态代码101表示WebSocket中的交换协议。
如果我们需要通过网络传输的任何实时更新或连续数据流,则可以使用WebSocket。如果我们要获取旧数据,或者只想获取一次数据供应用程序使用,则应该使用HTTP协议,不需要很频繁或仅获取一次的数据可以通过简单的HTTP请求查询,因此在这种情况下最好不要使用WebSocket。
场景:
即时Web应用程序:即时Web应用程序使用一个Web套接字在客户端显示数据,这些数据由后端服务器连续发送。在WebSocket中,数据被连续推送/传输到已经打开的同一连接中,这就是为什么WebSocket更快并提高了应用程序性能的原因。 例如在交易网站或比特币交易中,这是最不稳定的事情,它用于显示价格波动,数据被后端服务器使用Web套接字通道连续推送到客户端。
游戏应用程序:在游戏应用程序中,你可能会注意到,服务器会持续接收数据,而不会刷新用户界面。屏幕上的用户界面会自动刷新,而且不需要建立新的连接,因此在WebSocket游戏应用程序中非常有帮助。
聊天应用程序:聊天应用程序仅使用WebSocket建立一次连接,便能在订阅户之间交换,发布和广播消息。它重复使用相同的WebSocket连接,用于发送和接收消息以及一对一的消息传输简述什么是AUTH2.0协议?
OAuth 2.0是一个业界标准的授权协议(authorization protocol),这里的授权是以委派代理(delegation)的方式。可以这样理解,OAuth 2.0提供一种协议交互框架,让某个应用能够以安全地方式获取到用户的委派书,这个委派书在OAuth 2.0中就是访问令牌(access token),随后应用便可以使用该委派书,代表用户来访问用户的相关资源。
在OAuth 2.0的协议交互中,有四个角色的定义,
资源所有者(Resource Owner):顾名思义,资源的所有者,很多时候其就是我们普通的自然人(但不限于自然人,如某些应用程序也会创建资源),拥有资源的所有权。
资源服务器(Resource Server):保存着受保护的用户资源。
应用程序(Client):准备访问用户资源的应用程序,其可能是一个web应用,或是一个后端web服务应用,或是一个移动端应用,也或是一个桌面可执行程序。
授权服务器(Authorization Server):授权服务器,在获取用户的同意授权后,颁发访问令牌给应用程序,以便其获取用户资源。简述什么是JWT令牌?和普通令牌有什么区别?
一、token分类
SpringSecurityOauth2令牌
参考URL: https://www.yuque.com/gaoxi-dj1fr/fxgaxe/ivvpqc
1.普通令牌的作用:唯一标识存贮在数据库或内存中的用户信息,在认证时,SpringSecurity拿着普通令牌去数据库中查询用户信息使用
2.jwt令牌的作用:jwt令牌中本身存储着用户信息,在认证时,SpringSecurity从jwt令牌中解析出用户信息即可,不需要借助数据库等进行存储
1. 普通令牌
普通令牌是SpringSecurityOauth2给客户端颁发的一个无含义的令牌,在令牌发布时,SpringSecurityOauth2将用户信息存储到程序指定的存储位置,并用普通令牌唯一标识这个存储信息,当用户再次携带令牌访问时,SpringSecurityOauth2会根据令牌查询用户信息,进而实现权限角色的限制。
普通令牌需要一个存储用户信息的地方,这个地方可以内存,也可以是数据库(Redis、Mysql)。
基于数据库存储(以Redis为例)
①基于Redis存储用户信息的方式,认证服务器将用户信息存储到指定的Redis数据库中
②当资源服务获取到access_token时,会到Redis中获取用户信息
③在微服务场景下适用
2. JWT令牌
jwt令牌的方式就无需数据库的介入,jwt令牌中就包含着用户的信息,SpringSecurityOauth在发布令牌时,会将用户信息放入JWT令牌中,用户拿着JWT令牌时,SpringSecurityOauth从中获取到用户信息,实现用户权限的控制。
jwt不需要后端进行存储。
①基于JWT令牌的认证服务器,用户信息存储到令牌中
②当资源服务获取到access_token后,会解析这个jwt类型的access_token,从中会获取到用户信息
③微服务场景下也不适用
二、应用场景
APP服务端接口,用jwt还是用redis和token,分别有什么优势
参考URL: https://blog.csdn.net/u014756827/article/details/103047695
1. 根据权限是否要求严格角度判断
流行的jwt有一个设计上的缺陷,他通过密文传输用户信息,那么服务器在这种基础结构下是无法做到关闭用户登陆授权的操作,如果用户的jwt密文被偷窃,那么黑客就能以用户身份登陆,并且即使知道密文丢失,也无法关闭被偷窃的jwt密文。为了应对这一问题,可以使用jwt内部验证有效期和jwt黑名单模式,但是有效期始终无法做到及时停止jwt授权,这是一个治标不治本的方法。而jwt黑名单模式,则需要数据库或内存存储黑名单,那么,这实际上违背了jwt的免数据库设计原则。
因此,如果严格按照两种模式设计,jwt更适合低安全级别的服务器设计,如普通的博客、阅读器等等,这种服务允许不严格的登陆授权,即使密文丢失也不会造成用户的严重损失,却能获得较高的服务性能。
token模式,必须配合数据库进行存储和查询,因此性能较低,但token模式却能做到及时的授权关闭,已经登陆授权可见可查,每一次token都会有对应的记录。因此token模式适合较高安全度和用户登陆等信息分析的系统,如政府系统,支付系统等不可能允许高权限的token被偷窃却不能及时关闭授权。
jwt,适合轻量的系统和权限不严格系统。
token,适合重量系统和权限有严格要求的系统。当数据包从低层移动到高层时,OSI 模型中会发生什么?
在 OSI 模型中,当数据包从较低层移动到较高层时,标头会被删除当数据包从上层移动到下层时,OSI 模型中会发生什么?
在 OSI 模型中,当数据包从上层移动到下层时,会添加标头。此标头包含有用的信息。简述什么是基于区域的防火墙?
基于区域的防火墙是状态防火墙的一种高级方法。在状态防火墙中,维护一个状态数据库,其中记录了源IP地址、目的IP地址、源端口号、目的端口号。因此,只允许回复,即如果流量是从网络内部生成的,则只允许来自网络外部的回复(内部网络流量)。
路由器可以通过两种方式做成防火墙:
通过使用 CBAC:创建一个访问列表并将其应用于接口,同时牢记应该允许或拒绝哪些流量以及在哪个方向。这对管理员来说有额外的开销。
使用基于区域的防火墙。解释IPsec工作在哪一层?
IPsec 在 OSI 模型的第 3 层工作简述什么是隧道模式?
这是一种数据交换模式,其中两台通信计算机本身不使用 IPSec。相反,将其 LAN 连接到传输网络的网关会创建一个虚拟隧道,该隧道使用 IPSec 协议来保护通过它的所有通信。隧道模式最常用于网关之间,或在网关的终端站,网关充当其背后主机的代理。隧道模式最常用于加密安全 IPSec 网关之间的流量,例如 Cisco 路由器和 PIX 防火墙之间的流量简述IPS 和防火墙有什么区别?
入侵防御系统也称为入侵检测和防御系统。它是一种网络安全应用程序,用于监视网络或系统活动中的恶意活动。入侵防御系统的主要功能是识别恶意活动、收集有关此活动的信息、报告它并尝试阻止或阻止它。入侵防御系统被认为是入侵检测系统 (IDS)的增强因为 IPS 和 IDS 都为恶意活动操作网络流量和系统活动。IPS 通常会记录与观察到的事件相关的信息,将观察到的重要事件通知安全管理员,并生成报告。许多 IPS 还可以通过尝试阻止威胁得逞来响应检测到的威胁。他们使用各种响应技术,包括 IPS 停止攻击本身、更改安全环境或更改攻击内容。
防火墙是一种基于硬件或软件的网络安全设备,它监视所有传入和传出流量,并根据一组定义的安全规则接受、拒绝或丢弃该特定流量简述什么是IP欺骗?
IP 欺骗本质上是黑客用来未经授权访问计算机的一种技术。早在 1980 年,学术界就开始讨论 IP 欺骗的概念。IP 欺骗类型的攻击在理论层面上已为安全专家所知。在 Robert Morris 发现TCP 协议中称为序列预测的安全漏洞之前,它主要是理论上的。有时会进行 IP 欺骗以掩盖 Dos 攻击的来源。事实上,Dos 攻击通常会掩饰发起攻击的实际 IP 地址简述什么是CGMP(cisco group management protocol)?
CGMP 是一个简单的协议,路由器是唯一产生 CGMP 消息的设备。交换机只听取这些消息并据此采取行动。CGMP为其所有消息使用众所周知的目标MAC 地址 (0100.0cdd.dddd) 。当交换机收到带有此目标地址的帧时,它们会在所有接口上泛洪,这样网络中的所有交换机都会收到 CGMP 消息。
在 CGMP 消息中,两个最重要的项目是:
组目标地址
单播源地址
组目的地址是组播组MAC地址,单播源地址是主机(接收者)的MAC地址简述什么是组播?
组播的定义:
IP传输的三种方式:单播,组播,广播。
组播作为IP传输三种方式之一,IP组播通信指的是IP报文从一个源发出,被转发到一组特定的接受者。相较于传统的单播和广播,IP组播可以有效的节约网络带宽,降低网络负载,所以被广泛应用与视频,实时数据传送和监控等网络业务中,
三种传输方式的区别:
1:单播(Unicast):对于单播通信,信息源为每个需要信息的主机都发送一份独立的报文。采用单播方式时,网络中传输的信息量与需要该信息的用户量成正比。当需要该信息的用户数量较大时,信息源需要将多份内容相同的信息发送给不同的用户,这对信息源以及网络带宽都将造成巨大的压力。因此,该传输方式不利于信息的批量发送,只适用于用户稀少的网络。
2:广播(Broadcast):对于广播通信,信息源将信息发送给该网段中所有主机,而不管其是否需要该信息。采用广播方式时,不需要接收信息的主机也将收到该信息,这样不仅信息的安全性得不到保障,而且会造成同一网段中信息泛滥。因此,该传输方式不利于与特定对象进行数据交互,同时会浪费大量的带宽。
综上所述:传统的单播和广播通信方式不能有效地解决单点发送、多点接收的问题
组播(Multicast):可以很好的解决点到多点的数据传输,源只发送一份数据,网络中只有需要该数据的主机,可以接收该数据,其他主机不能收到该数据。
组播相对单播和广播有如下优势:
1:相比单播,由于被传递的信息在距信息源尽可能远的网络节点才开始被复制和分发,所以用户的增加不会导致信息源负载的加重以及网络资源消耗的显著增加。
2:相比广播,由于被传递的信息只会发送给需要该信息的接收者,所以不会造成网络资源的浪费,并能提高信息传输的安全性。
组播适用于任何“点到多点”的数据发布,主要包含以下几方面:
多媒体、流媒体的应用
培训、联合作业场合的通信。
数据仓库、金融应用(股票)
IP组播技术在互联网信息服务中的应用场景:在线直播、网络电视、远程教育、远程医疗、网络电台和实时视/音频会议等简述ARP是地址解析协议,简单语言解释一下工作原理?
1:首先,每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系。
2:当源主机要发送数据时,首先检查ARP列表中是否有对应IP地址的目的主机的MAC地址,如果有,则直接发送数据,如果没有,就向本网段的所有主机发送ARP数据包,该数据包包括的内容有:源主机 IP地址,源主机MAC地址,目的主机的IP 地址。
3:当本网络的所有主机收到该ARP数据包时,首先检查数据包中的IP地址是否是自己的IP地址,如果不是,则忽略该数据包,如果是,则首先从数据包中取出源主机的IP和MAC地址写入到ARP列表中,如果已经存在,则覆盖,然后将自己的MAC地址写入ARP响应包中,告诉源主机自己是它想要找的MAC地址。
4:源主机收到ARP响应包后。将目的主机的IP和MAC地址写入ARP列表,并利用此信息发送数据。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。广播发送ARP请求,单播发送ARP响应。简述HTTP/3了解吗 ?
HTTP/3主要有两大变化,传输层基于UDP、使用QUIC保证UDP可靠性。
HTTP/2存在的一些问题,比如重传等等,都是由于TCP本身的特性导致的,所以HTTP/3在QUIC的基础上进行发展而来,QUIC(Quick UDP Connections)直译为快速UDP网络连接,底层使用UDP进行数据传输。
HTTP/3主要有这些特点:
使用UDP作为传输层进行通信
在UDP的基础上QUIC协议保证了HTTP/3的安全性,在传输的过程中就完成了TLS加密握手
HTTPS 要建⽴⼀个连接,要花费 6 次交互,先是建⽴三次握⼿,然后是 TLS/1.3 的三次握⼿。QUIC 直接把以往的 TCP 和 TLS/1.3 的 6 次交互合并成了 3 次,减少了交互次数。
QUIC 有⾃⼰的⼀套机制可以保证传输的可靠性的。当某个流发⽣丢包时,只会阻塞这个流,其他流不会受到影响。HTTP 客户端怎么去校验证书的合法性?
首先,服务端的证书从哪来的呢?
为了让服务端的公钥被⼤家信任,服务端的证书都是由 CA (Certificate Authority,证书认证机构)签名的,CA就是⽹络世界⾥的公安局、公证中⼼,具有极⾼的可信度,所以由它来给各个公钥签名,信任的⼀⽅签发的证书,那必然证书也是被信任的。
CA 签发证书的过程,如上图左边部分:
⾸先 CA 会把持有者的公钥、⽤途、颁发者、有效时间等信息打成⼀个包,然后对这些信息进⾏ Hash 计算,得到⼀个 Hash 值;
然后 CA 会使⽤⾃⼰的私钥将该 Hash 值加密,⽣成 Certificate Signature,也就是 CA 对证书做了签名;
最后将 Certificate Signature 添加在⽂件证书上,形成数字证书;
客户端校验服务端的数字证书的过程,如上图右边部分:
⾸先客户端会使⽤同样的 Hash 算法获取该证书的 Hash 值 H1;
通常浏览器和操作系统中集成了 CA 的公钥信息,浏览器收到证书后可以使⽤ CA 的公钥解密 Certificate
Signature 内容,得到⼀个 Hash 值 H2 ;
最后⽐较 H1 和 H2,如果值相同,则为可信赖的证书,否则则认为证书不可信。
假如在HTTPS的通信过程中,中间人篡改了证书原文,由于他没有CA机构的私钥,所以CA公钥解密的内容就不一致。简述分布式环境下Session怎么处理 ?
分布式环境下,客户端请求经过负载均衡,可能会分配到不同的服务器上,假如一个用户的请求两次没有落到同一台服务器上,那么在新的服务器上就没有记录用户状态的Session。可以使用Redis等分布式缓存来存储Session,在多台服务器之间共享。简述ARP 协议的工作过程?
ARP 协议,Address Resolution Protocol,地址解析协议,它是用于实现 IP 地址到 MAC 地址的映射。
1:首先,每台主机都会在自己的 ARP 缓冲区中建立一个 ARP 列表,以表示 IP 地址和 MAC 地址的对应关系。
当源主机需要将一个数据包要发送到目的主机时,会首先检查自己的 ARP 列表,是否存在该 IP 地址对应的 MAC 地址;如果有﹐就直接将数据包发送到这个 MAC 地址;如果没有,就向本地网段发起一个 ARP 请求的广播包,查询此目的主机对应的 MAC 地址。此 ARP 请求的数据包里,包括源主机的 IP 地址、硬件地址、以及目的主机的 IP 地址。
2:网络中所有的主机收到这个 ARP 请求后,会检查数据包中的目的 IP 是否和自己的 IP 地址一致。如果不相同,就会忽略此数据包;如果相同,该主机首先将发送端的 MAC 地址和 IP 地址添加到自己的 ARP 列表中,如果 ARP 表中已经存在该 IP 的信息,则将其覆盖,然后给源主机发送一个 ARP 响应数据包,告诉对方自己是它需要查找的 MAC 地址。
3:源主机收到这个 ARP 响应数据包后,将得到的目的主机的 IP 地址和 MAC 地址添加到自己的 ARP 列表中,并利用此信息开始数据的传输。如果源主机一直没有收到 ARP 响应数据包,表示 ARP 查询失败。简述ICMP 协议的功能?
ICMP(Internet Control Message Protocol) ,网际控制报文协议。
ICMP 协议是一种面向无连接的协议,用于传输出错报告控制信息。
它是一个非常重要的协议,它对于网络安全具有极其重要的意义。它属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。
当遇到 IP 数据无法访问目标、IP 路由器无法按当前的传输速率转发数据包等情况时,会自动发送 ICMP 消息。
比如我们日常使用得比较多的 ping,就是基于 ICMP 的。描述什么是RARP协议 ?
ARP(Address Resolution Protocol,地址解析协议)是一个位于 TCP/IP 协议栈中的低层协议,它用于映射计算机的物理地址与网络的 IP 地址。ARP 所要做的工作就是在主机发送帧前,根据目标 IP 地址获得 MAC 地址,以保证通信过程的顺利。
这个只要是懂点网络安全的人 ARP 协议多少也都知道吧,RARP 与 ARP 工作方式相反。
RARP 发出要反向解释的物理地址并希望返回其 IP 地址,应答包括能够提供所需信息的 RARP 服务器发出的 IP 地址。RARP 获取 IP 地址前提是要知道自己 IP 地址的机器向另一台机器上的服务器发送请求,并等待服务器发出响应,开始的时候并不知道服务器的物理地址,所以一般通过广播来寻找。一旦通过广播对地址的请求,就必须唯一标识自己的硬件标识,这里所说的硬件标识最简单的例子就是 CPU 序列号,这个标识能让可执行程序容易获得。源主机收到从 RARP 服务器的响应消息后,就可以利用得到的 IP 地址进行通信。说白了这个 RARP 就是一种反向地址转换协议,就是将局域网中某个主机的物理地址转换为 IP 地址,比如局域网中有一台主机只知道物理地址而不知道 IP 地址,那么可以通过 RARP 协议发出征求自身 IP 地址的广播请求,然后由 RARP 服务器负责回答。RARP 协议广泛用于获取无盘工作站的 IP 地址。
RARP 工作原理:
1)主机发送一个本地的 RARP 广播,在此广播包中,声明自己的 MAC 地址并且请求任何收到此请求的 RARP 服务器分配一个 IP 地址。
2)本地网段上的 RARP 服务器收到此请求后,检查其 RARP 列表,查找该 MAC 地址对应的 IP 地址。
3)如果存在,RARP 服务器就给源主机发送一个响应数据包并将此 IP 地址提供给对方主机使用。
4)如果不存在,RARP 服务器对此不做任何的响应。
5)源主机收到从 RARP 服务器的响应信息,就利用得到的 IP 地址进行通讯;如果一直没有收到 RARP 服务器的响应信息,表示初始化失败。
编写 arp 脚本抓取对应主机 mac 地址:
#!/bin/bash
index=1
num=0
while[ $index -le 254 ]
do
if[ $num -lt 20 ];then
sleep 1
num=0
continue
fi
ping -cl "192.168.0.$index"& //加&表示在后台运行
let index++
let num++
done简述交换机、路由器、网关的概念,以及各自的用途 ?
1)交换机
在计算机网络系统中,交换机是针对共享工作模式的弱点而推出的。交换机拥有一条高带宽的背部总线和内部交换矩阵。交换机的所有的端口都挂接在这条背 部总线上,当控制电路收到数据包以后,处理端口会查找内存中的地址对照表以确定目的MAC(网卡的硬件地址)的NIC(网卡)挂接在哪个端口上,通过内部 交换矩阵迅速将数据包传送到目的端口。目的MAC若不存在,交换机才广播到所有的端口,接收端口回应后交换机会“学习”新的地址,并把它添加入内部地址表 中。
交换机工作于OSI参考模型的第二层,即数据链路层。交换机内部的CPU会在每个端口成功连接时,通过ARP协议学习它的MAC地址,保存成一张 ARP表。在今后的通讯中,发往该MAC地址的数据包将仅送往其对应的端口,而不是所有的端口。因此,交换机可用于划分数据链路层广播,即冲突域;但它不 能划分网络层广播,即广播域。
交换机被广泛应用于二层网络交换,俗称“二层交换机”。
交换机的种类有:二层交换机、三层交换机、四层交换机、七层交换机分别工作在OSI七层模型中的第二层、第三层、第四层盒第七层,并因此而得名。
2)路由器
路由器(Router)是一种计算机网络设备,提供了路由与转送两种重要机制,可以决定数据包从来源端到目的端所经过 的路由路径(host到host之间的传输路径),这个过程称为路由;将路由器输入端的数据包移送至适当的路由器输出端(在路由器内部进行),这称为转 送。路由工作在OSI模型的第三层——即网络层,例如网际协议。
路由器的一个作用是连通不同的网络,另一个作用是选择信息传送的线路。 路由器与交换器的差别,路由器是属于OSI第三层的产品,交换器是OSI第二层的产品(这里特指二层交换机)。
3)网关
网关(Gateway),网关顾名思义就是连接两个网络的设备,区别于路由器(由于历史的原因,许多有关TCP/IP 的文献曾经把网络层使用的路由器(Router)称为网关,在今天很多局域网采用都是路由来接入网络,因此现在通常指的网关就是路由器的IP),经常在家 庭中或者小型企业网络中使用,用于连接局域网和Internet。 网关也经常指把一种协议转成另一种协议的设备,比如语音网关。
在传统TCP/IP术语中,网络设备只分成两种,一种为网关(gateway),另一种为主机(host)。网关能在网络间转递数据包,但主机不能 转送数据包。在主机(又称终端系统,end system)中,数据包需经过TCP/IP四层协议处理,但是在网关(又称中介系 统,intermediate system)只需要到达网际层(Internet layer),决定路径之后就可以转送。在当时,网关 (gateway)与路由器(router)还没有区别。
在现代网络术语中,网关(gateway)与路由器(router)的定义不同。网关(gateway)能在不同协议间移动数据,而路由器(router)是在不同网络间移动数据,相当于传统所说的IP网关(IP gateway)。
网关是连接两个网络的设备,对于语音网关来说,他可以连接PSTN网络和以太网,这就相当于VOIP,把不同电话中的模拟信号通过网关而转换成数字信号,而且加入协议再去传输。在到了接收端的时候再通过网关还原成模拟的电话信号,最后才能在电话机上听到。
对于以太网中的网关只能转发三层以上数据包,这一点和路由是一样的。而不同的是网关中并没有路由表,他只能按照预先设定的不同网段来进行转发。网关最重要的一点就是端口映射,子网内用户在外网看来只是外网的IP地址对应着不同的端口,这样看来就会保护子网内的用户。请描述一下PPP协议的应用?
一、PPP(Point-to-Point Protocol点到点协议)是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。
二、PPP协议中提供了一整套方案来解决链路建立、维护、拆除、上层协议协商、认证等问题。
三、PPP协议包含这样几个部分:链路控制协议LCP(Link Control Protocol);网络控制协议NCP(Network Control Protocol);认证协议,最常用的包括口令验证协议PAP(Password Authentication Protocol)和挑战握手验证协议CHAP(Challenge-Handshake Authentication Protocol)。
四、一个典型的链路建立过程分为三个阶段:创建阶段、认证阶段和网络协商阶段。
阶段1:创建PPP链路
LCP负责创建链路。在这个阶段,将对基本的通讯方式进行选择。链路两端设备通过LCP向对方发送配置信息报文(Configure Packets)。一旦一个配置成功信息包(Configure-Ack packet)被发送且被接收,就完成了交换,进入了LCP开启状态。
应当注意,在链路创建阶段,只是对验证协议进行选择,用户验证将在第2阶段实现。
阶段2:用户验证
在这个阶段,客户端会将自己的身份发送给远端的接入服务器。该阶段使用一种安全验证方式避免第三方窃取数据或冒充远程客户接管与客户端的连接。在认证完成之前,禁止从认证阶段前进到网络层协议阶段。如果认证失败,认证者应该跃迁到链路终止阶段。
在这一阶段里,只有链路控制协议、认证协议,和链路质量监视协议的packets是被允许的。在该阶段里接收到的其他的packets必须被静静的丢弃。
最常用的认证协议有口令验证协议(PAP)和挑战握手验证协议(CHAP)。 认证方式介绍在第三部分中介绍。
阶段3:调用网络层协议
认证阶段完成之后,PPP将调用在链路创建阶段(阶段1)选定的各种网络控制协议(NCP)。选定的NCP解决PPP链路之上的高层协议问题,例如,在该阶段IP控制协议(IPCP)可以向拨入用户分配动态地址。
这样,经过三个阶段以后,一条完整的PPP链路就建立起来了。
五、认证方式
1)口令验证协议(PAP)
PAP是一种简单的明文验证方式。NAS(网络接入服务器,Network Access Server)要求用户提供用户名和口令,PAP以明文方式返回用户信息。很明显,这种验证方式的安全性较差,第三方可以很容易的获取被传送的用户名和口令,并利用这些信息与NAS建立连接获取NAS提供的所有资源。所以,一旦用户密码被第三方窃取,PAP无法提供避免受到第三方攻击的保障措施。
2)挑战-握手验证协议(CHAP)
CHAP是一种加密的验证方式,能够避免建立连接时传送用户的真实密码。NAS向远程用户发送一个挑战口令(challenge),其中包括会话ID 和一个任意生成的挑战字串(arbitrary challengestring)。远程客户必须使用MD5单向哈希算法(one-way hashing algorithm)返回用户名和加密的挑战口令,会话ID以及用户口令,其中用户名以非哈希方式发送。
CHAP对PAP进行了改进,不再直接通过链路发送明文口令,而是使用挑战口令以哈希算法对口令进行加密。因为服务器端存有客户的明文口令,所以服务器可以重复客户端进行的操作,并将结果与用户返回的口令进行对照。CHAP为每一次验证任意生成一个挑战字串来防止受到再现攻击(replay attack)。在整个连接过程中,CHAP将不定时的向客户端重复发送挑战口令,从而避免第3方冒充远程客户(remote client impersonation)进行攻击。
六、PPP协议的应用
PPP协议是目前广域网上应用最广泛的协议之一,它的优点在于简单、具备用户验证能力、可以解决IP分配等。
家庭拨号上网就是通过PPP在用户端和运营商的接入服务器之间建立通信链路。目前,宽带接入正在成为取代拨号上网的趋势,在宽带接入技术日新月异的今天,PPP也衍生出新的应用。典型的应用是在ADSL(非对称数据用户环线,Asymmetrical Digital Subscriber Loop)接入方式当中,PPP与其他的协议共同派生出了符合宽带接入要求的新的协议,如PPPoE(PPP over Ethernet),PPPoA(PPP over ATM)。
利用以太网(Ethernet)资源,在以太网上运行PPP来进行用户认证接入的方式称为PPPoE。PPPoE即保护了用户方的以太网资源,又完成了ADSL的接入要求,是目前ADSL接入方式中应用最广泛的技术标准。
同样,在ATM(异步传输模式,Asynchronous Transfer Mode)网络上运行PPP协议来管理用户认证的方式称为PPPoA。它与PPPoE的原理相同,作用相同;不同的是它是在ATM网络上,而PPPoE是在以太网网络上运行,所以要分别适应ATM标准和以太网标准。
PPP协议的简单完整使它得到了广泛的应用,相信在未来的网络技术发展中,它还可以发挥更大的作用。A类IP地址,B类IP地址,C类IP地址第一段数字范围分别是多少? 10.201.40.0/23代表什么?
A类IP地址:第一段数字范围为1~127
B类IP地址:第一段数字范围为128~191
C类IP地址:第一段数字范围为192~223域的作用有哪些呢?
使用域可以对网络资源进行统一的管理 , 即通过一套账号系统,使用户能够使用各种资 源,方便用户更好的使用网络;
利用域中的策略加强网络的安全;
利用 OU可以简化管理员的工作;简述一下 ACL和 NAT?NAT有几种方式?
ACL:
访问控制列表( ACL)是应用在路由器接口的指令列表(规则) ,用来告诉路由器 哪些数据包可以接收转发,哪些数据包需要拒绝;
ACL 的工作原理 :读取第三层及第四 层包头中的信息,根据预先定义好的规则对包进行过滤;
使用 ACL 实现网络控制:实现 访问控制列表的核心技术是包过滤;
ACL 的两种基本类型(标准访问控制列表;扩展访 问控制列表)
NAT:改变 IP包头使目的地址,源地址或两个地址在包头中被不同地址替换。
NAT有的方式:静态 NAT、动态 NAT、PATSTP协议的主要用途是什么?为什么要用 STP?
主要用途:
STP通过阻塞冗余链路,来消除桥接网络中可能存在的路径回环;
当前活 动路径发生故障时, STP激活冗余链路恢复网络连通性;
原因:
交换网络存在环路时引起广播环路(广播风暴);
桥表损坏;简述 STP 的作用及工作原理?
作用:
能够在逻辑上阻断环路,生成树形结构的拓扑;
能够不断的检测网络的变化,当主要的线路出现故障断开的时候, STP 还能通过计算激活 阻起到断的端口,起到链路的备份作用;
工作原理:
STP 将一个环形网络生成无环拓朴的步骤:
选择根网桥( Root Bridge )
选择根端口( Root Ports )
选择指定端口( Designated Ports )
生成树机理
每个 STP 实例中有一个根网桥;
每个非根网桥上都有一个根端口;
每个网段有一个指定端口;
非指定端口被阻塞 STP 是交换网络的重点 ,考察是否理解;简述pap 和 chap 认证的区别?
PAP( 口令验证协议 Password Authentication Protocol) 是一种简单的明文验证方式。 NAS (网络接入服务器, Network Access Server )要求用户提供用户名和口令, PAP 以明文方式 返回用户信息。 很明显, 这种验证方式的安全性较差, 第三方可以很容易的获取被传送的用户名 和口令,并利用这些信息与 NAS 建立连接获取 NAS 提供的所有资源。所以,一旦用户密码被 第三方窃取, PAP 无法提供避免受到第三方攻击的保障措施。
CHAP( 挑战 - 握手验证协议 Challenge-Handshake Authentication Protocol) 是一种加密 的验证方式,能够避免建立连接时传送用户的真实密码。 NAS 向远程用户发送一个挑战口令( c
hallenge ),其中包括会话 ID 和一个任意生成的挑战字串( arbitrary challengestring )。远 程客户必须使用 MD5 单向哈希算法( one-way hashing algorithm )返回用户名和加密的挑 战口令,会话 ID 以及用户口令,其中用户名以非哈希方式发送。
CHAP 对 PAP 进行了改进,不再直接通过链路发送明文口令,而是使用挑战口令以哈希算法对 口令进行加密。 因为服务器端存有客户的明文口令, 所以服务器可以重复客户端进行的操作, 并将结果与用户返回的口令进行对照。 CHAP 为每一次验证任意生成一个挑战字串来防止受到再现 攻击( replay attack )。在整个连接过程中, CHAP将不定时的向客户端重复发送挑战口令, 从而避免第 3 方冒充远程客户( remote client impersonation )进行攻击。ADSL 是如何实现数据与语音同传的 ?
物理层 : 频分复用技术 .( 高频传输数据 , 低频传输语音 ) 具体讲解的话可以说明 : 调制 , 滤波 ,解调的 过程简述 OSPF 协议 ?
OSPF(Open Shortest Path First)协议是基于链路状态的路由协议,与基于距离矢量的路由协议相比具有更快的收敛速度,支撑的网络规模也更大。是目前使用最广泛的路由协议。
OSPF(Open Shortest Path First,开放最短路径优先)是由三张表,五个包,六个网络,七个状态机所组成解释OSPF协议和RIP协议对比 ?
RIP协议限制较多
1.更新慢,一般30s一更新
2.还是整表更新,带宽占用较大。
3.最多只能进行15跳,16跳就不可达。
4.会形成路由环路,堵塞网络。
OSTF协议
1.更新速度快
2.只有链路当中有新消息是进行更新。
3.没有跳数的限制
4.没有环路。简述PAT 和 NAT 有什么区别?
PAT 叫端口地址转换,NAT 是网络地址转换,由 RFC 1631 定义。PAT 可以看做是 NAT 的一部 分。在 NAT 时,考虑一种情形,就是只有一个 Public IP,而内部有多个 Private IP,这个时候 NAT 就要通过映射 UDP 和 TCP 端口号来跟踪记录不同的会话,比如用户 A、B、C 同时访问 CSDN,则 NAT 路由器会将用户 A、B、C 访问分别映射到 1088、1098、23100(举例而已, 实际上是动态的),此时实际上就是 PAT 了。
由上面推论,PAT 理论上可以同时支持(65535 - 1024)= 64511 个连接会话。但实际使用中 由于设备性能和物理连接特性是不能达到的,CISCO 的路由器 NAT 功能中每个 Public IP 最多 能有效地支持大约 4000 个会话简述 RIP 的防环机制 ?
1.定义最大跳数 Maximum Hop Count (15 跳)
2.水平分割 Split Horizon (默认所有接口开启,除了 Frame-Relay 的物理接口,可用 sh ip interface 查看开启还是关闭)
3.毒化路由 Poizoned Route
4.毒性反转 Poison Reverse (RIP 基于 UDP,UDP 和 IP 都不可靠,不知道对方收到毒化路 由没有;类似于对毒化路由的 Ack 机制)
5.保持计时器 hold-down T imer (防止路由表频繁翻动)
6.闪式更新 Flash Update
7.触发更新 Triggered Update (需手工启动,且两边都要开 Router (config-if)# ip rip triggered )
当启用触发更新后,RIP 不再遵循 30s 的周期性更新时间,这也是与闪式更新的区别所在。
RIP 的 4 个计时器:更新计时器(update):30 s
无效计时器(invalid):180 s (180s 没收到更新,则置为 possible down 状态) 保持计时器(holddown): 180s (真正起作用的只有 60s) 刷新计时器(flush): 240s (240s 没收到更新,则删除这条路由)
如果路由变成 possible down 后,这条路由跳数将变成 16 跳,标记为不可达;这时 holddown
计时器开始计时。
在 holddown 时间内即使收到更优的路由,不加入路由表;这样做是为了防止路由频繁翻动。什么时候启用 holddown 计时器:“当收到一条路由更新的跳数大于路由表中已记录的该条 路由的跳数”简述VLSM与CIDR的区别 ?
VLSM可变长子网掩码
VLSM(Variable Length Subnet Mask
可变长子网掩码),这是一种产生不同大小子网的网络分配机制,指一个网络可以配置不同的掩码。开发可变长度子网掩码的想法就是在每个子网上保留足够的主机数的同时,把一个网分成多个子网时有更大的灵活性。如果没有VLSM,一个子网掩码只能提供给一个网络。这样就限制了要求的子网数上的主机数。
VLSM技术对高效分配IP地址(较少浪费)以及减少路由表大小都起到非常重要的作用。但是需要注意的是使用VLSM时,所采用的路由协议必须能够支持它,这些路由协议包括RIP2,OSPF,EIGRP和BGP。
CIDR无类别编址
1992年引入了CIDR,它意味着在路由表层次的网络地址“类”的概念已经被取消,代之以“网络前缀”的概念。Internet中的CIDR
Classless Inter-Domain Routing 无类别域间路由
的基本思想是取消地址的分类结构,取而代之的是允许以可变长分界的方式分配网络数。它支持路由聚合,可限制Internet主干路由器中必要路由信息的增长。IP地址中A类已经分配完毕,B类也已经差不多了
剩下的C类地址已经成为大家瓜分的目标。显然 对于一个国家、地区、组织来说分配到的地址最好是连续的
那么如何来保证这一点呢?于是提出了CIDR的概念。CIDR是Classless Inter Domain Routing的缩写
意为无类别的域间路由。“无类别”的意思是现在的选路决策是基于整个32位IP地址的掩码操作。而不管其IP地址是A类、B类或是C类,都没有什么区别。它的思想是:把许多C类地址合起来作B类地址分配。采用这种分配多个IP地址的方式,使其能够将路由表中的许多表项归并summarization 成更少的数目
区别
CIDR是把几个标准网络合成一个大的网络
VLSM是把一个标准网络分成几个小型网络(子网)
CIDR是子网掩码往左边移了,VLSM是子网掩码往右边移了
CIDR(Classless Inter.Domain Routing 无类别域间路由)
VLSM(Variable Length Subnetwork Mask 可变长子网掩码)Last updated on