5.网络之IP

news2024/12/27 20:34:11

IP协议(网络层)

文章目录

  • IP协议(网络层)
  • 1. 报文格式
  • 2. IP地址
  • 2. 地址管理
  • 3. 特殊IP地址

    IP协议(Internet Protocol,互联网协议),是TCP/IP协议栈中最核心的协议之一,通过IP地址,保证了联网设备的唯一性,实现了网络通信的面向无连接和不可靠的传输功能。

1. 报文格式

在这里插入图片描述

  • 版本号:代表的是当前的IP协议的版本信息。IPv4版本的值为4(二进制0100),根据版本号决定对IP数据报的处理方法

  • 首部长度: 代表的是整个IP报头的长度,这个报头长度是可变长的,可变长的原因在于报头中的选项,这个属性是一个可有可无的属性,会改变报头长度,它的单位是32bit,比如里面存放的是1,那么整个IP报头的长度就是4个字节(32bit).

  • 服务类型 共占8位,但是实际上只有4位是有效的,其中这4位表示当前IP协议的4种工作模式:最小延时、最大吞吐量、最高可靠性、最小成本.实际开发中可能会根据需要来选择当前的IP工作模式.

  • 总长度 代表的是整个IP数据报的总长度(报头+载荷)

    • 同时也说明IP数据报最多只能携载64KB的数据,但是IP协议支持拆包和组包
  • 标识:用于为数据分片的数据单元提供唯一标识。

  • 标志:标志在该分片是否为数据分片的最后一片,也就是分片的结束标志.

  • 片偏移:标识了拆分后每个包的顺序

  • 生存时间 表示一个数据报在网络上传输的最大时间,这里的时间并不是以"秒"、"毫秒"这样的单位来计量的,而是以"次数"来计量.

    • 比如有一个TTL初始值为32,此时这个数据报每经过一个路由器转发,TTL的值就会-1,当TTL的值减到0时,就会认为这份数据传输不到了,可以丢弃了.
  • 协议 代表的是当前数据报中传输层的协议(UDP/TCP…)

  • 首部检验和 和UDP、TCP的相同,但是此处只检验报头,因为载荷部分传输层会进行检验.

2. IP地址

在这里插入图片描述

    IP数据报中这两个部分分别表示发送方的IP地址和接收方的IP地址。

    在报文中是以32位的整数方式存在的,表示一般使用点分十进制的方式进行标识,如:127.0.0.1。

    IP地址4个字节32位一共有42亿个,但是在今天这个数据爆炸式增长的时代,已经捉襟见肘了,即IP地址耗尽。

    解决这个问题,有以下两种方法:

    1. 进行动态分配IP地址,此时虽然可以省下也配IP地址,但是总数没有增加.
    NAT网络地址转换.本质上是将一个地址同时给多台设备使用.可以大大提高了IP地址的利用率,在区分时也可以用端口号来区分.
NAT将IP地址分为内网IP和外网IP,内网IP不能直接上网,需要由外网IP进行换发,当然外网想要访问到内网也需要有内网所在的公网进行转发。

  • 内网IP(私有IP):以10.开头的、以172.16.~172.31.开头的、以192.168.开头的.

  • 外网IP(共有IP):除了内网IP之外的IP地址.

  • 内网IP是可以重复出现的,外网IP是不可以重复出现的.

    2. 使用IPv6,IPv6由16位二进制表示,是一个非常大的天文数字,想要将其耗尽基本不可能。但是由于IPv6和IPv4不兼容,需要更换硬件设备,所以IPv6并没有大规模的普及。

2. 地址管理

    这里讨论的是IP协议在NAT下针对IP地址的管理。一个IP地址,可以分成两个部分,网络号和主机号。

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

    子网掩码,使用子网掩码来区分那部分是网络号,哪部分是主机号。

子网掩码: 255.255.255.0
即:1111 1111 1111 1111 1111 1111 0000 0000
表示前三个字节都是网络号,第四个字节是主机号

