网络层 IP协议(1)

前置知识

主机:配有IP地址,但是不进行路由控制的设备

路由器:既配置了IP地址,又能进行路由控制的设备

节点:主机和路由器的总称

IP协议主要完成的任务就是

地址管理和路由选择

地址管理:使用一套地址体系,将网络设备的地址描述出来

路由选择:一个数据报如何从源地址到目的地址

IP协议头格式

下面开始解释这里的含义

1.4位版本号

这里表示的是IP地址使用的是IPv4还是IPv6的地址

2.4位首部长度

这里就是和TCP报头一样,表示的是IP报头也是可变长的 (同样单位是4字节)

0-15 代表这里最大长度仍然是60字节

3.8位服务类型(TOS) 

分别是三位优先权字段(已弃用),一位保留位和四位TOS字段

这里的四个字段分别表示 最小延时 最大吞吐量 最高可靠性(相对TCP的可靠性还是有差距,意思位相对的最高可靠性)  最小成本 

这里相对不同的应用场景会使用不同的服务,像ftp这样的程序使用最大吞吐量比较重要

4.16位总长度

表示了IP数据报整体占用多少个字节

这里就并不是64KB的限制了,因为IP协议包含了拆包组包的功能

比如说一个相对大的TCP包这里分三个IP数据包装

到对端就会按照顺序组包

5.16位标识 3位标志 13位片偏移

之所以把它们放在一起说是因为它们彼此是有联系的,

在数据较大的情况下分包就会用到这三个表示

16位标识:表示几个IP数据包是同一个数据拆分而成

3位标志:一位标志着数据是否分包,一位标志着结束的标志,一位则作为保留位

13位片偏移:排序的依据,标志着分块的变量在原报文中的位置

6.8位生存时间(TTL)

表示着报文在传输过程中的最大生存时间,这里的时间并不是真正的时间,衡量单位是"次",就是一个报文在网络传输中传输了多少次还没有到达目的地址那么就将其丢弃,常见的生存时间为32/64次

为啥这么少的次数就能达到对方??

因为其增长的速度是指数级别的增长

7.8位协议

表示上层协议的类型,也就是传输层使用什么协议

TCP/UDP/KCP???

8.16位首部检验和  和之前一样,检验报文传输过程中是否发生了比特翻转

9.32位源地址和目标地址 

表示发送方和接收方的地址

10.选项  和之前一样可有可无

如何管理IP地址

最早是使用IPv4地址来描述一个IP地址的

IPv4地址本质上是一个32位整数

为了方便表示,我们使用点分十进制的方式来表示

例如 192.168.1.1 

通过三个点来讲32位分成四个部分,每个部分取值范围分别为0-255

总共能表示一个42亿左右大小的数字

实际上现在全球使用网络的终端设备远远超过了42亿,给每个人分配一个网络地址都不够

所以我们提出了如下的解决方案

1. 动态分配IP地址(治标不治本)

全世界的设备也不可能同一时刻上网,利用现有空闲的IP地址

2.使用Nat机制(网络地址映射) 仍然治标不治本

常用方案

这个机制将IP地址分为两个大类 私网IP 公网IP

私网IP

  10.*       192.168.*     172.16 - 172.31.*

其余的是公网IP

要求公网上的设备使用公网IP  

局域网之间使用私网IP,只需要保证局域网之间的内部IP不重复即可,不同的局域网之间的IP允许重复

由于上述的设定,就有一些限制

1.公网设备相互访问,没有限制

2.局域网内设备相互访问,没有限制

3.局域网设备访问其他局域网设备,不允许访问

4.局域网设备访问公网设备,就需要对局域网设备进行IP地址转换

5.公网设备访问局域网设备是不允许主动访问的

试想下面一个场景

我的电脑访问一下服务器,

此时源ip就是 192.168.2.10

目的IP就是1.2.3.4

一般路由器会带有两个地址

WAN口地址 :可能是局域网IP也可能是公网IP 这里假设为5.6.7.8

LAN口地址:往往是局域网IP

这里想从这个路由器发起转发,这里源IP就变成了5.6.7.8,目的IP不变

不是每个路由器都会替换

数据包到达服务器的时候,服务器感受到的IP就是5.6.7.8

进行了上述替换本质上就是一个公网IP能对应多个设备,就起到了节省IP的效果

此时主机abc三个想与外界访问都只能通过路由器

'

