摘要

随着Internet技术的迅速发展,越来越多的计算机连入了Internet。很多公司也将自己公司的局域网接入了Internet。如何快速地访问Internet站点,提高网络的安全性,成为了当今的热门话题。在这种情况下,代理服务器便应运而生了。

计算机网络知识脑图

计算机网络——计算机网络知识脑图_庄小焱的博客-CSDN博客_计算机网络面试题总结

计算机网络大厂面试问题集合

计算机网络——大厂面试问题集合_庄小焱的博客-CSDN博客

计算机网络基础知识

计算机网络——网络基础知识_庄小焱的博客-CSDN博客_数据转发服务器

IP相关基础原理

计算机网络——IP协议基础原理_庄小焱的博客-CSDN博客_ip网络技术

HTTP协议原理

计算机网络——HTTP协议原理_庄小焱的博客-CSDN博客_http协议原理

HTTP的优化方式

计算机网络——HTTP的优化方式_庄小焱的博客-CSDN博客

HTTPS协议原理

计算机网络——HTTPS协议原理_庄小焱的博客-CSDN博客_https协议原理

HTTPS的优化方式

计算机网络——HTTPS的优化方式_庄小焱的博客-CSDN博客

TCP可靠性传输原理

计算机网络——TCP可靠性传输原理_庄小焱的博客-CSDN博客_tcp的可靠性是如何实现的

TCP/IP三次握手四次挥手原理

计算机网络——HTTP的三次握手与四次挥手原理_庄小焱的博客-CSDN博客_三次握手和四次挥手原理

TCP的优化方式

计算机网络——TCP的优化方式_庄小焱的博客-CSDN博客_tcp协议优化技术

DNS协议(域名解析)原理

计算机网络——DNS协议(域名解析)原理_庄小焱的博客-CSDN博客_计算机网络dns

ARP协议(地址解析)原理

计算机网络——ARP协议(地址解析)原理_庄小焱的博客-CSDN博客_地址解析协议的工作原理

ARQ协议(自动重传请求)原理

计算机网络——ARQ协议(自动重传请求)原理_庄小焱的博客-CSDN博客_连续arq协议的原理

DHCP协议原理

计算机网络——DHCP(动态获取IP)原理_庄小焱的博客-CSDN博客_计算机网络dhcp

NAT协议原理

计算机网络——NAT协议(网络地址转换)原理_庄小焱的博客-CSDN博客

ICMP/IGMP协议原理

计算机网络——ICMP/IGMP协议原理_庄小焱的博客-CSDN博客_计算机网络igmp

HTTP网络访问全流程

计算机网络——HTTP网络访问全流程_庄小焱的博客-CSDN博客_网络访问流程

虚拟网路模型原理

计算机网络——虚拟网路模型原理_庄小焱的博客-CSDN博客

其他网络知识

计算机网络——select/poll/epoll底层原理_庄小焱的博客-CSDN博客

计算机网络——cookie/session/token原理_庄小焱的博客-CSDN博客

计算机网络——网络通信加密原理_庄小焱的博客-CSDN博客_网络通信加密

计算机网络——GRPC通信原理_庄小焱的博客-CSDN博客_grpc原理

计算机网络——tcpdump/Wireshark抓包实战_庄小焱的博客-CSDN博客_网络抓包

计算机网络——TCP抓包连接实战_庄小焱的博客-CSDN博客_tcp全连接和半连接

一、代理服务器

代理服务器(Proxy Server)是个人网络和Internet服务商之间的中间代理机构,它负责转发合法的网络信息,对转发进行控制和登记。代理服务器作为连接Internet(广域网)与Intranet(局域网)的桥梁,在实际应用中发挥着极其重要的作用,它可用于多个目的,最基本的功能是连接,此外还包括安全性,缓存,内容过滤,访问控制管理等功能。代理服务器,顾名思义就是局域上不能直接上网的机器将上网请求(比如说,浏览某个主页)发给能够直接上网的代理服务器,然后代理服务器代理完成这个上网请求,将它所要浏览的主页调入代理服务器的缓存;然后将这个页面传给请求者。这样局域网上的机器使用起来就像能够直接访问网络一样。并且,代理服务器还可以进行一些网站的过滤和控制的功能,这样就实现了我们控制和节省上网费用。

