华为网络基础

news2024/11/17 11:31:10

目录

一、封装和解封装和一些通信基本概念

1、带宽:

2、延迟:

3,分层概念

4.单位换算

5.数据的封装

6.介质

二、数据链路和mac地址

1.基本概念

2.帧的内容和区别

2.1. e2帧格式

2.2. ieee802.3帧格式

3.网络层的数据链路层相关的一些概念

三、网络层的ip报头和ip地址

1.ip报头

2.ip地址分类

四、ip地址分类和VLSM

1.特殊地址:

2.子网掩码

3.网络地址和广播地址

4.vlsm - 可变长子网掩码

5.CIDR

6.icmp重定向

7.arp

8.广播域

五、传输层tcp和udp

1.tcp和udp的基本原理和区别

2.tcp三次握手和四次挥手

结语


一、封装和解封装和一些通信基本概念

1、带宽:

单位时间内从一个节点到达另外一个节点的最大数据量

2、延迟:

数据从一个节点到达另一个节点的时间

3,分层概念

从网络拓扑划分网络:

总线型、环形、星型

接入层:接入终端用户

汇聚层:提供服务,实现网络策略

核心层:提供数据的告诉转发

4.单位换算

网络传输

1kbps = 1000bps

1M = 1000k

1G = 1000G

存储单位

1B = 8bit

这样我们传输的时候,比如下载时,传输过来的8个bit流才会存储位一个计算机的最小单位Byte,所以实际的下载速率应该/8

5.数据的封装

传输层:建立客户端之间的连接 tcp udp

网络层:ip地址

数据链路层:mac地址

封装过程

解封装过程

6.介质

- stp(Shielded Twisted Pair):屏蔽双绞线

- utp(Unshielded Twisted Pair):非屏蔽双绞线

双绞线制作标准/线序

- 半双工和全双工

全双工

在100M的网络传输,实际只使用了1、2、3、6四根线,也就是橙白、橙、绿白、绿这四根线。其中1、2线用于发送数据,3、6线用于接受数据,4、5线为备用线 ,7、8线则为电话线。

在千兆网络中,传输网络数据时,8根网线都要使用,2收2发的方式,即2对芯发送数据,2对芯接收数据,其中网线1、2、3、6芯用来发送数据;网线4、5、7、8芯用来接收数据,千兆网络通常采用标准T568B线序:1-橙白,2-橙,3-绿白,4-蓝,5-蓝白,6-绿,7-棕白,8-棕(这个标准都是一样的)。因此千兆网络必须使用8芯网线。

- 光纤

单模就是因为折射通道窄,所以损耗就小

多模就是因为折射通道宽,所以损耗就大

- 光纤接头

大方头(sc):一般是单模

小方头(lc):一般是多模

大圆头(fc)和小圆头(st):大圆头和小圆头都是在运营商耦合器上面


二、数据链路和mac地址

1.基本概念

局域网:以太网二层封装,两个标准IEEE802、Ethernet2

以太网是局域网组网的唯一标准

广域网:两个标准PPP、HDLC

应用层:协议数据单元(PDU),或者直接叫data

数据:对于下层的每个层级而言,上层反馈给我的信息,下层认为皆是数据。

数据链路层帧格式

校验:crc校验、奇偶校验、海明码

数据链路层传输流程

发送者:

由发送者填充源目mac信息,以及type标识上层协议,crc校验,该数值填充到fcs,借助物理层,转变成二进制比特流从链路中传递。

当数据抵达到设备接口后,接收者的动作:

- 首先看数据的目的mac地址,是否是自己本地的mac,如果不是,则丢弃;如果是,进行下一步;

- 将数据同样进行一次crc校验,比较fcs,如果不同,则丢弃;如果相同,则进行下一步;

- 查看type字段,交由里边标识的上层协议进行处理,数据链路层工作,完成。

注意:这里如果用E2标准,那么type字段里面不能使用私有的协议,需要使用公有的协议


2.帧的内容和区别

