计算机网络(8) --- IP与IP协议

计算机网络(7) --- UDP协议和TCP协议_哈里沃克的博客-CSDN博客UDP协议和TCP协议https://blog.csdn.net/m0_63488627/article/details/132125374?spm=1001.2014.3001.5501

 

目录

1.IP与IP协议

IP作用

协议​编辑

2.网段划分

DHCP划分

CIDR划分

特殊的IP地址

IP地址的数量限制

3.私有IP地址和公网IP地址

4.路由

5.分片问题

1.分片理论

前提

协议

总结

缺点

2.分片操作


1.IP与IP协议

IP作用

1.网络层的作用就是将消息从A主机发送到B主机

2.IP协议有传输跨主机的能力,但是不是一定能跨主机。需要与传输层进行配合,再确认到路由器传输失败或者传输时间过长需要重新传输,进行策略性调整。

协议

1.4位版本:表示IP协议的种类,有IPv4和IPv6,常见的是IPv4

2.4位首部长度:与tcp协议一致,表示报头的大小

3.8位服务类型:发送的策略

4.16位总长度:表示整个报文的大小

5.8位生存时间:表示报文在路由中的有效时间,避免路由循环导致消息发送不到

6.8位协议:表示上层的报文类型是什么

2.网段划分

IP地址=网络号+主机号

网络号 : 保证相互连接的两个网段具有不同的标识;
主机号 : 同一网段内 , 主机之间具有相同的网络号 , 但是必须有不同的主机号;

1.在同一内网中,网络号一致,但是主机号不一致

2.在不同的网中,网络号不一致,但主机号可以一致

那么只要网络号和主机号就能表示不同的主机,但是需要分配这样IP地址,因为32位不能分配所有的主机。

DHCP划分

A类 0.0.0.0到127.255.255.255 ;B类 128.0.0.0到191.255.255.255 ;C类 192.0.0.0到223.255.255.255 ;D类 224.0.0.0到239.255.255.255 ;E类 240.0.0.0到247.255.255.255
随着Internet的飞速发展,这种划分方案的局限性很快显现出来,大多数组织都申请B类网络地址, 导致B类地址很快就 分配完了, A类却浪费了大量地址,因此该策略是不合适的。

CIDR划分

1.引入一个额外的子网掩码来区分网络号和主机号;
2.子网掩码也是一个32位的正整数. 通常用一串 "0" 来结尾
3.将IP地址和子网掩码进行 "按位与" 操作, 得到的结果就是网络号;
4.网络号和主机号的划分与这个IP地址是A类、B类还是C类无关
5. IP 地址与子网掩码做与运算可以得到网络号 , 主机号从全 0 到全 1 就是子网的地址范围

特殊的IP地址

1.将IP地址中的主机地址全部设为0, 就成为了网络号, 代表这个局域网;
2.将IP地址中的主机地址全部设为1, 就成为了广播地址, 用于给同一个链路中相互连接的所有主机发送数 据包;
3.127.*的IP地址用于本机环回(loop back)测试,通常是127.0.0.1

IP地址的数量限制

我们说过:32位不能分配所有的主机,那么需要有策略解决该问题

1.动态分配IP地址: 只给接入网络的设备分配IP地址. 因此同一个MAC地址的设备, 每次接入互联网中, 得到 的IP地址不一定是相同的;
2.NAT技术
3.IPv6: IPv6并不是IPv4的简单升级版. 这是互不相干的两个协议, 彼此并不兼容; IPv6用16字节128位来表 示一个IP地址; 但是目前IPv6还没有普及

3.私有IP地址和公网IP地址

1.路由器是连接两个局域网的设备,所以为了区分则路由器有两个IP地址。

2.局域网的主机有对应的私有IP地址

     10.*,前8位是网络号,共16,777,216个地址
     172.16.到172.31.,前12位是网络号,共1,048,576个地址
     192.168.*,前16位是网络号,共65,536个地址
3.一个路由器可以配置两个IP地址, 一个是WAN口IP, 一个是LAN口IP(子网IP).
4.子网内的主机需要和外网进行通信时, 路由器将IP首部中的IP地址进行替换(替换成WAN口IP), 这样逐级替换, 最终数据包中的IP地址成为一个公网IP. 这种技术称为NAT

4.路由

1.数据由一个路由器传向另一个路由器的行为叫“一跳”

2.路由器存在一个路由表,表示在当前子网中,连接路由器的所有主机。并且路由器存在一个默认路由。

3.Linux下通过route指令就可以查看当前的路由表

Destination表示连接路由的子网IP地址

Gate表示下一跳去往的IP

Genmask表示该子网IP的掩码

Flags的UG表示当前的默认路由

Iface表示路由的接口,连接子网

