计算机网络(10)-网络层(二)

目录

一、IP数据包结构

二、IP协议

1、静态路由

2、动态路由


一、IP数据包结构

一个IP数据包由首部数据两部分组成。

  • 首部的前一部分时固定长度,共20个字节,是所有IP数据包必须有的。
  • 在首部的固定部分的后面是一些可选字段,其长度是可变的。

计算机网络(10)-网络层(二)_第1张图片

IP数据包首部详细结构构成图示

计算机网络(10)-网络层(二)_第2张图片

(1)版本:用来表示TCP/IP协议的版本 v4/v6,抓包数据如下

计算机网络(10)-网络层(二)_第3张图片

(2)首部长度:在首部加入可选字段的情况下,这个值将非常有用

计算机网络(10)-网络层(二)_第4张图片

(3)区分服务:用来区分数据包的类型,不同的数据包添加不同的数据包标识

应用场景:在同一个网段内,不同服务的数据包有不同的优先级,比如即时通讯的数据包就对数据的传送有着优先的要求,而邮箱传送的邮件数据包的及时性就没有语音那么高。因此,在同一网段内,需要根据语音数据包的服务标记,优先传送语音数据包

计算机网络(10)-网络层(二)_第5张图片

(4)数据包总长度和数据分片

数据包和数据帧的最大长度是不一样的,数据包是在网络层,最大长度为65535个字节(64K),而数据帧是在数据链路层,最大长度是1500字节,此时,如过数据包的长度超过1500(1480)个字节,那么数据包就需要进行分片。每一个分片的数据都需要加上数据包的首部信息。

如下图数数据帧的最大长度图示:

计算机网络(10)-网络层(二)_第6张图片

数据帧的长度范围是64-1500个字节,因为数据帧还包括18个字节的首部,所以真正的数据包部分是46-1500个字节;同时数据包部分的首部占20个字节,其实真实数据部分就是1480字节。

计算机网络(10)-网络层(二)_第7张图片

(5)标识:数据分片后,根据标识,识别同一数据包的内容,同一数据包下的数据分片具有相同的数据标识

(6)标志:网络层用来区分收到的数据包是一个完整的数据包还是一个数据包的分片

没有分片的数据包抓包图示:

计算机网络(10)-网络层(二)_第8张图片

分片的数据包抓包图示:

计算机网络(10)-网络层(二)_第9张图片

(7)片偏移:用来识别数据分片在数据包中的位置,用来进行数据拆分和组装。

计算机网络(10)-网络层(二)_第10张图片

(8)生存时间:生存时间就是TTL,数据包在网络中被转发的次数,当TTL为0时,将被丢弃。

(9)协议:用来区分是发送给哪个协议处理的数据

如果是ICMP协议,那就使用ICMP协议进程进行处理,如果是TCP协议,那就把数据发送到传输层进行处理。

计算机网络(10)-网络层(二)_第11张图片

常见的协议号:ICMP协议号为1、IGMP协议号为2、TCP协议号为6、UDP协议号为17、IPv6协议号为41、OSPF协议号为89

计算机网络(10)-网络层(二)_第12张图片

(10)首部检验和:首部检验和(16)位只检验数据报的首部不检验数据部分,这里不采用CRC检验码而采用简单的计算方法。

检验过程图示:

计算机网络(10)-网络层(二)_第13张图片

抓包图示:如果在传输过程中数据错误的话,图示字段Good值变为False;Bad值变为True

计算机网络(10)-网络层(二)_第14张图片

二、IP协议

所有选路的协议都属于IP协议,主要有RIP协议,OSPF协议等等。网络层提供的服务就是在不同网段之间转发数据包。

RIP协议根据数据包沿途所经过的路由器数量来选择最优路径,所经过的路由器数量越少,路径最优。

OSPF协议根据带宽来选择最优路径。

1、静态路由

静态路由需要手动进行配置路由表,只适用于小规模网络且不然能够自动调整路由,灵活性差

计算机网络(10)-网络层(二)_第15张图片

