IP协议详解

news2024/9/27 12:08:17

IP协议

IP协议格式:

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

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

8位服务类型(TOS):说是8位,其实只有4位有效。有效的4位表示四种"工作模式",分别表示:最小延时,最大吞吐量,最高可靠性,最小成本。这四者相互冲突,只能选择一个(只有一位可以是1)。

16位总长度:IP数据报整体占多少个字节,也就是IP数据报的报文长度是多少,它不表示一个数据报最多只能有64kb,IP协议自带了分包组包(分片组片)的机制。

16位标识(id):唯一的标识主机发送的报文。如果IP协议报文被分包(分片)了,那么每一个包(片)里面的这个id都是相同的。

3位标志字段:第一位保留位(保留的意思是现在不用,但是还没想好说不定以后要用到)。第二位用来表示当前分没分包(分没分片)。第三位表示当前这个包(片)是否是所在包(片)的最后一个

13位分片偏移:是分包(分片)相对于原始IP报文开始处的偏移量。其实就是在表示当前分包(分片)在原报文中处在哪个位置。它用来区分前后顺序。

8位生存时间(TTL):表示一个ip数据报可以在网络中生存的时间(转发的次数)。一般是从64开始,每次经过一个路由TTL就-1,一直减到0还没到达的话就丢弃了。这个字段主要是用来防止出现路由循环(永远也发不过去)。

8位协议:指的是IP载荷中数据报使用的传输层协议类型,也就是表示上层协议的类型。

16位校验和:IP校验和使用了一个比较常见的CRC算法(循环冗余校验)来鉴别头部是否损坏。

CRC即CRC算法(循环冗余校验):把IP协议数据报中的每个字节都进行累加,和放到一个两个字节的数字中(加的过程中如果溢出了就溢出),最终得到的结果就是校验和

发送方发送IP协议数据报的时候,就先计算一个校验和,接收方接收的时候,按照同样的规则再算一次校验和,最后看一下两次校验和是不是一样的(这里出现问题的概率还是比较小的)

32位源地址和32位目标地址:表示发送方地址和接收方地址,它就是IP地址。

选项字段(不定长,最多40字节):暂时忽略;

IP地址

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

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

IP地址是一个32位的二进制数,为了给人来看,通常会把这个32位的整数转换成"点分十进制"表示(如127.0.0.1)。点分十进制使用3个点把IP地址分成了4个部分,每个部分1个字节,每个部分的取值范围0-255

IPv6可以完全解决IP地址不够用的问题,可以给地球上的每一粒沙子都分配一个IP地址,但是当前网络现状仍然是NAT机制 + 动态分配IP地址,是因为IPv6与IPv4不兼容~~

网络号与主机号

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

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

主机号:标识主机,同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号;

同一个局域网中,主机之间的网络号是相同的,主机号是不同的~~在两个相邻的局域网中,要求网络号是不同的,主机号随意(同一个路由器连接的局域网)~~

子网掩码

IP地址通过子网掩码来划分出从哪到哪是一个网络号,从哪到哪是一个主机号~~

子网掩码格式和IP地址一样,也是一个32位的二进制数。

子网掩码它的左半边都是1,右半边都是0(不会01混着),左半边有多少个1就表示IP地址左侧的多少位是网络号~~右半边有多少个0就表示IP地址右侧的多少位是主机号~~

动态分配IP地址

动态分配IP地址技术主要是解决当前IPv4地址不够用的问题(主流机制),是路由器的一个重要功能;

动态分配IP地址:设备上网的时候才分配IP地址,不上网的时候就把IP地址回收,给别人用~~

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

NAT机制

NAT机制主要解决当前IPv4地址不够用的问题(主流机制),是路由器的一个重要功能;

NAT机制把IP地址分成了两大类:

1、外网IP/公网IP

2、内网IP/局域网IP

NAT机制约定:在同一个局域网内部,IP不能重复,但在不同的局域网中,IP之间允许重复。但是外网IP是要求唯一的~~

NAT能够将局域网IP在对外通信时转为外网IP,也就是一种将局域网IP和外网IP相互转化的技术方法;

很多学校,家庭,公司内部采用每个终端设置局域网IP,而在路由器或必要的服务器上设置外网IP;

