Linux-网络层IP协议、链路层以太网协议解析
目录
- 网络层:
- IP协议
- 地址管理
- 路由选择
- 链路层
网络层:
网络层:负责地址管理与路由选择 — IP协议,地址管理,路由选择
IP协议
数据格式:
4位协议版本:4-ipv4协议版本
4位首部长度:以4字节为单位
8位服务类型:3位优先权弃用,4位TOS,1位固定为0
16位数据报长度:IP报文最大大小64k;udp报文中数据最大大小 < 64k-28
16位分片标识:udp报文大小大于MTU但是小于64k-18,则会在网络层进行数据分片,将一个完整的大的报文分割成为多个小的数据分片,封装IP报头进行传输;TCP的传输不会再网络层进行数据分片,tcp再三次握手阶段就会双方协商mss(最大数据段大小)网络通信时,数据大小都不会大于mss,而mss就是根据mtu计算出的最合适的数据传输大小。
16位分片标识:标识当前分片属于哪个报文
3位分片标志:1位保留,1位禁止分片
13位分片偏移:多个数据分片在对端会进行分片重组,而分片偏移就是用于标识当前分片再原始报文中的位置(相对于起始位置的偏移量)。13个比特位最大数字:8192,无法在64k报文中标识偏移量,因此分片偏移是以8字节为单位的。
8位TTL:报文生存周期 – 当前默认是64/128,每经过一次路由转发就会-1,为0时,则将数据丢弃。
8位上层协议:当前数据所使用协议 – 用于数据分用时选择解析协议
16位校验和:校验数据一致性
32位源端-对端IP地址:描述通信两端主机
0~40的选项数据:保存一些路由信息…
-
地址管理
地址管理:
IP地址的管理是按照网络进行管理的(大的网络也是由许多小网络组成)
IP地址组成:192.168.2.13
网络号:是一个网络的标识,一个网络中分配的地址都拥有相同的标识
只要保证每个网络的网络好不同,则每个网络分配的IP地址不会冲突
主机号:在一个网络内主机的标识
网段的划分:
A:高1位固定为0,7位网络号,24位主机号
A类网络,网络号范围:0~127;每个网络拥有256256256个主机
B:高2位固定10,14位网络号,16位主机号
B类网络,网络号范围128.0~191.255
C:高3位固定110,21位网络好,8位主机号
C类网络,网络号范围192.0.0~223.255.255;每个网络拥有256主机
当前划分-CIDR:在早期基础上,使用子网掩码进行更细致的网络划分
子网掩码:无符号4字节整数,必须由连续的二进制1组成
1.子网掩码取反可以得到一个网络最大的主机号
最大主机号+1就是子网中的主机号个数
192.168.2 子网掩码:255.255.255.240,取反后前三个为0,最后一个00001111,为15,因此在该网络中能分配的IP范围是192.168.2.0~192.168.2.15
2.子网掩码与IP地址相与,可以得到网络号。与相邻网络的子网掩码逐个相与判断当前目标地址属于哪个网络
举例:有一个公司,申请了一个C类网络号1992.58.45.0,公司由四个部分,需要将这个C类网络平均划分为四个子网,请问如何划分,每个子网的子网掩码是多少,IP地址分配范围是多少,网络号是多少?
解答:这是C类网络,拥有256个主机号,平均划分四个子网,则每个子网拥有64个主机号,0~63,子网掩码是63取反,得到子网掩码:255.255.255.192
即四个子网为:
192.58.45.0~192.58.45.63;255.255.255.192;192.58.45.0
192.58.45.64~192.58.45.127;255.255.255.192;192.58.45.64
192.58.45.128~192.58.45.191;255.255.255.192;192.58.45.238
192.58.45.192~192.58.45.255;255.255.255.192;192.58.45.192
特殊的IP地址:
0.0.0.0 – 可被识别为本机任意网卡IP地址 - 常用于服务器绑定监听地址
255.255.255.255 – 全网广播地址
127.0.0.1:每个主机的虚拟回环网卡的地址 – 进行本地网络回环测试
主机号全为0的IP地址:就是网络号 – 不能分配给某个主机
主机号全为1的IP地址:UDP局域网广播地址 — 不能分配给某个主机
一个网络内所能分配的主机号个数是总的个数-2
公网与私网:外网与内网
公网/外网:通常是我们所说的互联网
私网/内网:一个组织所建立的内部私有网络(无法直接与外部通信)
私网内部的主机,如果仅是私网内部通信,则没有什么特殊的
如果私网内部主机想要向外通信,最终实际上使用的是私网对外的这个公网网卡进行的。
私网内的多个主机对外通信,都是用的是同一私网对外的IP地址,因此组建私网可以节省大量的公网IP地址
主要因为不同的私网可以使用相同的私网IP地址而不冲突,因为私网内部主机对外通信时使用的是不同的对外公网IP
组建私网的IP地址与公网中的IP地址不能重复:组建私网的IP地址是有固定地址的,这些地址不会再公网中被使用:10.*.*.*:大型私网;172.16.*.*~172.31.*.*:中型私网;192.168.*.*:小型私网
路由选择
路由选择:在复杂的网络环境中为每一条数据选择合适的路径进行转发
路由表:每个路由器上都会拥有的一个信息
Destination:目标网络号
Gateway:网关地址
Genmask:子网掩码
Iface:连接这个网络的网卡
链路层
链路层:负责相邻设备之间的数据传输
以太网协议:ehternet
协议格式:
48位源端-对端mac地址:识别指定相邻设备
mac地址:uint8_t mac[6] – 网卡的物理硬件地址–出厂时设定
16位协议类型:用于数据分用时上层解析协议的选择
32位数据帧尾:校验和进行差错校验