静态路由在复杂的网路下需要配置大量的路由信息,而且,当网络中出现网络故障时,路由器也不能自动学习选择新的路由路径。

计算机网络(10)-网络层(二)_第16张图片

2、动态路由

RIP协议,路由器使用RIP协议后,会周期性的在网络上发广播,获取联通的路由器地址。如果联通中的路由器有出现故障的情况,也能够即时的发现,根据新的情况更新路由表。

RIP协议允许的路由器最多途经数量为15个,即最大跳数为15个。

计算机网络(10)-网络层(二)_第17张图片

图示路由器运行详细信息:

计算机网络(10)-网络层(二)_第18张图片

1、网络层提供的服务

        网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括寻址和路由选择、连接的建立、保持和终止等。它提供的服务使传输层不需要了解网络中的数据传输和交换技术。

        网络层的主要功能包括:// 负责数据的路由和转发

  1. IP地址分配与路由:网络层使用IP(Internet Protocol)地址来标识不同的计算机和设备,并通过路由算法将数据包从源主机传输到目标主机。
  2. 数据包分片与重组:当数据包的大小超过网络传输的最大限制时,网络层可以将数据包分割为更小的片段进行传输,并在目标主机上将这些片段重新组装成完整的数据包。
  3. 路由选择:网络层根据网络拓扑和路由表选择合适的路径来传输数据包。路由选择算法可以根据不同的条件和度量标准来确定最佳路径,例如最短路径、最快路径等。
  4. 数据包的传输控制:网络层可以对数据包进行传输控制,确保数据包按照正确的顺序到达目标主机,并提供差错检测和纠正功能,以确保数据的可靠传输。
  5. 多播和广播:网络层支持多播和广播传输方式。多播传输将数据包同时发送给多个目标主机,广播传输将数据包发送给网络中的所有主机。

        常见的网络层协议包括IP协议、ICMP协议、ARP协议等。其中,IP协议是网络层最重要的协议,它定义了数据包的格式、寻址方式和路由选择规则,是互联网上数据传输的核心协议。

        计算机网络层负责处理数据的路由和转发,确保数据能够在不同的主机之间可靠地传输。它是实现网络通信的重要组成部分,提供了灵活、可靠和高效的数据传输服务。// 不负责丢包检验和丢包重传

        网络层负责在不同网络之间转发数据包,基于数据包的IP地址转发,但是不负责丢包检验和丢包重传。

        如下图,H1发送给H2的分组可能沿着不同的路径传送:

计算机网络(10)-网络层(二)_第19张图片

        如下图,数据在互联网中的传送,网络层会独立出来,不用去管物理层用的什么传输介质,也不用管数据链路层用的何种协议,这样做有利于问题的隔离。

计算机网络(10)-网络层(二)_第20张图片

2、网络层的数据包是怎么转发的?

        网络层的数据包在网络中的转发是通过路由器(Router)进行的。当一个数据包到达路由器时,路由器根据网络层的信息(如IP地址)来决定如何转发该数据包。

        以下是网络层数据包转发的一般过程:

  1. 目标地址识别:路由器首先检查数据包的目标IP地址,确定它的目的地。
  2. 路由表查询:路由器会查询其本地的路由表,这是一张记录了不同网络地址及其对应的出口接口的表格。路由表告诉路由器如何到达不同的网络。
  3. 下一跳选择:根据路由表的信息,路由器确定下一跳,即数据包应该通过哪个接口发送出去。下一跳可能是连接到其他网络的接口,或者是下一跳路由器的接口。
  4. 数据包转发:一旦确定了下一跳,路由器会将数据包发送到相应的接口,以便转发到正确的目标网络。
  5. TTL减少:数据包在转发过程中,网络层的数据包头部通常包含一个TTL(Time to Live)字段。每经过一个路由器,TTL值减1。如果TTL达到0,路由器会丢弃该数据包,防止数据包在网络中无限循环。
  6. 数据包到达目的地:通过一系列的路由器转发,数据包最终到达目标网络,并被传送给目标主机。

        这个过程是基于网络中的路由协议和路由器之间的交互来实现的。路由器通过交换路由信息,建立并更新路由表,以便有效地转发数据包到目标网络。常见的路由协议包括OSPF、BGP等,它们通过各种算法和机制来确定最佳路径和更新路由信息。

        通过路由器的转发,网络层数据包可以在不同的网络中进行跨越和传输,实现了数据的可靠路由和交付。

        如下图,是PC-4和PC-3的网络通信架构图示 //演示两个不同网络段的数据通信