代理服务器能够让多台没有IP地址的电脑使用其代理功能高速、安全地访问互联网资源。当代理服务器客户端发出一个对外的资源访问请求,该请求先被代理服务器识别并由代理服务器代为向外请求资源。由于一般代理服务器拥有较大的带宽,较高的性能,并且能够智能地缓存已浏览或未浏览的网站内容,因此,在一定情况下,客户端通过代理服务器能更快速地访问网络资源。代理服务器应用的常见例子:拥有上百台电脑的局域网通过一台能够访问外部网络资源的代理服务器而也能访问外部互联网。

1.1 代理服务器的功能

  • 充当局域网与外部网络的连接出口:充当局域网与外部网络的连接出口,同时将内部网络结构的状态对外屏蔽起来,使外部不能直接访问内部网络。从这一点上说,代理服务器就充当的网关。
  • 作为防火墙:代理服务器.可以保护局域网的安全,起防火墙的作用。通过设置防火墙,为公司内部的网络提供安全边界,防止外界的侵入。
  • 网址过滤和访问权限限制:代理服务器可以设置IP地址过滤,对外界或内部的Internet地址进行过滤,限制不同用户的访问权限。例如代理服务器可以用来限制封锁IP地址,禁止用户对某些网页进行浏览。
  • 提高访问速度:代理服务器将远程服务器提供的数据保存在自己的硬盘上,如果有许多用户同时使用这一个代理服务器,他们对Internet站点所有的访问都会经由这台代理服务器来实现。当有人访问过某一站点后,所访问站点的内容便会被保存在代理服务器的硬盘上,如果下一次有人再要访问这个站点时,这些内容便会直接从代理服务器磁盘中取得,而不必再次连接到远程服务器上去取。因此,它可以节约带宽、提高访问速度。

1.2 正向代理与反向代理

正向代理(forward proxy):是一个位于客户端和目标服务器之间的服务器(代理服务器),为了从目标服务器取得内容,客户端向代理服务器发送一个请求并指定目标,然后代理服务器向目标服务器转交请求并将获得的内容返回给客户端。这种代理其实在生活中是比较常见的,比如访问外国网站技术,其用到的就是代理技术。

有时候,用户想要访问某国外网站,该网站无法在国内直接访问,但是我们可以访问到一个代理服务器,这个代理服务器可以访问到这个国外网站。这样呢,用户对该国外网站的访问就需要通过代理服务器来转发请求,并且该代理服务器也会将请求的响应再返回给用户。这个上网的过程就是用到了正向代理。

这个过程其实和租房子很像。租房子的时候,一般情况下,我们很难联系到房东,因为有些房东为了图方便,只把自己的房屋信息和钥匙交给中介了。而房客想要租房子,只能通过中介才能联系到房东。而对于房东来说,他可能根本不知道真正要租他的房子的人是谁,他只知道是中介在联系他。这里面一共有三个角色,租客(用户)、中介(代理服务器)和房东(国外网站,目标服务器)。引入中介(代理服务器)的原因是用户无法联系上房东(用户无法访问国外网站)。所以,正向代理,其实是"代理服务器"代理了"客户端",去和"目标服务器"进行交互通过正向代理服务器访问目标服务器,目标服务器是不知道真正的客户端是谁的,甚至不知道访问自己的是一个代理(有时候中介也直接冒充租客)。

正向代理的用途

  • 突破访问限制:通过代理服务器,可以突破自身IP访问限制,访问国外网站,教育网等。即,租客可以通过中介,来解决无法联系上房东的问题。
  • 提高访问速度:通常代理服务器都设置一个较大的硬盘缓冲区,会将部分请求的响应保存到缓冲区中,当其他用户再访问相同的信息时, 则直接由缓冲区中取出信息,传给用户,以提高访问速度。即,中介手里留存了很多房源信息和钥匙,可以直接带租客去看房。
  • 隐藏客户端真实IP:上网者也可以通过这种方法隐藏自己的IP,免受攻击。即,房东并不知道租客的真实身份。PS:但是中介知道了,可能骚扰更多….

反向代理(reverse proxy):是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

