总结IP协议各类知识点

前言

本篇博客博主将详解IP协议中的各类知识点,坐好板凳发车啦~

一.IP协议格式

1.1 4位版本号(version)

指定IP协议的版本,对于IPv4来说,就是4。

1.2 4位头部长度(header length)

IP头部的长度是多少个32bit,也就是length*4的字节数。4bit表示最大的数字是15,因此IP头部最大长度是60字节。

1.3 8位服务类型(Type Of Service)

3位优先权字段(已经弃用),4位TOS字段,和1位保留字段(必须置为0);

4位TOS分别表示:最小延时,最大吞吐量,最高可靠性,最小成本。这四者相互冲突,只能选择一个。对于ssh/telnet这样的应用程序,最小延时比较重要,对于ftp这样的程序,最大吞吐量比较重要。

1.4 16位总长度(total length)

IP数据报整体占多少个字节

1.5 16位标识(id)

唯一的标识主机发送的报文,如果IP报文在数据链路层被分片了,那么每个片里面的这个id都是相同的。

1.6 3位标志字段

第一位保留(保留的意思是现在不用,但是还没想好以后用不用)

第二位置为1表示禁止分片,这时候如果报文长度超过MTU,IP模版就会丢弃报文

第三位表示更多分片,如果分片了的话,最后一个分片置为0,其他的是1,。类似于一个结束标记。

1.7 13位分片偏移(framegament offset)

是分片相对于原始IP报文开始处的偏移

其实就是在表示当前分片在原报文中处在哪个位置,实际偏移的字节数是这个值*8得到的。因此,除了最后一个报文之外,其他报文的长度必须是8的整数倍(否者报文就不连续了)。

1.8 8位生存时间(time to live TTL)

数据报达到目的地的最大报文跳数。一般起始是128,有的系统也是255。每次经过一个路由,TTL减等于1,一直减到0还没有到达,那么就丢弃了。这个字段主要是用来防止出现路由循环。

1.9 8位协议

表示上层协议(传输层)的类型(用的是哪个协议)

1.10 16位头部校验和

使用CRC进行校验,来鉴别头部是否损坏

1.11 32位源地址和32位目标地址

表示发送端和接收端

1.12 选项字段

不定长,最多40字节

二.IPv4

2.1概念

IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址。

2.2作用

IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,依次来屏蔽物理地址的差异。

2.3格式

IP协议是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节),如:01100100.00000100.00000101.00000110

通常用“点分十进制”的方式来表示,即a.b.c.d的形式(abcd都是0~255之间的十进制整数)如:100.4.5.6。

2.4分配置方式

把IP地址分为两大类

外网IP/公网IP

内网IP/局域网IP,约定10.*,172.16.*~172.31.*,192.168.*。

2.4.1动态分配

设备上网的时候才分配一个IP地址,不上网的时候收回IP地址,每一个IP都是广域网上的地址,每台主机都可以通过IP在网络上相互访问

这种方案并没有增加IP地址的数量,只是提高了利用效率而已,治标不治本。

2.4.2NAT机制

不再强求每台主机都有独立的公网IP地址

约定,每个局域网的IP地址不能重复;

约定,不同局域网的IP地址可以重复;

为一个局域网分配置一个外网IP作为局域网内所有机器访问互联网的对外IP地址,由路由器再给内网分配IP地址,这样的一个IP地址就可以代替很多机器,从而节省了IP资源。

2.4.3IPv6

IPv4是用4个字节,也就是32位来表示IP地址,约等于42亿

IPv6是用16个字节,也就是128位来表示IP地址,约等于42亿*42亿*42亿*42亿。

注:IPv4和IPv6不兼容。

三.IP地址规则-地址管理

3.1组成

IP地址分为两个部分,网络号和主机号

网络号:标识网段,标识局域网,保证相互连接的两个网段具有不同的标识;

主机号:标识主机,同一网段中,主机之间具有相同的网络号,但是必须具有不同的主机号,在一个局域网中的网络号可以相同,但主机号必须不同;

路由器中的WAN口连接上一层网络,LAN口连接本局域网中的主机。

3.2分类

历史悠久的分类方法,一种划分网络号和主机号的方案,把所有IP地址分为五类:

3.3子网掩码

3.3.1表示方式

也是32位,左边都用1来表示,用来确定网络号,不会1和0混着表示,有多少个1,就表示IP地址左侧有多少位是网络号

IP地址与子网掩码进行接位与运算,得到的结果就是网络号。

3.3.2计算方式

四.路由选择

尾语

这篇博客到这里就结束啦,希望可以给大家带来帮助~~

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS像素转换-如何使用像素单位设置组件的尺寸。

1 卡片介绍 基于像素单位,展示了像素单位的基本知识与像素转换API的使用。 2 标题 像素转换(ArkTS) 3 介绍 本篇Codelab介绍像素单位的基本知识与像素单位转换API的使用。通过像素转换案例,向开发者讲解了如何使用像素单位设…

大数据-Hadoop---基础配置案例

VMware17创建新虚拟机: 1.静态设置与关闭防火墙 在终端命令行依次输入: 1)cd /etc 2) ls 3) cd sysconfig/ 4) cd network-scripts/ 5) ls 6) vi ifcfg-nes33 在cmd命令栏输入:ncpa.cpl,是找网络适配器的命令 IPADDR&qu…

elementui el-input输入框类型为textarea时,将输入的数据保存换行和空格,并展示换行和空格

el-input输入框类型为textarea时,如果不做数据处理,是不会保存换行和空格的说输入了换行,但是保存数据后不会进行换行,需要保存输入的换行。 1、效果图 输入状态: 显示时: 2、实现代码 2.1、html部分&am…

