IP协议报文格式

IP协议报文格式

  • 一: 报头格式
    • 1.1 : 4位版本
    • 1.2 : 4位首部长度
    • 1.3 : 8位服务类型 :
    • 1.4 : 16位总长度(字节数)
    • 1.5 : 8位生存时间(TTL)
    • 1.6 : 8 位协议
    • 1.7 : 32 位源IP / 32 位目的IP

一: 报头格式

在这里插入图片描述

1.1 : 4位版本

现在使用的也就只有IPv4,IPv6

1.2 : 4位首部长度

以 4字节为单位,所以IP报头最长就是64字节,最短就是20字节

1.3 : 8位服务类型 :

实际上只有4位有效, 而且这4位是互斥的,只有一位为1

  1. 最小延时 : 传输过程中.消耗的时间最短
  2. 最大吞吐量: 单位时间内,传输的数据尽可能多.
  3. 最高可靠性: 降低丢包的概率.
  4. 最小成本: 比较节省系统开销.

1.4 : 16位总长度(字节数)

指的是整个IP 数据包的长度: 报头+ 载荷
总长度,去掉IP报头长度,就是IP载荷长度,而IP载荷是由TCP/UDP报头+ TCP/UDP载荷组成,所以去掉TCP/UDP报头长度,剩下的就是载荷长度了.
16bit ,表示IP数据包最大64KB,如果超过64KB,怎么办?
IP协自身实现了拆包,组包这样的功能,如果数据包的长度超过上限,IP数据包就会自动拆分成多个数据包,每个数据包携带一部分,发送到对方后,再拼接好.

在这里插入图片描述

在这里插入图片描述

1.5 : 8位生存时间(TTL)

IP 数据包在网络上转发,是由次数限制的,当转发的次数过多,接收方还未收到,这个数据包就要被丢弃.
8位生存时间,就是限制一个数据包在网络上转发的最大次数.
一个IP数据包,初始情况下,有一个TTL的值(32/64这样的整数),也是可以配置的.
这个次数每经过一个路由器的转发,就要-1,减到0了,就要把这个数据包丢弃掉.

1.6 : 8 位协议

描述了载荷部分是哪种协议的数据包.
一个数据包在分用的时候,要交给上层的哪个协议,都是有明确的声明的,
传输层 ==> 应用层 : 通过端口号来区分

网络层 ==> 传输层 : 报头中有这个8位协议字段,不同的取值就对应不同的传输层协议

数据链路层 ==>网络层 : 报文中,类型字段,区分是IP数据包,还是其他的数据包

1.7 : 32 位源IP / 32 位目的IP

32位范围: 0 - 42亿9千万,原则上.IP地址应该是唯一的,不重复的,但32位仍然不够用,尤其是现在处于移动互联网的今天.
32位IP地址不够用,如何解决?

  1. 动态分配 IP地址.
    某个设备,上网就分配 IP地址,不上网,就不分配,
    这样的机制,只能缓解,没办法从根本上解决问题,IP地址没有变多,只是跳过了IP地址的利用率.

  2. NAT机制 : 网络地址映射
    首先,把IP地址分为两类,
    1: 私网IP (局域网内部使用)
    10.x.x.x
    172.16 .x.x - 172.31.x.x
    192.168.x.x
    2: 公网IP(广域网使用): 私网IP以外的IP

公网IP是唯一的,私网IP可以在不同的局域网中重复.

== 引入私网IP,如何进行通信呢?==

  1. 同一个局域网内部, 设备之间的通信
    由于一个局域网内部的设备之间的IP是不能重复的,所以这些设备可以正常通信
  2. 广域网和广域网设备之间的通信
    广域网中的设备IP本身就是唯一的,所以也能正常交互.
  3. 局域网1 中的设备A尝试访问局域网2 中的设备B
    这种情况下是不允许进行访问的
  4. 局域网中的设备主动访问广域网设备,
    这个过程中,NAT机制就发挥作用了.
  5. 广域网主动访问局域网设备
    不允许进行访问

因此, 如果需要进行上述的局域网和局域网设备之间的通信,往往需要广域网中的服务器进行数据转发.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/698109.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

目前比较好用的LabVIEW架构及其选择

LabVIEW提供了多种架构供开发者选择,以满足不同类型项目的需求。选择合适的架构不仅可以提高开发效率,还能确保项目的稳定性和可维护性。本文将介绍几种常用的LabVIEW架构,并根据不同项目需求和个人习惯提供选择建议。 常用LabVIEW架构 1. …

开源VisualFbeditor中文版,vb7 IDE,VB6升级64位跨平台开发安卓APP,Linux程序

吴涛老矣,社区苦无64位易语言,用注入DLL增强菜单,做成VS一样的界面 终归是治标不治本,一来会报毒,二来闭源20年没更新了 开源的VB7,欢迎易语言的铁粉进群:1032313876 【Freebasic编程语言】编绎…

服务部署:解决Docker容器与虚拟机主机之间MySql连接访问问题

一、场景: 虚拟机上Ubuntu系统安装了Mysql,现在有一个服务应用需要使用docker来部署,服务应用需要连接mysql做数据库基础使用,配置文件中配置了虚拟主机的IP和端口,但是还是无法连接到Mysql,报错无法连接超…

Characters 2 01(卡通可爱人物动画模型)