3. 特殊IP地址

    如果IP地址中,主机号全0,代表当前这个局域网,这个IP地址是不能被分配给具体的主机的。
    如果IP地址中,主机号全1,这个地址是一个广播地址(UDP支持广播就是因为这个地址),只有向这个地址发一个UDP包,局域网中的所有设备都能收到。
    127.0.0.1这个地址表示当前主机,叫做环回IP,是操作系统抽象出的特殊的虚拟网卡,发出的数据最终会回到本机。通常用于测试和一些分布式系统。

    如果本篇文章对你有帮助,请点赞、评论、转发,你的支持是我创作的动力。

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

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

相关文章

论文阅读—— BiFormer(cvpr2023)

论文:https://arxiv.org/abs/2303.08810 github:GitHub - rayleizhu/BiFormer: [CVPR 2023] Official code release of our paper "BiFormer: Vision Transformer with Bi-Level Routing Attention" 一、介绍 1、要解决的问题:t…

01|LangChain | 从入门到实战-介绍

​ ​ by:wenwenc9 一、基本知识储备 1、什么是大模型,LLM? 大模型(Large Language Model)是近年来一个很热门的研究方向。 使用大量的数据训练出一个非常大的模型。一般是数十亿到上万亿的参数规模。 这些大模型可以捕捉到非常复杂的语言…

MySQL进阶之性能优化与调优技巧

数据库开发-MySQL 1. 多表查询1.1 概述1.1.2 介绍1.1.3 分类 1.2 内连接1.3 外连接1.4 子查询1.4.1 介绍1.4.2 标量子查询1.4.3 列子查询1.4.4 行子查询1.4.5 表子查询 2. 事务2.1 介绍2.2 操作2.3 四大特性 3. 索引3.1 介绍3.2 结构3.3 语法 1. 多表查询 1.1 概述 1.1.2 介绍…

【蓝桥杯省赛真题42】Scratch舞台特效 蓝桥杯少儿编程scratch图形化编程 蓝桥杯省赛真题讲解

目录 scratch舞台特效 一、题目要求 编程实现 二、案例分析 1、角色分析

Visual Studio 2010 软件安装教程(附下载链接)——计算机二级专用编程软件

下载链接: 提取码:2wAKhttps://www.123pan.com/s/JRpSVv-9injv.html 安装步骤如下: 1.如图所示,双击打开【Visual Studio 2010简体中文旗舰版】文件夹 2.如图所示,找到“Setup”文件夹打开,双击运行“setup” 3.如图…

【JavaEE】JVM 剖析

JVM 1. JVM 的内存划分2. JVM 类加载机制2.1 类加载的大致流程2.2 双亲委派模型2.3 类加载的时机 3. 垃圾回收机制3.1 为什么会存在垃圾回收机制?3.2 垃圾回收, 到底实在做什么?3.3 垃圾回收的两步骤第一步: 判断对象是否是"垃圾"第二步: 如何回收垃圾 1. JVM 的内…

H5ke9 异步处理

目录 .then()的使用详解 案例一:触小图标变大,移走变回 案例三:页面提交文件,我服务器端接收 上次fetvh就一个参数url,,就是get请求 fetch还可以第二个参数对象,可以指定method:改为POST 请求头header :发送txt,servlet,json给客户端,,异步请求图片 1都是客户端传到服务器端…

第二十六章 BEV感知系列三(车道线感知)

前言 近期参与到了手写AI的车道线检测的学习中去,以此系列笔记记录学习与思考的全过程。车道线检测系列会持续更新,力求完整精炼,引人启示。所需前期知识,可以结合手写AI进行系统的学习。 BEV感知系列是对论文Delving into the De…

22吉林大学软件需求分析与规范(Software Requirements Analysis Specification)

写在前面: 4w多字笔记,可能显示有问题,带图片完整pdf版暂定10r一份,需要的同学可以加wx:fanaobo,备注软件需求笔记。 chapter 0 课程简介 课程简介: ◼ 软件工程专业核心课程之一 ◼ 软件工程课程体系最…

【完美世界】云曦被胁迫,荒天帝怒斩战王,云曦隐约猜出石昊身份

