网络原理---拿捏网络层:IP协议

文章目录

  • IP协议
    • 4位版本
    • 4位首部长度、选项
    • 8位服务类型(TOS)
    • 16位总长度
    • 16位标识、3位标志、13位片偏移
    • 8位生存时间(TTL)
    • 8位协议
    • 16位首部校验和
    • 32位源IP地址、32位目的IP地址
      • 解决IP地址不够用的问题
        • 动态分配IP地址
        • NAT机制(主流机制)
        • IPv6
  • IP地址管理
  • 特殊的IP地址
  • IP路由选择

IP协议

学习协议很大程度上就是在学习协议的报文格式,以下便来介绍IP协议的报文格式:
在这里插入图片描述

4位版本

4位版本:虽然用4位进行表示,但是只使用4和6.代表IPv4协议和IPv6协议。

4位首部长度、选项

4位首部长度:和TCP的4位首部长度一样,也是变长的。因为选项可有可无,可以有一个也可以有多个

8位服务类型(TOS)

8位服务类型:其中只有4位有效,表达了当前IP协议不同的工作模式:最小延时、最大吞吐量、最高可靠性、最小成本。 这4位里同时只有1位可以是1,不能同时都是1.

16位总长度

16位总长度:描述了IP数据包的报文长度是多少。

IP总长度 - IP报头长度 = TCP报文长度

IP数据包最大只能是64kb吗?

不是的。IP协议自带了分包分组的机制(将一个大的数据包分成几个小的数据包分别进行传输),通过这个机制可以传输很长的TCP数据包。

16位标识、3位标志、13位片偏移

这三个都是用来实现IP协议的分包分组机制的。
在这里插入图片描述

就像搬家一样,如果要搬的东西太多,一车装不下,就叫几辆车一起搬,每辆车用来搬一部分。
这几辆车都是我找来的,它们的16位标识相同;
先找的车片偏移比较小,后找的车片偏移比较大;
最后一辆车会有特殊的标志;

8位生存时间(TTL)

TTL:单位是”次数“,是一个整数,一般取32/64/128这样的整数。

数据报在传输的过程中,每经过一个路由器转发TTL就 -1 ,如果减到0了就把这个数据报丢掉(不再继续转发了)

预期的正常情况下,每个数据报都可以在很短的次数内传输到世界上任何一个地方的主机上的。(六度空间理论)

如果经过TTL这么多次的转发还没有到达目的地,大概率是地址写错了,就会放弃传输。

8位协议

8位协议:指的是IP载荷中数据报使用的传输层协议。

接收方收到数据报会进行分用,当分用到网络层的时候,下一次就要交给传输层分用。8位协议就决定了把这个数据报交给传输层的哪个协议来解析。

16位首部校验和

16位首部校验和:作用是为了检查数据是否出错了。保证接收方知道接收到的数据是正确的还是错误的。

32位源IP地址、32位目的IP地址

32位源IP地址:描述发件人的地址
32位目的IP地址:描述收件人的地址

IP地址是32位的,是4个字节。为了让人看得更清楚,通常就会把这个32位的整数转化为”点分十进制“的表示方式。比如:

本机IP:127.0.0.1

使用三个点把IP地址分为4部分,每个部分都是1个字节,范围是0-255

解决IP地址不够用的问题

一个IP地址用32位表示,它的范围是0-42亿9千万。而IP地址是用来区分网络中的每一台主机,每台主机的IP地址和别人都是不同的。但是当前地球上的所有主机早已超过了43亿,因此,我们就需要解决IP地址不够用的问题。以下有三种解决策略:

动态分配IP地址

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

缺点:没有增加IP地址的数量,只是提高了利用率。”治标不治本“

NAT机制(主流机制)

不再强制要求每个主机都有独立的IP,而是把IP分为俩类:
a)外网IP / 公网IP
b)内网IP / 私网IP / 局域网IP

规定的内网IP格式:

  1. 10.*
  2. 172.16.* - 172.31.*
  3. 192.168.*

约定: 在同一个局域网内部IP不能重复,但是在不同的局域网之间IP可以重复。如果在局域网内部想访问某个外网的服务器,就会使用一个外网IP来代替同一个局域网中的所有设备(大大节省了外网IP的个数)

路由器本身就是NAT设备,它就会记录映射关系。在发起请求和做出相应时,都会做出相应的映射。

注:当前网络的现状:动态分配+NAT机制

IPv6