我们在租房子的过程中,除了有些房源需要通过中介以外,还有一些是可以直接通过房东来租的。用户直接找到房东租房的这种情况就是我们不使用代理直接访问国内的网站的情况。还有一种情况,就是我们以为我们接触的是房东,其实有时候也有可能并非房主本人,有可能是他的亲戚、朋友,甚至是二房东。但是我们并不知道和我们沟通的并不是真正的房东。这种帮助真正的房主租房的二房东其实就是反向代理服务器。这个过程就是反向代理。对于常用的场景,就是我们在Web开发中用到的负载均衡服务器(二房东),客户端(租客)发送请求到负载均衡服务器(二房东)上,负载均衡服务器(二房东)再把请求转发给一台真正的服务器(房东)来执行,再把执行结果返回给客户端(租客)。所以,反向代理,其实是"代理服务器"代理了"目标服务器",去和"客户端"进行交互。通过反向代理服务器访问目标服务器时,客户端是不知道真正的目标服务器是谁的,甚至不知道自己访问的是一个代理。

反向代理的用途

  • 隐藏服务器真实IP:使用反向代理,可以对客户端隐藏服务器的IP地址。即,租客并不房东知道的真实身份。
  • 负载均衡:反向代理服务器可以做负载均衡,根据所有真实服务器的负载情况,将客户端请求分发到不同的真实服务器上。即,二房东发现房主本人很忙,于是找到房主的妻子帮忙处理租房事宜。
  • 提高访问速度:反向代理服务器可以对于静态内容及短时间内有大量访问请求的动态内容提供缓存服务,提高访问速度。即,二房东同样有房屋信息和钥匙。
  • 提供安全保障:反向代理服务器可以作为应用层防火墙,为网站提供对基于Web的攻击行为(例如DoS/DDoS)的防护,更容易排查恶意软件等。还可以为后端服务器统一提供加密和SSL加速(如SSL终端代理),提供HTTP访问认证等。

正向代理和反向代理的区别

虽然正向代理服务器和反向代理服务器所处的位置都是客户端和真实服务器之间,所做的事情也都是把客户端的请求转发给服务器,再把服务器的响应转发给客户端,但是二者之间还是有一定的差异的。

  1. 正向代理其实是客户端的代理,帮助客户端访问其无法访问的服务器资源。反向代理则是服务器的代理,帮助服务器做负载均衡,安全防护等。
  2. 正向代理一般是客户端架设的,比如在自己的机器上安装一个代理软件。而反向代理一般是服务器架设的,比如在自己的机器集群中部署一个反向代理服务器。
  3. 正向代理中,服务器不知道真正的客户端到底是谁,以为访问自己的就是真实的客户端。而在反向代理中,客户端不知道真正的服务器是谁,以为自己访问的就是真实的服务器。
  4. 正向代理和反向代理的作用和目的不同。正向代理主要是用来解决访问限制问题。而反向代理则是提供负载均衡、安全防护等作用。二者均能提高访问速度。

二、网关

网关英文名称为Gateway,又称网间连接器、协议转换器。网关在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关既可以用于广域网互连,也可以用于局域网互连。 网关是一种充当转换重任的计算机系统或设备。使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器,与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。通俗点形容,从一个房间走到另一个房间,必然要经过一扇门。同样,从一个网络向另一个网络发送信息,也必须经过一道“关口”,这道关口就是网关。顾名思义,网关(Gateway)就是一个网络连接到另一个网络的“关口”。也就是网络关卡。

2.1 网关的作用

简单来说,网关是设备与路由器之间的桥梁,由它将不同的网络间进行访问的控制,转换,交接等等。比如有网络A和网络B,网络A的IP地址范为“192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0。在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。而要实现这两个网络之间的通信,则必须通过网关。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机(如附图所示)。网络B向网络A转发数据包的过程。

2.2 网关的工作流程

通俗解释:假设你的名字叫小不点,你住在一个大院子里,你的邻居有很多小伙伴,在门口传达室还有个看大门的李大爷,李大爷就是你的网关。当你想跟院子里的某个小伙伴玩,只要你在院子里大喊一声他的名字,他听到了就会回应你,并且跑出来跟你玩。

