IP数据包个人理解

恰好学到了网络数据包,写下来加深一下个人理解,仅此而已。

定义:TCP/IP协议定义了在INTERNET(网络层)上传输的包,称为数据包;

IP数据包(IP DataGram)组成:首部,数据部分;

首部:分为固定部分和可变部分,固定部分(4字节*5)20个字节,可变部分长度可变。

下面解释固定部分各字段含义:

1.版本:占4位,指IP协议的版本。目前广泛使用的IP协议版本号为4(IPV4)。

2.首部长度:占4位, 最小长度为5(0101)即5个字长20字节,最大长度为15(1111)即60字节。IP数据包数据部分永远在4字节整数倍开始,当IP分组首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。

3.区分服务:占8位,用来获得更好的服务。旧标准中叫服务类型。

4.总长度:占16位,指首部和数据之和的长度,单位为字节。最大长度为pow(2,16)-1=65535;

5.标识(identification):占16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器加1,并将此值赋给标识字段。但这个“标识”不是序号,因为IP是无连接服务,数据报不存在按序接受问题。当数据报长度超过网络MTU而必须分片时,这个标识字段的值就被复制到所有的数据报片的标识字段中。相同的标识字段的值使分片后的各数据报能正确的重装成为原来的数据报。

6.标志(flag):占3位,目前只有两位有意义。

1.标志字段中的最低位记为MF(More Fragment)。MF=1,表示后面"还有分片"的数据报。MF=0表示这是若干数据报片最后一个。