2.1. e2帧格式

2.2. ieee802.3帧格式

length:后面的Data的长度

d.sap:目标服务接入点

s.sap:源服务接入点

这里就比e2的type详细,type字段只标识访问目标使用的协议,但是ieee802.3用两个字段来标识目标和源的服务接入协议。

control:这个字段本来是想做一些流控的,但是并没有开发出来这类功能,所以如果是ieee802.3帧,那么就这个字段就是一个恒定值,其实就是无意义

stp的报文

因为stp是公有化协议,所以就没有snap字段,有私有化协议就会有这个扩展字段

如果是公有化就看llc;私有化就看snap

ieee802.3比e2的帧格式要多出好几位,出于对链路传输的考虑,现在的帧格式大部分都是e2

ieee802.3除去data固定长为21B~26B,21B是除去私有化协议snap字段。

e2除去data固定长为18B

两个帧最大都是1518,ieee802.3的MTU的最大值默认为1500B(可修改)

但是这里的问题在于,ieee802.3data段少了8B,也就是说每一帧上层的数据会少8B,一帧流失8B,千万个帧积累下来的数据对于链路的负担就会加重,这就是e2的优点。

3.网络层的数据链路层相关的一些概念

- 分组转发:

数据切割成大小一致的长度。此时传递时网络中每一个数据的长度大小一致相同,提升数据转发效率。

- MTU:最大传输单元

存在每条链路上的概念,如果报文MTU值过大,而链路所能承载的MTU过小,会导致数据分片/丢弃

- e2帧类型值大于等于1536(0x0600),以太网数据帧的长度在64-1518字节之间。

MTU当包头里面的报头太多了,才会变大。

ieee802.3和e2的帧格式

不同的Type字段值可以用来区别这两种帧的类型

当Type字段值小于等于1500(或者十六进制的0x05DC)时,帧使用的是IEEE 802.3格式。

当Type字段值大于等于1536 (或者十六进制的0x0600)时,帧使用的是Ethernet II格式。


三、网络层的ip报头和ip地址

1.ip报头

英文版

中文版

16b的总长度减去4b首部报头,就能得到所有上层报头加上数据的长度。

分片:

- id、flag、fragmentoffset

id:标识了同组数据

flag:3 bit,标志位。在IP数据报中FLAGS中的分片标志位,位于IP数据报中的第50比特位,分为MF和DF(DF为第49位,第48位暂未使用,无实际意义),MF表示more fragment即还有分片,DF表示don't fragment即没有分片。

mf位:

mf为1时代表后面还有分片;

mf为0的时候代表后面没有分片;

但是这里有个问题,万一mf为0的分片第一个收到了,那么后面都不接收吗?

所以这里还需要有分片的顺序,ip报头用fragmentoffset标识,也就是片偏移

如图

- 协议和生存时间

2.ip地址分类

iana:互联网地址分配管理机制,ipv4地址被分成了五类


四、ip地址分类和VLSM

1.特殊地址:

0.0.0.0 //不可用 0.0.0.0--0.255.255.255

作用1:未指定的地址

作用2:路由层面--全网所有地址

127.0.0.0 //不可用 127.0.0.0 -- 127.255.255.255 环回地址

用于设备内部的tcp/ip的协议栈的测试,其实就是用来测试这个网卡是否支持tcp/ip协议栈

A类地址可以用范围:1.0.0.0 -- 126.255.255.255

2.子网掩码

默认子网掩码

A类:255.0.0.0 8

B类:255.255.0.0 16

C类:255.255.255.0 24

A类地址首位被固定为0,可变为2^7=128,可用减去两个,以此类推B类地址第一位被固定为1第二位被固定为0,C类第一位被固定为1第二位被固定为1第三位被固定为0。

3.网络地址和广播地址

4.vlsm - 可变长子网掩码

5.CIDR

将多个小的子网,用一个相对更大的地址范围进行概括,以此表现表项的优化

CIDR需要能完全覆盖包含所有子网的子网掩码,不能多,也不能少

