IP协议(RFC791)-IP包格式
IP封包格式(IPv4包首部长度为20字节)
Internet Header Format0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Version| IHL |Type of Service| Total Length |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Identification |Flags| Fragment Offset |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Time to Live | Protocol | Header Checksum |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Source Address |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Destination Address |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Options | Padding |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Version (4) Internet Header Length (4) Type of Service (8) Total Length (16)
Identification (16) Flags (3) Fragment Offset (13)
Time To Live (8) Protocol (8) Header checksum (16)
Source Address (32)
Destination Address (32)
Options (Variable) Padding (0-24)
Data
IP包字段含义
|
struct ip //看一看IP的结构定义
{
#if __BYTE_ORDER == __LITTLE_ENDIAN
unsigned int ip_hl:4; /* header length */
unsigned int ip_v:4; /* version */
#endif
#if __BYTE_ORDER == __BIG_ENDIAN
unsigned int ip_v:4; /* version */
unsigned int ip_hl:4; /* header length */
#endif
u_int8_t ip_tos; /* type of service */
u_short ip_len; /* total length */
u_short ip_id; /* identification */
u_short ip_off; /* fragment offset field */
#define IP_RF 0x8000 /* Reserved Fragment flag */
#define IP_DF 0x4000 /* Don't Fragment flag即第二位为1(不可分包) */
#define IP_MF 0x2000 /* More Fragments flag即二三位为00(可分包,此为最后一个包)或01(还有后继包) */
#define IP_OFFMASK 0x1fff /* mask for fragmenting bits */
u_int8_t ip_ttl; /* time to live */
u_int8_t ip_p; /* protocol */
u_short ip_sum; /* checksum */
struct in_addr ip_src, ip_dst; /* source and dest address */
};
ip_v IP协议的版本号,这里是4,现在IPV6已经出来了
ip_hl IP包首部长度,这个值以4字节为单位.IP协议首部的固定长度为20个字节,如果IP包没有选项,那么这个值为5.
ip_tos服务类型,说明提供的优先权.
ip_len说明IP数据的长度.以字节为单位.
ip_id标识这个IP数据包.
ip_off碎片偏移,这和上面ID一起用来重组碎片的.
ip_ttl生存时间.没经过一个路由的时候减一,直到为0时被抛弃.
ip_p协议,表示创建这个IP数据包的高层协议.如TCP,UDP协议.
ip_sum首部校验和,提供对首部数据的校验.
ip_src,ip_dst发送者和接收者的IP地址
IP协议(RFC791)-IP包格式相关推荐
- 计算机网络基础知识--TCP/IP协议、IP分组、TCP传输
转 计算机网络基础知识--TCP/IP协议.IP分组.TCP传输 2017年12月08日 08:35:09 孔维昊 阅读数 1820 查看全文 http://www.taodudu.cc/news/s ...
- DSP6678 RapidIO基本原理之二——RapidIO协议结构及包格式
一.RapidIO协议结构及包格式 为了满足灵活性和可扩展性的要求,RapidIO协议分为三层:逻辑层.传输层和物理层.下图说明了RapidIO协议的分层结构. 逻辑层 ...
- 【计算机网络】6. 网络基础4之详解IP协议( IP协议头格式、IP地址管理、路由选择)
目录 1. IP协议头格式 2. IP地址管理 2.1 IP地址的早期划分方式 2.1.1 A类 2.1.2 B类 2.1.3 C类 2.2 现在分配IP的方式:CIDR方式 2.2.1 引入子网掩码 ...
- IP协议及IP数据包详解
本文转自至:https://blog.csdn.net/super_yc/article/details/72290931 回忆一下网络层的主要功能:通过TCP或者UDP协议绘制网络地图,数据包选取合 ...
- IP协议以及IP地址分类
网络层(network layer)是实现互联网的最重要的一层.正是在网络层面上,各个局域网根据IP协议相互连接,最终构成覆盖全球的Internet.更高层的协议,无论是TCP还是UDP,必须通过网络 ...
- 【网络】网络的基础知识--TCP/IP协议、IP分组、TCP传输
1.OSI参考模型: OSI(Open System Interconnect),即开放式系统互联.一般都称为OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互联模型.该体系结构标 ...
- 【计算机网络】网络层 : IPv6 协议 ( IPv6 数据包格式 | IPv6 地址表示 | IPv6 地址类型 | IPv4 与 IPv6 协议对比 | IPv4 -> IPv6 过渡策略 )
文章目录 一.IPv6 发展 二.IPv6 数据报格式 三.IPv6 和 IPv4 对比 四.IPv6 地址表示 五.IPv6 地址 类型 六.IPv4 向 IPv6 过渡策略 一.IPv6 发展 I ...
- 系列TCP/IP协议-动态IP选路协议(008)
一.引言 前一章已经说过了IP数据包是如何分发的.为啥这一章还要说这个问题?在网络很小.只有单个连接点.没有多余的路由的时候,使用静态选路是可以的.但是一旦网络变大一点就会出现各种问题.在大网络中的网 ...
- TCPIP之IP协议及IP地址详解
一.什么是IP? IP是Internet Protocol(网际互连协议)的缩写,IP是整个TCP/IP协议族的核心,也是构成互联网的基础.IP位于TCP/IP模型的网络层(相当于OSI模型的网络层) ...
最新文章
- Linux中的粘滞位
- 分区视图(转自小春BOOK)
- PAT甲级1101 Quick Sort:[C++题解]DP、快速排序划分个数、快排
- 2007武汉.NET俱乐部沙龙-VS2008、WPF、Silverlight
- [html] 你了解什么是无障碍web(WAI)吗?在开发过程中要怎么做呢
- 1.gloox开发环境搭建
- 数字电平(一):TTL和CMOS
- postgres初始化数据库
- win10任务栏透明_几款软件让你的 Win10 与众不同(简洁篇)
- vs 2010下载地址
- 全国各省市固定资本形成额数据 (1990-2018年)
- 关于学习Godot时遇到的问题(未解决)
- 【矢量图】PyEcharts导出图片并矢量化
- win10删除提示找不到该项目
- 什么是数据标准化?在Python中如何进行数据标准化?「必学」
- Redis-NoSql结构化数据库
- hdu 4745 区间dp
- signature=2abb9e363faa3aa7323b2a3393a36011,Winhex软件的使用
- 2061:【例1.2】梯形面积
- Cesium:入门教程(三)之视窗配置