在jupyter notebook中使用conda环境

在jupyter notebook中使用conda环境 1. 环境配置 conda activate my-conda-env # this is the environment for your project and code conda install ipykernel conda deactivateconda activate base # could be also some other environment conda install nb_cond…

在新能源充电桩、智能充电枪、储能等产品领域得到广泛应用的两款微功耗轨至轨运算放大器芯片——D8541和D8542

D8541和D8542是我们推荐的两款微功耗轨至轨运算放大器芯片,其中D8541为单运放, D8542为双运放,它特别适用于NTC温度采集电路、ADC基准电压电路、有源滤波器、电压跟随器、信号放大器等电路应用,在新能源充电桩、智能充电枪、…

网络编程--高并发服务器(二)

这里写目录标题 线程池高并发服务器UDP服务器TCP与UDP机制的对比TCP与UDP优缺点比较UDP的C/S模型实现思路模型分析实现思路(对照TCP的C/S模型) 二级目录 一级目录二级目录二级目录二级目录 一级目录二级目录二级目录二级目录 一级目录二级目录二级目录二…

【跟着CHATGPT学习硬件外设 | 05】I2C

本文根据博主设计的Prompt由CHATGPT生成,形成极简外设概念。 🚀 1. 概念揭秘 I2C(Inter-Integrated Circuit),也被称为IIC或双线接口,是一种用于微控制器(Microcontrollers)和外设…

用navicat进行mysql表结构同步

用navicat进行mysql表结构同步 前言新增一个列然后进行表结构同步删除一个列然后进行表结构同步把Int列转成TinyInt列,看数字溢出的情况下能不能表结构同步总结 前言 从同事那边了解到还能用navicat进行表结构同步,他会在发布更新的时候,直接…

Python基础之Class类的定义、继承、多态

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、class类1.类属性操作(增删改)2.类方法操作 二、类的继承1、语法2、方法重写 二、类的多态 一、class类 、三部分组成 1、类名&#xff…

MySQl on和where条件的区别?

MySQ L on和where条件的区别? on会生成临时表,不满足条件会置空 where 过滤数据,不满足的数据不会显示

木地板 VS 瓷砖,不同风格应该怎么选?福州中宅装饰,福州装修

不同装修风格应该怎么选择地板铺贴材质?是选择木地板还是瓷砖?以下分点阐述: ①现代简约风格 推荐使用瓷砖。因为瓷砖的表面光滑,能反射出灯光的倒影,营造出简洁明亮的视觉效果。同时,瓷砖耐磨、易清洁&am…

算法——动态规划:01背包

原始01背包见下面这篇文章:http://t.csdnimg.cn/a1kCL 01背包的变种:. - 力扣(LeetCode) 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 简化一…

Mysql从0到1 —— CRUD/索引/事务

文章目录 1 预备知识1.1 安装1.2 登录 & 退出1.3 配置文件my.cnf 2 基础知识2.1 链接服务器2.2 什么是数据库2.3 基本使用2.3.1创建表2.3.2 插入数据 2.4 服务器、数据库、表的关系2.5 SQL分类2.6 存储引擎 3 Mysql数据库的操作3.1 创建和删除3.2 字符集和校验规则3.3 查看…

javaScript之递归

什么是递归? 递归函数是在一个函数内通过名字调用自身的情况下构成的。 递归的优点 递归可以用来处理循环解决起来比较麻烦的问题 方法: 1,函数自己调用自己 2,找规律,找出这一次和上一次的关系 2,需…

这是斗魂大赛?不!是斗美大赛!

最近《绝世唐门》中斗魂大赛正如火如荼地展开,每场对战都十分精彩,令人心潮澎湃,忍不住大喊“过瘾”! 除了扣人心弦的打斗场面,新登场的角色们更是颜值爆表,美得令人心动,帅得让人窒息。不得不赞…

机器学习模型及其使用方法——《机器学习图解》

本书教你两件事——机器学习模型及其使用方法 机器学习模型有不同的类型,有些返回确定性的答案,例如是或否,而另一些返回概率性的答案。有些以问题的形式呈现;其他则使用假设性表达。这些类型的一个共同点是它们都返回一个答案或…

配置中心apollo==springboot使用apollo

多环境的APOLLO之前已经搭建好了。 新建一个SPRINGBOOT项目 <dependency> <groupId>com.ctrip.framework.apollo</groupId> <artifactId>apollo-client</artifactId> <version>2.2.0</version> </dependency> <?x…

L2-4 部落

在一个社区里&#xff0c;每个人都有自己的小圈子&#xff0c;还可能同时属于很多不同的朋友圈。我们认为朋友的朋友都算在一个部落里&#xff0c;于是要请你统计一下&#xff0c;在一个给定社区中&#xff0c;到底有多少个互不相交的部落&#xff1f;并且检查任意两个人是否属…

实现定时任务

定时任务的实现方式有很多&#xff0c;比如XXL-Job等。但是其实核心功能和概念都是类似的&#xff0c;很多情况下只是调用的API不同而已。 这里就先用SpringBoot为我们提供的定时任务的API来实现一个简单的定时任务&#xff0c;让大家先对定时任务里面的一些核心概念有个大致的…

网络编程(1)写一个简单的UDP网络通信程序【回显服务器】,并且实现一个简单的翻译功能

使用 JAVA 自带的api 目录 一、回显服务器 UdpEchoServer 服务器代码 客户端代码 二、翻译功能 UdpDictServer 在UdpDictServer里重写process方法 一、回显服务器 UdpEchoServer /*** 回显服务器* 写一个简单的UDP的客户端/服务器 通信的程序* 这个程序没有啥业务逻辑&am…