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大小分包,尽量减少分片概率。

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

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

相关文章

【网站项目】293学生用品采购系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

Dockerfile自定义镜像

文章目录 1、镜像结构2、Dockerfile语法3、构建Java项目3.1、基于Ubuntu构建Java项目3.2、基于java8构建Java项目 4、小结 ​&#x1f343;作者介绍&#xff1a;双非本科大三网络工程专业在读&#xff0c;阿里云专家博主&#xff0c;专注于Java领域学习&#xff0c;擅长web应用…

【网站项目】291校园疫情防控系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

Linux系统——Mysql索引补充知识

目录 一、索引介绍 1.索引的优点 2.索引的分类 3.索引的技术名词 3.1回表 3.2覆盖索引 3.3最左匹配 3.4索引下推 4.索引匹配方式 4.1全值匹配 4.2最左前缀匹配 4.3匹配列前缀 4.4匹配一个范围值 4.5精确匹配某一列并范围匹配另一列 4.6只访问索引的查询 一、索引…

(ROOT)KAFKA详解

生产篇 使用 /** Licensed to the Apache Software Foundation (ASF) under one or more* contributor license agreements. See the NOTICE file distributed with* this work for additional information regarding copyright ownership.* The ASF licenses this file to Y…

python机器学习,这些面试题你会吗

安装 要安装完整的栈或单个包&#xff0c;您可以参考 这里 给出的说明。 注意&#xff1a; Anaconda 是高推荐的&#xff0c; 因为它可以无缝地安装和维护数据科学包。 scikit-learn Scikit是一个用于Python的免费开源机器学习库。 它提供了现成的功能来实现诸如线性回归、 …

JavaScript中的类

instanceof 运算符用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。 1、类的声明 1.1 基本的类声明语法 要声明一个类,首先编写class关键字,紧跟着的是类的名字。 class Person {constructor(name) {this.name = name;}sayName() {console.log(this…

@Autowired和@Resource两个注解的异同点

前言 在之前分别写了关于Autowired和Resource注解的两篇博文,这里我们总结一下两个注解的异同点 相同点 两个注解的作用都是完成Spring的依赖注入两个注解都是在各自bpp的postProcessMergedBeanDefinition方法中发现注入点,都是在各自bpp的postProcessProperties方法中完成依…

关于安卓MPAnroidChart开发(一)直方图分组坑

背景 安卓开发一个图表显示数据&#xff0c;内容就是对直方图进行分组显示&#xff0c;大概示例如下&#xff1a; 开发环境 win10,as4,jdk8 开发 这里直接说重点。乱七八糟的就掠过了&#xff0c;最后会放出所有相关源码以及封装好的类。 如果对单组的直方图&#xff0c…

手机抓包也太简单好玩了吧!

我们选择Charles来作为抓包工具&#xff0c;本文将从0到1讲解从电脑端抓包到手机端抓包。 Charles是一款被广泛使用的网络抓包工具&#xff0c;它可以用来监控和调试通过HTTP和HTTPS协议发送和接收的所有网络请求和响应。Charles通常用于网页和网络应用的开发过程中&#xff0…

代码随想录 Day-23

力扣题目 406.根据身高重建队列 思路 这里可以看出来是有两个维度考虑&#xff0c;和力扣题目 135.分发糖果&#xff08;可以看我day-22的文章&#xff09; 有点类似。 因此遇到这种两个维度权衡的时候&#xff0c;一定是先考虑一个维度再按照另一个维度来重新考虑排序。 两…

YOLOv9有效改进|使用iRMB与RepNCSPELAN4融合

专栏介绍&#xff1a;YOLOv9改进系列 | 包含深度学习最新创新&#xff0c;助力高效涨点&#xff01;&#xff01;&#xff01; 一、改进点介绍 iRMB是CVPR2023即插即用的到残差注意力机制。 本文使用iRMB与RepNCSPELAN4进行融合 二、iRMB-RepNCSPELAN4模块详解 2.1 模块简介 这…

Codeforces Round 935 (Div. 3)A~E

A. Setting up Camp 题目分析: 有三种人&#xff0c;内向、外向、综合&#xff0c;内向必须独自一个帐篷&#xff0c;外向必须3个人一个帐篷&#xff0c;综合介于1~3人一个帐篷&#xff0c;我们发现非法情况只会存在外向的人凑不成3个人一个帐篷的情况&#xff0c;因外向不够可…

AI视频激光综合驱鸟装置:全自动、大范围驱鸟 | 真驱鸟科技

在电力系统中&#xff0c;鸟害事故已成为一个不容忽视的问题&#xff0c;直接威胁到电网的正常运行。但鸟类拥有极强的环境适应能力&#xff0c;它们能够在各种环境中生存和繁衍。这种强大的适应性使得传统的单一功能驱鸟器&#xff0c;在面对鸟类时显得力不从心&#xff0c;无…

用OceanBase binlog service 轻松进行数据回滚

背景 在日常的数据库运维过程中&#xff0c;难免会遭遇数据误操作的情形&#xff0c;比如因疏忽而执行了非预期的delete或update操作&#xff0c;这时就需要进行数据回滚。如果在OceanBase中启用了回收站功能&#xff0c;并设置了合适的undo_retention&#xff0c;那么我们可以…

【Frida】10_用鼠标自动标记棋盘上的雷区(一键过关)

&#x1f6eb; 系列文章导航 【Frida】 00_简单介绍和使用 https://blog.csdn.net/kinghzking/article/details/123225580【Frida】 01_食用指南 https://blog.csdn.net/kinghzking/article/details/126849567【Frida】02_常见API示例及功能函数封装&#xff08;snippets&#…

上海亚商投顾:沪指窄幅震荡微跌 低空经济概念股持续爆发

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 三大指数昨日高开后回落&#xff0c;整体呈现小幅调整走势。低空经济概念持续爆发&#xff0c;永悦科技8连板&…

html5cssjs代码 032 边框属性示例

html5&css&js代码 032 边框属性示例 一、代码二、解释 该HTML文件定义了一个网页页面&#xff0c;主要介绍了HTML5中CSS边框属性的用法。 一、代码 <!DOCTYPE html> <html lang"zh-cn"><head><title>编程笔记 html5&css&j…

银河麒麟系统安装设备类型选择lvm简单模式之后,数据写入导致失败导致系统重启无法正常加载

银河麒麟系统安装设备类型选择lvm简单模式之后&#xff0c;数据写入导致失败导致系统重启无法正常加载 一 系统环境1.1 系统版本信息1.2 通过镜像安装的过程中选择设备类型选择的是lvm简单模式 二 问题描述三 问题修复过程3.1 挂载ISO镜像&#xff0c;引导到字符终端界面3.2 修…

什么是ip公网?

一、概念和作用 在计算机网络中&#xff0c;IP&#xff08;Internet Protocol&#xff09;是一种网络协议&#xff0c;用于将数据包从源主机传输到目标主机。而公网指的是能够被所有人访问的网络&#xff0c;与之相对应的是私有网络。IP公网即指能够在公共互联网中被访问和使用…
最新文章