计算机网络(10)-网络层(二)_第21张图片

        10网段到12网段,其中经过了交换机,经过了路由器,最后到达目标PC。

        其中,每个网络层对应的数据传输情况如下图所示://PC-4发送数据到PC-3,封包解包过程

计算机网络(10)-网络层(二)_第22张图片

        计算机网络通讯的注意事项:

        (1)应用层准备数据、传输层进行数据分段、网络层加上IP地址(原地址、目标地址)、数据链路层加上物理层MAC地址和帧检验序列、物理层发送bit流。

        (2)计算如果想跨网络通信,必须得配置网关。网关的配置一般为本网段的第一个地址,如10.0.0.1。

        (3)数据链路层发送的两种情况:使用自己的子网掩码判断自己在哪个网段,使用自己的子网掩码判断目标地址在哪一个网段,如果是同一个网段,使用ARP协议广播解析目标IP地址的MAC地址,如果不在同一个网段,便把数据发送给网关所在的MAC地址。

        (4)病毒对计算机网络层设备的影响:对局域网发送大量广播包,使本网段的设备忙着转发无用的数据包。对外网进行大量的网站访问占用网络带宽。

3、计算机网络层中的协议

        计算机网络层涉及多种协议,以下是一些常见的计算机网络层协议:

  1. IP(Internet Protocol):IP协议是网络层最重要的协议,用于在互联网上进行数据包的路由和传输。它定义了数据包的格式、寻址方式和路由选择规则。
  2. ICMP(Internet Control Message Protocol):ICMP协议用于在IP网络中传输错误消息和操作控制消息。它常用于网络故障排除、诊断和网络状况监测。// ping命令
  3. ARP(Address Resolution Protocol):ARP协议用于将IP地址转换为物理网络地址(如MAC地址)。它帮助在局域网上确定目标主机的物理地址,以便进行直接通信。
  4. RARP(Reverse Address Resolution Protocol):RARP协议是ARP的反向过程,它用于将物理网络地址(如MAC地址)转换为IP地址。
  5. IPsec(Internet Protocol Security):IPsec是一组协议和算法,提供了网络层的安全性,用于加密和认证IP数据包的传输。
  6. OSPF(Open Shortest Path First):OSPF是一种内部网关协议(IGP),用于在IP网络中进行动态路由选择。它根据网络拓扑和度量标准选择最佳路径。
  7. BGP(Border Gateway Protocol):BGP是一种外部网关协议(EGP),用于在不同的自治系统之间进行路由选择。它在互联网中广泛用于自治系统之间的路由交换。
  8. IPX(Internetwork Packet Exchange):IPX是Novell NetWare网络操作系统使用的一种网络层协议,用于数据包的路由和传输。
  9. IGMP(Internet Group Management Protocol):IGMP协议用于在IP网络中进行组播(multicast)通信,允许主机加入或离开组播组。
  10. PIM(Protocol Independent Multicast):PIM协议用于在IP网络中实现组播通信,它可以配合IGMP协议进行组播路由选择。

        这只是一部分常见的计算机网络层协议,实际上还有更多的协议和技术用于网络层的功能和需求。不同的网络架构和应用场景可能会使用不同的协议组合来满足特定的要求。

计算机网络(10)-网络层(二)_第23张图片