4.发送信息的路径分三种情况:一是在子网内部能找到对应的IP地址;二是子网找不到,需要借助默认路由往公网跳;三是跳往指定的路由向公网传输

5.当一个主机向某个IP地址发送数据的步骤为:1.先遍历路由表,将当前得到的目的IP与表内遍历的掩码进行&运算,随后与Destination比较是否一致,如果网络号系统就是要找的主机;如果不是就需要通过默认路由向公网发送

5.分片问题

1.分片理论

前提

1.一个提前需知道的问题,网络层的数据只是用于IP找主机用的,但是真正在网线上传输的数据其实是下一次的MAC帧。

2.MAC帧的要求就是所有的数据都要小于1500MB,而MAC帧不允许进行分割数据;而TCP也不允许进行分割,因为它是面向字节流的,没有所谓的分割可言。那么自然就需要IP协议进行分割。IP协议有相关的数据进行记录。

协议

1.16位标识:表示分割,如果分割的报文是一样的,那么此刻的分片就是同一个报文分下来的

2.3位标志:第一位保留,无意义;第二位表示“禁止分片”,如果置为1并且超过1500字节,那么IP就会放弃发送该报文了;而第三位表示“更多分片”,如果是最后一片,则置为1,其他都是0

3.13位片偏移:表示当前的数据片是原本报文的哪个偏移

总结

1.区分一个数据片是否被切割过的依据就是看接收到的数据16位标识位是否一致

2.那么当3位标志的“更多分片”为1表示数据还没有接收完,为0表示到结尾了。那么最后的数据片只要看“更多分片”为0即可,而开始数据片“更多分片”为1,并且偏移为0。若想保证数据片没有遗漏,只需要检查数据片的“起始位置+数据片大小”是否等于下一个数据片的偏移量

3.拆分的工作由网络层的IP协议进行,那么合成也是通过IP协议进行合成。

4.为了保证报文中的数据是否有误,我们需要TCP协议和IP协议的校验和进行校验是否出现问题。

缺点

分数据片的情况是不常见的,因为其操作流程消耗时间。并且拆分出来的数据加大错误的概率。而只要丢失一个数据,tcp需要重新传一整个报文,因为tcp面向字节流,它不在意网络层的数据具体到哪一个点出现错误。

2.分片操作

大致情况如图

网络转发的本质

其实本质就是无数个局域网构建出来的,那么在子网之间转发才能达到主机间通信

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

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

相关文章

【果树农药喷洒机器人】Part5:基于深度相机与分割掩膜的果树冠层体积探测方法

文章目录 一、引言二、树冠体积测量对比方法2.1冠层体积人工测量法2.2冠层体积拟合测量法 三、基于深度相机与分割掩膜探测树冠体积方法3.1像素值与深度值的转换3.2树冠体积视觉探测法3.3实验分析 总结 一、引言 果树靶标探测是实现农药精准喷施的关键环节,本章以果…

Syncfusion Essential Edit for WPF Crack

Syncfusion Essential Edit for WPF Crack 在任何WPF应用程序中启用语法高亮显示。 Syncfusion Essential Edit for WPF是一款具有所有基本功能的编辑器,如文本编辑、剪切、复制和粘贴。它允许用户从各种文件格式打开文件并将其保存为各种文件格式。Syncfusion Esse…

java.lang.IllegalStateException: 不允许修改锁定的参数映射

问题描述: 这个问题是在我写javaweb项目,做敏感词过滤时出现的 需求是:如果是由 getParameter(String s) 得到的数据,可以直接修改value值,将含有敏感词的部分替换为 *** request.getParameterMap() 方法返回一个包…

1749. 任意子数组和的绝对值的最大值

诸神缄默不语-个人CSDN博文目录 力扣刷题笔记 文章目录 1. 暴力搜索2. 动态规划3. 前缀和 1. 暴力搜索 直接用2个指针从索引0开始找到最后一个索引,时间复杂度大概是 O ( n 2 ) O(n^2) O(n2)吧,总之这么搞不行,以下是我用Python写的一些典型…

设计模式之六:命令模式(封装调用)

命令模式可以将请求的对象和执行请求的对象解耦(实际上是通过命令对象进行沟通,即解耦)。(个人感觉,这章讲的很一般) 按个人理解来讲: 假如需要一个遥控器,遥控器有一个插口可以插上…

【JAVA】有关时间的操作在编程中如何实现?

个人主页:【😊个人主页】 系列专栏:【❤️初识JAVA】 文章目录 前言Date 类Date 类方法Data的缺陷实例获取当前日期时间日期比较java中设置date数据的显示格式 前言 在许多应用程序中,日期和时间的处理是必不可少的。Java提供了一…