我们可以算下

我们可以看到22位网络位刚好可以包含10.24.0、10.24.1、10.24.2、10.24.3这四个网段所以这里可以用CIDR去通告路由

但其实很多时候我们并没有怎么完美的汇总,比如我们多出了一个网段

如果我们要汇聚超网,需要多去借一位

这样我们多出来了两条没有存在的子网,10.1.5和10.1.6两个子网,这不满足CIDR

那么我们需要另外一个解决方案

我们可以将这条路由单独出来,通告两条

6.icmp重定向

重定向是由路由器B产生的

7.arp

一开始的arp请求dmac是全ffff,因为无法完整的填充二层抱头(不知道目的ip的mac),得到后就可以填充完整

报文大致内容和报头

接收方接收到arp请求报文如果是自己的ip,询问的是自己的mac地址,那么就会回复,如果不是就会丢弃

arp的老化机制

arp缓存 - 经过arp报文形成 - 动态的arp表项

老化时间:20分钟

华为默认

- arp的老化探测机制:二十分钟中会有3次老化探测 - 单播、单播、广播。

在次期间,如果收到了对方的回应,刷新老化时间。

十分钟发一次单播,十五分钟发一次单播,二十分钟发一次广播。

8.广播域

广播报文所能传播的范围

路由器每个接口都是广播域

交换机所有接口都是同一个广播域(交换机不做任何配置情况下)

广播报文是无法穿越路由器的三层接口(接口下能配置IP)


五、传输层tcp和udp

1.tcp和udp的基本原理和区别

端和端之间通信

端口 = port(逻辑端口)

通常说UDP是基于数据包传输,而TCP是基于流传输的

UDP基于包传输就是发送方会将应用层的数据一次性发送给接收方,但是会标记长度以供应用层识别和使用。

但是udp的传输也会超过接收方的接受长度,所以发送方也会显示最大的udp传输大小例如512字节,进行多次udp调用。

tcp会根据滑动窗口大小和缓冲区接收等,来确保数据流之间的传输,应用层只需要在缓冲区满了或者需要push的时候处理数据,一次tcp的调用会有源源不断的数据流进行传输。

- 粘包问题

但是因为缓冲区的原因会出现粘包问题,udp因为由长度的标识,所以应用层处理数据的时候只需要根据长度字段进行处理,但是tcp并没有,且源源不断的发送过来,所以会出现几个包粘合在一起处理的情况。

所以发送tcp的报头的数据时,应用层需要表示数据长度。

注意:tcp分片给网络层就是正常的1500(20的报头+1480的数据),udp本身没有分片的能力,但是因为网络层并不是专门用来分片的层,所以udp设计传输的时候尽量会减少包的传输大小,以避免网络层进行多余的分片步骤

2.tcp三次握手和四次挥手

大写ACK位置为1,小写ack才会有意义,并且这个是个期望值

- 期望值确认和差错重传

期望值确认,这里分了三段,每段500

- 差错重传机制

如果三个分片数据一次性发过来,但是中间有一个失误了那么所有数据重新传输

- 超时重传机制

重传机制里面有个极端现象,就是这三个分片的报文全部丢失情况,且对面没挂掉,那么对端没收到数据是不会由任何重传报文回来的。

注意:这里重传只会重传无序报文,缓冲区大于无序报文(因为滑动模块),那么只会重传无序报文,直到无序报文变有序报文,才会做一次确认。对有序报文的确认就是已经收到了1500的有序报文。1500-2999的报文是无序报文。

理想状态下的二、三、应用层的报文

ip头固定长20B~60B之间,这里取20B;

tcp头固定长20B;

应用层就只剩1460B;

- MSS - 最大报文段长度,其实就是指这里面的应用层数据的长度,我们上面这个报文的MSS就是1460B,这个在三次握手就会协商好

MTU - 这里是1500B

滑动窗口控制

一般是发送端去适应接收缓存区域,或者是客户端去适应服务器的缓冲区域