运营商的路由器连接着千家万户的设备,因此它的一个外网IP可能代替了上万个设备(这些设备都是局域网IP),它用了一个IP地址代替了很多设备,自然就节省了IP地址的个数

我们可以通过NAT设备访问到外网的IP,但是我们无法访问到其他局域网的IP(也就是无法访问到其他局域网设备)

特殊的IP地址

如果一个IP地址主机号为0,此时这个IP就表示网络号~~例如192.168.0.0,代表当前局域网~~

如果一个IP地址主机号为1,此时这个IP往往表示这个局域网的"网关"~~例如192.168.0.1,代表局域网的"网关"(通常就是路由器的IP)

如果一个IP地址主机号为全1,此时这个IP表示广播IP

如果一个IP地址是127.*开头的,都是"环回IP",也就是自己的IP地址的另一种表示,典型的就是127.0.0.1

路由选择

IP数据报中就包含了目的IP,网络数据报到达路由器的时候,路由器自身有一个"路由表"数据结构(路由表就是这个路由器认识的路),一个路由器只能认识到附近的一部分网络面貌~~

如果当前的目的IP路由器认识,就会给出一个明确的路线~~如果当前的目的IP路由器不认识,路由器就会把数据报转发给一个"更见多识广"的路由器(在路由表里有一个默认的选项,下一跳)~~

有可能找了一大圈也没到达目的地(目的IP),比如IP地址不存在/IP地址不可达~~

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

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

相关文章

学会这几招,轻松提升办公效率

技巧一:录屏 录屏需要使用“第三方工具/插件”吗?其实,PPT中有一个内置的“录屏”工具! 使用PPT自带的“录屏”工具可以帮助我们快速录制电脑屏幕上的内容,录屏后的录屏结果会自动添加到PPT中,非常适合在PP…

JavaWeb_HTTP+Tomcat+Servlet

一、JavaWeb技术栈 B/S 架构:Browser/Server,浏览器/服务器 架构模式,它的特点是,客户端只需要浏览器,应用程序的逻辑和数据都存储在服务器端。浏览器只需要请求服务器,获取Web资源,服务器把We…

第三章.逻辑回归—正确率/召回率/F1指标,非线性逻辑回归代码

第三章.逻辑回归 3.2 正确率/召回率/F1指标 正确率(Precision)和召回率(Recall)广泛应用于信息检索和统计学分类领域的两个度量值,用来评价结果的质量。 1.概念: 1).正确率: 检索出来的条目有多少是正确的 2).召回率: 所有正…

Notepad++ 编写html代码快捷键切换到浏览器查看

一、设置Notepad 快速启动浏览器并且运行html1.找到Notepad的安装路径,找到Notepad 的shortcuts.xml文件。2.如图所示,用记事本打开【千万不要用Notepad打开】。打开之后可以看到里面的代码。以启动连接 chrome浏览器为例,选择对应的chrome 代…

【金融学】Financial Markets

Financial MarketsClass1 Financial Markets IntroductionWhat is Financial MarketsFinancial Topics课程目标Class1 Financial Markets Introduction What is Financial Markets “金融不仅仅是关于赚钱,金融应该是关于使某事发生” ----Robert Shiller. Financi…

TCP的3次握手细节

一、什么是TCP的三次握手在网络数据传输中,传输层协议TCP是要建立连接的可靠传输,TCP建立连接的过程,我们称为三次握手。三次握手的具体细节1. 第一次握手:Client将SYN置1,随机产生一个初始序列号seq发送给Server&…

虹科方案|使用 Thunderbolt™ 实现 VMware vSAN™ 连接

一、引言ATTO的Thunderbolt支持VMware ESXi 和ThunderLink产品线,使我们能够创建基于Mac的vSphere设置,从而能够为我们的macOS服务器提供虚拟化服务。 将虚拟硬件、快照和Veeam备份与macOS服务器的简单性相结合,将改变SMB市场的游戏规则。二、…

SVPWM控制技术+Matlab/Simulink仿真详解