2.标志字段中间一位记为DF(Don`t Fragment)。意思是不能分片。只有当DF=0时才允许分片。

7.片偏移:占13位。片偏移指出:较长的分组在分片后,某片在原分组的相对位置。也就是说,相对用户数据字段的起点,该片从何处开始。片偏移以8个字节为单位。也就是说,除了最后一个分片,每个分片的长度一定是8字节的整数倍。

8.生存时间(Time To Live):占8位,表明是数据报在网络中的寿命。由发出数据报的源点设置这个字段。其目的是防止无法交付的数据报无限制的在英特网中兜圈子,因而白白消耗网络资源。最初设计是以秒为单位。每经过一个路由时,就把TTL减去数据报在路由器消耗掉的一段时间,当TTL为0时,丢弃此数据报。后把TTL字段功能改为“跳数限制”。路由器在转发数据报之前就把TTL值减1,若TTL值减少到0,就丢弃这个数据报,不再转发。

9.协议 :占8位,协议字段指出此数据报携带的数据是使用哪种协议,以便于目的主机的IP层知道应将数据部分上交给哪个处理过程。

10.首部检验和
:占16位。这个字段只检验数据报的首部,不包括数据部分(减少计算工作量)。

11.源地址:占32位

12.目的地址 :占32位

IP数据报首部的可变部分:这是一个可选字段。选项字段用来支持排错、测量以及安全等措施,内容丰富。此字段长度可变,1个字节到40个字节不等,取决于所选择的项目。

目前任选定义如下:

1.安全和处理限制

2.记录路径

3.时间戳

4.宽松的源站路由

5.严格的源站路由

IP数据报看起来内容蛮多的,其实理解了它的组成字段就容易多了,也为后续的学习打牢基础。

时间: 2024-08-03 12:04:55

IP数据包个人理解的相关文章

TCP/IP数据包结构具体解释

[关键词] TCP IP 数据包 结构 具体解释 网络 协议 一般来说,网络编程我们仅仅须要调用一些封装好的函数或者组件就能完毕大部分的工作,可是一些特殊的情况下,就须要深入的理解 网络数据包的结构,以及协议分析.如:网络监控,故障排查等-- IP包是不安全的,可是它是互联网的基础,在各方面都有广泛的应用.由IP协议衍生的协议族有10数种(据我所知),以后还会出现 很多其它的基于IP的协议- 先从实际出发吧! 一般我们在谈上网速度的时候,专业上用带宽来描写叙述,事实上不管说网速或者带宽都是不准确

命题作文:Dimension Tree区间查找与IP数据包分类

这个题目有点大,而且我要严格控制字数,不能像<命题作文:在一棵IPv4地址树中彻底理解IP路由表的各种查找过程>那样扯得那么开了.事实上,这篇作文是上 一篇作文中关于区间查找小节的扩展. 1.IP数据包分类 根据IP数据包协议头的若干字段,也叫匹配域,将数据包划分到某个类别,这就是IP数据包分类的核心. 事实上,IP路由查找的过程就是IP数据包分类的一个特例,一个极其简单的特例,此时的匹配域就是目标IP地址,而类别就是路由项或者说更简单一点,下一 跳.此时考虑一下源地址Policy routi

基于Jpcap的TCP/IP数据包分析(一)

基于Jpcap的TCP/IP数据包分析原作:赵新辉目 录第一章 以太网的结构和TCP/IP1.1 以太网的结构1.1.1 基于网络架构的以太网1.1.2 以太网的数据交换1.1.3 以太网帧的结构1.2 IP数据报的构成 1.2.1 IP地址1.2.2 路由1.2.3 IP数据报的构成1.2.4 其他报文结构1.3 TCP/UDP1.3.1 TCP/UDP的作用1.3.2 TCP和UDP报文的结构第二章 Jpcap类库2.1 Jpcap的使用2.1.1 Jpcap的运行环境的安装2.1.2 Jp

九度oj 题目1475:IP数据包解析

题目描述: 我们都学习过计算机网络,知道网络层IP协议数据包的头部格式如下: 其中IHL表示IP头的长度,单位是4字节:总长表示整个数据包的长度,单位是1字节. 传输层的TCP协议数据段的头部格式如下: 头部长度单位为4字节. 你的任务是,简要分析输入数据中的若干个TCP数据段的头部. 详细要求请见输入输出部分的说明. 输入: 第一行为一个整数T,代表测试数据的组数. 以下有T行,每行都是一个TCP数据包的头部分,字节用16进制表示,以空格隔开.数据保证字节之间仅有一个空格,且行首行尾没有多余的

TCP/IP数据包处理路径(Ipnat.sys 、Ipfltdrv.sys 、 Ipsec.sys)

转自:https://technet.microsoft.com/library/bb878072 本页内容 简介 用于数据包处理的 TCP/IP 体系结构 数据包处理路径 更多信息 简介 随着 Microsoft® Windows® XP Service Pack 2 和 Windows Server™ 2003 Service Pack 1 新增了 Windows 防火墙,以及 Internet 协议安全 (IPsec) 在公司 Intranet 中日益广泛的应用,信息技术 (IT) 专业人

IP数据包的分片与重组过程

一.IP分片 (一)IP分片的原理: 分片和重新组装的过程对传输层是透明的,其原因是当IP数据报进行分片之后,只有当它到达下一站时,才可进行重新组装,且它是由目的端的IP层来完成的.分片之后的数据报根据需要也可以再次进行分片.    IP分片和完整IP报文差不多拥有相同的IP头,ID域对于每个分片都是一致的,这样才能在重新组装的时候识别出来自同一个IP报文的分片.在IP头里面,16位识别号唯一记录了一个IP包的ID(ipid),具有同一个ID的IP分片将会重新组装:而13位片偏移则记录了某IP片

IP报文解析及基于IP 数据包的洪水攻击

版本(4bit) 报头长度(4bit) 优先级和服务类型(8bit) 总长度(16bit) 标识(16bit) 标志(3bit) 分段偏移(13bit) 存活期(8bit) 协议(8bit) 报头校验和(16bit) 源IP地址(32bit) 目的IP地址(32bit) 选项(0或32bit,若有的话) 数据(可变) 版本 IP版本号.报头长度 32位字的报头长度(HLEN).优先级和服务类型 服务类型描述数据报将如何被处理.前3位表示优先级位.总长度 包括报头和数据的数据包长度.标识 唯一的I

IP数据包格式

0 4 8 16 31 |4位版本 | 4位首部长度 | 8位服务类型 | 16位总长度(字节数)| |16位标识 | 3位标志 | 13位片偏移 | |8位生存时间| 8位协议 | 16位首部校验和 | |32位源IP地址| |32位目的IP地址| |选项(可无)| |数据| netinet/ip.h中定义ip: struct ip { #if __BYTE_ORDER == __LITTLE_ENDIAN unsigned int ip_hl:4; /* header length */ u

SNAT,是源地址转换,其作用是将ip数据包的源地址转换成另外一个地址

SNAT,可能有人觉得奇怪,好好的为什么要进行ip地址转换啊,为了弄懂这个问题,我们要看一下局域网用户上公网的原理,假设内网主机A(192.168.2.8)要和外网主机B(61.132.62.131)通信,A向B发出IP数据包,如果没有SNAT对A主机进行源地址转换,A与B主机的通讯会不正常中断,因为当路由器将内网的数据包发到公网IP后,公网IP会给你的私网IP回数据包,这时,公网IP根本就无法知道你的私网IP应该如何走了.所以问它上一级路由器,当然这是肯定的,因为从公网上根本就无法看到私网IP