【80天学习完《深入理解计算机系统》】第二天 2.2 整数的表示【有符号数,无符号数,符号数的扩展,有无符号数的转变】

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)   文章字体风格: 红色文字表示&#…

【Matlab】Elman神经网络遗传算法(Elman-GA)函数极值寻优——非线性函数求极值

往期博客👉 【Matlab】BP神经网络遗传算法(BP-GA)函数极值寻优——非线性函数求极值 【Matlab】GRNN神经网络遗传算法(GRNN-GA)函数极值寻优——非线性函数求极值 【Matlab】RBF神经网络遗传算法(RBF-GA)函数极值寻优——非线性函数求极值 本篇博客将主要介绍Elman神…

【数据结构】“单链表”的练习题

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …

Unity之ShaderGraph 节点介绍 数学节点

数学 高级Absolute(绝对值)Exponential(幂)Length(长度)Log(对数)Modulo(余数)Negate(相反数)Normalize(标准化矢量&…

Django Rest_Framework(二)

文章目录 1. http请求响应1.1. 请求与响应1.1.1 Request1.1.1.1 常用属性1).data2).query_params3)request._request 基本使用 1.1.2 Response1.1.2.1 构造方式1.1.2.2 response对象的属性1).data2).status_code3&…

技术应用:Docker安全性的最佳实验|聊聊工程化Docker

🔥 技术相关:《技术应用》 ⛺️ I Love you, like a fire! 文章目录 首先,使用Docker Hub控制访问其次,保护密钥写在最后 不可否认,能生存在互联网上的软件都是相互关联的,当我们开发一款应用程序时&#x…

Prometheus技术文档--基本安装-docker安装并挂载数据卷-《十分钟搭建》

一、查看可安装的版本 docker search prom/prometheus 二、拉取镜像 docker pull prom/prometheus 三、查看镜像 docker images 四、书写配置文件-以及创建挂载目录 宿主机挂载目录位置: 以及准备对应的挂载目录: /usr/local/docker/promethues/se…

字节C++后端面试总结

字节的面经,技术栈是 C++ 后端。 计算机网络 UDP和TCP区别 先说了概念一个是面向连接的基于字节流的可靠连接,一个是不需要连接的基于数据报的不可靠传输 然后说了几个小点,比如首部长度、应用场景、服务对象什么的。 补充: 还有一个很重要的点:UDP 的实时性比 TCP 好…

Kotlin基础(十一):反射和注解

前言 本文主要讲解kotlin反射和注解。 Kotlin文章列表 Kotlin文章列表: 点击此处跳转查看 目录 1.1 kotlin反射 1.1.1 kotlin反射概念和常见使用场景 在Kotlin中,反射是一种能够在运行时动态地获取、检查和操作类、属性、方法等结构的能力。Kotlin为反射提供了一…

【多重信号分类】超分辨率测向方法——依赖于将观测空间分解为噪声子空间和源/信号子空间的方法具有高分辨率(HR)并产生准确的估计(Matlab代码实现)

【多重信号分类】超分辨率测向方法——依赖于将观测空间分解为噪声子空间和源/信号子空间的方法具有高分辨率(HR)并产生准确的估计(Matlab代码实现) 💥💥💞💞欢迎来到本博客❤️❤️…

uniapp 微信小程序 echarts地图 点击显示类目

效果如图: 在tooltip内axisPointer内添加 label:{show:true} 即可显示“请求离婚”的标题

护网专题简单介绍

护网专题简单介绍 一、护网红蓝队介绍1.1、网络安全大事件1.2、护网行动由来1.3、护网行动中的角色二、红队介绍2.1、红队所需技能2.2、红队攻击流程 三、蓝队介绍3.1、蓝队所需技能3.2、蓝队防守四阶段3.3、蓝队前期准备 四、常见安全厂商介绍4.1、常见安全厂商 五、常见安全产…

使用罗技鼠标后 弹出当前页面的脚本发生错误AppData/Local/Temp/LogiUI/Pak/js/jquery-1.3.2.min.js解决

使用的台式机,没有蓝牙驱动,在用logi无线鼠标时,把鼠标连接插入台式机后弹出的如上图所示这个提示,无论是点是/否,还是X掉上图提示,电脑右下角的图依然存在。不习惯这丫的存在。 我重启还是有,然…

Linux shell yes命令(不停输出换行的y)(不停输出换行的指定字符串)(脚本自动确认y)

文章目录 yes命令功能doc文档英文中文翻译完整文档 示例应用案例自动为脚本多次确认y yes命令功能 yes命令可以不断地输出换行的指定字符串,不加参数时,不断输出换行的“y”,有时我们需要执行一些需要用户键入“y”确认的脚本,但…