但是你不被允许走出大门,你想与外界发生的一切联系,都必须由门口的李大爷(网关)用电话帮助你联系。假如你想找你的同学小明聊天,小明家住在很远的另外一个院子里,他家的院子里也有一个看门的王大爷(小明的网关)。但是你不知道小明家的电话号码,不过你的班主任老师有一份你们班全体同学的名单和电话号码对照表,你的老师就是你的DNS服务器。于是你在家里拨通了门口李大爷的电话,有了下面的对话:

  • 小不点:李大爷,我想找班主任查一下小明的电话号码行吗?
  • 李大爷:好,你等着。(接着李大爷给你的班主任挂了一个电话,问清楚了小明的电话)问到了,他家的号码是211.99.99.99
  • 小不点:太好了!李大爷,我想找小明,你再帮我联系一下小明吧。
  • 李大爷:没问题。(接着李大爷向电话局发出了请求接通小明家电话的请求,最后一关当然是被转接到了小明家那个院子的王大爷那里,然后王大爷把电话给转到小明家)

就这样你和小明取得了联系。

2.3 软件系统网关

系统与系统之间,服务的请求与返回也有网关,我们可以理解为“系统网关”。与广义上的网关,所指含义可能不同,但所要发挥的作用,却如出一辙。软件系统网关作用:

  • 内外网隔离,外网所有请求都只能通过网关访问内网数据;防止网关单点,最好在不同大区配置多台网关服务器。
  • 验证+鉴权,外网所有请求,通过网关指定过滤器对用户访问权限进行控制。可以整合OAuth2,token,jwt等提高架构安全性。
  • 服务降级+限流+日志+监控。限流算法如令牌桶、漏桶等,SpringGateway使用Redis+Lua技术实现高并发和高性能的限流方案。

2.4 分布式服务网关

网关是客户端访问系统请求及系统响应所要经过的网络关口,网关封装了系统内部功能架构,为每个客户端访问提供不同的接口。网关在功能上主要是进行请求过滤,具体包括请求路由转发、安全认证、流量控制、负载均衡、日志、监控等功能。

在分布式系统尤其是微服务架构中,一个应用系统被拆分为多个服务,但是像路由请求、安全认证、流量控制、日志和监控等功能对每个服务来说都是标准的功能模块。如果没有服务网关,那么每个服务就需要单独实现一套这样的模块,功能重复并且不利于统一管理。另外,多个微服务可能部署在不同的服务器上,传统的直接访问应用服务的方式增加了客户端的复杂度,因此需要一个统一的客户端访问入口进行标准化管理。

服务网关作为客户端请求的统一入口,具备以下功能:

  • 动态路由:根据请求路由到对应的服务上去,如果服务不可用还会有重试机制
  • 负载均衡:多服务器提供同一种服务,网关会从配置中心拉取各服务注册信息,然后将请求负载到这些服务器进行处理
  • 流量控制:限制并发请求的流量,避免内部系统受到冲击
  • 安全认证:网关对相关权限验证、脱敏和流量清洗、签名和黑名单功能
  • 熔断降级:当服务不可用或者访问量过大,网关可以将请求做降级,将流量打到其他服务器或者做其他处理,提示用户暂时不可用
  • 灰度发布:先进行小部分服务器升级,通过网关将少量的服务路由到已升级的服务器用来测试服务是否正常,大部分请求依旧在老版本服务器上处理
  • 日志服务:服务访问情况监控和统计报表,请求的吞吐量、并发数、流量监控、性能监控和日常告警等

常见的分布式服务网关有以下几种:

  • Nginx+Lua:基于Nginx的服务端网关方案,实现web服务器、反向代理、负载均衡、动静分离等功能。
  • Kong:基于OpenResty实现,是一款高性能、云原生、可扩展的网关系统。
  • SpringCloud Zuul:基于Netty实现了异步IO,可自定义过滤器来处理请求,同时提供了动态路由、监控、弹性负载和安全功能。
  • SpringCloud Gateway:基于Spring WebFlux,提供统一的路由方式,并且基于Filter链的方式提供了网关的基本功能,如安全、限流、监控等。

三、隧道

隧道技术(Tunneling)是一种通过使用互联网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据(或负载)可以是不同协议的数据帧或包。隧道协议将其它协议的数据帧或包重新封装然后通过隧道发送。新的帧头提供路由信息,以便通过互联网传递被封装的负载数据。