因为服务器需要多很多人提供服务,所以缓冲区更小,而客户端的闲置资源较多,缓冲区更大

这里客户端原本发了四个分片的报文,服务端需要四块缓冲区的区域,但是服务端只要闲置的三块,所以和客户端进行了一次协商,客户端后面的报文变成了三段。

- tcp关闭连接(四次挥手)

两边都确认断开就正常断开了

3.UDP报头

注意:这里如果去掉checksum那么报头将会变成6B,每个报文将会少2B


结语

攒着一波更新,很久没更了,求赞。

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

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

相关文章

docker+robot framework+selenium并发web应用UI自动化测试实践

自己在日常测试中,会搭建UI自动化测试框架来进行web应用的回归测试,在这过程中遇到了许多问题,如测试脚本和执行机不分离,串行测试效率低下,环境搭建麻烦等问题。在这个过程中,自己也在网上看一些前辈的搭建…

短视频抖音seo矩阵系统源码:技术开发与实践(三)

一、 技术开发文档说明 1. 系统架构 短视频抖音seo矩阵源码部署功能架构包含:多模式视频剪辑,视频批量处理、文字转语音、视频批量发布、多平台账号管理、 智能在线客服、粉丝画像及数据统计分析、抖音seo排名优化采集等。 2. 抖音seo排名系统模块组成…

高数基础4

目录 求极限的方式: 利用洛必达法则求极限 n阶可导的理解 几个常用的泰勒公式 求极限的方式: 利用洛必达法则求极限 洛必达法则适用于分子分母的极限同为0或者同为无穷的形式。 我们洛必达法则相当于对分子分母同时求导,所以要要求再x0的…

宝塔 安装/使用/备份数据 Jenkins-图文小白教程