文章目录前言一、SVPWM的控制原理二、空间矢量的概念三、电压与磁链空间矢量的关系四、三相逆变器的基本电压空间矢量五、SVPWM 算法的合成原理六、SVPWM 算法推导6.1.七段式SVPWM6.2.五段式SVPWM(又称DPWM)七、SVPWM 算法实现7.1.合成矢量Uref所处扇区的…

【手写 Promise 源码】第十篇 - Promise.prototype.catch 和 Promise.prototype.finally 的实现

theme: fancy 一,前言 上篇,主要实现了 Promise 的两个静态 API(类方法):Promise.resolve 和 Promise.reject,主要涉及以下几个点: Promise.resolve 创建并返回一个成功的 promise&#xff1…

WebDAV之葫芦儿·派盘+纯纯写作

纯纯写作 支持WebDAV方式连接葫芦儿派盘。 推荐一款简单的纯文本编辑软件,纯粹、有安全感、随时、绝对不丢失内容、具备良好的写作体验。界面非常简洁,且功能齐全,旨在给用户们提供贴心、舒适的写作服务。纯纯写作可以实现在Windows桌面PC, Android设备上同步的移动办公软件…

梦熊杯-十二月月赛-钻石组-B.卷王

B. Problem B.卷王(study.cpp) 内存限制:256 MiB 时间限制:1000 ms 标准输入输出 题目类型:传统 评测方式:文本比较 题目描述: 在某个群里,有一个卷王,他很关心群友的学习成绩。 他扬言…

Web API请求查询字符串超长问题

调用Web API时返回“HTTP Error 404.15 - Not Found”的错误提示,如下截图: 经检查,传递的查询参数字符长度超过IIS默认最大查询字符串长度的设置,IIS服务器的 maxQueryString(单位:字节) 设置&…

一杯白酒搅动的资本江湖

王家卫的电影《东邪西毒》中有句经典台词:酒越喝越暖,水越喝越寒。江湖刀光剑影,唯有酒让武林人士在奔波途中心中一暖。然而,在白酒搅动的资本江湖中,酒企已经很久没有感受到上市的“暖意”了。自2016年金徽酒挂牌上交…

网络基础2--HTTP协议详解

目录 一、自定制协议 二、TCP粘包问题 2.1. 定长结构体和非定长结构体在发送时的区别 2.2. 那么为什么内存不连续的结构体不能直接使用send发送呢? 2.2. 那我们怎样去接收不定长的数据呢? 2.3. 我们怎样去接收不连续的内存呢? 2.4序列化和…

shiro权限框架介绍以及springboot整合shiro

What is Apache Shiro? Apache Shiro is a powerful and flexible open-source security framework that cleanly handles authentication, authorization, enterprise session management and cryptography. Apache Shiro’s first and foremost goal is to be easy to use…

LDO的dropout voltage

目录从一个设计错误谈起Dropout压降从芯片内部电路结构理解dropout压降MOS管 > 低dropout压降的LDO进一步降低dropout压降的方法在系统设计中,电源管理是不可或缺的,而LDO(线性稳压器)是电源管理器件中及其重要的一类器件。其应…

【JUC系列】线程变量ThreadLocal详解

ThreadLocal简介 ThreadLocal叫做线程变量,意思是ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的,也就是说该变量是当前线程独有的变量。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访…

Java-基础-2.常用类

一:object 他是java中最基础,最核心的类。在java类中,为申明extends,默认 extends Object。方法。 3.1 toString方法 public String toString()方法,其返回值是 String 类型,描 述当前对象的有关信息。 3.…

Java中的多态及应用示例

Java中的多态及实现示例简介实现示例instance of(待补)补入Java多态 简介 【预留(业务逻辑)接口的抽象类】对象 new 【实现了该 预留(业务逻辑)接口】的【预留业务逻辑接口的抽象类的子类】的 对象&…

Java_Git:5. 在IntelliJ IDEA中使用git

目录 1 在Idea中配置git 2 将工程添加至git 2.1 创建工程 2.2 创建本地仓库 2.3 将工程添加至本地仓库 2.4 推送到远程 3 从远程仓库克隆 4 从服务端拉取代码 1 在Idea中配置git 安装好IntelliJ IDEA后,如果Git安装在默认路径下,那么idea会自动找…