5.简单的网络协议(下)

七、网络分层

7.1 网络互连模型

OSI参考模型,具有7层结构
在这里插入图片描述

7.2 请求过程

在这里插入图片描述

7.3 网络分层

在这里插入图片描述

八、物理层(Physical)

物理层定义了接口标准、线缆标准、传输速率、传输方式等
在这里插入图片描述

8.1 数字信号、模拟信号

在这里插入图片描述
模拟信号:

 连续的信号,适合长距离传输

 抗干扰能力差,受到干扰时波形变形很难纠正

数字信号:

 离散的信号(不连续),不适合长距离传输

 抗干扰能力强,受到干扰时波形失真可以修复

8.2 数据通信模型

8.2.1 局域网通信模型

在这里插入图片描述
注意:网线不能超过100米

8.2.2 广域网通信模型

在这里插入图片描述

8.3 信道(Channel)

信道:信息传输的通道上,一条传输介质上(如网线)可以有很多条信道

8.3.1 单工通信

信号只能往一个方向传输,任何时候都不能改变信号的传输方向

 如:无线电广播、有线电视广播

8.3.2 半双工通信

信号可以双向传输,但是必须交替进行,同一时间只能往一个方向传输

 如:对讲机

8.3.3 全双工通信

信号可以同时双向传输

 如:手机(打电话,听说同时进行)

九、数据链路层(Data Link)

9.1 概念

链路:从1个节点到相邻节点的一端物理线路(有线/无线),中间没有其他交换节点
在这里插入图片描述
计算机0到路由器0算一条链路

数据链路:在一条连路上传输数据时,需要有对应的通信协议来控制数据的传输

 不同类型的数据链路,所用的通信协议可能是不同的

  广播信道:CSMA/CD协议(如:同轴电缆、集线器等组成的网络)

  点对点信道:PPP协议(如:2个路由器之间的信道)

数据链路层的3个基本问题:

 封装成帧

 透明传输

 差错检验

9.2 封装成帧

在这里插入图片描述
帧(Frame)的数据部分

 就是网络层传递下来的数据包(IP数据包,Packet)

最大传输单元MTU(Maximum Transfer Unit)

 每一种数据链路层协议都规定了所能够传送的帧的数据长度上限

 以太网的MTU为1500个字节

9.3 透明传输

在这里插入图片描述
使用SOH(Start Of Header)作为帧开始符

使用EOT(End Of Transmission)作为帧结束符

数据部分一旦出现了SOH、EOT,就需要进行转义
在这里插入图片描述

9.4 差错检验

在这里插入图片描述
FCS是根据数据部分 + 首部计算得出–用来作差错检验,与下一层计算出的数据进行比较

9.5 CSMA/CD协议–载波侦听、多路访问/冲突检测

使用了CSMA/CD的网络可以成为是以太网,它传输的是以太网帧

 以太网帧的格式有:Ethernet V2标准、IEEE的802.3标准

 使用最多的是:Ethernet V2标准

为了能够检测正在发送的帧是否产生了冲突,以太网的帧至少要64字节

用交换机组件的网络,已经支持全双工通信,不需要再使用CSMA/CD,但它传输的帧已然是以太网帧

 所以,用交换机组件的网络,已然可以叫做以太网

9.5.1 Ethernet V2帧的格式

在这里插入图片描述
首部:源MAC +目标MAC +网络类型

以太网帧:首部 + 数据 + FCS

数据的长度至少是:64 - 6 - 6 - 2 - 4 = 46字节

当数据部分的长度小于46字节时:

 数据链路层会在数据后面加一些字节填充

 接收端会将添加的字节去掉
在这里插入图片描述
长度总结:

 以太网帧的数据长度:46 ~ 1500字节(源MAC + 目标MAC + 网络类型 + 数据 + FCS)

9.6 PPP协议(Point to Point Protocol)

在这里插入图片描述

9.6.1 字节填充

在这里插入图片描述

9.7 网卡

