IP 数据报的格式

  • 一个 IP 数据报由首部和数据两部分组成。
  • 首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。
  • 在首部的固定部分的后面是一些可选字段,其长度是可变的。

IP数据报首部的固定部分中的各字段

  • 版本:占4位,指IP协议的版本。

  • 首部长度:占4位,可表示的最大十进制数值是15

  • 区分服务:占8位,用来获得更好的服务

  • 总长度:指首部和数据之和的长度,单位为字节。总字段长度为16位,因此数据报的最大长度为2^16-1。总长度必须不超过最大传送单元MTU。

  • 标识:占16位。当数据报的长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报片的标识字段中。相同的标识字段的值使分片后的各数据报片能够正确的重装会原来的数据报。

  • 标志(Flag):占3位,但目前只有两位有意义

    • 标志字段中的最低位记为MF。MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片中的最后一个。
    • 标志字段中间的一位记为DF,意思是不能分片。只有DF=0时才允许分片。
  • 片偏移:占13位。片偏移指出,较长的分组在分片后某片在原分组中的相对位置。也就是说,相对于用户数据字段的起点,该片从何处开始。片偏移以8个字节为偏移单位。这就是说,每个分片的长度一定是8字节(64位)的整数倍。

  • 生存时间:占8 位,记为 TTL (Time To Live),指示数据报在网络中可通过的路由器数的最大值。

  • 协议:占8 位,指出此数据报携带的数据使用何种协议,以便目的主机的 IP 层将数据部分上交给那个处理过程

  • 首部检验和:占16 位,只检验数据报的首部,不检验数据部分。这里不采用 CRC 检验码而采用简单的计算方法。

  • 源地址和目的地址都各占 4 字节(32位)

实例:

一数据报的总长度为 3820 字节,其数据部分的长度为 3800 字节(使用固定首部),需要分片为长度不超过 1420 字节的数据报片。因固定首部长度为 20 字节,因此每个数据报片的数据部分长度不能超过 1400 字节。
于是分为 3 个数据报片,其数据部分的长度分别为 1400、1400 和 1000 字节。原始数据报首部被复制为各数据报片的首部,但必须修改有关字段的值。


IP数据报首部中与分片有关的字段中的数值

IP数据报首部检验和计算过程:

IP层转发分组流程


在路由表中,对每一条路由最主要的是以下两个信息:
(目的网络地址, 下一跳地址)

根据目的网络地址就能确定下一跳路由器,这样做的结果是:

  • IP 数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次的间接交付)。
  • 只有到达最后一个路由器时,才试图向目的主机进行直接交付。

特定主机路由

  • 虽然互联网所有的分组转发都是基于目的主机所在的网络,但在大多数情况下都允许有这样的特例,即为特定的目的主机指明一个路由。
  • 采用特定主机路由可使网络管理人员能更方便地控制网络和测试网络,同时也可在需要考虑某种安全问题时采用这种特定主机路由。

默认路由 (default route)

  • 路由器还可采用默认路由以减少路由表所占用的空间和搜索路由表所用的时间。
  • 这种转发方式在一个网络只有很少的对外连接时是很有用的。
  • 默认路由在主机发送 IP 数据报时往往更能显示出它的好处。
  • 如果一个主机连接在一个小网络上,而这个网络只用一个路由器和互联网连接,那么在这种情况下使用默认路由是非常合适的。

只要目的网络不是 N1 和 N2,就一律选择默认路由,把数据报先间接交付路由器 R1,让 R1 再转发给下一个路由器。

注意事项:

  • IP 数据报的首部中没有地方可以用来指明“下一跳路由器的 IP 地址”。
  • 当路由器收到待转发的数据报,不是将下一跳路由器的 IP 地址填入 IP 数据报,而是送交下层的网络接口软件。
  • 网络接口软件使用 ARP 负责将下一跳路由器的 IP 地址转换成硬件地址,并将此硬件地址放在链路层的 MAC 帧的首部,然后根据这个硬件地址找到下一跳路由器。

路由器分组转发算法

(1)从数据报的首部提取目的主机的 IP 地址 D, 得出目的网络地址为 N。
(2)若网络 N 与此路由器直接相连,则把数据报直接交付目的主机 D;否则是间接交付,执行 (3)。
(3)若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行 (4)。
(4)若路由表中有到达网络 N 的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行 (5)。
(5)若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行 (6)。
(6)报告转发分组出错。

关于路由表

  • 路由表没有给分组指明到某个网络的完整路径。
  • 路由表指出,到某个网络应当先到某个路由器(即下一跳路由器)。
  • 在到达下一跳路由器后,再继续查找其路由表,知道再下一步应当到哪一个路由器。
  • 这样一步一步地查找下去,直到最后到达目的网络。