这里所说的隧道类似于点到点的连接。这种方式能够使来自许多信息源的网络业务在同一个基础设施中通过不同的隧道进行传输。隧道技术使用点对点通信协议代替了交换连接,通过路由网络来连接数据地址。隧道技术允许授权移动用户或已授权的用户在任何时间、任何地点访问企业网络。通过隧道的建立,可实现:

  • 将数据流强制送到特定的地址
  • 隐藏私有的网络地址
  • 在IP网上传递非IP数据包
  • 提供数据安全支持

近来出现了一些新的隧道技术,并在不同的系统中得到运用和拓展。为创建隧道,隧道的客户机和服务器双方必须使用相同的隧道协议。隧道技术可分别以第2层或第3层隧道协议为基础。第2层隧道协议对应于OSI模型的数据链路层,使用帧作为数据交换单位。PPTP(点对点隧道协议)、L2TP(第二层隧道协议)和L2F(第2层转发协议)都属于第2层隧道协议,是将用户数据封装在点对点协议(PPP)帧中通过互联网发送。第3层隧道协议对应于OSI模型的网络层,使用包作为数据交换单位。IPIP(IP over IP)以及IPSec隧道模式属于第3层隧道协议,是将IP包封装在附加的IP包头中,通过IP网络传送。无论哪种隧道协议都是由传输的载体、不同的封装格式以及用户数据包组成的。它们的本质区别在于,用户的数据包是被封装在哪种数据包中在隧道中传输。

3.1 点对点隧道协议

PPTP(Point to Point Tunneling Protocol)提供PPTP客户机和PPTP服务器之间的加密通信。PPTP客户机是指运行了该协议的PC机,如启动该协议的Windows95/98;PPTP服务器是指运行该协议的服务器,如启动该协议的WindowsNT服务器。PPTP是PPP协议的一种扩展。它提供了一种在互联网上建立多协议的安全虚拟专用网(VPN)的通信方式。远端用户能够透过任何支持PPTP的ISP访问公司的专用网。

通过PPTP,客户可采用拨号方式接入公用IP网。拨号用户首先按常规方式拨到ISP的接入服务器(NAS),建立PPP连接;在此基础上,用户进行二次拨号建立到PPTP服务器的连接,该连接称为PPTP隧道,实质上是基于IP协议的另一个PPP连接,其中的IP包可以封装多种协议数据,包括TCP/IP、IPX和NetBEUI。PPTP采用了基于RSA公司RC4的数据加密方法,保证了虚拟连接通道的安全。对于直接连到互联网的用户则不需要PPP的拨号连接,可以直接与PPTP服务器建立虚拟通道。PPTP把建立隧道的主动权交给了用户,但用户需要在其PC机上配置PPTP,这样做既增加了用户的工作量,又会给网络带来隐患。另外,PPTP只支持IP作为传输协议。

3.2 第二层隧道协议

第二层转发协议:L2F(Layer Two Forwarding protocol )是由Cisco公司提出的可以在多种介质,如ATM、帧中继、IP网上建立多协议的安全虚拟专用网的通信。远端用户能通过任何拨号方式接入公用IP网,首先按常规方式拨到ISP的接入服务器(NAS),建立PPP连接;NAS根据用户名等信息,建立直达HGW服务器的第二重连接。在这种情况下,隧道的配置和建立对用户是完全透明的。其体系结构见图1。

L2TP(Layer Two Tunneling Protocol)结合了L2F和PPTP的优点,允许用户从客户端或访问服务器端建立VPN连接。L2TP是把链路层的PPP帧装入公用网络设施,如IP、ATM、帧中继中进行隧道传输的封装协议。其体系结构见图1。

Cisco、Ascend、Microsoft和RedBack公司的专家们在修改了十几个版本后,终于在1999年8月公布了L2TP的标准RFC2661。目前用户拨号访问Internet时,必须使用IP协议,并且其动态得到的IP地址也是合法的。L2TP的好处在于支持多种协议,用户可以保留原有的IPX、Appletalk等协议或公司原有的IP地址。L2TP还解决了多个PPP链路的捆绑问题,PPP链路捆绑要求其成员均指向同一个NAS,L2TP则允许在物理上连接到不同NAS的PPP链路,在逻辑上的终点为同一个物理设备。L2TP扩展了PPP连接,在传统的方式中用户通过模拟电话线或ISDN/ADSL与网络访问服务器建立一个第2层的连接,并在其上运行PPP,第2层连接的终点和PPP会话的终点均设在同一个设备上(如NAS)。L2TP作为PPP的扩充提供了更强大的功能,包括允许第2层连接的终点和PPP会话的终点分别设在不同的设备上。

