目录
一、IP数据包结构
二、IP协议
1、静态路由
2、动态路由
一个IP数据包由首部和数据两部分组成。
IP数据包首部详细结构构成图示
(1)版本:用来表示TCP/IP协议的版本 v4/v6,抓包数据如下
(2)首部长度:在首部加入可选字段的情况下,这个值将非常有用
(3)区分服务:用来区分数据包的类型,不同的数据包添加不同的数据包标识。
应用场景:在同一个网段内,不同服务的数据包有不同的优先级,比如即时通讯的数据包就对数据的传送有着优先的要求,而邮箱传送的邮件数据包的及时性就没有语音那么高。因此,在同一网段内,需要根据语音数据包的服务标记,优先传送语音数据包。
(4)数据包总长度和数据分片
数据包和数据帧的最大长度是不一样的,数据包是在网络层,最大长度为65535个字节(64K),而数据帧是在数据链路层,最大长度是1500字节,此时,如过数据包的长度超过1500(1480)个字节,那么数据包就需要进行分片。每一个分片的数据都需要加上数据包的首部信息。
如下图数数据帧的最大长度图示:
数据帧的长度范围是64-1500个字节,因为数据帧还包括18个字节的首部,所以真正的数据包部分是46-1500个字节;同时数据包部分的首部占20个字节,其实真实数据部分就是1480字节。
(5)标识:数据分片后,根据标识,识别同一数据包的内容,同一数据包下的数据分片具有相同的数据标识。
(6)标志:网络层用来区分收到的数据包是一个完整的数据包还是一个数据包的分片。
没有分片的数据包抓包图示:
分片的数据包抓包图示:
(7)片偏移:用来识别数据分片在数据包中的位置,用来进行数据拆分和组装。
(8)生存时间:生存时间就是TTL,数据包在网络中被转发的次数,当TTL为0时,将被丢弃。
(9)协议:用来区分是发送给哪个协议处理的数据
如果是ICMP协议,那就使用ICMP协议进程进行处理,如果是TCP协议,那就把数据发送到传输层进行处理。
常见的协议号:ICMP协议号为1、IGMP协议号为2、TCP协议号为6、UDP协议号为17、IPv6协议号为41、OSPF协议号为89
(10)首部检验和:首部检验和(16)位只检验数据报的首部不检验数据部分,这里不采用CRC检验码而采用简单的计算方法。
检验过程图示:
抓包图示:如果在传输过程中数据错误的话,图示字段Good值变为False;Bad值变为True
所有选路的协议都属于IP协议,主要有RIP协议,OSPF协议等等。网络层提供的服务就是在不同网段之间转发数据包。
RIP协议根据数据包沿途所经过的路由器数量来选择最优路径,所经过的路由器数量越少,路径最优。
OSPF协议根据带宽来选择最优路径。
静态路由需要手动进行配置路由表,只适用于小规模网络且不然能够自动调整路由,灵活性差。
静态路由在复杂的网路下需要配置大量的路由信息,而且,当网络中出现网络故障时,路由器也不能自动学习选择新的路由路径。
RIP协议,路由器使用RIP协议后,会周期性的在网络上发广播,获取联通的路由器地址。如果联通中的路由器有出现故障的情况,也能够即时的发现,根据新的情况更新路由表。
RIP协议允许的路由器最多途经数量为15个,即最大跳数为15个。
图示路由器运行详细信息:
网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括寻址和路由选择、连接的建立、保持和终止等。它提供的服务使传输层不需要了解网络中的数据传输和交换技术。
网络层的主要功能包括:// 负责数据的路由和转发
常见的网络层协议包括IP协议、ICMP协议、ARP协议等。其中,IP协议是网络层最重要的协议,它定义了数据包的格式、寻址方式和路由选择规则,是互联网上数据传输的核心协议。
计算机网络层负责处理数据的路由和转发,确保数据能够在不同的主机之间可靠地传输。它是实现网络通信的重要组成部分,提供了灵活、可靠和高效的数据传输服务。// 不负责丢包检验和丢包重传
网络层负责在不同网络之间转发数据包,基于数据包的IP地址转发,但是不负责丢包检验和丢包重传。
如下图,H1发送给H2的分组可能沿着不同的路径传送:
如下图,数据在互联网中的传送,网络层会独立出来,不用去管物理层用的什么传输介质,也不用管数据链路层用的何种协议,这样做有利于问题的隔离。
网络层的数据包在网络中的转发是通过路由器(Router)进行的。当一个数据包到达路由器时,路由器根据网络层的信息(如IP地址)来决定如何转发该数据包。
以下是网络层数据包转发的一般过程:
这个过程是基于网络中的路由协议和路由器之间的交互来实现的。路由器通过交换路由信息,建立并更新路由表,以便有效地转发数据包到目标网络。常见的路由协议包括OSPF、BGP等,它们通过各种算法和机制来确定最佳路径和更新路由信息。
通过路由器的转发,网络层数据包可以在不同的网络中进行跨越和传输,实现了数据的可靠路由和交付。
如下图,是PC-4和PC-3的网络通信架构图示 //演示两个不同网络段的数据通信
10网段到12网段,其中经过了交换机,经过了路由器,最后到达目标PC。
其中,每个网络层对应的数据传输情况如下图所示://PC-4发送数据到PC-3,封包解包过程
计算机网络通讯的注意事项:
(1)应用层准备数据、传输层进行数据分段、网络层加上IP地址(原地址、目标地址)、数据链路层加上物理层MAC地址和帧检验序列、物理层发送bit流。
(2)计算如果想跨网络通信,必须得配置网关。网关的配置一般为本网段的第一个地址,如10.0.0.1。
(3)数据链路层发送的两种情况:使用自己的子网掩码判断自己在哪个网段,使用自己的子网掩码判断目标地址在哪一个网段,如果是同一个网段,使用ARP协议广播解析目标IP地址的MAC地址,如果不在同一个网段,便把数据发送给网关所在的MAC地址。
(4)病毒对计算机网络层设备的影响:对局域网发送大量广播包,使本网段的设备忙着转发无用的数据包。对外网进行大量的网站访问占用网络带宽。
计算机网络层涉及多种协议,以下是一些常见的计算机网络层协议:
这只是一部分常见的计算机网络层协议,实际上还有更多的协议和技术用于网络层的功能和需求。不同的网络架构和应用场景可能会使用不同的协议组合来满足特定的要求。
ARP(Address Resolution Protocol)用于将IP地址(逻辑地址)转换为物理地址(如MAC地址)。// 地址解析协议
在以太网中,每个设备(如计算机或路由器)都有一个唯一的物理地址,称为MAC地址。而在IP网络中,每个设备也有一个唯一的逻辑地址,称为IP地址。ARP协议提供了一种机制,使得主机能够确定目标设备的物理地址,以便进行直接通信。
ARP协议的工作原理:
ARP协议在局域网中起到了非常重要的作用,它通过动态地解析IP地址和MAC地址的对应关系,实现了直接的主机之间的通信。
什么是ARP欺骗?
ARP欺骗(ARP Spoofing)是指攻击者通过伪造或篡改ARP协议的消息,欺骗网络中的其他设备,使它们将网络流量发送到攻击者控制的设备上,从而实现网络流量的窃取、篡改或监听。
ARP欺骗攻击的一般过程:
ARP欺骗攻击的危害:
防范ARP欺骗攻击的方法:
下边是一个防止APR欺骗的简单实操演示:// 使用静态的ARP表
(1)首先,查看一下本网段内的MAC地址,查看结果如下图所示:
// 查看MAC地址
arp -a
// 如果查不到本网段所在主机的mac地址,只要ping一下所在的主机就可以了
(2)给IP设置静态的MAC地址。注意,如果管理员给一个IP地址设置了错误的MAC地址,那么此台计算机将不能再访问到该IP的正确主机。
// 规定静态MAC地址
arp -s ip地址 mac地址
手动输入一个目标主机的正确的MAC地址,可以有效防止此主机到目标主机的arp欺骗,这是因为当主机缓存的目标MAC地址是静态的时,将不会在局域网内重新发送广播包,进而可以避免接收到错误的应答。
下边是一次ARP广播的抓包图示:
ICMP协议和ping命令
ICMP(Internet Control Message Protocol)是网络层(网络互连层)的一个子协议,用于在IP网络中进行错误报告、网络状况通知和诊断工具等功能。//用于检测网络故障
ICMP消息通常被封装在IP数据包中,作为IP协议的一部分进行传输。它有多种类型的消息,包括错误报告、回显请求和回显应答等。常见的ICMP消息类型包括目标不可达(Destination Unreachable)、超时(Time Exceeded)、回显请求和回显应答(Echo Request/Echo Reply)等。
它常用于以下情况:
下边使用ping命令来查看一下网络的状态,结果如下图所示:
需要注意的是:
接下来,演示使用 ping 命令指定发送数据包的大小和包的TTL生存时间,如下图所示:
当生存时间(TTL)指定为1时,查看数据包经过的IP地址,演示的数据包在网关处的TTL为0,所以会返回错误的信息。
请求超时和目标不可到达的区别:
IGMP协议详解
IGMP(Internet Group Management Protocol)是一种用于在IP网络中管理组播组的协议。它是网络层(网络互连层)的一个子协议,用于主机和多播路由器之间的通信,以支持组播传输。
组播是一种数据传输方式,它允许一台主机将数据同时发送给多个接收者,而不是点对点的单播传输。组播在视频流、音频流、多媒体传输等应用中广泛使用,以节省带宽和网络资源。
IGMP协议的主要作用是允许主机加入和离开特定的组播组,并向网络中的组播路由器发送相关信息。IGMP协议定义了主机和路由器之间的通信规则,以确定哪些主机对组播数据感兴趣,并将数据传输限制在仅对感兴趣的主机进行。// 分组传播数据
比如,路由器可以通过IGMP协议用于路由器发现和重新配置:当路由器启动或重新配置时,它们可以使用IGMP协议来通信并确定最佳路径,以便有效地转发组播数据。
主要的IGMP消息类型包括:
IGMP协议在多播应用和跨越多个子网的组播传输中起到关键的作用,确保只有对组播数据感兴趣的主机接收到数据,可以减少网络流量和资源的浪费。
点对点、广播和多播的区别:
1)点对点的通讯:需要建立会话
2)广播通讯:广播通讯不能跨网段和路由器,不建立会话,不能调节内容进度
应用场景:比如教学投屏,老师可以把自己计算机的内容投放到教室中每一位学生的计算机上。
3)多播通讯:根据多播地址的不同,分地址接收内容,不建立会话,不能调节内容进度
计算机多播通讯可以跨网络进行。
在局域网内部,多播通讯可以通过组播地址进行,组播地址是一种特殊的IP地址范围,用于标识多播组。主机可以通过加入特定的多播组来接收该组的数据,而多播路由器会负责将数据从源发送给加入该组的主机。
当多播通讯需要跨越不同网络时,需要使用跨网络的多播路由协议,如PIM(Protocol Independent Multicast)协议。PIM协议用于在不同网络之间进行多播数据的传输和路由选择。它允许多播流量在网络中传播,并根据网络拓扑和主机对组播组的加入和离开来选择最佳路径。
跨网络的多播通讯需要网络设备(如路由器)支持多播功能,并且网络架构要支持跨网络的多播路由。在实际网络中,多播通讯可能会遇到一些限制和配置要求,因此需要进行适当的网络配置和协议设置。
IP(Internet Protocol)协议是计算机网络中的一种网络层协议,它负责在网络中传输数据包。IP协议是互联网的核心协议之一,用于实现数据在网络中的路由和传递。
IP协议定义了数据包的格式和编址规则,以及数据包在网络中的传输方式。它为每个连接到网络的设备分配唯一的IP地址,用于标识设备的网络位置。IP协议还处理数据包的分片和重组,以适应不同的网络传输环境和最大传输单元(MTU)限制。
IP协议的主要功能包括:
IP协议是互联网中实现数据包传输的基础协议,它提供了一种无连接的、不可靠的数据传输服务。它与其他协议结合使用,如TCP协议(Transmission Control Protocol)来提供可靠的数据传输服务,并构成了互联网通信的基本架构。
// IP协议只为主机提供一种无连接、不可靠的、尽力而为的数据包传输服务。
IPv4 数据报的报头格式如下图所示:
注意:此图主要说明的是 IPv4 的报头结构,IPv6 的报头结构与之不同。