在这里插入图片描述
网卡工作在数据链路层和物理层之间

 网卡接收到一个帧,首先会进行差错校验,如果校验通过,则接收,否则丢弃

 Wireshark抓到的帧没有FCS,因为它抓到的是差错校验通过的帧(帧尾的FCS会被硬件去掉)

 Wireshark抓不到差错校验失败的帧

十、网络层

10.1 概念

网络层数据包(IP数据包,Packet)由首部、数据两部分组成

 数据:很多时候是由传输层传递下来的数据段(Segment)
在这里插入图片描述
在这里插入图片描述

10.2 网络层首部–总长度

网络层首部总长度:占16位,首部 + 数据的长度之和,对大致是65535
在这里插入图片描述
由于帧的数据不能超过1500字节,所以过大的IP数据包,需要分成片(fragments)传输给数据链路层

 每一片都有自己的网络层首部(IP首部)

10.3 网络层首部–标识、标志

在这里插入图片描述

10.4 网络层首部–片偏移

在这里插入图片描述
在这里插入图片描述

10.5 ping - 几个用法

ping /?

 查看ping的用法

ping ip地址 -l 数据包大小

 发送指定大小的数据包

ping ip地址

 不允许网络层分片

ping ip地址 -i TTL

 设置TTL的值

通过tracert、pathping命令,可以跟踪数据包经过了哪些路由器

在这里插入图片描述

10.6 网络层首部–协议、首部校验和

协议(Protocol)

 占8位

 表明所封装的数据是使用了什么协议
在这里插入图片描述
首部校验和(Header Checksum)

 用于检查首部是否有错误

10.7 网络层首部–生存时间

生存时间(Time To Live,TTL)

 占8位

 每个路由器在转发之前会将TTL减1,一旦发现TTL减为0,路由器会返回错误报告

 观察使用ping命令后的TTL,能够推测出对方的操作系统,中间经过了多少个路由器
在这里插入图片描述

十一、传输层(Transport)

传输层有2个协议:

TCP,传输控制协议

UDP,用户数据报协议

11.1 TCP与UDP的区别

在这里插入图片描述
UDP应用于实时场景
详见博客:
https://blog.csdn.net/weixin_44116098/article/details/117675992

十二、应用层

12.1 应用层的常见协议

超文本传输:HTTP、HTTPS

文件传输:FTP

电子邮件:SMTP、POP3、IMAP

动态主机配置:DHCP

域名系统:DNS

12.2 域名(Domain Name)

由于IP地址不方便记忆,并且不能表达组织的名称和性质,人们设计出了域名(如:baidu.com)

 但实际上,为了能够访问到具体的主机,最终还是得知道目标主机的IP地址

 域名申请注册:https://wanwang.aliyun.com/

那是否可以全程直接使用域名,不用IP地址?

 IP地址固定4个字节,域名随随便便都至少10几个字节,这无疑会增加路由器的负担,浪费流量

根据级别不同,域名可以分为:

 顶级域名(TLD)

 二级域名

 三级域名

12.2.1 域名–顶级域名的分类

通用顶级域名(gTLD)

 .com(公司),.net(网络机构),.org(组织机构),.edu(教育)

 .gov(政府部门),.int(国际组织)

国家及地区顶级域名(ccTLD)

 .cn(中国),.jp(日本),.uk(英国)

新通用顶级域名(New gTLD)

 .vip,.xyz,.top,.club,.shop等

12.2.2 域名–二级域名

二级域名指顶级域名之下的域名

在通用顶级域名下,它一般指域名注册人的名称,如:google、baidu、microsoft等

在国家及地区顶级域名下,它一般指注册类别的,如:com、edu、gov、net等
在这里插入图片描述

12.3 DNS(域名系统,Domain Name System)

利用DNS协议,可以将域名(如baidu.com)解析成对应的IP地址(如220.181.38.148)

DNS可以基于UDP协议,也可以基于TCP协议,服务器占用53端口
在这里插入图片描述

12.3.1 DNS–常用命令

ipcofig/displaydns:查看DNS缓存记录

ipconfig/flushdns:清空DNS缓存记录