L2TP主要由LAC(L2TP Access Concentrator)和LNS(L2TP Network Server)构成。LAC支持客户端的L2TP,发起呼叫,接收呼叫和建立隧道;LNS是所有隧道的终点。在传统的PPP连接中,用户拨号连接的终点是LAC,而L2TP能把PPP协议的终点延伸到LNS。
L2TP的建立过程。

  1. 用户通过公用电话网或ISDN拨号呼叫本地接入服务器LAC;LAC接受呼叫并进行基本的识别过程,这一过程可以采用几种标准,如域名、呼叫线路识别(CLID)或拨号ID业务(DNIS)等。
  2. 当用户被确认为合法企业用户时,就建立一个通向LNS的拨号VPN隧道。
  3. 企业内部的安全服务器如TACACS+、RADIUS对拨号用户进行验证。
  4. LNS与远程用户交换PPP信息,分配IP地址。LNS可采用企业专用地址(未注册的IP地址)或服务提供商提供的地址空间分配IP地址。因为内部源IP地址与目的地IP地址实际上都通过服务提供商的IP网络在PPP信息包内传送,企业专用地址对提供者的网络是透明的。
  5. 端到端的数据从拨号用户传到LNS。

在实际应用中,LAC将拨号用户的PPP帧封装后,传送到LNS,后者去掉封装包头,取出PPP帧,再去掉PPP帧头,最后获得网络层数据包。

L2TP方式给服务提供商和用户带来了许多方便。用户不需要在PC板上安装专门的客户端软件,企业网可以使用未注册的IP地址,并在本地管理认证数据库,从而降低了应用成本和培训维护费用。与PPTP和L2F相比,L2TP的优点在于提供了差错和流量控制;L2TP使用UDP封装和传送PPP帧。面向无连接的UDP无法保证网络数据的可靠传输,L2TP使用Nr(下一个希望接受的信息序列号)和Ns(当前发送的数据包序列号)字段进行流量和差错控制。双方通过序列号来确定数据包的顺序和缓冲区,一旦丢失数据,根据序列号可以进行重发。作为PPP的扩展协议,L2TP支持标准的安全特性CHAP和PAP,可以进行用户身份认证。L2TP定义了控制包的加密传输,每个被建立的隧道分别生成一个独一无二的随机钥匙,以便对付欺骗性的攻击,但是它对传输中的数据并不加密。

3.3 通用路由封装

通用路由封装(GRE:Generic Routing Encapsulation)在RFC1701/RFC1702中定义,它规定了怎样用一种网络层协议去封装另一种网络层协议的方法。GRE的隧道由两端的源IP地址和目的IP地址来定义,它允许用户使用IP封装IP、IPX、AppleTalk,并支持全部的路由协议,如RIP、OSPF、IGRP、EIGRP。通过GRE,用户可以利用公用IP网络连接IPX网络和AppleTalk网络,还可以使用保留地址进行网络互联,或对公网隐藏企业网的IP地址。

GRE的包头包含了协议类型(用于标明乘客协议的类型);校验和包括了GRE的包头和完整的乘客协议与数据;密钥(用于接收端验证接收的数据);序列号(用于接收端数据包的排序和差错控制)和路由信息(用于本数据包的路由)。

GRE只提供了数据包的封装,它没有防止网络侦听和攻击的加密功能。所以在实际环境中它常和IPsec一起使用,由IPsec为用户数据的加密,给用户提供更好的安全服务。

3.4 IP安全协议

IP安全协议(IPSec:IP Security)实际上是一套协议包而不是一个独立的协议,这一点对于我们认识IPSec是很重要的。从1995年开始IPSec的研究以来,IETF IPSec工作组在它的主页上发布了几十个Internet草案文献和12个RFC文件。其中,比较重要的有RFC2409 IKE(互连网密钥交换)、RFC2401 IPSec协议、RFC2402 AH验证包头、RFC2406 ESP加密数据等文件。IPSec安全体系包括3个基本协议:AH协议为IP包提供信息源验证和完整性保证;ESP协议提供加密机制;密钥管理协议(ISAKMP)提供双方交流时的共享安全信息。ESP和AH协议都有相关的一系列支持文件,规定了加密和认证的算法。最后,解释域(DOI)通过一系列命令、算法、属性和参数连接所有的IPSec组文件。