(1)ARP协议

        ARP(Address Resolution Protocol)用于将IP地址(逻辑地址)转换为物理地址(如MAC地址)。// 地址解析协议

        在以太网中,每个设备(如计算机或路由器)都有一个唯一的物理地址,称为MAC地址。而在IP网络中,每个设备也有一个唯一的逻辑地址,称为IP地址。ARP协议提供了一种机制,使得主机能够确定目标设备的物理地址,以便进行直接通信。

        ARP协议的工作原理:

  1. 解析过程:当一个主机需要发送数据包到一个目标主机时,它首先检查自己的ARP缓存(ARP Cache)中是否已经有目标主机的IP地址对应的物理地址。如果有,那么就可以直接使用该物理地址进行通信。
  2. ARP请求:如果主机的ARP缓存中没有目标主机的物理地址条目,它将发送一个ARP请求广播到局域网上的所有设备。该ARP请求包含主机的IP地址和MAC地址,并询问是否有设备响应并提供目标IP地址对应的物理地址。
  3. ARP响应:如果目标主机收到ARP请求并且它的IP地址与请求中的目标IP地址匹配,它将发送一个ARP响应包回复给源主机。该响应包中包含目标主机的IP地址和MAC地址。
  4. 更新ARP缓存:源主机接收到ARP响应后,将更新自己的ARP缓存,将目标IP地址和物理地址的映射关系保存起来,以便将来直接使用。
  5. 直接通信:现在源主机知道了目标主机的物理地址,它可以使用该地址发送数据包到目标主机,而无需进行进一步的地址解析。

        ARP协议在局域网中起到了非常重要的作用,它通过动态地解析IP地址和MAC地址的对应关系,实现了直接的主机之间的通信。

        什么是ARP欺骗?

        ARP欺骗(ARP Spoofing)是指攻击者通过伪造或篡改ARP协议的消息,欺骗网络中的其他设备,使它们将网络流量发送到攻击者控制的设备上,从而实现网络流量的窃取、篡改或监听。

        ARP欺骗攻击的一般过程:

  1. 伪造ARP响应:攻击者发送伪造的ARP响应包,欺骗其他设备,使其将目标设备的IP地址与攻击者的MAC地址关联起来。这样,其他设备在发送数据包时会将数据包发送给攻击者而不是真正的目标设备。
  2. 中间人位置:一旦其他设备将目标设备的IP地址与攻击者的MAC地址关联起来,攻击者就可以成为数据包传输的中间人。攻击者可以拦截、查看、修改或篡改通过它的设备的数据包。
  3. 数据包转发:攻击者可以选择将接收到的数据包转发给真正的目标设备,以保持正常的网络通信。这样,其他设备可能不会意识到攻击正在发生。

        ARP欺骗攻击的危害:

  1. 窃听:攻击者可以拦截网络流量并查看敏感信息,如用户名、密码、信用卡信息等。
  2. 中间人攻击:攻击者可以修改或篡改传输的数据包,导致数据的损坏、篡改或欺骗。
  3. 拒绝服务:攻击者可能通过篡改网络流量或过载目标设备来干扰正常的网络通信,导致服务不可用。

        防范ARP欺骗攻击的方法:

  1. 使用静态ARP表:手动配置设备的ARP表,将IP地址与相应的MAC地址进行绑定,限制了ARP协议的动态更新。
  2. 使用ARP防火墙:部署ARP防火墙来监控和检测异常的ARP活动,并阻止欺骗性的ARP消息。
  3. 网络隔离和VLAN:将网络进行合理的分段和隔离,使用虚拟局域网(VLAN)来限制广播域,减少攻击面。
  4. 使用加密和认证:通过使用加密协议(如HTTPS)和身份认证机制,确保网络通信的机密性和完整性。
  5. 安全意识培训:对网络用户进行安全意识培训,使其能够识别和防范ARP欺骗等网络攻击。

        下边是一个防止APR欺骗的简单实操演示:// 使用静态的ARP表

        (1)首先,查看一下本网段内的MAC地址,查看结果如下图所示:

// 查看MAC地址
arp -a 
// 如果查不到本网段所在主机的mac地址,只要ping一下所在的主机就可以了

计算机网络(10)-网络层(二)_第24张图片

        (2)给IP设置静态的MAC地址。注意,如果管理员给一个IP地址设置了错误的MAC地址,那么此台计算机将不能再访问到该IP的正确主机。

