网际协议(IPv4)
网络层的协议(IPv4)为下一层运输层提供服务。在路由器中,需要IP层作为每个网络接口(lan和wan)所提供的两个不同数据链路层之间的桥。
、要实现这个功能IP需要具备以下功能:
1.封装:封装从上层接收的数据,就是将一些信息包含到数据中。
2分片、重组:由于IP层依赖不同的LAN和WAN技术来发送报文,他们有各自的帧长度限制,所以IP必须有一个机制来允许其适应这些不同的尺寸限制。
3编址:LAN中的设备有唯一MAC地址,而虚网中的主机也必须有一个唯一的地址(IP地址)。为了便于在远程主机之间交付IP数据报,必须要提供一个方便的编制机制。
4:交付和路由:路由器上的IP层负责虚网上的报文交付,IP层决定交付数据的时间
IPv4数据报格式:
IP版本4+首部长度4+服务类型1+总长2(IP报文总长最大65535)+标识2(分片中使用,同一报文所有分片有相同的标识号)+标志3BIT(分片使用)+分片偏移13bit(分片时使用用于指示该分片在原始报文中的位置)+生存时间1(TTL)+协议1+首部校验和2+原地址4+目的地址4+选项(可变)+填充符(可变长度)+数据(可变长度)
分片/重组
帧能承受的最大数据长度,称为最大运输单元(MTU)。光纤的是4470,以太网的是1500,PPP的是1500.分片时将原始报文分解成几个较小的数据包.
分片过程:
分片并不是按顺序到达的所以在接收端要重组。源自同一个报文的所有分片有相同标识值分片位置置1表示还有分片会到来。分片偏移告诉我们分片的位置。
重组过程:
当第一个接收到的分片数据被识别的时候,重组就开始,只要分片位为1(第一个),或者分片偏移不为0(最后一个),就被认为是分片数据
IP编制:
IP地址表示法:地址时一个32位二进制,一般用十进制和.分隔来表示;每台设备都有一个IP地址,但是像路由器这种用于连接两个或更多设备的有不止一个IP地址,也就是每个网络接口有一个IP地址。
IP分类,有3个类:A.用7位表示网络ID,24位表示主机ID;B.14位表示网络ID,16位表示主机ID;C.21位表示网络ID,8位表示主机ID。还有两类多用于广播和实验。
实际上所有位全为0的主机ID无效,所有位为1的主机ID被用作广播地址(网络上所有主机)。所以要除去这两个。
保留IP地址:这3个主类中有一些地址时不能被使用的会被保留用作
1私网A:10.0.0.0~10.255.255.255 B:169.254.0.0~169.254.255.255 C:172.16.0.0 ~172.16.255.255 D:192.168.0.0~192.168.255.255
2环回 从127.0.0.0~127.255.255.255用作环回测试使用的IP地址
ICMPv4
为了使IP能提供数据传送服务,需要进行一些管理工作,即IP层需要检测某些错误条件,好药从虚幻的其他结点获取信息。该功能就由Internet控制报文协议来提供。例如:设备A发送IP数据报给设备B。但路由器检测到了一个问题,因而不能交付,于是便发送一个ICMP报文给源设备。
ICMP报文通常用于报告错误或教官有关虚网结点的信息。
ICMP报文格式:
类型1(报文类型)+代码1(不同子类型)+校验和2+数据
有差错报告报文和非差错报告报文
差错报文类型值为3
差错报文包括:
1目的不可到达报文:交付发生问题
2源抑制报文:当数据报被接收时,它们首先被存与储存器中,当发送速度太块没有足够空间则必须丢数据报,这种情况下回产生一个ICMP源端移植报文。请求源设备降低其发送数据报的速率。
3超时报文 当TTL为0
ICMP信息交换报文:
1回显请求和应答报文(PING)
格式是:类型1+代码1+校验和2+标识2+序号2+选项。回显请求类型字段必须为8,回显应答类型字段为0未用的代码段为0
路由器通告和路由器查询报文
配置路由器地址可以手动配置也可以使用一种自动犯法使主机发现本地路由就是
路由器周期性发送路由器通告报文,这些报文由主机接受,通知主机路由器的存在以及一些重要信息。例如路由器地址和主机应保留持有信息多长时间,该报文类型为9,代码为0地池长度为2。每个路由器地址项都有一个优先级值。
通告报文格式:类型1+代码1+校验和2+地址数1+地址长度1+寿命2+路由器1地址+优先等级1 ...
询问报文格式: 类型1+代码1+校验和2+保留
地址掩码请求和应答报文
为了使设备能正确解释IP地址,子网掩码必须是已知的可以手工配置或者使用掩码请求和答应
报文格式:类型1+代码1+校验和2+标识符2+序号2+地址掩码4 请求类型字段为17答应类型字段类型为18,代码未用必须为0
跟踪路由报文
不仅是测试两个设备间的通信,也是为了知道设备到设备间传送数据所使用的确切路由器系列。方法是发送一系列数据报,每个连续发送的数据报中的生存时间参数增加1。当发生超时错误TT=0就是发送报文给源端。
当路由器接收到一个带跟踪路由选项的IP数据报时,生成一个ICMP跟踪数据报文,并将该报文发送费数据报源设备。
跟踪报文格式:类型1+代码1+校验和2+ID号2+未用2+外出跳计数2+返回跳计数2+输出链路速度4+输出链路MTU4
类型字段必须为30 ,如果是路由到路由的数据报代码字段为0,如果数据报因问题被丢弃则代码字段设置为1. ID与IP数据报中的跟踪路由选项中的ID号相同,未用该字段设置为0.
ARP地址解释协议
就是用来获取目的端物理地址,这个协议将IP地址转换成物理地址。发送一个包含ARP报文的广播帧。
报文包含目的设备的IP地址。当ARP报文被接收分析时候具有相应IP地址的设备就会发应答报文。
报文格式:硬件类型2+协议类型2+硬件地址长度1+协议地址长度1+操作码2+发送者硬件地址6+发送者协议地址+目标硬件地址+目标协议地址。
硬件类型:以太网,光纤等。协议类型就是第三层协议类型IPv4.
ARP解析缓存
运行在每个设备中的软件都维护一个IP地址和硬件地址之间的对应关系表。之后每当我们需要该设备的地址时,都从表中差到。
因为ARP是广告所以所有设备都能加到自己的中,当然一段时间过期后便会失效。
逆向地址解析协议(RARP)
使用硬件地址知道IP地址就是RARP,操作码为3的ARP报文就是RARP请求而对应的应答为4