IP服务模型

ops/2025/2/2 8:14:04/

 

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.ppmy.cn/ops/154989.html

相关文章

淘宝评论接口item_review实战技巧:如何有效分析用户评价,优化运营策略

在电商领域,用户评价是商家了解产品市场表现、优化运营策略的重要依据。淘宝作为中国最大的电商平台之一,其评论接口item_review为商家提供了丰富的用户评价数据。本文将深入探讨如何有效利用这一接口,分析用户评价,从而优化运营策…

Excel 技巧22 - Ctrl+D 向下复制(★★),复制同间距图形

本文讲Excel中CtrlD 向下复制的用法。 这个是我特别喜欢和常用的功能,操作简单,功能强大。 1,CtrlD向下复制 1-1,单个单元格复制 最为常用的就是一个单元格的,就像下面这样的,也不用选中, 就…

亚博microros小车-原生ubuntu支持系列:13 激光雷达避障

一 背景知识 小车发了了数据包含激光雷达数据,类型是sensor_msgs/msg/LaserScan bohubohu-TM1701:~$ ros2 node info /YB_Car_Node /YB_Car_Node Subscribers: /beep: std_msgs/msg/UInt16 /cmd_vel: geometry_msgs/msg/Twist /servo_s1: std_msgs/…

实现使用K210单片机进行猫脸检测,并在检测到猫脸覆盖屏幕50%以上时执行特定操作

要实现使用K210单片机进行猫脸检测,并在检测到猫脸覆盖屏幕50%以上时执行特定操作,以及通过WiFi上传图片到微信小程序,并在微信小程序中上传图片到开发板进行训练,可以按照以下步骤进行: 1. 硬件连接 确保K210开发板…

PythonFlask框架

文章目录 处理 Get 请求处理 POST 请求应用 app.route(/tpost, methods[POST]) def testp():json_data request.get_json()if json_data:username json_data.get(username)age json_data.get(age)return jsonify({username: username测试,age: age})从 flask 中导入了 Flask…

Linux中基础开发工具(yum,vim,gcc/g++,git,gdb/cgdb)

基础开发工具 软件包管理器yum具体操作查看软件包安装软件卸载软件 vim编译器vim的基本操作命令模式底行模式 gcc/g编译器gcc编译选项预处理(进行宏替换/去注释/条件编译/头文件展开等)编译(生成汇编)汇编(生成机器可识…

【力扣Hot 100】矩阵2

旋转图像:观察旋转前后矩阵,发现点 i, j的变化规律,即每4个点会一同交换位置。遍历起始点。 搜索二维矩阵:按行二分法 3. 旋转图像 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原…

3-scala的类

Scala中的类是用于创建对象的蓝图,其中包含了方法、常量、变量、类型、对象、特质、类,这些统称为成员。类型、对象和特质将在后面的文章中介绍。 类定义 一个最简的类的定义就是关键字class标识符,类名首字母应大写。 class Userval user…