计算机网络 网络层——IP数据报 详记相关推荐

  1. 计算机网络 --- 网络层IP数据报

    IP数据报格式 首部 版本:IPv4/IPv6 首部长度:单位是4B,最小为5.也就是说如果首部长度的四个bit的出来的数是8,那么首部长度就是8 * 4B = 32B也就是32字节 区分服务:指示期 ...

  2. 网络层——IP数据报详解

    IP数据报格式 各个字段的分析: 版本 4位    指IP协议的版本,通信双方使用的IP协议版本必须保持一致.主要用两个版本IPV4.IPV6 首部长度 4位   4位表示的最大十进制数是15.注意, ...

  3. 【计算机网络】网络层 : IP 数据报分片 ( 数据分片机制 | 分片示例 | 三种数据长度单位 )

    文章目录 一.最大传送单元 MTU 二.分片机制 ( 标识.标志.片偏移 ) 三.分片机制 示例 四.IP 数据报首部中的相关数据长度单位 一.最大传送单元 MTU 最大传送单元 MTU : MTU ...

  4. 【计算机网络】网络层 : IP 数据报格式 ( IP 数据报首部格式 )

    文章目录 一.TCP / IP 协议栈 二.IP 数据报 格式 三.IP 数据报 首部格式 一.TCP / IP 协议栈 TCP / IP 协议栈 : ① 应用层 : HTTP , FTP , DNS ...

  5. 计算机网络实验ip数据报转发,计算机网络实验报告三网际协议IP.doc

    计算机网络实验报告三网际协议IP 计算机网络实验报告 实验题目:网际协议IP学号:201200301106日期:2014/11/20班级:2012级软工3班姓名: 李凯峰实验目的: 1.掌握IP数据报 ...

  6. 王道考研 计算机网络17 IP数据报 最大传送单元MTU IP地址 IPv4 子网划分 ARP协议 ICMP协议 移动IP

    TCP/IP协议栈 TCP:传输控制协议(Transmission Control Protocol)是一种面向连接的.可靠的.基于字节流的传输层通信协议. IP是Internet Protocol( ...

  7. 计算机网络实验IP数据报分片,实验报告三IP数据分片.doc

    实验报告三IP数据分片 计算机网络实验报告 实验名称:IP数据分片 组号:一组 角色号:B 姓 名: 班 级: 学 号: 日 期:2014.4.21 一,实验目的 学习IP数据报分片原理 二,实验步骤 ...

  8. 【学习记录】网络层——IP数据报(格式与分片)

    文章目录 一. IP数据报格式 二. IP数据报分片 ① 为什么要分片? ② 标识.标志与片偏移 ③ 例题 单位为nB小结 PPT截自王道考研教程 tips:b是位,B是字节. 一. IP数据报格式 ...

  9. 渲染层网络层错误_网络层IP报文详解和IP的类别?

    在tcp/ip 体系结构中,当传输层的pdu送到网络层时,需要对传输层s的数据段进行下一步的ip报头的封装.下面我们就来看看ip报文头部的具体内容. version:占4位,版本号,标识这个报文时采用 ...

最新文章

  1. VSCode 安装 Go 插件、gopls 是个什么东东
  2. 【Netty】Netty组件介绍
  3. WINCE6.0+S3C2443睡眠和唤醒(sleep and wake up)的实现
  4. 网络电缆 计算机电缆,计算机电缆的技术参数
  5. 架构师一般做到多少岁_软件测试可以做到多大岁数?
  6. A. PHP文件运行原理
  7. Linq 中的 left join
  8. 对象锁 区别 类锁
  9. mysql统计分组求和
  10. 计算机一寸照编辑教程,Photoshop教您快速的制作标准一寸证件照教程
  11. 基于java jsp企业人事管理系统mysql
  12. office 2016 word文档另存为pdf之后文本内容显示不全
  13. 原生JS实现的跳一跳小游戏完整实例
  14. 美团旅行前端技术体系的思考与实践
  15. vue项目架构搭建-3
  16. 在小公司做项目经理有意义吗_产品经理–是否具有战略意义?
  17. 如何查看python安装了哪些模块_Python模块如何安装 并确认模块已经安装好?
  18. 要辞职了,收集一些如何写辞职信的模板
  19. java.lang.ClassNotFoundException: org.springframework.web.servlet.HandlerMapping解决方法
  20. 展开关闭页面html,JQUERY实现网页右下角固定位置展开关闭特效的方法

热门文章

  1. Access报表实现记账凭证打印
  2. 曹健老师 TensorFlow2.1 —— 第三章 神经网络八股
  3. tensorflow学习笔记(五)
  4. 一梦江湖服务器维护,一梦江湖维护更新公告 瓜王挑战赛可以解说啦
  5. MobaXTerm之快捷复制-yellowcong
  6. Ubuntu添加路由规则
  7. 【小白学前端】化腐朽为神奇-HTML+CSS3实现旋转地球(day02-4)
  8. java播放二进制 Flv视频
  9. 服务器传输大文件方法
  10. Mac上好用的优质的软件合集