计算机网络基础知识总结
Posted kalixcn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机网络基础知识总结相关的知识,希望对你有一定的参考价值。
一、网络层次划分
- 国际化标准组织(ISO)在1978年提出了“开放系统互联参考模型”,即著名的OSI/RM模型(Open System Interconnection/Reference Model)。它将计算机网络体系结构的通信协议划分为七层,直下而上依次为:网络层(Physics Layer)、数据链路层(Data Link Layer)、网络层(Network Layer)、传输层(Transport Layer)、会话层(Session Layer)、表示层(Presention Layer)、应用层(Application Layer)。其中第四层完成数据传送服务,上面三层面向用户。
除了标准的OSI七层模型外,常见的网络层次还有TCP/IP四层模型和TCP/IP五层协议,它们对应关系如下图:
-
物理层(Physical Layer)
激活、维关闭通信端口之间的机械特性、电气特性、功能特性以及过程特性。该层为上层协议提供一个输出数据的可靠的物理媒体。简单的说,物理层确保原始的数据可在各种物理媒体上传输。网络层有两个重要的设备:中继器(Repeater,也叫放大器)和集线器。 -
数据链路层(Data Link Layer)
数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自网络层开的数据可靠地传输到相邻节点的目标网络层。为达到这一目的,数据链路必须具备一系列的功能,主要有:如何将数据组合成数据块,在数据链路层中称这种数据块为帧(frane),帧是数据链路层的传输单位;如何控制帧在物理信道上的传输,包括如何处理传输差错,如何调节发送速率以使与接收方匹配;以及在两个网络实体之间提供数据链路通路的建立、维持和释放的管理。数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。
有关数据链路层的重要知识点:- 数据链路层为网络层提供可靠的数据传输;
- 基本数据单位为帧;
- 主要的协议:以太网协议;
- 两个重要的设备名称:网桥和交换机
-
网络层(Network Layer)
网络层的目的是实现两个端系统之间的数据透明传输,具体功能包括寻址和路由选择、连接的建立、保持和终止等。它提供的服务是传输层不需要了解网络中的数据传输和交换技术。一句话表示网络层就是:“路径选择、路由及逻辑寻址”。网络层中涉及众多的协议,其中包括最重要的协议,也就是TCP/IP的核心协议——IP协议。IP协议非常简单,仅仅提供不可靠、无连接的传输服务。IP协议的主要功能有:无连接数据报传输、数据报路由选择和差错控制。与IP协议配套使用实现其功能的还有地址解析协议ARP、逆地址解析协议RARP、因特网报文协议ICMP等。基本数据单位为IP数据报,重要的设备:路由器。 -
传输层(Transport Layer)
第一个端到端,即主机到主机的层次。传输层负责将上层数据分段并提供端到端的、可靠或者不可靠的传输。此外传输层还处理端到端的差错控制和流量控制问题。传输层的任务是根据通信子网的特性,最佳的利用网络资源,为两个端系统的会话层之间,提供建立、维护和取消传输连接的功能,负责端到端的可靠数据传输。在这一层,信息传递数据单元称为段或者报文。网络层只是根据网络地址将源节点发出的数据报传输到目的节点,而传输层则负责将数据可靠地传输到相应的端口,有关传输层的重点:- 传输层负责将上层数据分段并提供端到端的、可靠的或者不可靠的传输以及端到端的差错控制和流量控制问题;
- 主要协议:TCP(Transmission Control Protocol,传输层控制协议)、UDP(User Datagram Protocol,用户数据报协议);
-
会话层
会话层管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步。 -
表示层
表示层对上层数据或者信息进行转换以保证一个主机应用层信息可以被另一个主机应用程序理解。表示层的数据转换包含数据的加密、压缩、格式转换等。 -
应用层
为操作系统或者网络应用程序提供访问网络服务的接口,应用层主要协议有:FTP(文件传输协议)、Telnet(远程登录协议)、DNS(域名解析协议)、SMTP(邮件传输协议)、POP3协议、HTTP协议。
二、重要知识点
- IP地址
IP地址由网络号(包括子网号)和主机号组成,网络地址的主机号全部为0,网络地址代表整个网络;广播地址的主机号全部为1,当向某个网络的广播地址发送消息时,该网络内的所有主机都能收到该广播消息。 - IP地址的分类
- A类地址:该地址以0开头,第一个字节作为网络号,地址范围为:0.0.0.0~127.255.255.255;
- B类地址:该地址以10开头,前两个字节作为网络号,地址范围为:128.0.0.0~191.255.255.255
- C类地址:该地址以110开头,前三个字节作为网络号,地址范围为:192.0.0.0~223.255.255.255
- D类地址:该地址以1110开头,地址范围为224.0.0.0~239.255.255.255,D类地址作为组播地址(一对多通信)
- E类地址:该地址以1111开头,地址范围为249.0.0.0~255.255.255.255,E类地址为保留地址,供以后使用
- A、B、C类私有地址
私有地址(private address)也叫专用地址,只能用于本地网络。- A类私有地址:10.0.0.0/8,范围是:10.0.0.0~10.255.255.255
- B类私有地址:172.16.0.0/12,范围是:172.16.0.0~172.31.255.255
- C类私有地址:192.168.0.0/16,范围是:192.168.0.0~192.168.255.255
- 特殊地址
- 255.255.255.255:该IP地址指的时受限的广播地址。受限广播与一般广播地址(直接广播地址)的区别在于,受限广播地址只能用于本地网络,路由器不会转发以受限广播地址为目的地址的分组;一般广播地址既可在本地广播,也可跨网段广播。
- 0.0.0.0:常用于寻找自己的IP地址,例如在我们的RARP,BOOTP和DHCP协议中,若某个未知IP地址的无盘机想要知道自己的IP地址,它就以255.255.255.255为目的地址,向本地范围(具体而言是被各个路由器屏蔽的范围内)的服务器发送IP请求分组。
- 回环地址:127.0.0.0/8被用作回环地址,回环地址表示本机的地址,常用于本机的测试用的最多的是127.0.0.1
三、子网掩码及网络划分
随着互连网应用的不断扩大,原先的IPv4的弊端也逐渐暴露出来,即网络号占位太多,而主机号位太少,所以其能提供的主机地址也越来越稀缺,目前除了使用NAT在企业内部利用保留地址自行分配以外,通常都对一个高类别的IP地址进行再划分,以形成多个子网,提供给不同规模的用户群使用。这里主要是为了在网络分段情况下有效地利用IP地址,通过对主机号的高位部分取作为子网号,从通常的网络位界限中扩展或压缩子网掩码,用来创建某类地址的更多子网。但创建更多的子网时,在每个子网上的可用主机地址数目会比原先减少。
1. 子网掩码
子网掩码是标志两个IP地址是否属于同一个子网,也是32位二进制地址,其每一个为1代表该位是网络位,为0代表主机位。它和IP地址一样使用点分十进制来表示的。如果两个IP地址在子网掩码的按位与计算下所得结果相同,即表示它们共属同一个子网中。
2.子网掩码的计算
1. 利用子网数来计算
在求子网页面之前必须先搞懂要划分子网数目,以及每个子网内的所需主机数目。
(1)将子网数目转化为二进制来表示:
如果将B类IP地址168.195.0.0划分成27个子网:27=11011;
(2)取得该二进制的位数,为N;
该二进制为五位,N=5
(3)取得该IP地址的类子网掩码,将其主机地址部分的前N位置1即得出该IP地址划分子网的子网掩码。
将B类地址的子网掩码255.255.0.0的主机地址请5位置为1,得到255.255.248。0
2. 利用主机数来计算
如欲将B类地址168.195.0.0划分成若干子网,每个子网内有主机700台:
(1)将主机数目转化为二进制数来表示:700=1010111100
(2)如果主机数小于或等于254(注意去掉保留的两个IP地址),则取得该主机的二进制位数,为N,这里肯定 N<8。如果大于254,则 N>8,这就是说主机地址将占据不止8位;该二进制位十位,N=10
(3)使用255.255.255.255来将该类IP地址的主机地址位数全部布置1,然后从后向前的将N位全部置为0,即为子网掩码值。
将该B类地址的子网掩码255.255.0.0的主机地址全部置1,得到255.255.255.255,然后再从后向前将后 10位置0,即为:11111111.11111111.11111100.00000000,即255.255.252.0。这就是该欲划分成主机为700台的B类IP地址 168.195.0.0的子网掩码
3. 还有一种题型,要你根据每个网络的主机数量进行子网地址的规划和计算子网掩码。这也可按上述原则进行计算。
比如一个子网有10台主机,那么对于这个子网需要的IP地址是:10+1+1+1=13
注意:加的第一个1是指这个网络连接时所需的网关地址,接着的两个1分别是指网络地址和广播地址。
因为13小于16(16等于2的4次方),所以主机位为4位。而256-16=240,所以该子网掩码为255.255.255.240。如果一个子网有14台主机,不少人常犯的错误是:依然分配具有16个地址空间的子网,而忘记了给网关分配地址。这样就错误了,因为14+1+1+1=17,17大于16,所以我们只能分配具有32个地址(32等于2的5次方)空间的子网。这时子网掩码为:255.255.255.224。
四、重要协议
1. ARP/RARP协议
ARP(Address Resolution Proctocol),地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标主机的ARP请求广播到网络上所有主机,并接收返回信息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一段时间,下次请求时直接查询ARP缓存以节省资源。地址解析协议是建立在网络中各个主机相互信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的消息无法达到预期的主机或者到达错误的主机,这就构成一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。
ARP工作流程:
假设主机A的IP地址为192.168.1.1,MAC地址为0A-11-22-33-44-01;
主机B的IP地址为192.168.1.2,MAC地址为0A-11-22-33-44-02;
当主机A要与主机B通信时,地址解析协议可以将主机B的IP地址(192.168.1.2)解析成主机B的MAC地址,以下为工作流程:
- 根据主机A上的路由表内容,IP确定用于访问主机B的转发IP地址是192.168.1.2。然后A主机在自己的本地ARP缓存中检查主机B的匹配MAC地址。
- 如果主机A在ARP缓存中没有找到映射,它将询问192.168.1.2的硬件地址,从而将ARP请求帧广播到本地网络上的所有主机。源主机A的IP地址和MAC地址都包括在ARP请求中。本地网络上的每台主机都接收到ARP请求并且检查是否与自己的IP地址匹配。如果主机发现请求的IP地址与自己的IP地址不匹配,它将丢弃ARP请求。
- 当主机B确定ARP请求中的IP地址与主机的IP地址匹配,则将主机A的IP地址和MAC地址映射添加到本机ARP缓存中。
- 主机B将包含其MAC地址的ARP回复消息直接发送回主机A。
- 当主机A收到从主机B发来的ARP回复消息时,会用主机B的IP和MAC地址映射更新ARP缓存。本机缓存是有生存期的,生存期结束后,将再次重复上面的过程。主机B的MAC地址一旦确定,主机A就能向B发送IP通信了。
RARP,逆地址解析协议,功能和ARP协议相对,其将局域网中某个主机的物理地址转化为IP地址。比如局域网中有一台主机只知道物理地址而不知道IP地址,那么可以通过RARP协议发出征求自身地址的广播请求,然后由RARP服务器负责回答。
RARP协议工作流程:
- 给主机发送一个本机的RARP广播,在此广播包中,声明自己的MAC地址并请求任何收到此请求的RARP服务器分配一个IP地址
- 本地网段上的RARP服务器收到此请求后,检查其RARP列表,查找该MAC地址对应的IP地址
- 如果存在,RARP服务器就给源主机发送一个响应数据包并将此IP地址提供给对方主机使用
- 如果不存在,RARP服务器对此不做任何响应
2.TCP/IP协议
TCP/IP协议是Internet最基本的协议,Internet国际互联网的基础,由网络层的IP协议和传输层的TCP协议组成。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。
IP层接收有更底层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层——TCP或者UDP层;相反,IP层也把从TCP或者UDP层接收来的数据包传送到更底层。IP数据包是不可靠的,因为IP并没有任何事情来确定数据包是否按顺序发送的或者有没有被破坏,IP数据包中包含发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。TCP是面向连接的通信协议,通过三次握手建立连接,通讯完成时要拆除连接,由于TCP是面向连接的所以只能用于端到端的通讯。TCP是一种可靠的数据流服务,采用“带重传的肯定确认”技术来实现传输的可靠性,TCP还采用一种称为“滑动窗口”的方式进行流量控制,所谓窗口实际表示接受能力,用以限制发送方的速度。
TCP报文首部格式:
TCP协议的三次握手和四次挥手:
注:seq:"sequance"序列号;ack:"acknowledge"确认号;SYN:"synchronize"请求同步标志;;ACK:"acknowledge"确认标志";FIN:"Finally"结束标志。
TCP连接建立过程:首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。
TCP连接断开过程:假设Client端发起中断连接请求,也就是发送FIN报文。Server端接到FIN报文后,意思是说"我Client端没有数据要发给你了",但是如果你还有数据没有发送完成,则不必急着关闭Socket,可以继续发送数据。所以你先发送ACK,"告诉Client端,你的请求我收到了,但是我还没准备好,请继续你等我的消息"。这个时候Client端就进入FIN_WAIT状态,继续等待Server端的FIN报文。当Server端确定数据已发送完成,则向Client端发送FIN报文,"告诉Client端,好了,我这边数据发完了,准备好关闭连接了"。Client端收到FIN报文后,"就知道可以关闭连接了,但是他还是不相信网络,怕Server端不知道要关闭,所以发送ACK后进入TIME_WAIT状态,如果Server端没有收到ACK则可以重传。",Server端收到ACK后,"就知道可以断开连接了"。Client端等待了2MSL后依然没有收到回复,则证明Server端已正常关闭,那好,我Client端也可以关闭连接了。Ok,TCP连接就这样关闭了!
3. UDP协议
UDP用户数据包协议,是面向无连接的通讯协议,UDP数据包包括目的端口号和源端口号消息,用于通讯不需要连接,所以可以实现快速通讯。UDP通讯时不需要接收方确认,属于不可靠的传输,可能会出现丢包现象,实际应用中要求程序员编程验证。每个UDP报文分UDP报头和UDP数据区两部分。报头由四个16位长(2字节)字段组成,分别说明该报文的源地址、目的端口、报文长度以及校验值。使用UDP协议包括:FTP协议、SNMP协议、DNS协议、NFS、BOOTP。
TCP与UDP的区别:TCP是面向连接的,可靠的字节流服务;UDP是面向无连接的,不可靠的数据报服务。
4. DNS协议
DNS协议是域名系统(DomainNameSystem)的缩写,该系统用于命名组织到域层次结构中的计算机和网络服务,可以简单地理解为将URL转换为IP地址。域名是由圆点分开一串单词或者缩写组成的,每一个域名都对应一个唯一的IP地址,在Internet上域名与IP地址之间是一一对应的,DNS就是进行域名解析的服务器。
5. NAT协议
NAT网络地址转换(Network Address Translation)属接入广域网(WAN)技术,是一种将私有(保留)地址转换为合法IP地址的转换技术,它被广泛的应用于各种类型Internet接入方式和各种类型的网络中。NAT不仅完美解决了IP地址不足的问题,而且还能够有效的避免来自网络外部的攻击,隐藏并保护网络内部的计算机。
6. DHCP协议
DHCP动态主机设置协议是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:给内部网络或者网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。
知识点回顾(自顶向下)
系列文章戳这里👇
- 计算机网络第一章知识点总结
- 计算机网络第二章知识点总结
- 计算机网络第三章知识点总结
- 计算机网络第四章知识点总结
- 计算机网络第五章知识点总结
- 计算机网络第六章知识点总结
- 计算机网络第七章知识点总结
- 计算机网络第八章知识点总结
1. 网络安全
1.1 什么是网络安全?
1.2网络中的通信安全
1.2.1 安全攻击的类型:被动攻击
1.2.2 安全攻击的类型:主动攻击
1.3 常见的安全机制
2. 密码学术语
2.1 密码学术语(图示)
2.2加密算法的分类
2.3 传统加密方法:替换
2.4 传统加密方法:换位
2.5 密码的安全性
2.6针对加密系统的密码分析攻击
2.7 现代密码学:对称密钥算法
2.7.1 DES的计算过程
2.7.2 Triple DES(3DES)
2.7.3有关3DES的三个问题
2.8 AES: Advanced Encryption Standard
2.9 密码块链接(Cipher Block Chaining)
2.10 现代密码学:非对称加密
3. 公开密钥算法的使用
3.1 公开密钥算法的使用示例
3.2 公开密钥算法应满足的条件
3.3 RSA算法:生成密钥
3.4 RSA算法:加密和解密
3.5 RSA算法举例
3.6 RSA: 另一个重要的特性
3.7 RSA的特点
4. 报文完整性(报文鉴别)
4.1 朴素的想法:对整个报文加密
4.2 将报文鉴别与数据机密性分开
4.3 内容完整性和报文摘要
4.4 如何保证报文摘要不被修改?
4.5 基于哈希运算的报文鉴别
4.6 基于哈希运算的报文鉴别码
4.7 密码散列函数应满足的特性
4.8 密码散列函数标准
5. 数字签名
5.1用私钥加密报文摘要
5.2 如何可靠地获取公钥?
5.3 公钥证书
5.4 证书的获取
5.5 证书的验证
5.6 X.509证书
5.6.1 X.509证书格式
5.7 如何管理公钥和证书?
5.8 CA的一种组织结构
5.9 证书的撤销
5.10 证书目录
6. 鉴别(Authentication)
6.1 Authentication: ap5.0
6.2 X.509提供的单向鉴别服务
7. 电子邮件安全
7.1Pretty Good Privacy(PGP)
7.2 PGP的机密性服务
7.3 PGP的压缩服务
7.4 PGP的兼容电子邮件服务
7.5 鉴别 + 机密性 + 压缩 + 兼容性
7.6 PGP的邮件分段服务
7.7 使用PGP发送一个邮件
8. Secure sockets layer (SSL)
8.1 SSL/TLS(Transport Layer Security)
8.2 SSL握手协议
8.3
8.4IP安全协议(IPSec)
8.5专用网和虚拟专用网
8.6 VPN的实现
8.7 VPN的实现
8.8IPSec提供了一个安全体系框架
8.9 IPSec的组成
8.10 Security Association(SA)
8.11 IPSec的使用模式
8.12两种模式的比较
8.13 封装安全载荷(Encapsulating Security Payload)
8.13.1 传输模式下的ESP封装形式
8.13.2 隧道模式下的ESP封装形式
8.13.3 ESP协议提供的安全服务
9. IEEE 802.11 security
9.1 WEP:主机鉴别
9.2 WEP:数据加密
9.3 802.11 WEP加密
9.4 802.11 WEP加密的安全漏洞
9.5 802.11i: 增强的安全性
9.6 802.11i的操作
10. 防火墙
10.1 防火墙的类型
10.2包过滤防火墙
10.3 包过滤策略的例子
10.4 状态检测防火墙
10.5应用网关
10.6 Intrusion detection systems
10.7 Intrusion detection systems
第八章知识点回顾
- 1. 网络安全
- 2. 密码学术语
- 3. 公开密钥算法的使用
- 4. 报文完整性(报文鉴别)
- 5. 数字签名
- 6. 鉴别(Authentication)
- 7. 电子邮件安全
- 8. Secure sockets layer (SSL)
- 9. IEEE 802.11 security
- 10. 防火墙
以上是关于计算机网络基础知识总结的主要内容,如果未能解决你的问题,请参考以下文章