网络安全之OSI七层模型详解

OSI七层模型分为控制层(前三层)和数据层(后四层)。从第七层到一层为;

应用层(7)接收数据

表示层(6)将数据翻译为机器语言

会话层(5)建立虚连接避免不同流量影响控制层面

传输层(4)区分流量与定义数据传输方式

网络层(3)为数据编址,寻址

数据链路层(2)定义格式,局域网或广域网

物理层(1)网络硬件的物理性质

前四层均在主机设备,后三层均在所有网络设备。

应用层:接收用户的数据。

表示层:将逻辑语言(即软件语言)转换成为机器语言(二进制语言),翻译,加密。

会话层:为每一种流量建立一条虚连接(避免每一种类型数据流量混杂,放置不同类型流量互相影响控制层面)。

传输层:两大功能;1.区分流量。2.定义数据传输方式。

1.区分流量;打上端口号(port ID)1-65535,其中分为静态端口和动态端口,静态端口(1-1023)是与流量一一对应并绑定的,其每一个数字都有对应的服务。动态端口(1024-65535)。常见的端口号有;HTTP--80(使用TCP协议),HTTPS--443(TCP),TELNET远程登录服务--23(TCP),SSH远程登陆“安全性较高,加密认证”--22(TCP),RIP--520(UDP),DNS--域名解析53(TCP和UDP)。

动态端口与流量一一对应,静态端口与流量一一对应并绑定。

2.定义数据传输方式:两种传输方式,可靠传输与不可靠传输。

可靠体现在于保证信息能传过去,不可靠只管传不管到,就相当于都能发数据,但前者保证传到,后者表示我传了,但是到没到就不知道了。

可靠传输的好处:数据完整,数据量小。

不可靠传输:1.大流量。2.实时性较高。3.对数据丢失不敏感。———适合于视频语音这种实时性比较高的传输,要求延迟低,不可能这边说了句话传过去时都过了几分钟甚至于几小时那种,可靠传输虽然也能但是对设备性能要求太高所以不合适。

怎么保证可靠传输有两个个机制保障:1.确认机制。2.重传输机制。——确认机制顾名思义就是传过去后要对方返回一个确认包,确认自己收到,若是在发送数据一段时间后没有收到对方发回的确认包则再发一次数据过去,直到收到对方发回的确认包,这就是重传输机制。

传输层封装有TCP和UDP,这两个都有一个端口号,它们将数据封装成一定格式。

TCP:传输控制协议,是一种面向连接的可靠协议。

UDP:用户数据包协议,是一种非面向连接的不可靠协议。

面向连接就是在数据连接之前,双方进行协商,确保数据可以传输,中间网络是通畅的。

如何保证面向连接;使用三次握手机制,下图为TCP三次握手机制讲解;

7d6a280a00254c6aa9f624fa9ba326b2.png

TCP三次握手可靠在于其采用的隐式确认+隐式确认,但通过TCP三次握手并不能说明TCP是一个面向连接的可靠协议,这只能保证面向连接,其可靠性要靠确认机制与重传输机制。

下图为TCP四次分手机制讲解:

9bcb98fd8b2d4638a4e0260400b54219.png

以上四次分手中,客户端都是请求对方关闭对自己端口要断开连接,然后服务器确认之后看有无数据要发,发完数据或没有数据发则请求对方也关闭开放的这个端口,最后客户端再进行一个确认即可。注意的是中间有两个序列号用来确认对方身份,回复过来的就要序列号+1。

在传输TCP数据中有优化机制。

优化机制包括:流程控制(滑动窗口机制)、重排序;

流程机制:发送方根据接收方的处理能力与接收缓存大小来控制发送数据的速率,避免超出接收方能力而不能及时处理,TCP要求发送方维持一个接收窗口,接收方根据当前接收缓存大小动态调整接收窗口大小,其大小反映了接收方的容量。

重排序:TCP报文段作为IP数据来传输,在IP数据包的到达可能会失序,TCP报文段也可能失序,特殊情况下,TCP会将接收到的数据进行重排序,确保顺序正确后再交给应用层。

数据的分段传输:传输较大数据时会按照MTU值进行分段传输。

MTU:最大传输单元,默认为1500字节,可以修改(但不建议修改),超过1500字节就切片发送保证数据为1500字节以内。

扩充:

TCP数据帧与UDP数据帧结构;

TCP数据结构:4399d31e1ec1461e9415cbca0fc12b11.png