此时这个NAT机制使得发出去的数据的源ip替换了,那么服务器怎么找到替换前的IP呢??

试想一个这样的场景

此时在转换的时候路由器就会保存一个路由表来记录替换前的ip和替换后的ip

此时服务器发送报文的时候,如果找到对应的表项的时候,就可以转发回去了

'

如果同一个局域网多个设备访问一个服务器,形式还会更复杂

保存的就是

替换前ip  替换后ip 服务器ip 源端口  目的端口

192.168.1.10 5.6.7.8  1.2.3.4 9090   10000 

192.168.1.20 5.6.7.8  1.2.3.4   9090  20000

这就区分了两者

IP报头 + TCP 报头 + 应用层数据包

就可以让路由器收到响应后看传输层的目的端口来比对一下

万一局域网中的两个设备端口也相同??

此时路由器也会对端口号进行映射

将端口也进行替换,假设两个端口号都是10000

就会将两个进行替换 也许是 10001 10002

所以路由器也会修改传输层的报头 

总结:

大部分情况下,访问的服务器不同,此时使用端口号就能区分

少数情况下,访问的是相同的服务器,此时就可以映射不同的端口来区分

3.IPv6策略(根本解决问题)

将IP地址从32位增加成了128位

相当于变成了2^128 个地址

"给每粒沙子都分配一个地址"

迟迟没有完全落地  因为所有的硬件设备都得换,而且对体验提升不大

但是中国已经覆盖到70%,虽然使用率一般,但是防止了美国在IP地址上的垄断操作

避免美国直接给你断网

今天的分享就到这里,待续.....

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++ : 类的简单介绍(四)——析构函数

概念: 与构造函数功能相反,析构函数不是完成对对象本身的销毁,局部对象销毁工作是由 编译器完成的。 而对象在销毁时会自动调用析构函数,完成对象中资源的清理工作。 特征: 1. 析构函数名是在类名前加上字符 ~ 2. …

大数据分析|从七个特征理解大数据分析

文献来源:Saggi M K, Jain S. A survey towards an integration of big data analytics to big insights for value-creation[J]. Information Processing & Management, 2018, 54(5): 758-790. 下载链接:链接:https://pan.baidu.com/s/1…

【Zotero】如何在word文档中插入zotero中的文献

博主最近在用zotero管理文献,并在word文档中写文章,期间需要将zotero生成的参考文献插入文章中,这里将博主遇到的问题以及解决的办法分享给大家,供咱们一起学习。 博主遇到的问题主要有以下几个: 1、参考文献的格式以…

计算机网络——网络层(3)

计算机网络——网络层(3) 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU)1 网络层——控制平面因特网中自治系统内部的路由选择总括考虑因素总结 ISP之间的路由选择:BGP考虑因素总结 SDN控制层面重要组件和功能总结 ICMP主要功能和特点…

Java强训day13(选择题编程题)