ipconfig/all:可以看到DHCP相关的详细信息,如:租约过期时间、DHCP服务器地址等

ping 域名

nslookup 域名

12.3.2 DNS–服务器

客户端首先会访问最近的一台DNS服务器(也就是客户端自己配置的DNS服务器)

所有的DNS服务器都记录了DNS根域名服务器的IP地址

上机DNS服务器记录了下一级DNS服务器的IP地址

全球一共13台IPv4的DNS根域名服务器、25台IPv6的DNS根域名服务器

12.4 DHCP(动态主机配置协议)

DHCP协议基于UDP协议,客户端是68端口,服务器是67端口

DHCP服务器会从IP地址池中,挑选一个IP地址“出租”给客户端一段时间,时间到期就回收它们

 平时家里上网的路由器就可以充当DHCP服务器

12.4.1–分配IP地址的4各阶段

DISCOVER:发现服务器

 发广播包(源IP是0.0.0.0,目标IP是255.255.255.255,目标MAC是FF:FF:FF:FF:FF:FF)

OFFER:提供租约

 服务器返回可以租用的IP地址,以及租用期限、子网掩码、网关、DNS等信息

注:这里可能会有多个服务器提供租约

REQUEST:选择IP地址

 客户端选择一个OFFER,发送广播包进行回应

ACKNOWLEDGE:确认

 被选中的服务器发送ACK数据包给客户端

至此,IP地址分配完毕

12.4.2 DHCP–4个阶段

在这里插入图片描述
在这里插入图片描述
Discover阶段的数据包:
在这里插入图片描述
offer阶段的数据包:
在这里插入图片描述
Request阶段的数据包:
在这里插入图片描述
ACK阶段的数据包:
在这里插入图片描述

12.4.3 DHCP–细节

DHCP服务器可以跨网段分配IP地址吗?(DHCP服务器、客户端不在同一个网段)

 可以借助DHCP中继代理(DHCP Relay Agent)实现跨网段分配IP地址

自动续约

 客户端会在租期不足时,自动向DHCP服务器发送REQUEST信息申请续约

常用命令:

 ipconfig/all:可以看到DHCP相关的详细信息,如租约过期时间、DHCP服务器地址等

 ipconfig/release:释放租约

 ipconfig/renew:重新申请IP地址、申请续约(延长租期)

12.5 HTTP

详见博客:
https://blog.csdn.net/weixin_44116098/article/details/117675992

十三、网络安全

13.1 网络通信中面临的4中安全威胁

在这里插入图片描述
截获:窃听通信内容

中断:中断网络通信

篡改:篡改通信内容

伪造:伪造通信内容

13.1.1 网络层–ARP欺骗

ARP欺骗,又称ARP毒化、ARP病毒、ARP攻击

ARP欺骗可以造成的效果:

 可以让攻击者获取局域网上的数据包甚至可以篡改数据包

 可以让网络上特定电脑之间无法正常通信(如“网络执法官”这样的软件)

 让送至特定IP地址的流量被错误送到攻击者所取代的地方

13.1.1.1 ARP欺骗–核心步骤举例

在这里插入图片描述

13.1.1.2 ARP–防护

静态ARP

DHCP Snooping:

 网络设备可借由DHCP保留网络上各电脑的MAC地址,在伪造的ARP数据包发出时即可侦测到

利用一些软件监听ARP的不正常变动

13.1.2 DoS(拒绝服务攻击)、DDoS(分布式拒绝服务攻击)

DoS:

 使目标电脑的网络或系统资源耗尽,使扶我暂时中断或停止,导致其正常用户无法访问

DDoS:

 黑客使用网络上两个或以上被攻陷的电脑作为“僵尸”向特定的目标发送DoS攻击

DoS攻击可以分为2大类:

带宽消耗型:UDP洪水攻击、ICMP洪水攻击

资源消耗型:SYN洪水攻击、LAND攻击

13.1.2.1 传输层–SYN洪水攻击