IPv4:用4个字节、32位来表示IP地址。范围是0 - 42亿9千万
IPv6:用16个字节、128位来表示IP地址。 范围是42亿 * 42亿 * 42亿 * 42亿

注:IPv6彻底解决了IP地址不够用的问题。就是地球上的每一粒沙子都够表示了。

IP地址管理

  • IP地址分为两个部分:网络号和主机号
    网络号:标识网段,保证相互连接的两个网段具有不同的标识。即:局域网的身份标识
    主机号:标识主机,同一网段内主机之间具有相同的网络号,但必须有不同的主机号

    即:同一个局域网中主机之间的网络号是相同的,两个相邻的局域网中主机之间的网络号必须是不同的,隔着的局域网中主机之间的网络号可以是相同的。

  • 子网掩码:用来划分从哪里到哪里是一个网络号。是32位的,左半边都是1、右半边都是0(不会0和1混着)

    左半边有多少个1就代表IP地址左侧的多少位是网络号
    把子网掩码和IP地址进行按位与运算得到的结果就是网络号

特殊的IP地址

如果一个IP地址,主机号为0,此时这个IP就标识网络号。
如果一个IP地址,主机号为1,此时这个IP往往表示这个局域网的“网关”
如果一个IP地址,主机号为全1,此时这个IP表示广播IP
127.*开头的IP都是”环回IP“

IP路由选择

路由选择:网络层是点到点传输的,路由选择就是在俩点之间规划出一个路线。

路由选择是”启发式“的过程,类似于”问路“

IP数据报中本身就包含一个目的IP,网络数据到达路由器的时候,路由器自身有一个”路由表“的数据结构(路由表就是这个路由器认识的路),一个路由器无法认识到网络的全貌,但是可以认识到附近的一部分。

如果当前的目的IP路由器认识,就会给出一个明确的路线。
如果当前的目的IP路由器不认识,路由器就会把数据报转发给另一个”见多识广“的路由器。
如果转发了很多次都没有找到目的IP(TTL减到0),就舍弃这个数据报

注:路由过程不光是找到一条路,而是筛选出一条更好的路。

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

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

相关文章

多目标跟踪算法 实时检测 - opencv 深度学习 机器视觉 计算机竞赛

文章目录 0 前言2 先上成果3 多目标跟踪的两种方法3.1 方法13.2 方法2 4 Tracking By Detecting的跟踪过程4.1 存在的问题4.2 基于轨迹预测的跟踪方式 5 训练代码6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习多目标跟踪 …

Luatos Air700 改变BL0942串口波特率

LuatOs 改变模块串口波特率思路参照 luatos 改变AIR530串口波特率 BL0942默认串口波特率可以通过SCLK_BPS引脚接3.3V电源设置到9600bps 但如果调整到38400bps需要修改0x19寄存器 bl0942 v1.06版的特殊寄存器说明,注意早期版本特殊寄存器说明存在错误 完整代码 mai…

Java算法(三): 判断两个数组是否为相等 → (要求:长度、顺序、元素)相等