如何获取相邻指定设备的MAC地址:ARP协议
ARP协议:介于网络层和链路层之间的协议–通过IP地址获取MAC地址
在局域网广播ARP请求(smac+sip+0+dip)(以太网帧中的对端MAC地址全为1–广播地址)
相邻设备收到ARP请求后,检测目的IP地址是否与自己符合,不符合则直接丢弃,符合则组织ARP应答,将自己MAC地址填充进行回复。
两端都会将MAC-IP的映射关系保存一段时间(20~30分钟)
MTU:链路层限制的最大传输单元 - 以太网默认1500字节
MSS-最大数据段大小 = MTU - IP最小报头长度 - TCP最小报头长度
TCP:MTU=1500;则MSS=1460
UDP;MTU=1500;则MSS=1472
MTU对TCP传输的影响:
TCP传输三次握手阶段会协商MSS,双方取较小的乙方的mss作为最大数据段大小进行传输,每次从发送缓冲区中取出不大于mss大小的数据封装报头进行传输。 因此我们说,tcp在传输层会自定进行数据分段,因此不会再网络层进行数据分片
MTU对于UDP传输的影响:
UDP可没有MSS协商,只要数据段大小小于64k-28就可以传输,但是若大于MTU大小,则会在网络层会进行数据分片,而分片在对端会进行分片重组,一旦一个分区出问题整个报文都会被丢弃(udp不保证可靠传输,丢弃就没了),因此,分片越多,传输出问题的几率就越高。因此使用UDP传输,程序员最好在上层分包时就计算MSS大小分包,尽量减少分片概率。
相关文章:
Linux-网络层IP协议、链路层以太网协议解析
目录 网络层:IP协议地址管理路由选择 链路层 网络层: 网络层:负责地址管理与路由选择 — IP协议,地址管理,路由选择 IP协议 数据格式: 4位协议版本:4-ipv4协议版本 4位首部长度:以…...
后端开发辅助
maven仓库手动添加jar命令 mvn install:install-file -DfileD:\\spire.xls-4.6.5.jar -DgroupIde-iceblue -DartifactIdspire.xls -Dversion4.6.5 -Dpackagingjaroracle调用存储过程示例 DECLAREPO_ERRCODE VARCHAR2(100);PO_ERRMSG VARCHAR2(100);BEGIN-- Call the procedure…...
插件电阻的工艺结构原理及选型参数总结
🏡《总目录》 目录 1,概述2,工作原理3,结构特点3.1,引脚设计3.2,电阻体3.3,封装4,工艺流程4.1,材料准备4.2,电阻体制作4.3,引脚焊接4.4,绝缘处理4.5,测试与筛选4.6,包装与存储...
视频私有云,HDMI/AV多硬件设备终端接入,SFU/MCU视频会议交互方案。
在视频业务深入的过程中越来越多的硬件设备接入视频交互的视频会议中远程交互,有的是视频采集,有的是医疗影像等资料,都需要在终端承显,这就需要我们的设备终端能多设备,多协议接入,设备接入如下。 1&#…...
mac os 配置两个github账号
1. 清空git全局配置的username和email git config --global --unset user.name git config --global --unset user.emailgit config --list 可以查看是否清空了 2. 定义两个标识符,这两个标识符以后会被用来代替“github.com”来使用。 假设两个账号的邮箱地址分别是a@gmai…...
【SpringBoot】登录校验之会话技术、统一拦截技术
真正的登录功能应该是: 登陆后才能访问后端系统页面,不登陆则跳转登陆页面进行登陆。 当我们没有设置登录校验,可以直接通过修改地址栏直接进入管理系统内部,跳过登录页。而后端系统的增删改查功能,没有添加判断用户是…...
Cohere发布大模型Command-R:35B参数,128K上下文,高性能 RAG 功能,支持中文
引言 随着人工智能技术的快速发展,大型语言模型(LLM)在各行各业的应用日益广泛。Cohere最新发布的Command-R模型,以其35B参数和128K的长上下文能力,为企业级应用带来了前所未有的可能性。本文将深入探讨Command-R的核…...
vue+element 前端实现增删查改+分页,不调用后端
前端实现增删查改分页,不调用后端。 大概就是对数组内的数据进行增删查改分页 没调什么样式,不想写后端,当做练习 <template><div><!-- 查询 --><el-form :inline"true" :model"formQuery">&l…...
浅谈如何自我实现一个消息队列服务器(2)——实现 broker server 服务器
文章目录 一、实现 broker server 服务器1.1 创建一个SpringBoot项目1.2 创建Java类 二、硬盘持久化存储 broker server 里的数据2.1 数据库存储2.1.1 浅谈SQLiteMyBatis 2.1.2 如何使用SQLite 2.2 使用DataBaseManager类封装数据库操作2.3 文件存储消息2.3.1 存储消息时&#…...
html5cssjs代码 039 元素尺寸
html5&css&js代码 039 元素尺寸 一、代码二、解释 使用CSS来定义HTML元素的尺寸,并通过不同的计量单位来设置元素的大小。 一、代码 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><tit…...
Lucene的lukeall工具的下载和使用图解
Lucene的lukeall工具的下载和使用图解-CSDN博客 Releases DmitryKey/luke (github.com) 需要github的用户名和密码,没有是下载不成功的....
【题目】【网络系统管理】2019年全国职业技能大赛高职组计算机网络应用赛项H卷
极安云科专注职业教育技能竞赛培训4年,包含信息安全管理与评估、网络系统管理、网络搭建等多个赛项及各大CTF模块培训学习服务。本团队基于赛项知识点,提供完整全面的系统性理论教学与技能培训,成立至今持续优化教学资源与讲师结构࿰…...
OpenRewrite框架原理解析
目录 1. OpenRewrite处理流程概述 2. OpenRewrite访问者模式的应用 2.1 访问者模式简介 2.2 OpenRewrite框架如何应用访问者模式 2.2.1 抽象访问者&具体访问者 2.2.2 抽象元素&具体元素 3. LST无损语义树构造 4. 配方(Recipe)执行流程 …...
LeetCode_Java_递归系列(题目+思路+代码)
206.反转链表 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1]以此类推,直到反转结束返回头结点 class Solution {public ListNode rever…...
c++ 编译为WebAssembly时,怎么判断是release/debug环境?
我对这块研究不深 我的需求是把cpp代码编译为wasm的形式时,需要知道是debug/release 然而 尝试了一些办法 没有满足我的需求 尝试1: #include <iostream>bool isDebugMode() { #ifdef EMSCRIPTENbool isDebug EM_ASM_INT({return (typeof conso…...
信号处理--基于正则化聚合的共空间模态(CSP)脑电信号分类
目录 理论 工具 方法实现 代码获取 参考文献 理论 传统的通用空间模式 (CSP) 是一种流行的算法,用于对脑电图 (EEG) 信号进行分类。本文主要介绍小样本设置 (SSS) 中 CSP 的正则化和聚合技术。传统的 CSP 基于样本协方差矩阵估计。如果训练样本数量较少,其脑电图分类的…...
【2024年5月备考新增】《软考真题分章练习(含答案解析) - 11 项目风险管理(高项)》
1 题目 1、风险可以从不同角度、根据不同的标准来进行分类。百年不遇的暴雨属于()。 A.不可预测风险 B.可预测风险 C.已知风险 D.技术风险 2、人们对风险事件都有一定的承受能力,当()时,人们愿意承担的风险越大。 A.项目活动投入的越多 B.项目的收益越大 C.个人、组织拥…...
【3GPP】【核心网】【4G】4G手机接入过程,手机附着过程(超详细)
1. 4G手机接入过程,手机附着过程 附着(Attach): 终端在PLMN中注册,从而建立自己的档案,即终端上下文 进行附着的三种情况: ①终端开机后的附着,初始附着 ②终端从覆盖盲区返回到…...
【LeetCode-46.全排列】
题目详情: 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2: …...
【Web】浅聊Jackson序列化getter的利用——POJONode
目录 核心速览 原理分析 EXP TemplatesImpl利用 SignedObject利用 核心速览 writeValueAsString是jackson序列化自带的入口,在调用该方法的过程中将会通过遍历的方法将bean对象中的所有的属性的getter方法进行调用 下面介绍如下利用链: BadAttrib…...
Claude in Excel:原生集成的AI表格协作者
1. 项目概述:这不是插件,是Excel里长出来的AI同事“Claude in Excel”这个标题刚看到时,我下意识点开几个技术社区翻了一圈,发现多数人第一反应是:“又一个AI插件?”——其实完全不是。它根本没走传统Offic…...
Claude Code 之父:2026 年我一行代码都没写,编程已被 AI 解决
2026 年,你还在一行一行敲代码吗?Claude Code 的创造者、Anthropic 核心人物 Boris Cherny,在公开访谈里抛出一句让整个行业震动的话:2026 年到现在,我没有写过一行代码。所有开发工作,100% 交给 AI 代理完…...
机器学习赋能6G近场通信:从信道估计到波束赋形的智能革命
1. 项目概述:当6G遇见近场,为何机器学习成为破局关键?如果你关注过5G到6G的技术演进路线,会发现一个核心趋势:天线阵列的规模正在从“大规模”走向“极大规模”。这不仅仅是数量的堆砌,更是通信物理原理的一…...
从入门到上岗,Java+AI 复合型人才养成攻略
当下编程行业格局正在悄然改变,纯 Java 后端岗位内卷日趋严重,薪资增长逐步放缓;纯粹的 AI 算法岗门槛居高不下,对学历、数理功底要求严苛,普通开发者很难入局。 而Java+AI 复合型开发顺势成为行业刚需岗位,既依托成熟的 Java 体系承接业务开发,又能融入人工智能技术实…...
基于LM22678的树莓派硬盘专用电源设计:解决供电不稳与电流冲击
1. 项目概述:为什么我们需要一个“专用”电源?如果你正在用树莓派搭配一块机械硬盘搭建一个家庭服务器或者个人云存储,可能已经遇到了一个不大不小的麻烦:供电不稳。树莓派官方推荐的5V/3A电源,单独带树莓派4B跑满负载…...
echarts中heatmap鼠标滚动禁用缩放,向下滚动
配置如下效果如下...
3分钟掌握HashCalculator:你的文件完整性守护专家
3分钟掌握HashCalculator:你的文件完整性守护专家 【免费下载链接】HashCalculator 哈希值计算工具,批量计算/批量校验/查找重复文件/改变哈希值等,支持集成到系统右键菜单 项目地址: https://gitcode.com/gh_mirrors/ha/HashCalculator …...
告别数据饥荒:用PyTorch手把手实现原型网络(Prototypical Networks)做电影评论情感分类
告别数据饥荒:用PyTorch手把手实现原型网络做电影评论情感分类 在自然语言处理领域,情感分析一直是热门研究方向,但现实中的开发者常面临一个尴尬困境:标注数据太少。传统深度学习方法动辄需要成千上万的标注样本,而实…...
如何快速批量下载高质量歌词:ZonyLrcToolsX跨平台终极解决方案
如何快速批量下载高质量歌词:ZonyLrcToolsX跨平台终极解决方案 【免费下载链接】ZonyLrcToolsX ZonyLrcToolsX 是一个能够方便地下载歌词的小软件。 项目地址: https://gitcode.com/gh_mirrors/zo/ZonyLrcToolsX 还在为本地音乐库缺少歌词而烦恼吗࿱…...
别再死记公式了!用Python手写一个卷积层,彻底搞懂CNN里的‘卷’是怎么算的
用Python手写卷积层:从零理解CNN的"卷"运算 当你第一次看到卷积神经网络(CNN)的数学公式时,那些复杂的符号和下标是否让你望而却步?作为计算机视觉领域的基石,CNN的核心在于理解卷积运算的本质。本文将带你用NumPy从零实…...