每一行32比特(4字节),一共5行,OPTION可选项与padding是垫片,填充项进行全0填充,这一行可有可无,DATA为我们的真实传输数据内容。所以标准的TCP头部大小为20个字节,source port为源端口(一般为随机的端口号),destination port为目标端口(访问的目标端口号)。sequence number为序列号,代表着数据的顺序。acknowledgement number为确认号,确认数据时使用,如果不需要确认则为全0,若是需要确认例如四次分手中的,ACK+序列号,则为序列号+1。dataoffset为数据偏移值,用于过于大的数据时进行分片,代表这个分片距离完整数据包头部的偏移值,第一个分片偏移值为0,第二个分片偏移值为第一个分片数据大小,第三个分片偏移值为前两个分片数据大小之和……。reserved为保留位。UGR为紧急值。ACK为标记位。PSH为暂停位,为1则暂停传输数据。RST为重置位。SYS为同步请求。FIN为终止。widow为窗口号,用于一次性发送多少个数据的确认。checksum为校验和,用于计算完整性。urgent pointer为紧急指针,一般默认为0用不到,option国内一般不用,国外的用。

 

UDP数据结构:

2450d19a59a64c1ca260c493c4db7470.png

length为长度。标准的UDP大小为8个字节。

IPv4和IPv6数据包头部结构:

d151c3d9a22a4538b9f8da7aaca82d59.png

IPv4头部大小一般默认为20字节。version版本号大小4bit,0100=4为IPv4,0110=6为IPv6。IHL为IP头部长度,大小为4bit,默认值为0101=5,单位是32bit(4字节)也就是说IPv4头部大小为60字节到20字节之间,但其大小只能在20到60字节之间四字节递增。type of service 为服务类型TOS,大小为8bit,对数据流量进行标记时使用,QOS(服务质量)就是在此标记上进行,但TOS打标记不牵扯到QOS。total length为总长度,占16bit,描述的是ip数据包的总长度(头部加数据部分)。identicaltion 为标识符占16个bit,判断分片之间是不是一个数据的分片。flags占3个bit第一个bit为R保留位,第二个bit为DF不分片位若为0则没有置位代表数据被分片了,第三bit位MF更多分片位为0时代表后面没有分片了。fragment offset为分片偏移值占13bit,单位是字节,该分片距离完整数据包头部的前面的偏移值是多少(与TCP偏移值相似)。time to live 生存时间占8bit,范围0~255,单位最早为秒,现在为跳数(即可被路由次数,就是经过路由器次数)。protocol 协议号占8bit 范围0~255,0被保留,范围为1~255,用来描述上层使用什么协议。header checksum头部校验和占8bit,用来计算IP头部完整性。source address 源IP地址代表从哪来。destination address 目标IP地址,代表去哪里。options可选项,定义数据传输过程中进行标识,主要四个功能,严格选路;将数据到达目标地址中经过的所有路由记录在option中,严格选路就规定了数据必须走哪条路。松散路由;根严格选路相似,但是数据经过指定的几个路由器即可。记录路由;把数据怎么去的和回来时经过的路由器IP记录。时间戳;数据到达目标的时间。padding 填充项,默认为空,若是有信息,OPTION+PADDING必须是32bit或32bit的倍数。

IPv6针对IPv4存在的问题进行了重新的设计;IP长度128位bit。IPv4中的红色部分在IPv6中取消了,但是IPv6中加入了扩展头部进行分片之类的功能,因为2,4层都要进行校验,认为3层就没必要校验了。蓝色部分只是换了个名。traffic class流量分类。payload length总长度。next header下一个头部。hop limit跳数。flow label 流标签,目前是保留的。

————————————————————————————————————————

网络单元:

最小单位;bit(比特),一个二进制0,1

1000bit=1kb

1000kb=1Mb

1000Mb=1Gb

1000Gb=1Tb……

byte(字节)一个字节为8bit

1000B=1KB

1000KB=1MB

1000MB=1GB

1000GB=1TB……

以上单位中一个为bit一个为字节,其中换算中前者是小写b后者是大写B。

为什么是1000kb=1Mb一千为换算而不是1024,因为互联网中是1000,没有1024这一个概念,文件系统NTFS或FAT32,exFAT是按照1024个单位去换算的。这也是为什么100G的U盘插上电脑后,读取文件时是按照1024单元换算,导致我们看到的是小于100G的内存。

bit我们只在统计流量时使用,一般是用字节。

速率单位:

100Mbps=100兆比特每秒

12.5MBPS=12.5兆字节每秒

————————————————————————————————————————

PDU(协议数据单元);

4层PDU,也叫segment、分段、分片。数据分段,分片就是说的4层PDU。

4层PDU关注的是TCP还是UDP,端口号是多少,不同层PDU又有不同的叫法,4层PDU还有一个读法,保温,数据报文。

5,6层有的认为没有PDU,华为叫7层PDU为APDU,5层为SPDU,6层为PPDU。

思科对567层没有PDU的叫法。

网络层:

网络层的主要内容就是对数据进行编制,寻址。