Hello,小伙伴们,我是小郑继续为大家深度解析国漫资讯。 深度爆料《完美世界云曦篇》最新一集,云曦的内心犹如翻江倒海一般,她已经无比确定魔曦就是下界的石昊,这让她感到有些不知所措。然而,石昊却始终不肯承认自己的…

(免费领源码)java#ssm#mysql宠物网站系统07183-计算机毕业设计项目选题推荐

摘 要 在信息飞速发展的今天,网络已成为人们重要的信息交流平台。宠物网站每天都有大量的信息需要通过网络发布,为此,本人开发了一个基于B/S(浏览器/服务器)模式的宠物网站系统。 该系统以JJava编程语言、MySQL和SSM框…

AD9371 官方例程裸机SW 和 HDL配置概述(三)

AD9371 系列快速入口 AD9371ZCU102 移植到 ZCU106 : AD9371 官方例程构建及单音信号收发 ad9371_tx_jesd -->util_ad9371_xcvr接口映射: AD9371 官方例程之 tx_jesd 与 xcvr接口映射 AD9371 官方例程 时钟间的关系与生成 : AD9371 官方…

shell script 的默认变量$0,$1,$2...,参数偏移的shift

简单来说,在scirpt脚本里面,$0表示文件名,$1表示第一个参数,以此类推,还有 $# 后面接参数的个数 $ 代表"$1","$2","$3",每个都是独立的,用双引号括起来 $* 代…

OkHttp库爬取百度云视频详细步骤

以下是使用OkHttp库的Kotlin爬虫程序,该爬虫用于爬取百度云的视频。 首先,我们需要导入OkHttp库和Kotlin库。import okhttp3.OkHttpClient和import kotlin.jvm.JVM。 import okhttp3.OkHttpClient import kotlin.jvm.JVM然后,我们需要创建一…

如何使用Python的matplotlib和seaborn库绘制颜色渐变的高级散点图

前言 我的科研论文中需要绘制一个精美的散点图,表达的是各个散点距离中心点的距离远近情况,特点如下: 绘图的美观程度高根据距离目标点的距离的不同,各个散点能有颜色或者是透明度上的区分相应的统计量是与中心点(目…

如何搭建低成本亚马逊aws云服务器

0. 环境 win10 火狐浏览器 1. 登录 https://aws.amazon.com/cn/ -> 登录 -> 根用户 -> ********, **** 如果未有,需要注册,去年我注册的,麻烦之处是需要添加信用卡。可以淘宝aws搜索商家帮忙处理。 2. 控制台 在控制台主页&…

【Orangepi Zero2 全志H616】驱动蜂鸣器

一、用户手册对应的I/O 二、wiringPi库示例代码 三、代码实现 四、创建shell脚本 五、接线和运行结果 一、用户手册对应的I/O 二、wiringPi库示例代码 1 #include <stdio.h>2 #include <wiringPi.h>34 #define NUM 17 //26pin5 //#define NUM 18 //26pin6 //#…

EASYX图片操作

easyx学习网址 建议使用谷歌搜索引擎搜索相关的资料 eg1:图片显示到桌面 #include <stdio.h> #include <easyx.h> #include <iostream> #include <math.h> #include <stdlib.h> #include <conio.h> #include <time.h> #define PI 3…

第二十四章 BEV感知系列一(车道线感知)

前言 近期参与到了手写AI的车道线检测的学习中去&#xff0c;以此系列笔记记录学习与思考的全过程。车道线检测系列会持续更新&#xff0c;力求完整精炼&#xff0c;引人启示。所需前期知识&#xff0c;可以结合手写AI进行系统的学习。 BEV感知系列是对论文Delving into the De…

一站式解决方案:体验亚马逊轻量服务器/VPS的顶级服务与灵活性

文章目录 一、什么是轻量级服务器/VPS 二、服务器创建步骤 三、服务器连接客户端(私钥登录) 四、使用服务器搭建博客网站 五、个人浅解及总结 一、什么是轻量级服务器/VPS 亚马逊推出的轻量级服务器/VPS&#xff1a;是一种基于云计算技术的虚拟服务器解决方案。它允许用户…