计算机网络——IP协议
前言
网络层的主要负责地址分配和路由选择,ip负责在网络中进行数据包的路由和传输。
IPv4报文组成(了解)
IPv4首部:IPv4首部包含了用于路由和传输数据的控制信息,其长度为20个字节(固定长度)。
- 版本(Version):表示使用的IP协议版本,通常为4。如果版本号是6,则ipv6
- 4位首部长度(Header Length):表示IPv4首部的长度,以4字节为单位。4个比特位表示的数字范围0~15,有选项(0~15)*4
- 8位服务类型(Type of Service):可以让ip协议切换形态。有1位保留位(必须设置成0),4位tos标志位,3位优先权字段。4位tos分别表示最小延时,最大吞吐量,最高可靠性,最小成本。指定了数据包的优先级和服务质量要求。最小延时:尽可能快的传输数据包以减小传输延时;最大吞吐量表示数据包的传输速率被最大化以提供高效的数据传输。最小成本表示通过降低带宽和资源占用来减少成本。4选一
- 16位总长度(Total Length):表示整个IP数据报的长度,包括首部和数据部分。ip协议确实存在64kb的限制,但是它自身支持拆包和组包
- 16位标识(Identification):用于将分片的数据包进行重新组装时的标识。
- 3位标志(Flags):包括3位,用于指示是否进行数据分片以及分片的位置。3位标志中有1位允许拆包,还有一位表示是否允许拆包。
- 13位分片偏移(Fragment Offset):指示分片在原始数据报中的位置。
- 生存时间(Time to Live):表示数据包在网络中可以经过的最大跳数,每经过一个路由器减1。单位次数。如果数据包已经把ttl耗尽了,还没到达就会被丢弃。数据包构造出来的时候,ttl会被设置成一个初始值32,64.....
- 协议(Protocol):指定了数据部分即载荷使用的上层协议,如TCP、UDP等。
- 首部校验和(Header Checksum):用于检测IPv4首部在传输过程中的错误。载荷中udp或者TCP都有自己的校验和方法。
- 源IP地址(Source IP Address):表示数据包的源地址。
- 目标IP地址(Destination IP Address):表示数据包的目标地址。
可选字段(Options):IPv4首部中可以包含一些可选字段,用于提供额外的功能或进行特定的处理。可选字段的长度是可变的,因此必须使用首部长度字段来确定首部的结束位置。
数据部分:数据部分是传输的实际数据,它的长度可以根据需求而变化
IP 地址是一个 32 位的二进制数,2^32=42亿9千万,通常被分割为 4 个 “8 位二进制数 ” (也就是 4 个字节),如:01100100.00000100.00000101.00000110 。通常用 “ 点分十进制 ” 的方式来表示,即 a.b.c.d 的形式( a,b,c,d 都是 0~255 之间的十进制整数)。如:100.4.5.6 。
地址管理
地址管理描述设备在网络中的那个位置。ip地址是32位整数,2^32=42亿9千万,并不够用。理论上IP地址不能重复。
1. 动态分配;
2. NAT机制(网络地址转换)
让一个IP地址代表一批设备,NAT技术不仅能解决IP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。相当于一个中转站,内部存有映射表。用于将一个网络的IP地址转换成另一个网络的IP地址。NAT通常在路由器上实现,给设备分配·私有地址,当这些内部设备要发送数据到外部主机或者服务器,路由器将私有IP地址转换为公共IP地址,并且使用端口号进行标识,当数据回来的时候,再把共有地址转变为私有地址,私有地址是不能被共有地址直接访问的,以便在私有网络上使用Internet。当数据返回回来,路由器需要结合端口号(区分不同的主机)知道返回给哪个主机,路由器也可以把相同端口号替换成不同的端口号。
1)内网(局域网)IP 192.168/172.16
在同一个局域网,IP不能重复;不用局域网,IP可以重复
2)外网(广域网)IP必须唯一
nat机制+动态分配可以用来解决ip不够用的情况,除非局域网内同一时刻访问同一服务器超过了65535,nat可能会不够用。nat是纯软件的方案!因为nat,局域网内部的机制可以主动去访问外网的设备,而外网设备不能主动访问局域网的设备
IPv6
用16字节128位来表示一个IP地址,2^128二进制转十六进制,能够大大缓解IP地址不足的问题。但IPv6并不是IPv4的简单升级版,它们是互不相干的两个协议,彼此并不兼容,目前已经70%升级了。
ip网段划分
网络号(标识一个局域网)+主机号(局域网中的设备)
IP地址组成为:网络号+子网号+主机号
子网掩码
之前我们使用五类划分,当前都是子网掩饰
在cmd窗口输入ipconfig
无线局域网适配器 WLAN:连接特定的 DNS 后缀 . . . . . . . :本地链接 IPv6 地址. . . . . . . . : fe80::be76:c0d0:8d69:c6f8%20IPv4 地址 . . . . . . . . . . . . : 192.168.8.192子网掩码 . . . . . . . . . . . . : 255.255.255.0默认网关. . . . . . . . . . . . . : 192.168.8.1
其中子网掩码255.255.255.0,这·也是32位整数,左边全是1,右边是0,不会1,0交替出现。
1111 1111 1111 1111 1111 1111 0000 0000,
被标记为1的就是网络号,1的个数根据实际定。
如果一个IP地址的主机号全是0,那他表示网络号。eg:192.168.100.0
如果一个ip地址主机号全是1,那他就是个广播地址。使用UDP socket给这个地址发送udp数据报,此时局域网内所有设备都能收到这个数据报。eg:192.168.100.255
如果以127开头的ip就是环回IP,eg:127.0.0.1就是发送给自己设备的,这个是操作系统提供了一个特殊的虚拟网卡关联到这个ip上。
路由选择
描述ip数据报的转发过程。
是 探索式 的过程......
一个网络层数据报,每次到达一个路由器,都会进行一个类似“问路”的操作。每个路由器内部都有一个路由表的数据结构,根据目的IP,去查询路由表,
如果查到了,就按照路由表给定的方向(从哪一个网络接口进行转发),继续转发;
如果没查到,路由表里有一个默认的选项,就是下一跳地址,按照默认的表项继续转发;
IP 地址描述的是 路途总体的起点和终点 ;是给人使用的网络逻辑地址。MAC 地址描述的是路途上的每一个区间的起点和终点,即 每一跳的起点和终点 ;是给网络硬件设 备使用的网络物理地址。
相关文章:

计算机网络——IP协议
前言 网络层的主要负责地址分配和路由选择,ip负责在网络中进行数据包的路由和传输。 IPv4报文组成(了解) IPv4首部:IPv4首部包含了用于路由和传输数据的控制信息,其长度为20个字节(固定长度)。 版本&#…...
Linux命令-ar命令(建立或修改备存文件,或是从备存文件中抽取文件)
补充说明 ar命令 是一个建立或修改备存文件,或是从备存文件中抽取文件的工具,ar可让您集合许多文件,成 为单一的备存文件。在备存文件中,所有成员文件皆保有原来的属性与权限. 语法 ar [-]{dmpqrtx}[abcfilNoPsSuvV] [memberna…...

flask基于python的个人理财备忘录记账提醒系统vue
在当今高度发达的信息中,信息管理改革已成为一种更加广泛和全面的趋势。 “备忘记账系统”是基于Mysql数据库,在python程序设计的基础上实现的。为确保中国经济的持续发展,信息时代日益更新,蓬勃发展。同时,随着信息社…...

【leetcode题解C++】257.二叉树的所有路径 and 404.左叶子之和 and 112.路径总和
257. 二叉树的所有路径 给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。 叶子节点 是指没有子节点的节点。 示例 1: 输入:root [1,2,3,null,5] 输出:["1->2->5",&…...

Linux——文本编辑器Vim
Linux中的所有内容以文件形式管理,在命令行下更改文件内容,常常会用到文本编辑器。我们首选的文本编辑器是Vim,它是一个基于文本界面的编辑工具,使用简单且功能强大,更重要的是,Vim是所有Linux发行版本的默…...

以“美”为鉴,探寻香港比特币现货ETF的未来发展
出品|欧科云链研究院 作者|Hedy Bi 根据The Block于1月29日的报道,嘉实国际成为了首家向香港证监会提交比特币现货ETF申请的机构。早在去年12月22日,香港证监会发布了《有关证监会认可基金投资虚拟资产的通函》,明确…...
Unity项目打包的方法(之一)
在 Unity 中,将项目打包成 .unitypackage 文件和直接压缩 Assets、Packages 和 ProjectSettings 目录有几个关键区别,主要体现在打包方式、使用目的和包含的内容上。 打包成 UnityPackage .unitypackage 是 Unity 的一种打包格式,它允许你将项…...

如何安装MySQL
如何安装MySQL 前提条件下载MySQL在 Windows 上安装 MySQL验证 MySQL 安装 MySQL是当今工业界广泛使用的最流行的关系数据库管理软件之一。它通过各种存储引擎提供多用户访问支持。它得到了甲骨文公司的支持。在本节中,我们将学习如何为初学者下载和安装 MySQL。 前…...
如何编写.gitignore文件
文章目录 前端架构师教你如何编写.gitignore文件.gitignore文件简介.gitignore文件的语法规则.gitignore文件的最佳实践常见问题与解决 前端架构师教你如何编写.gitignore文件 .gitignore文件简介 .gitignore文件是Git版本控制系统中一个非常有用的工具。它可以指定一组文件或…...

U-Boot学习(7):内核启动之bootz启动zImage源码分析
在上一节中,我们分析了U-BOOT初始化的流程,最后就是进入U-Boot的命令行中执行了,如果用户没有任何操作,则经过固定延时后将执行默认的bootcmd环境变量里的指令,那这里面肯定就是启动内核了。在U-BOOT简介及命令行指令详…...
[GN] DP学习笔记板子
文章目录 Bitset滚动数组多重背包区间DP树形dp状压dp模拟退火 Bitset 使用bitset需要引用<bitset>头文件。 其声明方法为: std::bitset<N>s; (N为s长度)常用函数: b.any() 判断b中是否存在值为1的二进制位 b.none() 判断b中是否不存在值为1的二…...

GLog开源库使用
Glog地址:https://github.com/google/glog 官方文档:http://google-glog.googlecode.com/svn/trunk/doc/glog.html 1.利用CMake进行编译,生成VS解决方案 (1)在glog-master文件夹内新建一个build文件夹,用…...
微信小程序如何实现点击上传图片功能
如下所示,实际需求中常常存在需要点击上传图片的功能,上传前显示边框表面图片显示大小,上传后将图形缩放到边框大小。 实现如下: .wxml <view class="{{img_src==?blank-area:}}" style="width:100%;height:40%;display:flex;align-items: center;jus…...

Windows Qt C++ VTK 绘制三维曲线
Qt 自带数据可视化从文档上看,只能实现三维曲面。 QwtPlot3D在Qt6.6.0上没编译通过。 QCustomPlot 只能搞二维。 VTK~搞起。抄官网demo。 后续需求: 1、对数轴 2、Y轴逆序 3、Z轴值给色带,类似等高线图的色带 期待各位大佬多多指导。…...

Android T 远程动画显示流程(更新中)
序 本地动画和远程动画区别是什么? 本地动画:自给自足。对自身SurfaceControl矢量动画进行控制。 远程动画:拿来吧你!一个app A对另一个app B通过binder跨进程通信,控制app B的SurfaceControl矢量动画。 无论是本地动画还是远程…...

【计算机网络】【练习题及解答】【新加坡南洋理工大学】【Computer Control Network】
说明: 仅供学习使用。 一、题目描述 题目共4问,描述网络通信中的 帧传输时延(Frame Delay)、传播时延(Propagation Delay),以及 链接利用率(Link Utilization) 的相关…...

云计算HCIE备考经验分享
大家好,我是来自深圳信息职业技术学院22级鲲鹏3-1班的刘同学,在2023年9月19日成功通过了华为云计算HCIE认证,并且取得了A的成绩。下面把我的考证经验分享给大家。 转专业进鲲鹏班考HCIE 大一上学期的时候,在上Linux课程的时候&…...
Threejs API——`OrbitControls`相机控件
文章目录 API用法API OrbitControls 相机控制用法 导入import {OrbitControls } from three/examples/jsm/controls/OrbitControls.js import {DRACOLoader,AmbientLight,Color,MOUSE,...

远程教育:低代码在教育技术领域的重塑之力
新冠肺炎大流行对世界各地的行业产生了影响,其中一些行业的影响远远超过其他行业。食品、零售、供应链、娱乐和航空业是受影响最大的行业,为确保不间断运营,这引发了一场数字革命。相信,这种数字化的采用将长期保持下去࿰…...
vue 模板语法值class操作
class.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>class</title><!-- 确保引入正确的Vue版本库,下面只是示例,需要替换为实际可工作的CDN地址 --><sc…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

(一)单例模式
一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 编辑 前言: 类加载器 1. …...