千兆以太网网络层 IP 协议介绍与 IP 校 验和算法实现

相关文章:
(1)千兆以太网网络层 ARP 协议的原理与 FPGA 实现
(2)千兆以太网硬件设计及链路层 MAC 协议格式
(3)CRC校验原理及实现
(4)RGMII 与 GMII 转换电路设计
(5)千兆以太网网络层 IP 协议介绍与 IP 校 验和算法实现
(6)千兆以太网传输层 UDP 协议原理与 FPGA 实现(UDP发送)
(7)千兆以太网传输层 UDP 协议原理与 FPGA 实现(UDP接收)
(8)千兆以太网传输层 UDP 协议原理与 FPGA 实现(UDP回环)
(9)以太网初始化设计(MDIO 控制器)
(10)添加基于 OV2640 的以太网 RGMII 图像传输系统设计


前言

本章将讲解千兆以太网网络层 IP 协议的内容及算法实现。IP 层的实质是在MAC 层的基础上将原有协议进行一个更加细化的定义而得。它最核心的意义,就是让 IP 地址参与到网络数据传输中,让硬件和硬件的通信传输,从网卡号作为唯一的身份识别标志,变为以 IP 地址作为身份识别标志。而 IP 层最核心的内容,就是 IP 协议数据字段的格式。


提示:以下是本篇文章正文内容,下面案例可供参考

一、IP 协议数据字段格式

IP 是 TCP/IP 协议族中最核心的协议,所有的 TCP、UDP、ICMP、IGMP 数据都以 IP 数据报的格式传输。IP 仅提供尽力而为的传输服务,如果发生某种错误,IP 会丢失该数据,然后发送 ICMP 消息给信源端。另外,IP 数据报可以不按发送顺序接收。IP 数据报的格式如下,IP 数据报的长度/类型段的数值为 0x0800,数据和填充段包括IP 头部数据和 IP 数据两个部分。
1
其中,和以太网帧具有帧头一样,IP 数据报也包含了一个 IP 报头部分,与 IP 协议相关的一些信息如 IP 地址,数据包长度等会被打包进 IP 报头中,然后再与需要传输的 IP 报文数据一起,作为 MAC 帧的数据和填充字段送往 MAC 层发送,接下来,将着重介绍 IP 协议首部的详细信息。

二、IP 协议首部详解

IP 数据报的格式如下:
在这里插入图片描述
前 20 字节和紧接其后的选项部分是 IP 数据报的首部,前 20 个字节是固定的,可选字段可有可无。首部的每一行是一个以 32bit 为单位的数据,最高位在左边,为 0bit,最低位在右边,为 31bit。4 字节的 32bit 值按照以下次序传输:首先 0-7bit,其次 8-15 比特,然后16-23bit,最后是 24-31bit,这种传输次序称为 big endian 字节序(我们在 C 语言写位操作的算法时常用到该词)。TCP/IP 首部中的所有二进制整数在网络中传输时都要求以这种次序,因此它又称作网络字节序,其他形式存储的二进制数据,如 little endian 格式,则必须在传输数据之前把首部转化成网络字节序。首部长度是指首部占 32bit 字(4 字节)的数目,因为 4 位的最大值为 15,因此首部最长为 60(4*15=60)字节,也即是说选项部分的最大值为 40 字节,不够 4 的倍数,要用 0 填充,使数据部分的起始地址为 4 的倍数。总长度指整个 IP 数据报的长度,包括首部和数据部分,16bit,最长可达 65535 字节。尽管理论上可以传送一个长达 65535 的 IP 数据报,但协议标准规定的是 1500。3 个标志位主要用来标识分片的 IP 数据报,片位移为分片的数据报的首个字节偏离整个原始数据报的位置。
在这里插入图片描述
以下对 IP 报头中各个字段的内容详细介绍。
 版本为当前使用的 IP 协议版本号,大家最熟悉,用的最多的是 IPv4 版本,当然现在 IPv6 版本用的也越来越多了。本实验使用的是 IPv4 版本,所以在版本字段为 4就表示版本号为 IPv4。
 首部长度是指首部占 32bit 字的数目,因为 4 位的最大值为 15,因此首部最长为 60字节,也即是说选项部分的最大值为 40 字节,不够 4 的倍数,要用 0 填充,使数据部分的起始地址为 4 的倍数。
 服务类型:略。可直接置0
 总长度指整个 IP 数据报的长度,包括首部和数据部分,16bit,最长可达 65535 字节。尽管理论上可以传送一个长达 65535 的 IP 数据报,但实际上还要考虑网络的最大承载能力等因素,故协议标准规定的是 1500。(此处可以开启巨型帧可以达到>9000 字节的大小,在接下来UDP发送中有介绍)。
 3 个标

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C.V-Pupil

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值