专栏首页python3OSI第3层:网络层

OSI第3层:网络层

3 层使用了四个基本过程:

1) 编址;(IP地址)

2) 封装;(源IP地址和目的IP地址)

3) 路由;(数据包选择路径并将其转发到目的主机)

4) 解封。(网络层解封该数据包,然后将数据包中包含的第 4 层 PDU 向上传 送到传输层的相应服务。)

网络层协议:

1) 在传送用户数据的网络层执行的协议包括:

2) Internet 协议第四版 (IPv4)

3) Internet 协议第六版 (IPv6)

4) Novell 互联网分组交换协议 (IPX)

5) AppleTalk

6) 无连接网络服务 (CLNS/DECNet)

IPv4 的基本特征是:

1) 无连接 - 发送数据包前不建立连接。(无连接的意思就是:PC-A给PC-B发送数据包时,事先不和PC-B打招呼。如果数据包抵达目的顺序出现错误,就只能靠上层服务来解决。)

2) 尽力(不可靠)- 不使用任何开销来保证数据包送达。(IP 不具备管理和恢复未送达数据包或已损坏数据包的功能。)

3) 介质无关性 - 其运作与传送数据的介质无关。

IPV4数据包报头:

本课程将考虑以下 6 个关键字段:

1) IP 源地址(IP 源地址字段包含一个 32 位二进制值,代表数据包源主机的网络层地址。)

2) IP 目的地址(IP 目的地址字段包含一个 32 位二进制值,代表数据包目的主机的网络层地址。)

3) 生存时间 (TTL)(生存时间 (TTL) 是一个 8 位二进制值,表示数据包的剩余“寿命”。数据包每经一个路由器(即每一跳)处理,TTL 值便至少减一。当该值变为零时,路由器会丢弃数据包并从网络数据流量中将其删除。此机制可以防止无法到达其目的地的数据在路由环路中的路由器之间无限期转发。)

4) 服务类型 (QoS)(服务类型字段包含一个 8 位二进制值,用于确定每个数据包的优先级别。也就是说优先处理谁的路由

5) 协议 (此 8 位二进制值表示数据包传送的数据负载类型,网络层参照协议字段将数据传送到相应的上层协议。)

6) 片偏移量(片偏移量字段用于标识数据包的数据片在重建时的放置顺序。也就是重组数据包)

更多片 (MF) 标志是标志字段中的一个位,与片偏移量共同用于数据包的分片和重建。如果设置了更多片标志位,则表示这并非数据包的最后一个数据片。当接收方主机收到 MF = 1 的数据包时,会检查片偏移量以便了解此数据片在重建的数据包中应放置的位置。当接收方主机收到 MF = 0 且片偏移量中的值非零的帧时,会将该数据片作为重建的数据包的最后一部分放置。未分片数据包的分片信息全部为零(MF = 0,片偏移量 =0)。

不分片 (DF) 标志是标志字段中的一个位,表示不允许对数据包分片。如果设置了不分片标志位,则表示不允许对此数据包分片。如果路由器必须对数据包分片后才能将其向下传送到数据链路层但 DF 位却设置为 1,则该路由器将丢弃此数据包。

IPv4 报头的其它字段

版本 - 包含 IP 版本号 (4)

报头长度 (IHL) - 指定数据包报头的大小。

数据包长度 - 此字段以字节为单位,提供了包括报头和数据在内的整个数据包的大小。

标识 - 此字段主要用于唯一标识原始 IP 数据包的数据片。

报头校验和 - 校验和字段用于对数据包报头执行差错校验。

选项 - IPv4 报头中为提供其它服务另行准备了一些字段,但这些字段极少使用。

网络的划分依据包括以下因素:(优点就是增加了安全性、方便了管理、减少广播域的大小。)

1) 地理位置;

2) 用途;

3) 所有权.

什么是分层编址:

Pv4 地址具有由两个部分组成:第一部分标识网络,第二部分则标识网络中的主机。这两部分对于完整的 IP 地址缺一不可。

