当前位置: 首页 > news >正文

IPv4数据报格式

  • IPv4是IP协议的第四个版本(版本1-3和版本5都未曾使用过)
  • IP地址不能反映任何有关主机位置的地理信息
  • 以前还有个逆地址解析协议RAPR(Reverse APR),它的作用是使只知道自己MAC地址的主机能通过RAPR找到其IP地址,而现在的DHCP(Dynamic Host Configuration Protocol)协议已经包含了RARP的功能,所以RARP已淘汰不用了
  • 在Internet中,允许一台主机有两个或两个以上IP地址,这两个IP地址的网络号必然不同。如果一台主机有两个或两个以上IP地址,说明这个主机属于两个或两个以上的逻辑网络。同一时刻一个合法的内网IP地址只能分配给一台主机,否则会引起IP地址冲突

IP数据报的格式

当IP数据报每经过一个路由器,生存时间TTL就减1,并重新计算首部检验和

  • 版本:占4位,IP协议的版本
  • 首部长度:占4位,以4字节为单位,0101就代表5个4字节,即20字节(不使用可选字段)
  • 区分服务:占8位,一般情况不使用这个字段
  • 总长度:占16位,指首部和数据之和的长度,以字节为单位,因此数据报最大长度为65535B。以太帧的最大传送单元为1500B,因此当一个IP数据报封装成帧时,总长度超过了1500B,就要分片(一片就是一个帧的数据部分)(每一片都有首部,并且都是20字节)

  • 标识(identification):占16位,是一个计数器。每产生一个数据报就+1,并赋值给标识字段,但它并不是“序号”(因为IP是无连接服务),同属一个数据报的数据报片用相同的标识,以便最后重装成原来的数据报。(目的主机根据IP首部中的标识、标志、片偏移字段来完成对片的重组)
  • 标志(flag):占3位,目前只有两位有意义。最低位是MF(more fragment),MF=1表示后面还有分片,MF=0表示最后一个分片,中间一位是DF(don't fragment),DF=0时才允许分片
  • 片偏移:占13位,指出较长的分组在分片后,某片在原分组的相对位置(相对于数据报的数据字段的起点),以8个字节为偏移单位,除了最后一个分片外,每个分片的长度一定是8B的整数倍
  • 生存时间(Time To Live,TTL):占8位,是数据报在网络中可通过的路由器数量的最大值(跳数限制),路由器在转发分组前,把TTL减1,若TTL被减为0,则该分组必须丢弃
  • 协议:占8位,指出分组携带的数据部分使用何种协议,即分组数据应上交给哪个协议处理。值为6表示TCP,为17表示UDP,1表示ICMP,89表示OSPF
  • 首部检验和:占16位,只检验分组首部(不是CRC检验码,是反码求和运算),不检验分组数据部分
  • 源地址字段:占4B,标识发送方的IP地址
  • 目的地址字段:占4B,标识接收方的IP地址
  • 选项字段:动态增加IP数据报功能,但实际上很少被使用,因此IPv6的IP数据报的首部长度(指的是基本首部)就做成固定的了
  • 填充:当IP分组首部长度不是4字节整数倍时,用填充字段填充

路由器转发分组的过程

网络利用率并非越高越好。根据排队论,网络利用率增大时,所引起的时延也会迅速增加

转发表里的两种特殊路由

主机路由的子网掩码是255.255.255.255

默认路由的子网掩码是0.0.0.0

http://www.lryc.cn/news/236975.html

相关文章:

  • 搭建网关服务器实现DHCP自动分配、HTTP服务和免密登录
  • 【18年扬大真题】给定有m个整数的递增有序数组a和有n个整数的递减有序数组b,将a数组和b数组归并为递增有序的数组c
  • 图片叠加_图片压缩
  • Mybatis-Plus《学习笔记 22版尚硅谷 》——感谢【尚硅谷】官方文档
  • git安装后报git: ‘remote-https‘ is not a git command. See ‘git --help‘.
  • 场景交互与场景漫游-交运算与对象选取(8-1)
  • Vue中动态Class实战
  • B站短视频如何去水印?一键解析下载B站视频!
  • 最大子段和(分治法+动态规划法)
  • 内置函数和消息传递API
  • 不标年份的葡萄酒质量好吗?
  • 2023年【高处安装、维护、拆除】模拟考试题及高处安装、维护、拆除模拟考试题库
  • 简单模拟 Spring 创建的动态代理类(解释一种@Transactional事务失效的场景)
  • 万户OA upload任意文件上传漏洞复现
  • 如何写好一篇软文?怎样写软文比较有吸引力?
  • 从0开始学习JavaScript--JavaScript中的对象
  • 【LeetCode刷题】--7.整数反转
  • Genio 500_MT8385安卓核心板:功能强大且高效
  • idea导入javaweb变成灰色
  • SpringBoot集成Memcached
  • git基本操作(配图超详细讲解)
  • 【网络通信】浅析UDP与TCP协议的奥秘
  • C#核心笔记——(二)C#语言基础
  • C++ 删除无头链上所有指定值为x的节点。
  • linux基本指令以及热键
  • Rocketmq消费消息时不丢失不重复
  • RedisInsight——redis的桌面UI工具使用实践
  • JVM对象创建与内存分配
  • 央国企数字化转型难在哪?为什么要数字化转型?
  • 第7天:信息打点-资产泄漏amp;CMS识别amp;Git监控amp;SVNamp;DS_Storeamp;备份