SYN洪水攻击:

 攻击者发送一系列的SYN请求到目标,然后让目标因收不到ACK(第3次握手)而进行等待、消耗资源

攻击方法:

 跳过发送最后的ACK信息

 修改源IP地址,让目标送SYN-ACK到伪造的IP地址,因此目标永不可能收到ACK(第3次握手)

防护

 参考:RFC 4987

13.1.2.2 传输层–LAND攻击(局域网拒绝服务攻击)

通过持续发送相同源地址和目标地址的欺骗数据包,使目标视图与自己建立连接,小号系统资源直至崩溃

有些系统存在设计上的缺陷,允许设备接受并响应来自网络,却宣称来自于设备自身的数据包,导致循环应答

防护:

 大多数防火墙都能拦截类似的攻击包,以保护系统

 部分操作系统通过发布安全补丁修复了这一漏洞

 路由器应同时配置上行与下行筛选器,屏蔽所有源地址与目标地址相同的数据包

13.1.2.3 DoS、DDoS防御

防御方式通常为:入侵检测、流量监测、多重验证

 堵塞网络带宽的流量将被过滤,而正常的流量可正常通过

防火墙:

 防火墙可以设置规则,如,允许或拒绝特定通讯协议、端口或IP地址

 当攻击从少数不正常的IP地址发出时,可以简单的使用拒绝规则组织一切从攻击源IP发出的通信

 复杂攻击难以用简单规则来阻止,如,80端口遭受攻击时不可能拒绝端口所有的通信,因为同时会阻止合法流量

 防火墙可能处于网络架构中过后的位置,路由器可能在恶意流量达到防火墙前即被攻击影响

交换机:大多数交换机有一定的速度限制和访问控制能力

路由器:和交换机类似,路由器也有一定的速度限制和访问控制能力

黑洞引导:

 将所有受攻击计算机的通信全部发送至一个“黑洞”(空接口或不存在的计算机地址)或者有足够能力处理洪流的网络设备商,以避免网络受到较大影响

流量清洗:

 当流量被送到DDoS防护清洗中心时,通过采用抗DDoS软件处理,将正常流量和恶意流量区分开

 正常的流量则回注客户网站

13.1.3 应用层–DNS劫持(域名劫持)

 攻击者篡改了某个域名的解析结果,使得指向该域名的IP变成了另一个IP

 导致对相应网址的访问被劫持到另一个不可达的或者假冒的网址

 从而实现非法窃取用户信息或者破坏正常网络服务的目的

HTTP劫持:对HTTP数据包进行拦截处理,如,插入JS代码

13.2 HTTP协议的安全问题

HTTP协议默认采用明文传输,因此会有很大的安全隐患

 常见的提高安全性的方法是:对通信内容进行加密后,在进行传输

常见的加密方式:

 不可逆

  单向散列函数:MDS、SHA等

 可逆

  对称加密(对称密码):DES、3DES、AES等–简单–>不安全–>加密解密速度快

在这里插入图片描述

  非对称加密(公钥密码):RSA等–复杂–>安全–>加密解密速度慢
在这里插入图片描述
 其它

  混合密码系统

  数字签名

  证书

13.2.1 常见英文

encrypt:加密

decrypt:解密

plaintext:明文

ciphertext:密文

设计4个虚拟人物

 Alice、Bob:互相通信

 Eve:窃听者

 Mallory:主动攻击者
在这里插入图片描述
在这里插入图片描述
如何防止被窃听?
在这里插入图片描述

13.2.2 单项散列函数

单向散列函数,可以根据消息内容计算出散列值

 散列值的长度和消息的长度无关,无论消息是1bit、10M、100G,单向散列函数都会计算出固定长度的散列值
在这里插入图片描述
特点:

 根据任意长度的消息,计算出固定长度的散列值

 计算速度快,能快速计算出散列值

 消息不同,散列值也不同

 具备单向性(不可逆)
在这里插入图片描述
在这里插入图片描述
单向散列函数–别称:

 消息摘要函数

 哈希函数

输出的散列值–别称:

 消息摘要

 指纹