3.5 隧道技术应用

3.5.1 虚拟专用网络

VPN是Internet技术迅速发展的产物,其简单的定义是,在公用数据网上建立属于自己的专用数据网。也就是说不再使用长途专线建立专用数据网,而是充分利用完善的公用数据网建立自己的专用网。它的优点是,既可连到公网所能达到的任何地点,享受其保密性、安全性和可管理性,又降低网络的使用成本。VPN依靠Internet服务提供商(ISP)和其他的网络服务提供商(NSP)在公用网中建立自己的专用“隧道”,不同的信息来源,可分别使用不同的“隧道”进行传输。新出台的标准ISE CHEIP6版保证用户数据的安全加密。由于用户对企业网传输个人数据很敏感,因此集成度更高的VPN技术不久将会流行起来。

3.5.2 Linux 中的IP隧道

为了在TCP/IP网络中传输其他协议的数据包,Linux采用了一种IP隧道技术。在已经使用多年的桥接技术中就是通过在源协议数据包上再套上一个IP协议帽来实现。利用IP隧道传送的协议包也包括IP数据包,Linux的IPIP包封指的就是这种情况。移动IP(Mobile-IP)和IP多点广播(IP-Multicast)是两个流行的例子。目前,IP隧道技术在VPN中也显示出极大的魅力。移动IP是在全球Internet上提供移动功能的一种服务,它允许节点在切换链路时仍可保持正在进行的通信。它提供了一种IP路由机制,使移动节点以一个永久的IP地址连接到任何链路上。与特定主机路由技术和数据链路层方案不同,移动IP还要解决安全性和可靠性问题,并与传输媒介无关。移动IP的可扩展性使其可以在整个互联网上应用。

3.5.3 GPRS隧道协议

随着隧道技术的发展,各种业务已经开始根据本业务的特点制定相应的隧道协议。GPRS(General Packet Radio Service)中的隧道协议GTP(GPRS Tunnel Protocol)就是一例。

GPRS是GSM提供的分组交换和分组传输方式的新的承载业务,可以应用在PLMN(Public Land Mobile Network)内部或应用在GPRS网与外部互联分组数据网(IP、X.25)之间的分组数据传送,GPRS能提供到现有数据业务的无缝连接。它在GSM网络中增加了两个节点:服务GPRS支持节点(SGSN─serving GPRS support node)和网关GPRS支持节点(GGSN─Gateway GPRS support node)。SGSN是GPRS骨干网与无线接入网之间的接口,它将分组交换到正确的基站子系统(BSS)。其任务包括提供对移动台的加密、认证、会话(session)管理、移动性管理和逻辑链路管理。它也提供到HLR等数据库的连接。通过GPRS隧道协议可为多种协议的数据分组通过GPRS骨干网提供隧道。GTP根据所运载的协议需求,利用TCP或UDP协议来分别提供可靠的连接(如支持X.25的分组传输)和无连接服务(如IP分组)。

博文参考

Kong API Gateway and Service Connectivity Platform

《计算机网络》

