计算机网络概述与网络硬件基础
计算机网络的分类
局域网(LAN):传输距离有限,传输速度高,以共享网络资源为目的的网络系统。
城域网(MAN):规模介于局域网和广域网之间的一种较大范围的高速网络,一般覆盖临近的多个单位和城市。
广域网(WAN):又称远程网,它是指覆盖范围广、传输速率相对较低、以数据通信为主要目的的数据通信网。
网络分类 | 缩写 | 分布距离 | 计算机分布范围 | 传输速率范围 |
---|---|---|---|---|
10m 左右 | 房间 | |||
局域网 | LAN | 100m 左右 | 楼宇 | 4Mb/s~1Gb/s |
1000m 左右 | 校园 | |||
城域网 | MAN | 10km 左右 | 城市 | 50kb/s~100Mb/s |
广域网 | WAN | 100km 以上 | 国家或全球 | 9.6Kb/s~45Mb/s |
网络的拓扑结构
概念:是指网络中通信线路和节点的几何顺序,用以表示整个网络的结构外貌,反映各节点之间的结构关系。
常见的网络拓扑结构有总线型、星型、环型、树型和分布式结构等。
网络互连设备
物理层的设备
- 中继器:
- 它是在物理层上实现局域网网段互连的,用于扩展局域网网段的长度。
- 在以太网中最多只能使用 4 个中继器。
- 集线器:
- 可以看成是一种特殊的多路中继器,其优点是当网络系统中某条线路节点出现故障时,不会影响网上其他节点的正常工作。
- 分为无源和有源。无源集线器不对信号作任何处理,只负责将多段介质连接在一起。有源集线器对传输信号进行再生和放大。
数据链路层的设备
- 网桥:用于连接两个局域网网段,对帧进行过滤。
- 过滤帧:网桥检查帧的源地址和目的地址,如果不在同一网段上,就把帧转发到另一个网段上,如果在,则不转发。
- 隔离不同网段:将不同楼层的网络分成不同的网络段,段中间用网桥连接,这样可以缓解网络通信繁忙的程度,提高通信效率;另外还可以提高网络的可靠性,一个网络段发生故障不会影响另一个网络段。
- 交换机:
- 按 MAC 地址(物理地址)进行数据转发,比网桥的转发性能要高,数据延迟要小。
- 交换机的工作过程:从某一节点收到帧后,在其内存的 MAC 地址表(端口号-MAC 地址)中进行查找,确认该 MAC 地址的网卡连接在哪一个节点,然后将帧转发至该节点。如果没有找到该 MAC 地址,就将数据包广播到所有节点,拥有该MAC的网卡收到广播后做出应答,交换机将该 MAC地址添加到 MAC 地址列表中。
- 交换机有三种交换技术:端口交换、帧交换和信元交换。
网络层的设备
- 路由器:用于连接多个逻辑上分开的网络,例如不同的子网。
- 路由器具有很强的异种网互连能力。例如:即使两个互连的网络最低两层的协议不同,也可通过支持多协议的路由器进行连接。
- 路由器最主要的功能是选择路径。在路由器的存储器中维护着一个路径表,记录各个网络的逻辑地址,用于识别其他网络。
- 路由器的工作过程:收到某个网络向另一个网络发送的信息包时,打开信息包,并解读信息包中的数据,获得目的网络的逻辑地址(IP 地址),使用复杂的程序决定该由哪条路径发送最合适,然后重新打包并转发出去。
- 三层交换机:不仅包括所有交换机的功能,还包含了网络层的部分功能。一次路由,多次交换。
- 工作原理:可以总结为“一次路由,多次交换”。当三层交换机第一次收到一个数据包时必须通过路由功能寻找转发端口,同时记住目标 MAC 地址和源 MAC 地址,以及其他相关信息,当再次收到目标地址和源地址相同的帧时就直接进行交换了,不再调用路由功能。三层交换机不但具有路由功能,而且比通常的路由器转发得更快。
应用层的设备
网关:主要功能是进行协议转换。
当要连接不同类型而协议差别又较大的网络时,要选用网关设备。它可以将协议进行转换,并将数据重新分组,以便在两个不同类型的网络之间进行通信。
常见的网络设备总结
物理设备 | OSI 模型 | 传输的数据单位 | 主要功能 |
---|---|---|---|
中继器 | 物理层 | 位(比特流) | 实现局域网网段互连的,用于扩展局域网网段的长度。 |
集线器 | 物理层 | 位(比特流) | 多路中继器。 |
网桥 | 数据链路层 | 帧 | 连接两个不同的网段,对帧进行过滤与转发。 |
二层交换机 | 数据链路层 | 帧 | 多端口网桥,按物理地址对帧进行数据转发。 |
三层交换机 | 数据链路层/网络层 | 帧/数据包 | 在二层交换机的基础上增加了部分网络层的功能。 |
路由器 | 网络层 | 数据包 | 连接不同的子网,根据IP地址进行路由选择与数据的分组交换。 |
网关 | 应用层 | 报文 | 进行协议转换,可以使不同类型的网络系统之间进行通信。 |
网络传输介质
双绞线、同轴电缆、光纤、微波、红外线和激光、卫星通信
网络的协议与标准
ISO/OSI参考模型
TCP/IP协议簇
TCP/IP 协议是 Internet 的核心协议,是迄今为止发展最为成熟的互联网络协议系统。
TCP/IP 包含以下五个特性:
- 逻辑编址。每一台连入互联网的设备都要分配一个IP地址,一个 IP 地址包含网络号,子网络号和主机号,因此可以通过IP地址很方便地找到对应的设备。
- 路由选择。在 TCP/IP 协议中包含了专门用于定义路由器如何选择网络路径的协议,即 IP 数据包的路由选择。
- 域名解析。为了方便用户记忆,专门设计了一种更方便的字母式地址结构,称为域名。将域名映射为 IP 地址的操作,称为域名解析。
- 错误检测与流量控制。TCP/IP 协议可以检测数据信息的传输错误,确认已传递的数据信息已被成功接收,监测网络系统中的信息流量,防止出现网络拥塞。
TCP/IP 协议簇——网际层协议
- IP:IP 所提供的服务通常被认为是无连接的和不可靠的,它将差错
检测和流量控制之类的服务授权给了其他的各层协议,这正是 TCP/IP 能够高效率工作的一个重要保证。其主要功能包括:
- 将上层数据(TCP/UDP 数据)或同层的其他数据(如 ICMP 数据)封装到 IP 数据报中;
- 将IP数据报传送到最终目的地;
- 为了使数据能够在链路层上进行传输对数据进行分段;
- 确定数据报到达其他网络中的目的地的路径。
- ARP 和 RARP:ARP 负责将 IP 地址转换为物理地址(MAC 地址);RARP 负责将物理地址转换为 IP 地址。
网络中的任何设备(主机、路由器和交换机等)均有唯一的物理地址,该地址通过网卡给出,每个网卡出厂后都有不同的编号,即用户所购买的网卡有着唯一的物理地址。而 IP 协议又使用了 IP 地址,因此,在数据传输过程中,必须对 IP 地址和物理地址进行相互转换。
-
ICMP(网络控制信息协议):是一个专门用于发送差错报文的协议。由于 IP 是一种尽力传送的协议,传送的数据报有可能丢失、重复、延迟或乱序,因此 IP 需要一种避免差错并在发生差错时报告的机制。
主要功能有:通告网络故障、通告网络拥堵、协助解决故障。
TCP/IP 协议簇——传输层协议
-
TCP
- TCP 提供了一个可靠的、面向连接的、全双工的数据传输服务。
- 它采用了一种叫做“重发”的技术。即在 TCP 传输过程中,发送方启动一个定时器,然后传输数据包,接收方收到后给发送方发送一个“确认”信息,如果超过时间发送方还没有收到确认信息,就重新发送这个数据包。
- 利用 TCP 建立和关闭连接时,均需要通过三次握手。
- 源主机发送一个数据包,表示想与目的主机进行通信。
- 目的主机发送一个确认进行响应,表示愿意进行通信。
- 源主机再发送一个确认来响应,该确认中可包含真正要发送的数据包。
- TCP协议一般用于传输数据量比较少,且对可靠性要求高的场合。
- UDP
- UDP 是一种不可靠的、无连接的协议,可以保证应用程序进程间的通信。
- UDP 的主要作用是将 UDP 消息展示给应用层,它并不负责重新发送丢失的或出错的数据信息,不对接收到的无序 IP 数据报重新排序,不消除重复的 IP 数据报,不对已收到数据进行确认,也不负责建立或终止连接。
- 总结:
- TCP 是面向连接的、可靠的,但是它是以牺牲通信量来实现的,也就是会降低传输速率。如果传输的数据量不多,对传输速度要求不高,但是对可靠性要求较高的时候,则用 TCP。
- UDP 是无连接的、不可靠的,但是它可以实现高速传输。如果传输的数据量大,要求传输速度快,但对可靠性要求不高,或者已知网络是可靠的情况下,可以用 UDP。
TCP/IP协议簇——应用层协议
- FTP(File Transport Protocol 文件传输协议):是网络上两台计算机传送文 件的协议。
运行在 TCP 之上,是通过 Internet 将文件从一台计算机传输到另一台计算机的一种途径。
FTP 在客户机与服务器之间需要建立两条 TCP 连接,一条用于传送控制信息(使用 21 端口),另一条用于传送文件内容(使用 20 端口)。
-
SFTP(SSH File Transfer Protocol 安全文件传输协议): 一种通过网络传输文件的安全方法,它要求客户端用户必须由服务器进行身份验证,并且数据传输必须通过安全通道(SSH)进行,不传输明文密码或文件数据。
建立在 TCP 之上,默认端口号 22。
-
TFTP(Trivial File Transfer Protocol 简单文件传输协议): 是用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大 的文件传输服务。
建立在 UDP 之上,提供不可靠的数据流传输服务,不提供存取授权与认证机制,使用超时重传方式来保证数据的到达。
-
Telnet(远程登录协议): 将用户计算机与远程主机连接起来,在远程计算机上运行程序,将相应的屏幕显示传送到本地机器,并将本地的输入送给远程计算机。
建立在 TCP 之上,使用 23 端口。
-
HTTP(Hypertext Transfer Protocol 超文本传输协议): 是用于从 www 服务器传输超文件到本地浏览器的传送协议。它可以使浏览器更加高 效,使网络传输减少。
建立在 TCP 之上。
-
HTTPS(Hypertext Transfer Protocol Secure 超文本传输安全协议): 是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。
HTTPS 在 HTTP 的基础上加入 SSL(安全套接层)。
-
DHCP(Dynamic Host Configuration Protocol 动态主机配置协议): 该协议允许服务器向客户端动态地分配IP地址和配置信息。
建立在 UDP 之上。
-
DNS(Domain Name System 域名系统): 是进行域名解析的,域名虽然便于人们记忆,但是机器只能识别 IP 地址,它们之间的转换工作称为域名解析。
-
SNMP(Simple Network Management Protocol 简单网络管理协议):是一种用于网络设备管理的协议,它允许网络管理员监视、配置和控制网络中的设备,以确保网络的正常运行和性能优化。
建立在 UDP 之上。
Internet 基础知识
域名
域名的格式:
1. 计算机主机名.本地名.组名.最高层域名
例:www.cwlrin.wiki, www.baidu.com
1. URL的格式:
协议://主机.域名[:端口号]/路径/文件名
例:http://210.42.87.56:80/ducument/admin/a1/index.html
https://www.abc.com:443/text/a2/login.htm
ftp://ftp.hust.edu.cn/a3/img/b4.jpg
https 是一种通过计算机网络进行安全通信的传输协议,经由 http 进行通信,利用 SSL/TLS 建立全信道,加密数据包。https 使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。
IP地址
- IP 地址的格式:一个 IP 地址占 4 字节(32 位),转成十进制后,为 4 个十进制数字,中间用“.”隔开。每个十进制数字的取值范围为 0~255。
129.102.4.11\rightarrow 10000001\ 01100110\ 00000100\ 00001011 - IP 地址的分类:IP 地址可以分为5类:A 类、B 类、C 类、D 类、E 类。
A类地址
标识方法:最高位为 0。
真正的网络地址为 1 ~ 7 位(第 2 至第 8 位)。
那么A类地址的第一个字节的十进制是 0 ~ 127,共支持 1~126 个网络即共有 2^7-2 个网络号。
主机地址为后24位,那么每个网络最多有 224 – 2 个主机地址。
为何要 -2 ?因为:在 IP 地址中,全 0 代表的是网络地址,全 1 代表的是广播地址,这两个为特殊用途 IP 地址,不可作为主机地址使用。
B类地址
标识方法:最高位为 10。
真正的网络地址为 2 ~ 15 位(第 3 至第 16 位)。
那么 B 类地址的第一个字节的十进制是 128 ~ 191,共有 2^{14}-2 个网络号。主机地址为后面的 16 位,那么每个网络最多有 2^{16}-2个主机地址。
C类地址
为我们最常见的 IP 地址。
标识方法:最高位为 110。
真正的网络地址为 3 ~ 23 位(第 4 至第 24 位)。
那么 C 类地址的第一个字节的十进制是 192 ~ 223,共有 2^{21}-2 个网络号。
主机地址为后面的 8 位,那么每个网络最多有 2^8-2 个主机地址。
D类地址
标识方法:最高位为 1110。
用于组播,例如用于路由器修改。D 类网络地址第一个字节的十进制为 224 ~ 239。
E 类地址
标识方法:最高位为 1111。
E 类地址为实验保留。D 类网络地址第一个字节的十进制 240 ~ 255。
子网掩码
子网掩码:用于区分网络号和主机号。
子网掩码是结合 IP 地址来看的,单独的子网掩码没有意义,它是用来识别具体的 IP 地址中哪些是网络号,哪些是主机号。
子网掩码中,网络号用 1 表示,主机号用 0 表示。例如,C 类 IP 地址的子网掩码默认为 255 . 255 . 255 . 0,即:11111111 11111111 11111111 00000000
- 求网络号的方法:子网掩码与 IP 地址都转换成二进制,然后做“逻辑与”运算。
例:C 类地址 210.42.96.138\rightarrow 11010010\ 00101010\ 01010110\ 10001010
与子网掩码做“逻辑与”运算: 11010010\ 00101010\ 01010110\ 00000000
-
求主机号的方法:子网掩码按位取反,然后与IP地址做“逻辑与”运算。
子网掩码按位取反: 00000000\ 00000000\ 00000000\ 11111111
与 IP 地址做“逻辑与”运算: 00000000\ 00000000\ 00000000\ 10001010
子网掩码并不一定都是刚刚那样的格式。一个 C 类的 IP 地地址,同一个网络中,最多可以有 2^8-2=254 个主机,但是如果我们希望组建一个更大型的网络或者稍小一点的网络怎么办呢?避免 IP 地址的浪费,我们可以使用可变长子网掩码(VLSM)。
假设 IP 地址:210.42.96.138\rightarrow 11010010\ 00101010 01010110\ 10001010
子网掩码为:255.255.255.192,即 11111111\ 11111111\ 11111111\ 11000000
11010010\ 00101010\ 01010110\ 10(对应网络号)001010(对应主机号)
一个网络中最多可以有 2^6-2 台主机。我们可以看到:子网掩码中,左边连续为 1 的位数就是网络地址,右边连续为 0 的就是主机地址。
可变长子网掩码还可以用一种更直观的表示方式:210 . 42 . 96 . 138 / 26
IPv6
现在的 IP 协议的版本号为 4,所以也称之为 IPv4,IPv4 的 IP 地址共 32 位,4 个字节,最多可以有 2^{32} 个 IP 地址。
IPv6 的地址空间为 128 位,共 16 个字节,理论上最多可以有 2^{128} 个 IP 地址。
IPv6 采用冒号十六进制记法。16 位为一组,用相应的十六进制表示,各组之间用“:”分隔。例如:686E : 8C64 : FFFF : FFFF : 0 : 1180 : 96A : FFFF
允许 0 压缩,即一连串的 0 可以用一对冒号表示,如:FF05 : 0 : 0 : 0 : 0 : 0 : 0 : B3 \Rightarrow FF05 : : B3
IPv6 还可以和 IPv4 结合使用,如:0 : 0 : 0 : 0 : 0 : 0 : 128 . 10 . 1 . 1 \Rightarrow : : 128.10.1.1
Internet服务
使用各类 Internet 服务时,可以使用端口号进行区分,TCP 和 UDP 协议的端口号为 16 位,支持 0 ~ 65535 的端口号。其中 0 ~ 1023 为公共端口,1024 ~ 65535 需要注册登记。
- 域名服务(DNS)
- 远程登陆服务(Telnet)
- 电子邮件服务
- 万维网服务(WWW)
- 文件传输服务(FTP)
信息安全与网络安全
网络攻击的分类
- 篡改消息:是指一个合法消息的某些部分被修改、删除、延迟、重新排序等。如修改传输消息中的数据,将“允许甲执行操作”改为“允许乙执行操作”。
- 伪造(伪装、假冒):是指某个实体假扮成其他实体,从而以欺骗的方式获取一些合法用户的权利和特权。
- 重放:是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的正确性。
- 拒绝服务(DOS):是指攻击者不断地对网络服务系统进行干扰,改变其正常的作业流程,执行无关程序使系统响应减慢甚至瘫痪,影响正常用户的使用,甚至使合法用户被排斥而不能进入计算机网络系统或不能得到相应的服务。
- 窃听(截取):是指攻击者在未经用户同意和认可的情况下获得了信息或相关的数据。
- 流量分析(通信量分析):是指攻击者虽然从截获的消息中无法得到消息的真实内容,但攻击者还是能通过观察这些数据报的模式,分析确定出通信双方的位置、通信的次数及消息的长度,获知相关的敏感信息。
- 字典攻击:一种破解用户密码或密钥的一种攻击方式。事先将所有可能的密码口令形成一个列表(字典),在破解密码或密钥时,逐一将字典中的密码口令(或组合)尝试进行匹配。
- 社会工程学攻击:是指通过与他人进行合法的交流,来使其心理受到影响,做出某些动作或者是透露一些机密信息的方式。这通常被认为是一种欺诈他人以收集信息、行骗和入侵计算机系统的行为。
- SQL 注入攻击:把 SQL 命令插入 Web 表单的输入域或页面的请求查找字符串,欺骗服务器执行恶意的 SQL 命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态 SQL 命令,或作为存储过程的输入参数,这类表单特别容易受到 SQL 注入式攻击。
- 会话劫持:是指攻击者在初始授权之后建立一个连接,在会话劫持以后,攻击者具有合法用户的特权权限。例如,一个合法用户登录一台主机,当工作完成后, 没有切断主机。然后,攻击者乘机接管,因为主机并不知道合法用户的连接已经断开,于是,攻击者能够使用合法用户的所有权限。典型的实例是“TCP会话劫持”。
- 漏洞扫描:是一种自动检测远程或本地主机安全漏洞的软件,通过漏洞扫描器可以自动发现系统的安全漏洞。
- 缓冲区溢出:攻击者利用缓冲区溢出漏洞,将特意构造的攻击代码植入有缓冲区漏洞的程序之中,改变漏洞程序的执行过程,就可以得到被攻击主机的控制权。
主动攻击与被动攻击
主动攻击
主动攻击会导致某些数据流被篡改或者产生虚假的数据流。如:篡改 消息、伪造消息、重放和拒绝服务。
被动攻击
与主动攻击不同的是,被动攻击中攻击者并不对数据信息做任何修改,也不产生虚假的数据流。如窃听、流量分析等攻击方式。
安全的分类
- 物理安全:物理安全是保护计算机网络设备、设施以及其他媒体免遭地震、水灾、火灾等环境事故及人为操作失误及各种计算机犯罪行为导致的破坏。主要是场地安全与机房安全。
- 网络安全:与网络相关的安全。
- 系统安全:主要指操作系统的安全。
- 应用安全:与应用系统相关的安全。
防火墙技术
防火墙阻挡对网络的非法访问和不安全数据的传递,使得本地系统和网络免于受到许多网络安全威胁。防火墙主要用于逻辑隔离外部网络与受保护的内部网络。
防火墙技术经历了包过滤、应用代理网关和状态检测技术三个发展阶段。
包过滤防火墙
它处于网络层和数据链路层,一般有一个包检查块(包过滤器),通过该检查模块,对每一个传入和传出网络的 IP 包打开进行检查,例如源地址、目的地址、协议和端口等,对于不符合包过滤规则的包进行记录,发出报警并丢弃该包。
优点
- 过滤型的防火墙通常直接转发报文,它对用户完全透明,速度较快。
- 包过滤通常被包含在路由器数据包中,所以不需要额外的系统来处理。
缺点
- 它可以控制站点与网络之间的相互访问,但不能控制传输数据的内容,因为内容是应用层数据。
- 访问控制粒度太粗糙,不能防范黑客攻击,不能处理新的安全威胁。
应用代理网关防火墙
能彻底隔断内网与外网的直接通信,内网用户对外网的访问变成了防火墙对外网的访问,然后再由防火墙转发给内网用户。
所有通信都必须经应用层代理软件转发,访问者任何时候都不能与服务器建立直接的 TCP 连接,应用层的协议会话过程必须符合代理的安全策略要求。
优点:可以检查应用层、传输层和网络层的协议特征,对数据包的检测能力比较强。
缺点:难以配置,处理速度非常慢。
状态检测技术防火墙
它结合了代理防火墙的安全性和包过滤防火墙的高速等优点,在不损失安全性的基础上,提高了代理防火墙的性能。
状态监测不仅仅根据规则表来检查每一个进出的包,更考虑了数据包是否符合会话所处的状态,因此提供了完整的对传输层的控制能力,同时也改进了流量处理速度。
因为它采用了一系列优化技术,使防火墙性能大幅度提升,能应用在各类网络环境中,尤其是在一些规则复杂的大型网络上。
入侵检测与防御
入侵检测与防御技术主要有两种:
- 入侵检测系统(IDS):注重的是网络安全状况的监管,通过监视网络或系统资源,寻找违反安全策略的行为或遭到入侵攻击的迹象,并发出报警。因此绝大多数IDS系统都是被动的。
- 入侵防御系统(IPS):是在入侵检测系统的基础上发展起来的,不仅能够检测到网络中的攻击行为,同时可以主动地对攻击行为发出响应,对入侵活动和攻击性网络流量进行拦截,避免造成损失。