常见的单向散列函数:

MD4、MD5

  产生128bit的散列值,MD是Message Digest的缩写,目前已经不安全

SHA-1

  产生160bit的散列值,目前已经不安全

SHA-2

  SHA-256、SHA-384、SHA-512,散列值长度分别是256bit、384bit、512bit

SHA-3

  全新标准

如何防止数据被篡改?
在这里插入图片描述
单向散列值的应用:

 防止数据被篡改

 密码加密

十四、HTTPS(超文本传输安全协议)

常被称为:HTTP over TLS、HTTP over SSL、HTTP Secure
在这里插入图片描述
HTTPS的默认端口号是443(HTTP是80)

14.1 SSL(安全套接层)/TLS(传输层安全性协议)

HTTPS是在HTTP的基础上使用了SSL/TLS来加密报文,对窃听和中间人攻击提供合理的防护
在这里插入图片描述
在这里插入图片描述
SSL/TLS也可以用在其他协议上,如:

 FTP->FTPS

 SMTP->SMTPS

SSL是TLS的前身

14.1.1 SSL/TLS–工作在哪一层

在这里插入图片描述

14.1.2 OpenSSL

OpenSSL是SSL/TLS协议的开源实现,支持Windows、Mac、Linux等平台

Linux、Mac一般自带OpenSSL

常用命令:

生成私钥:openssl genrsa -out wj.key

生成公钥:openssl rsa -in wj.key -pubout -out wj.pem

可以使用OpenSSL构建一套属于自己的CA,自己给自己颁发证书,称为“自签名证书”

14.1.3 HTTPS的成本

证书的费用

加解密计算

降低了访问速度

有些企业的做法:包含敏感数据的请求才是用HTTPS,其他保持使用HTTP

14.2 HTTP的通信过程

总的可以分为3大阶段:

①TCP的3次握手

②TLS的连接

③HTTP请求和响应
在这里插入图片描述

14.2.1 TLS 1.2的连接

大概有10个步骤

图片中省略了中间产生的一些ACK确认
在这里插入图片描述
①Client Hello:

 TLS的版本号

 支持的加密组件(Cipher Suite)列表

  加密组件是指所使用的加密算法及密钥长度等

 一个随机数(Client Random)
在这里插入图片描述
②Server Hello:

 TLS的版本号

 选择的加密组件(Cipher Suite)

  是从接收到的客户端加密组件列表中挑选出来的

 一个随机数(Client Random)
在这里插入图片描述
③Certificate:

 服务器的公钥证书(被CA签过的)
在这里插入图片描述
④Server Key Exchange:

 用以实现ECDHE算法的其中一个参数(Server Params)

  ECDHE是一种密钥交换算法

  为了防止伪造伪造,Server Params经过了服务器私钥签名
在这里插入图片描述
⑤Server Hello Done:

 告知客户端,写上部分结束
在这里插入图片描述
 目前为止,客户端和服务器之间通过明文共享了

  Client Randon、Server Random、ServerParams

 而且,客户端也已经拿到了服务器的公钥证书,接下来,客户端会验证证书的真实有效性

⑥Client Key Exchange:

 用以时间ECDHE算法的另一个参数(Client Params)
在这里插入图片描述
 目前为止,客户端和服务器都拥有了ECDHE算法需要的2个参数:Server Params、Client Params

 客户端、服务器都可以使用ECDHE算法

  根据Server Params、Client Params计算出一个新的随机密钥串:Pre-master secret

  然后结合Client Random、Server Random、Pre-master secret生成用以加密会话的会话密钥

⑦Change Cipher Spec:

 告知服务器:之后的通信会采用计算出来的会话密钥进行加密

⑧Finished:

 包含连接至今全部报文的整体校验值(摘要),加密之后发送给服务器

 这次握手写上是否成功,要以服务器是否能够正确解密该报文作为判定标准

⑨Change Cipher Spec:

⑩Finished:

 到此为止,客户端服务器都验证加密解密没问题,握手正式结束

 后面开始传输加密的HTTP请求和响应
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值