// 规定静态MAC地址
arp -s ip地址 mac地址

        手动输入一个目标主机的正确的MAC地址,可以有效防止此主机到目标主机的arp欺骗,这是因为当主机缓存的目标MAC地址是静态的时,将不会在局域网内重新发送广播包,进而可以避免接收到错误的应答。

        下边是一次ARP广播的抓包图示:

(2)ICMP协议和IGMP协议

        ICMP协议和ping命令

        ICMP(Internet Control Message Protocol)是网络层(网络互连层)的一个子协议,用于在IP网络中进行错误报告、网络状况通知和诊断工具等功能。//用于检测网络故障

        ICMP消息通常被封装在IP数据包中,作为IP协议的一部分进行传输。它有多种类型的消息,包括错误报告、回显请求和回显应答等。常见的ICMP消息类型包括目标不可达(Destination Unreachable)、超时(Time Exceeded)、回显请求和回显应答(Echo Request/Echo Reply)等。

        它常用于以下情况:

  1. 错误报告:ICMP用于向发送IP数据报的主机报告错误情况,例如目标不可达、超时、源抑制等。这些错误报告可以帮助网络管理员快速诊断和解决网络通信问题。
  2. 网络状况通知:ICMP可以向网络中的其他设备发送网络状况通知,如路由器可以使用ICMP回显请求和回显应答(Ping)来测试网络的连通性和延迟。
  3. 路由器发现和重新配置:ICMP可以用于网络设备之间的路由器发现和重新配置,以帮助设备发现和确定最佳路径。
  4. TTL(Time to Live)控制:TTL是IP数据包中的一个字段,用于限制数据包在网络中的生存时间。当数据包经过一个路由器时,路由器会将TTL减1,并在TTL变为0时发送ICMP时间超过报文(Time Exceeded)以防止数据包在网络中无限循环。

        下边使用ping命令来查看一下网络的状态,结果如下图所示:

计算机网络(10)-网络层(二)_第25张图片

        需要注意的是:

  • ping局域网的时间一般不超过10ms,否则可能存在局域网拥堵问题。一般ping的目标距离越远,延迟时间也就越长。
  • TTL表示发送数据包的生存周期,数据包每经过一个路由器,TTL值减1;当TTL值为0时,网络不会再继续转发该数据包,该数据包就会在网络中消失,此方法解决数据包在网络中无限循环的问题。
  • 各类型系统的TTL初始数:Linux(64)、Windows(128)、Unix(255)

        接下来,演示使用 ping 命令指定发送数据包的大小和包的TTL生存时间,如下图所示:

计算机网络(10)-网络层(二)_第26张图片

        当生存时间(TTL)指定为1时,查看数据包经过的IP地址,演示的数据包在网关处的TTL为0,所以会返回错误的信息。

计算机网络(10)-网络层(二)_第27张图片

        请求超时和目标不可到达的区别:

  • 请求超时:数据包发送出去,没有接收到对应的应答包。
  • 目标不可到达:发送到目标地址的数据包,路由器不知道到达的具体路线。

        IGMP协议详解

        IGMP(Internet Group Management Protocol)是一种用于在IP网络中管理组播组的协议。它是网络层(网络互连层)的一个子协议,用于主机和多播路由器之间的通信,以支持组播传输。

        组播是一种数据传输方式,它允许一台主机将数据同时发送给多个接收者,而不是点对点的单播传输。组播在视频流、音频流、多媒体传输等应用中广泛使用,以节省带宽和网络资源。

        IGMP协议的主要作用是允许主机加入和离开特定的组播组,并向网络中的组播路由器发送相关信息。IGMP协议定义了主机和路由器之间的通信规则,以确定哪些主机对组播数据感兴趣,并将数据传输限制在仅对感兴趣的主机进行。// 分组传播数据

        比如,路由器可以通过IGMP协议用于路由器发现和重新配置:当路由器启动或重新配置时,它们可以使用IGMP协议来通信并确定最佳路径,以便有效地转发组播数据。

        主要的IGMP消息类型包括:

  1. IGMP报告(Membership Report):主机使用IGMP报告消息向附近的组播路由器表明它对特定组播组的兴趣。它可以加入组播组或确认对组播组的兴趣。
  2. IGMP查询(Membership Query):组播路由器使用IGMP查询消息询问附近的主机对组播组的兴趣。这样路由器可以了解网络上是否还有对特定组播组感兴趣的主机。
  3. IGMP离开(Leave Group):主机使用IGMP离开消息通知组播路由器它不再对某个组播组感兴趣,从而可以停止将组播数据发送给该主机。

        IGMP协议在多播应用和跨越多个子网的组播传输中起到关键的作用,确保只有对组播数据感兴趣的主机接收到数据,可以减少网络流量和资源的浪费。

        点对点、广播和多播的区别:

        1)点对点的通讯:需要建立会话

        2)广播通讯:广播通讯不能跨网段和路由器,不建立会话,不能调节内容进度