一、Jenkins包下载 大家可以从Jenkins官网(https://www.jenkins.io/)根据自己的需要下载最新的版本。 但Jenkins官网下载较慢,容易造成下载失败。可以去国内的开源镜像网站下载Jenkins最新版本。目前博主使用的是清华大学的开源镜像网站&…

为什么我要自己做一个周易软件

周易是中国数千年流传下来传统文化,在八字、六壬、六爻、奇门遁甲、梅花易数等预测占卜方面应用广泛。很多传统易学工作者或爱好者采用手工排盘的方式,进行相关的排盘。当然现代更多的易学人士采用各自习惯的排盘软件进行排盘,大大节省了排盘…

【广州华锐互动】VR虚拟产品可视化平台将消费者带入不同的场景体验

随着虚拟现实技术的不断发展,VR虚拟产品体验已经成为了各大展会和商场中不可或缺的一部分。VR虚拟产品体验可以为消费者提供多种沉浸式体验,从而吸引更多的消费者关注和购买。 模拟场景体验 VR虚拟产品体验可以通过虚拟现实技术,将消费者带入…

C语言面试经典问题

当准备面试C语言相关职位时,以下是一些常见的C语言面试问题,可以帮助你准备面试。 什么是C语言? C语言的特点是什么? 请解释C语言中的标识符和关键字。 什么是C语言中的数据类型?请列举一些常见的数据类型。 如何…

leetcode-27.移除元素

leetcode-27.移除元素 文章目录 leetcode-27.移除元素一.题目描述二.代码提交(快慢指针)三.运行 一.题目描述 二.代码提交(快慢指针) class Solution {public:int removeElement(vector<int> &nums, int val) {int slow 0;int fast 0;while (fast < nums.size()…

ChatGPT训练流程

图源&#xff1a;State of GPT - Microsoft Build 笔者翻译上图如下&#xff1a; 阶段子阶段目标备注Pre-Training--------语言建模Instruction Finetuning---------让模型能够理解自然语言指令RLHFReward Modeling奖励建模&#xff0c;用来代替人工打分&#xff0c;降低标注…

IP-GUARD如何批量更换审批流程的审批人员?

如何批量更换审批流程的审批人员&#xff1f; 批量选中审批流程&#xff0c;将需要更换的审批人替换为新的即可。 &#xff08;按中shift或者ctrl键再点击审批流程&#xff0c;即可选择多条审批流程。&#xff09; 如何检测客户端机器是否安装了某个指定的补丁&#xff1f; …

RuoyiCloudPlus结合SkyWalking-9.4.0 docker部署流程

一、SkyWalking-9.4.0 docker部署流程 docker-compse.yml sky-oap:image: apache/skywalking-oap-server:9.3.0container_name: ruoyi-sky-oapports:- "11800:11800"- "12800:12800"environment:JAVA_OPTS: -Xms1G -Xmx2G#记录数据的有效期&#xff0c;单…

删除有序链表中的重复元素II——牛客24

题目描述 法一&#xff09;直接删除法 class Solution{ public:ListNode* deleteDuplicates(ListNode* head) {if(headNULL) return NULL;ListNode* dummy new ListNode(0);dummy->next head;ListNode* cur dummy;while(cur->next!NULL && cur->next->n…

如何使用jmeter进行接口测试?jmeter接口测试流程是怎样的

前言 我们学习自动化测试都会用到不同的工具&#xff0c;那么今天笔者呢&#xff0c;想给大家聊聊Jmeter接口测试流程详解&#xff0c;废话不多说直接进入正题。 一、jmeter简介 Jmeter是由Apache公司开发的java开源项目&#xff0c;所以想要使用它必须基于java环境才可以&am…

【UE4 C++】01-Visual Studio 2019社区版安装

目录 步骤 一、下载安装包 二、安装 步骤 一、下载安装包 官网目前Visual Studio是2022版本&#xff0c;我们需要下载Visual Studio老版本&#xff1a; Visual Studio 较旧的下载 - 2019、2017、2015 和以前的版本 二、安装 双击运行安装包后&#xff0c;在打开的界面…

Flutter开发技巧:Android Studio快速生成Dart文件

自定义文件模板 Android Studio 设置路径&#xff1a;Android Studio | Preferences | 搜索Templates | File and Code Templates | Dart File 设置步骤如下图&#xff1a; 模版代码 import package:flutter/material.dart; /*** author[${USER}]* version[创建日期&#xff…

基于matlab在多光谱影像中查找植被(附源码)

一、前言 此示例演示如何使用 MATLAB数组算法来处理图像和绘制图像数据。特别是&#xff0c;此示例使用三维图像阵列&#xff0c;其中三个平面表示来自电磁频谱不同部分的图像信号&#xff0c;包括可见的红色和近红外 &#xff08;NIR&#xff09; 通道。 影像数据差异可用于…

数据库-SQL-DML语句

文章目录 DML语句添加数据修改数据DML-删除数据 DML语句 添加数据 表的结构 修改数据 DML-删除数据 DML-总结&#xff1a;

数字美容的艺术:深入探讨面部美化算法和人脸美型SDK

在当今社交媒体和自拍热潮的背景下&#xff0c;数字美容成为了许多人追求面部完美外貌的选择。通过面部美化算法和人脸美型SDK&#xff0c;人们可以在瞬间实现肌肤光滑、五官精致的效果。然而&#xff0c;这种技术的背后隐藏着怎样的原理和技术手段&#xff1f;本文将深入探讨面…

Elasticsearch索引库、文档操作

一、索引库操作 1、创建索引库&#xff1a; #创建索引库 PUT /索引库名 {"mappings": {"properties": {"info":{"type": "text","analyzer": "ik_smart"},"email":{"type": "…

【高级程序设计语言C++】 C++基础知识

1.1 C关键字1.2 命名空间1.2.1命名空间定义1.2.2命名空间的使用 1.3缺省参数1.3.1缺省参数分类 1.4函数的重载1.5.引用1.5.1引用的用法1.引用做参数2.引用返回 1.5.2 常引用 1.6 传值和传引用的区别1.7 引用和指针的区别1.8 auto关键字auto的使用细则 1.1 C关键字 C的关键字共…