选择题 编程题 题目1 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);String s sc.nextLine();char[] c s.toCharArray();int i 0;int t 0;while (i < c.length) {if (c[i] ! \") {…

Spring速成(一)

文章目录 Spring速成&#xff08;一&#xff09;1&#xff0c;课程介绍1.1 为什么要学?1.2 学什么?1.3 怎么学? 2&#xff0c;Spring相关概念2.1 初识Spring2.1.1 Spring家族2.1.2 了解Spring发展史 2.2 Spring系统架构2.2.1 系统架构图2.2.2 课程学习路线 2.3 Spring核心概…

12nm工艺,2.5GHz频率,低功耗Cortex-A72处理器培训

“ 12nm工艺&#xff0c;2.5GHz频率&#xff0c;低功耗Cortex-A72处理器培训” 本项目是真实项目实战培训&#xff0c;低功耗UPF设计&#xff0c;后端参数如下&#xff1a; 工艺&#xff1a;12nm 频率&#xff1a;2.5GHz 资源&#xff1a;2000_0000 instances 为了满足更多…

C语言第十五弹---操作符(上)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】 操作符 1、操作符的分类 2、二进制和进制转换 2.1、2进制转10进制 2.1.1、10进制转2进制数字 2.2、2进制转8进制和16进制 2.2.2、2进制转16进制 3. 原码、反…

【日常问题】Failed to enable unit: Unit file docker.service does not exist.

Failed to enable unit: Unit file docker.service does not exist. 1. 问题原因 笔者问题的产生是因为在ubuntu20.04下采用snapd安装的docker&#xff0c;因此 systemctl restart docker.servicesystemd并不能找到守护进程docker.service 同时使用docker命令时还会产生若干…

android 自定义下拉框

一、 简介&#xff1a; 原生Android 提供的spinner下拉框不怎么方便&#xff0c;样式有点丑。修改起来麻烦&#xff0c;于是就自己动手写了一下拉列表。 实现原理使用的是&#xff0c;popwindow弹框&#xff0c;可实现宽高自定义&#xff0c;下拉列表使用listview. 二、pop弹框…

【金蝶BI方案】用一张报表,分析生产完成情况

当老板问生产完成地怎样&#xff1f;难道还能拿出一叠报表让老板逐个细看&#xff1f;奥威-金蝶BI方案只用一张BI数据可视化报表就把整个生产完成情况给讲明白了。甚至还能满足老板想从不同角度进行分析的需求。 奥威-金蝶BI方案-BI生产完成情况报表 这张报表总结计算了生产合…

智能家居的网关新形态:Aqara 方舟智慧中枢 M3 体验

如果说在刚刚结束的 2023 年有哪些备受期待的智能家居产品&#xff0c;Aqara 方舟智慧中枢 M3 一定榜上有名&#xff0c;我的多位朋友也曾在装修过程中多次向我询问是否有这款产品的相关资讯&#xff1b;谁能想到自从在 2022 年 11 月首次亮相之后&#xff0c;这款产品一直等了…

Redis核心技术与实战【学习笔记】 - 13.Redis缓冲区可能引起的问题及解决套路

缓冲区的功能其实很简答&#xff0c;主要就是用一块内存空间来暂时存放命令数据&#xff0c;以免出现因为数据和命令的处理速度慢于发送速度而导致的数据丢失和性能的问题。但是因为缓冲区的内存空间有限&#xff0c;如果往里面写入数据的速度持续地大于从里面读取数据的速度&a…

dv和ov通配符SSL证书的区别

SSL数字证书是一种数字证书&#xff0c;可以保护网站传输数据安全以及对服务器身份进行验证&#xff0c;SSL证书有很多种&#xff0c;而通配符证书则是其中的一种特殊类型。SSL证书旗下的通配符SSL证书随着互联网的发展&#xff0c;颁发量也越来越多&#xff0c;为了使用户选择…

多智能体强化学习--MAPPO(pytorch代码详解)

标题 代码详解Actor和Critic网络的设置 代码详解 代码链接&#xff08;点击跳转&#xff09; Actor和Critic网络的设置 基本设置&#xff1a;3个智能体、每个智能体观测空间18维。Actor网络&#xff1a;实例化一个actor对象&#xff0c;input-size是18Critic网络&#xff1…

第 10 章:在C++中使用协程进行系统编程

最后一章专门介绍了一项对系统编程非常有用的功能&#xff0c;但这在C标准中相对较新。协程对象迅速找到了应用&#xff0c;成为了一等公民的状态机对象。它们的强大之处在于隐藏了协程帧后面的逻辑。请注意&#xff0c;这是一个高级主题&#xff0c;且C的协程接口既不简单也不…

C++(9) 虚函数

文章目录 虚函数1. 虚函数1.1 虚函数案例11.2 虚函数案例21.2 纯虚函数1.3 纯虚函数语法要求总环1.4 纯虚函数应用1.4.1 生活案例1.4.2 虚函数引用代码 虚函数 1. 虚函数 1.1 虚函数案例1 #include <iostream>using namespace std;class Animal { public:// Animal 类…

神经网络与深度学习Pytorch版 Softmax回归 笔记

Softmax回归 目录 Softmax回归 1. 独热编码 2. Softmax回归的网络架构是一个单层的全连接神经网络。 3. Softmax回归模型概述及其在多分类问题中的应用 4. Softmax运算在多分类问题中的应用及其数学原理 5. 小批量样本分类的矢量计算表达式 6. 交叉熵损失函数 7. 模型预…

VMware虚拟机安装统信uos桌面专业版操作系统系统

统信uos桌面版版本对比:https://www.uniontech.com/next/product/desktop-contrast专业版只要是面向政企等单位,这里只是用虚拟机安装测试基本功能使用,对于我们个人要长期使用的话可以使用家庭版或者社区版 1镜像下载 1.1打开官网 镜像在统信生态社区下载统信生态社区官网:…

【pytest系列】- assert断言的使用

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…