● 包裹● - 26名男子; - 29个女孩。 ● 使用地点 ● - 游戏。针对游戏引擎优化的模型; -乘法; 广告和营销; - 虚拟现实/增强现实。 ● 特点 ● - 你可以很容易地改变物体的颜色 - 使用UV贴图; - 对象逻辑位置的枢轴; - 模型具有逻辑名称。 ● 几何学● 62个独特的资产(…

【MySQL】(基础篇七) —— 通配符和正则表达式

通配符和正则表达式 本章介绍什么是通配符、如何使用通配符以及怎样使用LIKE操作符进行通配搜索,以便对数据进行复杂过滤;如何使用正则表达式来更好地控制数据过滤。 目录 通配符和正则表达式LIKE操作符百分号(%)通配符下划线(_)通配符 通配符使用技巧正…

VitePress+Docker+jenkins构建个人网站

VitePress官网 VitePress | 由 Vite 和 Vue 驱动的静态站点生成器 可以理解为一个前端脚手架:快速生成个人站点 最好先大概看一遍 快速开始 | VitePress 可以在线体验一下 安装条件 node -v 检查下node版本 在D盘创建一个文件夹 例如:VitePress 进入文件夹 cmd npm ini…

xshell远程无法链接上VM的centos7

1、现象如下, 2.1解决办法:查证后发现这个默认的设置为vmnet0 2.2解决办法:重启win10的虚拟机网卡(先禁用再启用) 3.参考文章:Xshell连接不上虚拟机centos7_centos7的nat模式可以ping通网络,但是用xshell连…

深入浅出LLM大语言模型

一. 前言 2022年末,聊天程序ChatGPT的上线,在短短5天被注册用户就破百万。ChatGPT的爆火,在一夜之间,带领人类穿越到了真正的人工智能时代。 本文会从ChatGPT作为切入点,在介绍其底层的GPT模型诞生史后,再…

基于SSM+Jsp的交通事故档案管理系统

开发语言:Java框架:ssm技术:JSPJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包…

打造精细化运维新玩法(三)

实践SLO,概括下就是在相对标准、统一的框架下指导和推动服务质量的数字化建设,形成对组织有价值的数据资产和流程规范。借用在人工智能和机器学习领域的观点,算法的上限受限于数据质量的好坏,所以从源头上建设高质量的数据非常重要…

2024年城市建设、运输与智慧交通国际会议(ICUCTST 2024)

2024 International Conference on Urban Construction, Transportation, and Smart Transportation 【1】大会信息 会议简称:ICUCTST 2024 大会地点:中国厦门 会议官网:www.icuctst.com 投稿邮箱:icuctstsub-paper.com 【2】会…

打工人和学生党的福利,NewspaceGpt使用新体验

使用地址:https://newspace.ai0.cn/ 个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮…

2024年智能医疗与生物医药国际会议(ICIHB 2024)

2024 International Conference on Intelligent Healthcare and Biopharmaceuticals 【1】大会信息 会议简称:ICIHB 2024 大会地点:中国珠海 会议官网:www.icihb.com 投稿邮箱:icihbsub-paper.com 【2】会议简介 2024年智能医…

C++:SLT容器-->queue

C:SLT容器-->queue 1. queue容器2. queue 常用接口 1. queue容器 先进先出队列允许从一端插入元素,从另一端删除元素队列中只有队头和队尾可以被外界使用,因此队列不允许有遍历行为队列中插入数据称为入队(push),删除数据称为出队(pop) …

LeetCode 算法:缺失的第一个正数c++

原题链接🔗:缺失的第一个正数 难度:困难⭐️⭐️⭐️ 题目 给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1: 输…

Leetcode刷题笔记8

162. 寻找峰值 162. 寻找峰值 - 力扣(LeetCode) 对于所有有效的 i 都有 nums[i] ! nums[i 1] 解法一:暴力解法 从第一个位置一直向后走,然后分情况即可1. 第二个元素就往下降,那么第一个元素就是峰顶 2. 一直遍历…

9、编写业务逻辑

9、编写业务逻辑 9.1 编写博客接口(新增和查询一起编写了) 响应实体:(随便封装的,可以根据自己的想法封装) // entity/Response package com.example.fullstackblogback.commen;import lombok.Data;import java.util.List;@Data public class Response<T> {pri…

C++: shared_ptr是线程安全的吗

导读 C面试中有时会有这样一个问题&#xff0c;shared_ptr是线程安全的吗&#xff1f;对此问题&#xff0c;我们需要从三个并发场景进行考虑&#xff0c;拷贝shared_ptr的安全性、对shared_ptr赋值的安全性和读写shared_ptr指向内存区域的安全性。 对于以上问题&#xff0c;首…

计算机网络期末考试知识点(关键词:江中)

目录 大家端午节快乐呀&#xff01;又到了一年两度的期末考试月了&#xff0c;这里给大家整理了一些复习知识点&#xff0c;大家可以边吃粽子边复习&#xff0c;事半功倍哈哈哈。祝各位期末过&#xff01;过&#xff01;过&#xff01;。 1 第一章 计算机网络体系结构 计算机…

重生之我要精通JAVA--第八周笔记

文章目录 多线程线程的状态线程池自定义线程池最大并行数多线程小练习 网络编程BS架构优缺点CS架构优缺点三要素IP特殊IP常用的CMD命令 InetAddress类端口号协议UDP协议&#xff08;重点&#xff09;UDP三种通信方式 TCP协议&#xff08;重点&#xff09;三次握手四次挥手 反射…