Java算法(三) 需求: 1. 定义一个方法,用于比较两个数组是否相同2. 需求:长度,内容,顺序完全相同package com.liujintao.compare;public class SameArray {public static void main (String[] a…

使用CMake引入第三方so库及头文件并调用头文件声明的函数

首先,要调用别人的so库和头文件,我们自己项目中需要有NDK。 因为只有C++代码才能直接调用C++代码,也就是头文件和so库的函数。 其次,就是要想办法把头文件,so库和项目中的NDK关联起来,然后作为一个整体,生成一个jni,供Java层调用。 最后,二者的关联是通过CMake完成的…

集合贴2——数据

基础课10——人工智能的基础:大数据-CSDN博客文章浏览阅读126次。人工智能和大数据是相互依存、相互促进的关系。大数据是人工智能的重要基础,没有大数据,人工智能就难以发挥其作用。同时,人工智能也提供了处理和分析大数据的工具…

Capto2024专为Mac电脑设计的屏幕录制和视频编辑软件

不得不说视频编辑功能:Capto提供了多种视频编辑功能,例如剪辑、旋转、裁剪、调整音频和视频的音量、加入水印、添加注释等,你能够使用Capto编辑你的视频,使之更加专业和生动。有目共睹的是录制完成后,你能够使用Capto提…

鸿蒙开发工具DevEco Studio的下载和安装

一、DevEco Studio概述 1、简介 HUAWEI DevEco Studio(获取工具请单击链接下载,以下简称DevEco Studio)是基于IntelliJ IDEA Community开源版本打造,为运行在HarmonyOS和OpenHarmony系统上的应用和服务(以下简称应用…

RS232通讯转485通讯接线心得

最近在接can 485 232的通讯线,无可避免的遇到了一系列问题,各个厂家之间的引脚定义不太一样,这就导致我们要经常的接线,现在也是有了一点心得所以记录下来。接下来进入标题: 目前我遇到的问题是:转接泰琪丰…

asp.net生产线远程故障诊断系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

一、源码特点 asp.net 生产线远程故障诊断系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使用 c#语言开发 asp.net生产线远程故障诊断…

Gorm 中的钩子和回调

一个全面的指南,利用 GORM 中的钩子和回调的力量,为定制的数据库工作流程 在数据库管理领域,定制化是打造高效和定制化工作流程的关键。GORM,这个充满活力的 Go 对象关系映射库,为开发人员提供了钩子和回调的功能&…

程序员想要网上接单?那这几点注意事项你可要记好了!不看后悔!

相信网上接单对于程序员来说并不陌生,甚至有些程序员还以此为主业,靠网上接单来增加收入,维持生计,但是你真的确定你懂网上接单的套路吗?你知道网上接单的注意事项吗?这期文章就来盘点一下,无论…

腾讯云3年云服务器价格及购买教程

腾讯云作为国内领先的云计算服务提供商,提供了多种优惠的云服务器套餐,以满足不同用户的需求,本文将详细介绍腾讯云3年云服务器价格及购买教程,新老用户均可购买! 1、活动页面:传送门>>> 2、进入…

Git 代码库 gogs 部署私服及 https 配置手册

背景 玩了一下 Git ,想到一个问题:企业内部怎么用 Git 呢?仓库哪里来呢? 理一理 Git 及其相关产品的区别: Git 分布式版本管理工具。GitHub 和 Gitee ,基于 Git 的互联网代码托管平台,一个是…

【工具】旋转图片-数据集制作工具, 开源!

转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn] Github:https://github.com/1061700625/small_tools_v2 之前做了一个下载百度的旋转图片验证码的工具(多进程下载百度旋转验证码图片-制作数据集),那么拿到了图片数据,就需要手…

Flink集群的搭建

1、Flink独立集群模式 1、首先Flink的独立集群模式是不依赖于Hadoop集群。 2、上传压缩包,配置环境: 1、解压: tar -zxvf flink-1.15.2-bin-scala_2.12.tgz2、配置环境变量:vim /etc/profileexport FLINK_HOME/usr/local/soft/fl…

基于机器学习的 ICU 脑血管疾病死亡风险智能预测系统

温馨提示:文末有 CSDN 平台官方提供的学长 Wechat / QQ 名片 :) 1. 项目简介 重症患者或重大手术后的患者在重症监护室(ICU)内通过多种生命支持系统以维持生理功能。患者在ICU 内会被频繁持续的记录生命体征和实验室测量等多种数据。由于高频…

SpringBoot系列之集成Redission入门与实践教程

Redisson是一款基于java开发的开源项目,提供了很多企业级实践,比如分布式锁、消息队列、异步执行等功能。本文基于Springboot2版本集成redisson-spring-boot-starter实现redisson的基本应用 软件环境: JDK 1.8 SpringBoot 2.2.1 Maven 3.2…

CATIA环境编辑器用不了时创建项目快捷方式

CATIA环境编辑器用不了时创建项目快捷方式 一、参考适用情况示例二、 解决步骤(一) 先正确放置winb_64部署包(二) 添加环境文件(三) 修改加入的环境文件(四) 复制本机CATIA快捷方式后重命名(五) 修改快捷方式目标的值 一、参考适用情况示例 二、 解决步骤 (一) 先正确放置winb…

一文掌握 Apache SkyWalking

Apache SkyWalking SkyWalking是一个开源可观测平台,用于收集、分析、聚合和可视化来自服务和云原生基础设施的数据。SkyWalking 提供了一种简单的方法来保持分布式系统的清晰视图,甚至跨云。它是一种现代APM,专为云原生、基于容器的分布式系…

几个月大的幼猫怎么喂?性价比高的幼猫主食罐头推荐

我这些年在经营宠物店的过程中发现,许多铲屎官在猫咪约2个月大时会选择带它们回家喂养。然而,他们可能不知道如何为这个阶段的幼猫提供适当的营养。实际上,幼猫所需的营养成分与成年猫相似,都是高蛋白、中高脂肪和低碳水。而且在这…