计算机网络(10)-网络层(二)_第28张图片

        应用场景:比如教学投屏,老师可以把自己计算机的内容投放到教室中每一位学生的计算机上。

        3)多播通讯:根据多播地址的不同,分地址接收内容,不建立会话,不能调节内容进度

计算机网络(10)-网络层(二)_第29张图片

        计算机多播通讯可以跨网络进行。

        在局域网内部,多播通讯可以通过组播地址进行,组播地址是一种特殊的IP地址范围,用于标识多播组。主机可以通过加入特定的多播组来接收该组的数据,而多播路由器会负责将数据从源发送给加入该组的主机。

        当多播通讯需要跨越不同网络时,需要使用跨网络的多播路由协议,如PIM(Protocol Independent Multicast)协议。PIM协议用于在不同网络之间进行多播数据的传输和路由选择。它允许多播流量在网络中传播,并根据网络拓扑和主机对组播组的加入和离开来选择最佳路径。

        跨网络的多播通讯需要网络设备(如路由器)支持多播功能,并且网络架构要支持跨网络的多播路由。在实际网络中,多播通讯可能会遇到一些限制和配置要求,因此需要进行适当的网络配置和协议设置。

(3)IP协议

        IP(Internet Protocol)协议是计算机网络中的一种网络层协议,它负责在网络中传输数据包。IP协议是互联网的核心协议之一,用于实现数据在网络中的路由和传递。

        IP协议定义了数据包的格式和编址规则,以及数据包在网络中的传输方式。它为每个连接到网络的设备分配唯一的IP地址,用于标识设备的网络位置。IP协议还处理数据包的分片和重组,以适应不同的网络传输环境和最大传输单元(MTU)限制。

        IP协议的主要功能包括:

  1. 地址分配和编址:IP协议为每个连接到网络的设备分配唯一的IP地址,以确保设备可以在网络中进行唯一标识和寻址。
  2. 路由选择:IP协议根据目标IP地址和路由表信息选择最佳路径将数据包从源设备传输到目标设备。它使用路由选择算法来决定数据包的转发路径。
  3. 数据包分片和重组:当数据包的大小超过网络的最大传输单元(MTU)时,IP协议将数据包分割为更小的片段,并在目标设备处重新组装成完整的数据包。
  4. 错误检测和处理:IP协议在数据包传输过程中进行错误检测,通过校验和字段验证数据包的完整性。如果数据包出现错误或丢失,IP协议可以根据需要发送错误报告或重新传输数据包。

        IP协议是互联网中实现数据包传输的基础协议,它提供了一种无连接的、不可靠的数据传输服务。它与其他协议结合使用,如TCP协议(Transmission Control Protocol)来提供可靠的数据传输服务,并构成了互联网通信的基本架构。

        // IP协议只为主机提供一种无连接、不可靠的、尽力而为的数据包传输服务。

        IPv4 数据报的报头格式如下图所示:

计算机网络(10)-网络层(二)_第30张图片

        注意:此图主要说明的是 IPv4 的报头结构,IPv6 的报头结构与之不同。

你可能感兴趣的:(计算机网络原理,网络,计算机网络原理,IP协议,IP数据包结构,网络层)