编制协议:IP(IPv4,IPv6),IPX,aplle talk,novell,NSAP

IP地址:32个二进制,0和1构成用于编制。

网络掩码:32个二进制,连续的1+连续的0构成,连续的1代表网络位,连续的0代表主机位。

IPv4:采用32位二进制进行编制,一个二进制称为一位bit。

IPv6:采用128位二进制进行编制。

地址分类:

地址一共分为A/B/C/D/E共五类地址

地址分类详情可以查看该本文:TCP/IP卷一详解第二章Internet地址结构概要-CSDN博客

需要补充的是:特殊地址都不能配置;

单播:A、B、C类都属于单播地址,点对点(一对一)通信。

组播:一对多,D类地址:源服务器将资源发送到一个组播组上,当用户需要资源时,访问该组播组并成为组员,然后该组播组将资源复制传递给用户,可以更好的将数据转发和复制给尽可能远的网络节点,减轻资源服务器的负载。

1、1.0.X.X 无效地址(保留地址) 0.0.0.0 无效地址 占位

2、127.0.0.1 本地测试(127.X.X.X测试地址)

3、网络号:主机位全为0的IP就不是IP了,是一个网段。

4、受限广播地址:255.255.255.255 全为1,只能在同一网段中广播

5、直接广播地址:定向广播地址,网络位不变,主机位全为1;例如192.168.56.255/24 向192.168.56.0网段中所有用户发送广播,可以指定网段内广播,只需地址改为该网段的网络号不变,主机位全为1.

6、本地链路地址(link-local):{169.254.0.0 255.255.0.0}只有在上不了网时才出现,只有微软的有,当没有DHCP分配地址时,系统分配的。

该层3层PDU:packet包(数据包)

数据链路层:

数据链路层进行二层封装用来判断数局域网(以太网Ethernet)或广域网(PPP,HDLC,ATM)

二层根据物理层的不同传输介质来定义二层的格式。

数据链路层会根据不同的物理封装来定义二层封装,主要分为局域网封装和广域网封装。MAC地址也叫物理地址,硬件地址,烧录地址。

局域网封装分为两个子层:

LLC层:逻辑链路控制子层;主要任务是描述上层使用的什么协议。

MAC层:介质访问控制子层/媒体访问控制子层;主要用于我们在一个网段内通信,怎么通信。

MAC地址构成:48个二进制书写12个十六进制,书写方式为减分十六进制或点分十六进制;

减分十六进制XX-XX-XX-XX-XX-XX,用于终端,主机,手机,服务器。

点分十六进制XXXX.XXXX.XXXX,用于连接设备上,路由器,防火墙ASA。

MAC地址共48位二进制,由美国一机构掌握,买一个即前24位固定的MAC地址范围。

前24位:厂商ID——OUI(统一资源标识符)

后24位:产品ID——interface ID(接口标识符)

MAC地址无法修改但能伪装;优先网卡配置高级里>本地管理地址中>手动输入伪装。无线的比较麻烦。

二层PDU:frame帧

物理层:

该层关注网络硬件的机械特性、光学特性、电学特性(传输介质:光纤,双绞线)

双绞线(RJ45)又叫网线,一根网线中有8根线,两两绞合在一起。

双绞线有两种线序:

568A线序:绿白,绿,橙白,蓝,蓝白,橙,棕白,棕

568B线序:橙白,橙,绿白,蓝,蓝白,绿,棕白,棕

平行线:又称直通线,线序相同,不同层设备使用平行线

交叉线:线序不同,同层设备使用交叉线。

全反线:又称为console线,配置线,线序相反,用于用户控制网络设备。

屏蔽双绞线(STP):屏蔽信号,屏蔽干扰,但也会减弱自身传输的信号,传输距离不远。

非屏蔽双绞线(UTP):不屏蔽信号。

弱电:路由器,双绞线使用。

强电:工业用电。

光纤两优点:快、抗干扰。

双绞线按拧度分类:3类,4类——(10Mbps),5类,超5类——(100Mbps),超6类——(1000Mbps)在6类线中8根线同时使用。一般双绞线中的8根线不是8根同时使用的,只使用其中的一部分,剩下的用作电话线或备用。

拧度:1cm拧一圈,1.5cm拧一圈等,这种称为拧度。

注意的是,并不是拧度越高传数据路带宽越高,主要是看材质。

 

OSI七层模型各层的工作的基本原理我们就差不多了解了,总的来讲OSI七层可以规划为一个数据的封装与解封装。

我们把数据产生的过程称为封装。接收数据进行读取的过程称为解封装。

下图为一个数据从产生传输到接收的完整封装和解封装过程:

e6e4cc09eba443249c3b9554f4c0b805.png

网络层:

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值