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

IP服务模型

 

1. IP数据报

IP数据报中除了包含需要传输的数据外,还包括目标终端的IP地址和发送终端的IP地址。

数据报通过网络从一台路由器跳到另一台路由器,一路从IP源地址传递到IP目标地址。每个路由器都包含一个转发表,该表告诉它在匹配到特定目标地址后将数据报发送到哪里。路由器并不知道整个路径,它只是使用目标地址来索引自己的转发表,以便将数据报转发到路径上的下一跳,朝着最终目的地前进。

IP服务模型提供了一项服务,其中包括将数据路由到目的地的功能。

2. 不可靠的

IP并不保证数据报一定会被送达目的地,它们可能会被延迟送达、顺序错乱,甚至根本无法送达。数据报在传输过程中可能会被重复,例如由于某个行为异常的路由器。

3. 尽最大可能的

IP只在必要时丢弃数据报,路由器中的数据报队列可能因为拥塞而满载,迫使路由器丢弃下一个到达的数据报,IP不会尝试重新发送数据,IP不会通知源端数据报已被丢弃。

4. 无连接的

完全不维护与通信相关的任何状态,在开始时不建立与通信相关的任何端到端的状态。

为什么IP服务如此简单?

IP服务模型的一些细节

1. 试图阻止数据报在路由网路中无限循环地传输

IP在每个数据报的头部添加一个跳数字段,被称为生存时间字段(Time-to-Live, TTL)。假设它初始值设为128,然后每经过一个路由器就减1,如果它减到0,IP就判定数据报一定陷入了循环。路由器会丢弃该数据报。

2. 如果数据报太长,IP会对其进行分片。

IP设计为可在任何类型的链路上运行,大多数链路对它们能承载的数据报大小有限制,以太网只能承载小于1500字节的数据包。如果应用程序需要发送超过1500字节的数据,必须先将其分成1500字节的片段,再放入IP数据报中发送。现在,在通往目的地的路径上,一个1500字节的数据报可能需要经过只能承载更小数据报的链路,链接这两天链路的路由器会将数据分片成两个较小的数据报。IP提供了一些头部字段,帮助路由器将数据报分片成两个自包含的IP数据报,同时提供终端主机正确重组数据所需的信息。

3. IP使用头部校验和来减少将数据报传到错误目的地的可能性。

IP在数据报头部包含一个校验和字段,以尽力确保数据报被传送到正确的位置。

4. 目前使用的IP有两个版本,IPv4拥有32位的地址,IPv6拥有128位的地址。

5. 最后,IP允许在数据报头部添加新字段。

  

(1)Source IP Address:源端IP地址

(2)Destination IP Address:目标端IP地址

(3)Protocol ID:数据字段中包含的内容,允许目标主机对到达的数据进行解复用,将它们发送到正确的代码已处理数据报。如果Protocol ID是6,数据报包含一个TCP段,可以安全地将数据报传递给TCP代码,以正确解析该数据字段。

(4)Version:使用地IP协议的版本IPv4或者IPv6

(5)Total Packet Length:数据包的总长度,可达64KB,包括头部和所有数据。

(6)TTL(Time to Live)字段:防止数据包在网络中意外地无限循环,每个路由器都需要递减TTL字段,如果它达到0,路由器应丢弃该数据包。

(7)Packet ID、Flags、Fragment Offset:路由器在需要时将IP数据报分片成更小的、自包含的数据报。

(8)Type of Service:向路由器提示此数据包的重要性

(9)Header Length:头部的长度

(10)Options:可选字段携带额外信息

(11)Checksum:对整个头部计算校验和。

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

相关文章:

  • 仿真设计|基于51单片机的温湿度、一氧化碳、甲醛检测报警系统
  • QModbusTCPClient 服务器断开引起的程序崩溃
  • Vue 3 30天精进之旅:Day 11 - 状态管理
  • npm 和 pip 安装中常见问题总结
  • Flutter开发环境配置
  • Two Divisors ( Educational Codeforces Round 89 (Rated for Div. 2) )
  • 亚博microros小车-原生ubuntu支持系列:17 gmapping
  • Java面试题2025-并发编程进阶(线程池和并发容器类)
  • Stable Diffusion 3.5 介绍
  • 云计算部署模式全面解析
  • Vue 与 Electron 结合开发桌面应用
  • 数据库优化:提升性能的关键策略
  • 使用openAI与Deepseek的感受
  • pytorch实现长短期记忆网络 (LSTM)
  • 【ubuntu】双系统ubuntu下一键切换到Windows
  • 【PyTorch】6.张量形状操作:在深度学习的 “魔方” 里,玩转张量形状
  • 大模型GUI系列论文阅读 DAY4续:《Large Language Model Agent for Fake News Detection》
  • 论文阅读(九):通过概率图模型建立连锁不平衡模型和进行关联研究:最新进展访问之旅
  • python小知识-typing注解你的程序
  • git基础使用--1--版本控制的基本概念
  • “新月智能武器系统”CIWS,开启智能武器的新纪元
  • JVM运行时数据区域-附面试题
  • 增删改查(CRUD)操作
  • Vue.js `Suspense` 和异步组件加载
  • HTB:LinkVortex[WriteUP]
  • Linux命令入门
  • 【问题】Chrome安装不受支持的扩展 解决方案
  • 【题解】AtCoder Beginner Contest ABC391 D Gravity
  • 使用 SpringBoot+Thymeleaf 模板引擎进行 Web 开发
  • 【Java异步编程】CompletableFuture综合实战:泡茶喝水与复杂的异步调用