计算机网络——网络基础知识相关推荐

  1. 计算机网络——网络基础知识——思维导图(超全)

    作者:王乐乐0727 来源:CSDN 原文:https://blog.csdn.net/wanglele1 版权声明:本文为博主原创文章,转载请附上博文链接!

  2. 计算机网络有哪些技能知识,网络基础知识及操作技能.ppt

    网络基础知识及操作技能 主讲人 李春报 一.计算机网络概述 1.计算机网络的概念 计算机网络是把分布在不同地理位置上的计算机.终端,用通信设备和通信线路连结起来,再配以相应的网络软件,从而使众多计算机 ...

  3. 计算机网络建设中涉及到哪些硬件,网络基础知识入门

    网络基础知识入门 导语:随着计算机的广泛应用和网络的流行,我们应该要知道一些网络基础知识,下面是小编收集整理的网络基础入门知识,欢迎参考! 计算机网络是什么 这是首先必须解决的一个问题,绝对是核心概念 ...

  4. 最容易理解的计算机网络的基础知识概论(上)

    最容易理解的计算机网络基础知识概论(上) 1.计算机网络的分类方法 1)广域网. 2)城域网. 3)局域网. 4)个人区域网和人体区域网. 2.计算机的组成及结构 2.1早期计算机网络组成与结构 3 ...

  5. 计算机网络专业的基础知识,计算机网络专业基础知识.doc

    计算机网络专业基础知识 一.填空题 计算机网络按可以分为 和 . 和 . 对导线组成, 对进行. TCP 服务,UDP可以提供 服务. 层,路由器工作在 层. ,其中 经常处于守候状态. , . 协议 ...

  6. 收藏100个网络基础知识

    100 个网络基础知识普及,看完成半个网络高手! 1)什么是链接? 链接是指两个设备之间的连接.它包括用于一个设备能够与另一个设备通信的电缆类型和协议. 2)OSI 参考模型的层次是什么? 有 7 个 ...

  7. 计算机网络是将地理知识,计算机网络的基础知识精选.ppt

    计算机网络的基础知识精选 习题演练 1,WAN的中文含义是(). A. 局域网 B. 城域网 C. 广域网 D. 增值网 2,LAN的中文含义是(). A. 局域网 B. 城域网 C. 广域网 D. ...

  8. 第二十六期:100 个网络基础知识普及,看完成半个网络高手

    本篇文章是关于100个网络基础知识普及,看完成半个网络高手!下面,我们一起来看. 作者:佚名来源 本篇文章是关于100个网络基础知识普及,看完成半个网络高手!下面,我们一起来看. 1)什么是链接? 链 ...

  9. 计算机网络把许多什么连接在一起,计算机网络技术基础知识汇总习题

    计算机网络技术基础知识汇总习题 1.21世纪要实现信息化,就必须依靠完善的网络,这里的网络是指,向用户提供不同服务的 电信网络,有线电视网络和计算机网络三种网络.(电信网络,有线电视网络,计算机网络) ...

最新文章

  1. chromium android分析,Chromium Android工程迁移编译过程
  2. #Ubuntu 18.04 安装tensorflow-gpu 1.9
  3. 一键自动发布ipa(更新svn,拷贝资源,压缩资源,加密图片资源,加密数据文件,加密lua脚本,编译代码,ipa签名,上传ftp)...
  4. com.sap.ui5.resource.ResourceServlet的工作原理介绍
  5. HALCON示例程序stamp_catalogue.hdev分割图片与文字
  6. Tcpdump 详解
  7. print2flashwindows7旗舰版下载哪一个_JUJUMAO_MSDN原版 win 7 二合一 旗舰版32位 64位原版ISO镜像...
  8. Spark Windows
  9. opencv之实现回形遍历像素算法
  10. 8.84 亿什么概念?
  11. c语言程序输出数字图形,C语言数组应用之图形数字的输出
  12. ubuntu16.04 NFS 文件共享设置
  13. php网站整合ck播放器,CKplayer 整合播放M3U8视频
  14. 【Linux】Linux Ext2文件系统
  15. 每日一问 --发信机和收信机对信号做了那些处理?
  16. 前端如何对视频进行截屏加标注
  17. BabaSSL:支持半同态加密算法 EC-ElGamal
  18. JSON Parse error:Unrecognized token xxx
  19. 玩转代码|Google Map api国内正常使用该如何配置
  20. [转]辨别常见与不常见音乐文件格式的质量好坏!

热门文章

  1. MYSQL常用操作 知识梳理
  2. Flip Game翻转游戏
  3. windows配置PYTHONPATH环境变量的方法
  4. c语言程序设计CDIO,《C语言程序设计》教学改革探究——基于CDIO理念
  5. 福昕阅读器中书签里面页面跳转保持适合宽度样式
  6. mysql-power()求次方,sqrt()开根号
  7. 从服装供应链看产业互联网的机会
  8. 用RTTHRead编写GD32F303CCT6驱动程序(序章)
  9. tensorflow with求导_TensorFlow - 求导
  10. openssl SM2 加解密的坑