IPv4 地址被划分为八个位一组(二进制八位数)的四组。将每个二进制八位数转换为其十进制数值后,完整的地址可以写作四个十进制数值,并用点号加以分隔。

例如 192.168.18.57

如图所示,此例中的前三个二进制八位数 (192.168.18) 可以标识该地址的网络部分,最后一个二进制八位数 (57) 标识主机。

这就是分层编址 网络部分表明了每个唯一的主机地址位于哪个网络中。路由器只需知道如何到达每个网络,而不需要知道每台主机的位置。

地址中用作网络部分的位数称为前缀长度。

路由表中的路由有三个主要特点:

1) 目的网络

2) 下一跳

3) 度量

路由是精确匹配的:

什么叫精确匹配,例如前往 10.1.1.55 的数据包,其路由选择的优先顺序将是:

1. 10.1.1.0

2. 10.1.0.0

3. 10.0.0.0

4. 0.0.0.0(如果配置了此默认路由,0.0.0.0就是指所有网络。)

5. 丢弃

路由器处理数据包的过程:

1) 路由器收到一个数据包后删除第2层封装;

2) 提取目的IP地址;

3) 检查路由表中是否有匹配条目;(无匹配则丢弃)

4) 在路由表中找到此网络;

5) 重新封装数据包;

6) 将数据包发送到那个网络去。

静态路由:需要手工在路由器上配置目的网络的下一条地址,缺点维护复杂。

动态路由:路由器动态共享其路由协议所依据的规则集,就是把自己的路由表共享给邻居 ,(缺点就是:交换路由信息增加了消耗网络带宽的开销)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • SendPkt快速入门[Python]

    SendPkt快速入门 作者: gashero 电邮: harry.python@gmail.com 原文地址: http://gashero.yeax.com...

    py3study
  • Python Scapy(2.3.1)文

    http://blog.csdn.net/dj1174232716/article/details/44784081

    py3study
  • Python海量数据处理之_Hadoop

     前两篇分别介绍了Hadoop的配置方法和基本原理,本篇将介绍如何让程序借助Hadoop调用服务器集群中的算力。Hadoop是Java语言实现的,它不仅支持Ja...

    py3study
  • 如何解决web系统session劫持

    往期精选 session劫持是一种比较复杂的攻击方法。大部分互联网上的电脑多存在被攻击的危险。这是一种劫持tcp协议的方法,所以几乎所有的局域网,都存在被劫持 ...

    企鹅号小编
  • 为什么时间戳对网络流量数据包捕获很重要?

    网络上发生的所有事件都是时间敏感的,这就是为什么在讨论数据包捕获和分析时,给数据包加上时间戳非常重要。 此功能不仅可以防止和分析网络攻击,而且还能...

    用户6792078
  • 网络测量之EverFlow(SIGCOMM-2015)

    SIGCOMM 2015年中,由微软研究院发表了题为《Packet-Level Telemetry in Large Datacenter Networks》的...

    我是东东东
  • iptables

    工作原理: ? 基础: 规则(rules)其实就是网络管理员预定义的条件,规则一般的定义为“如果数据包头符合这样的条件,就这样处理这个数据包”。规则存储在内核空...

    千往
  • Linux基础服务之防火墙

    上面的5点就是Linux防火墙发挥作用的地点,在netfilter中由5个链表示,分别是:

    懒人的小脑
  • TCP三次握手详解:传输控制块TCB以及积极和消极的连接建立方式

    TCP协议目的是为了保证数据能在两端准确连续的流动,可以想象两个建立起TCP通道的设备就如同接起了一根水管,数据就是水管中的水由一头流向另一头。然而TCP为了能...

    望月从良
  • 网络安全自学篇(十三)| Wireshark抓包原理(ARP劫持、MAC泛洪)及数据流追踪和图像抓取(二)

    自幼受贵州大山的熏陶,养成了诚实质朴的性格。经过寒窗苦读,考入BIT,为完成自己的教师梦,放弃IT、航天等工作,成为贵财一名大学教师,并想把自己所学所感真心传授...

    释然

扫码关注云+社区

领取腾讯云代金券