计算机网络第四章——网络层(中)
提示:待到山花烂漫时,她在丛中笑。
文章目录
需要加头加尾,其中头部最重要的就是加了IP地址和MAC地址(也就是逻辑地址和物理地址)集线器物理层设备,交换机是物理链路层的设备,如上图路由器左边就是一个局域网,若是文件比较大就需要在传输层进行分段,在网络层进行封装就需要加上IP地址形成一个IP数据报,要加两个一个是源主机的地址,一个是目的主机的地址,(传输层要讲)根据这个DNS就可以将目的地址填入,分组通常是数据报分片之后的结果,为什么要进行分片可能是因为这个链路层的协议要求的最大传输单元有一个是MTU,根据MTU来决定是否要在网络层进行分片,然后构成一个IP数据报,然后再数据链路层加上一个MAC地址,每一个主机或者说每一个路由器都会有一个ARP高速缓存可以把他想想成是一个仓库,这个仓库存的就是IP地址和MAC地址的映射,也就是某一个IP地址对应的MAC地址应该是多少,当然所存的都是一个局域网内部的主机,若是没有找到就要使用ARP的协议,
就需要先发送一个ARP分组请求,其实是一个帧,这个数据帧的这几个部分,它自己的IP地址,它所查询的主机的IP地址,以及自己的MAC地址,还一个就是目的物理地址,这里能够看出来是全fFFF,也就是局域网内有广播效应的一个帧,若是MAC地址是广播地址的话,那么交换机就可以 将他从所有的端口转发出去,这里也就是2,3,还有连接的路由器,只有三号会响应,单播就是不是广播而是只发给1,
假如说要和五号主机进行通信,正常交换机是没有MAC地址的,只有这个主机和路由器的端口是有MAC地址的,路由器可以有多个MAC地址,IP地址,先来查看高速缓存自然是没有的,先用自己的子网掩码和目的IP地址也就是IP5向与,看看是否在自己的网段内,结果1号主机发现不在自己的网段内,然后查询默认网关的MAC地址,也就是他与外界沟通的路由器,下一跳(或者说下一个路)是可以跳到三个地方,2,3,和默认网关,然后如何得到MAC6的地址呢,依然是广播的形式获得默认网关IP6的MAC地址,
此时假设已经传输到了路由器这里,然后进行一个数据的解封装,然后最高到网络层,然后再从网络层开始封装,封装就是要加上这个源地址和目的地址,也就是IP1和IP5源地址和目的地址是不变的,当然目前是不考虑NAT那种请求的(若是NAT这个IP地址会发生改变的),这个物理地址是要发生变化了(因为到了一个新的网络内)它的源MAC和目的MAC都发生了改变,也就变长了这个的MAC7和下一个的MAC8,此时是一个点对点的通信也就是使用PPP协议,我们说过PPP协议中目的MAC是全1的,若不是点对点就是填MAC8,然后到了下一个路由器,然后依然是IP1和IP5这个是自始至终都是不变的,目的MAC地址就是MAC5,这个MAC5依然是使用ARP协议得来的,然后这个路由器也就知道下一跳要往哪走了,具体如何做到走5不走4的这就是链路层对数据帧进行转发的过程了,
局域网内部只能看懂MAC地址,有的主机没有找到就需要这个ARP协议,
也就是只要是发给本网络中的一个主机,那么只需要使用ARP获取这个主机的MAC地址,若是要发给另外一个网络,也就是不在同一个网络的主机或者路由器也就是需要通过默认网关,通过ARP找到这个默认网关的MAC地址,剩下的事交给这个网关就可以了,主机的用户对这个ARP的过程是不知情的,
6次ARP协议
结合了MAC地址和IP地址,但是主要是将其划分成网络层的协议,它是为IP协议来提供服务的,
主机在进行通信的时候,一定是需要一个IP地址,但是主机是如何获取一个IP地址的呢?这个默认网关就是这些主机它的数据得以进入外界的一个端口,通常都是一个路由器的接口的IP地址,只有通过这样一个默认网关才能与外界进行通信,手机到了一个教室中就会给它分配一个动态的IP地址,也就是通过DHCP服务器来进行分配的,主机走了这个分配的IP地址就会收回了,
之所以把这个应用层协议放到网络层来讲是因为这个协议为网络层的通信提供了一个基础,只有有了DHCP协议我们才有IP地址,才能延伸出许多的内容,
可以看出就是主机和服务器之间来回交互,这种方式就是客户服务器的方式,而且这四种方式都是使用广播的方式,
ICMP和IGMP是处于网络层和传输层之间的协议,ICMP协议起到一个桥梁的作用,也就是为了更好的转发IP数据报和提高交互成功的机会,
在实际的通信中总会有一些分组出错,在网络层的出来就是给它丢弃,并同时发送一个ICMP的差错报文,ICMP的报文是装在IP数据报的数据部分,所以ICMP是网络层的协议,
类型是为了指这个ICMP是那一类的,代码是为了区分某一个类型中具体的情况,这个检验和是为了检验整个ICMP报文的,(注意IP数据报的首部检验和是只检验首部,)
所有的ICMP差错报告报文,它们的数据字段的格式都是一样的,收到的需要进行差错报告的IP数据报首部以及前八个字节取出来,作为ICMP报文的数据字段,然后加上ICMP的前8个字节然后构成了一个完整的差错报告报文,然后加上IP数据报的首部就构成了一个完整的数据报,也就是ICMP差错报告报文是网络层传输单元的数据部分,
因为既然是封装成帧,自然是有可能还是出错的,
组播是一点到多点,广播是一点到所有结点,组播是有选择性的,
是有两个主机一个是源主机,一个是目的主机,源主机就会发送一连串的数据报,主要差别是生存时间是不一样的,然后就可以测算出从源点到终点之间的距离了,
支持Qos就可以满足实时的以及多媒体通信的需要,
也就相当于讲IPv4中的可变部分挪到了有效载荷当中,所以IPv6的基本首部就是固定的,这个扩展首部就是对这个数据报有什么要求,比如这个数据报要增加什么功能,也就是放在这个扩展首部来实现,因为有这个扩展首部原来IPv4中一些不必要的部分就可以先不用了,用的话只需要放在扩展首部中就可以了,IPv6灵活的首部格式就可以大大的加快分组处理的速度,
其中的扩展首部是可有可无的,有效载荷长度指的是有效载荷这个的长度是有多大,IPv4标识长度有两个字段,一个叫做首部长度字段,一个叫总长度字段,首部长度字段指的是首部的大小,总长度是首部加上数据部分的大小,而这里的有效载荷长度指的是扩展首部加上数据的大小,基本首部中的下一个首部指向的是扩展首部1,扩展首部1中的下一个首部指向的是扩展首部2,最后一个指向的是数据部分,跳数限制也就相当于IPv4中的生存时间,若是为零,返回一个ICMP差错报告报文,
如果没有校验和字段,对于数据报的首部的检验时间就缩短了,因此就可以减少每一跳的时间,
若是IPv6数据报很大,必须要进行分片,只能在路由器这里将其丢弃,然后返回一个差错报告报文,
IPv4的协议字段是指其中的数据使用的是哪一个协议,也就是分组的数据部分应该是交给的哪一个传输层协议,
只要前面有连续的0我们就可以对其进行压缩,
多播地址只能作为目的地址,不能作为源地址,多播地址可以包括广播地址,任播是IPV6独有的一种地址,是一对多的一个通信,本质上也是一对一的,通常是选择一个离他最近的一个主机,
隧道技术是一种使用比较广泛的技术,也就是将IPv6作为IPv4的数据部分进行传输,,
相关文章:
计算机网络第四章——网络层(中)
提示:待到山花烂漫时,她在丛中笑。 文章目录 需要加头加尾,其中头部最重要的就是加了IP地址和MAC地址(也就是逻辑地址和物理地址)集线器物理层设备,交换机是物理链路层的设备,如上图路由器左边就…...
时序分解 | MATLAB实现基于小波分解信号分解分量可视化
时序分解 | MATLAB实现基于小波分解信号分解分量可视化 目录 时序分解 | MATLAB实现基于小波分解信号分解分量可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 基于小波分解的分量可视化,MATLAB编程程序,用于将信号分解成不同尺度和频率的子信…...
VMware虚拟化环境搭建
虚拟化环境搭建 1. 什么是虚拟化环境?未来工作中在何处使用? 在网络安全中,虚拟化环境是一种技术,它将一个物理计算机系统划分成多个独立、可管理的虚拟环境。这种虚拟环境技术允许多个完全不同的操作系统、显示装置和软件在同一…...
Jenkins :添加node权限获取凭据、执行命令
拥有Jenkins agent权限的账号可以对node节点进行操作,通过添加不同的node可以让流水线项目在不同的节点上运行,安装Jenkins的主机默认作为master节点。 1.Jenkins 添加node获取明文凭据 通过添加node节点,本地监听ssh认证,选则凭…...
如何实现不同MongoDB实例间的数据复制?
作为一种Schema Free文档数据库,MongoDB因其灵活的数据模型,支撑业务快速迭代研发,广受开发者欢迎并被广泛使用。在企业使用MongoDB承载应用的过程中,会因为业务上云/跨云/下云/跨机房迁移/跨地域迁移、或数据库版本升级、数据库整…...
微服务保护-隔离
个人名片: 博主:酒徒ᝰ. 个人简介:沉醉在酒中,借着一股酒劲,去拼搏一个未来。 本篇励志:三人行,必有我师焉。 本项目基于B站黑马程序员Java《SpringCloud微服务技术栈》,SpringCloud…...
报错:appium AttributeError: ‘NoneType‘ object has no attribute ‘to_capabilities‘
报错如下 Traceback (most recent call last):File "C:\Users\wlb\Desktop\test\python\2.py", line 16, in <module>driver webdriver.Remote("http://127.0.0.1:4723/wd/hub", caps)File "D:\software\python3\lib\site-packages\appium\we…...
MFC - 一文带你从小白到项目应用(全套1)
文章篇幅可能会比较长,从入门到基本能上项目的全部内容。建议观看的过程中,用电脑跟着学习案例。 持续输出优质文章是作者的追求,因为热爱,所以热爱。 最近看动漫被一句鸡汤感动到了,也送给各位朋友: 只要有…...
(2596. 检查骑士巡视方案leetcode,经典深搜)-------------------Java实现
(2596. 检查骑士巡视方案leetcode,经典深搜)-------------------Java实现 题目表述 骑士在一张 n x n 的棋盘上巡视。在 有效 的巡视方案中,骑士会从棋盘的 左上角 出发,并且访问棋盘上的每个格子 恰好一次 。 给你一个 n x n …...
Docker 部署 Bitwarden RS 服务
Bitwarden RS 服务是官方 Bitwarden server API 的 Rust 重构版。因为 Bitwarden RS 必须要通过 https 才能访问, 所以在开始下面的步骤之前, 建议先参考 《Ubuntu Nginx 配置 SSL 证书》 配置好域名和 https 访问。 部署 Bitwarden RS 拉取最新版本的 docker.io/vaultwarden…...
python与mongodb交互-->pymongo
from pymongo import MongoClient# 创建数据库连接对象 client=MongoClient(ip,27017)# 选择一个数据库 db=client[admin]db.authenticate(python,python)# 选择一个集合 col=client[pydata][test]col.insert({"class":"python"})col.find() for data in c…...
【网络】计算机网络基础
Linux网络 对网络的理解 在网络传输中存在的问题: 找到我们所需要传输的主机解决远距离数据传输丢失的问题怎么进行数据转发,路径选择的问题 有问题,就有解决方案; 我们把相同性质的问题放在一起,做出解决方案 解…...
(1)输入输出函数:cin和cout(2)数学函数:sqrt、pow、sin、cos、tan等
输入输出函数:cin 和 cout 在C编程语言中,为了与用户进行交互和显示程序的结果,我们使用了两个非常重要的函数:cin 和 cout。这两个函数分别用于输入和输出。 cin是C中的标准输入流对象,它用于从键盘接收用户的输入。…...
ArmSom-W3开发板之PCIE的开发指南(一)
1. 简介 RK3588从入门到精通本⽂介绍RK平台配置pcie的方法开发板:ArmSoM-W3 2、PCIE接口概述 PCIe(Peripheral Component Interconnect Express)是一种用于连接计算机内部组件的高速接口标准。以下是关于PCIe接口的简要介绍: …...
Android 13.0 framework修改AlertDialog对话框的button样式
1.概述 在13.0系统产品开发中 在AlertDialog 系统对话框原生的确定和取消 两个button 按钮中,由于产品觉得字体默认颜色的不太好看,由于产品的需求修改button字体的颜色,所以需要找到AlertDialog的字体样式然后修改就可以了 2.framework修改AlertDialog 对话框的button样式…...
如何使用ArcGIS Pro提取河网水系
DEM数据除了可以看三维地图和生成等高线之外,还可以用于水文分析,这里给大家介绍一下如何使用ArcGIS Pro通过水文分析提取河网水系,希望能对你有所帮助。 数据来源 本教程所使用的数据是从水经微图中下载的DEM数据,除了DEM数据&a…...
python pytesseract 中文文字批量识别
用pytesseract 来批量把图片转成文字 1、安装好 pytesseract 包 2、下载安装OCR https://download.csdn.net/download/m0_37622302/88348824https://download.csdn.net/download/m0_37622302/88348824 Index of /tesseracthttps://digi.bib.uni-mannheim.de/tesseract/ 我是…...
Python 之plt.plot()的介绍以及使用
文章目录 介绍代码实例 介绍 plt.plot() 是Matplotlib库中用于绘制线图(折线图)的主要函数之一。它的作用是将一组数据点连接起来,以可视化数据的趋势、关系或模式。以下是 plt.plot() 的详细介绍: plt.plot(x, y, fmt, **kwarg…...
自动化生成代码:MyBatis 的 Generator与MyBatis-Plus 的 AutoGenerator
文章目录 Mybatis Generator自动化生成代码MyBatis Generator概述使用Java代码形式1. 在 Maven 或 Gradle 中添加 MyBatis Generator 的依赖:2. 编写配置文件 GeneratorConfig.xml,配置需要生成的数据库表和对应的生成器:3. 在命令行中使用 M…...
达梦数据库-DW-国产化--九五小庞
武汉达梦数据库股份有限公司成立于2000年,是国内领先的数据库产品开发服务商,国内数据库基础软件产业发展的关键推动者。公司为客户提供各类数据库软件及集群软件、云计算与大数据等一系列数据库产品及相关技术服务,致力于成为国际顶尖的全栈…...
LeetCode 753. 破解保险箱【欧拉回路,DFS】困难
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…...
深度学习概念(术语):Fine-tuning、Knowledge Distillation, etc
文章目录 1.Fine-tuning (微调)2.Transfer Learning (迁移学习)3.Knowledge Distillation (知识蒸馏)4.Meta Learning (元学习) 这里的相关概念都是基于已有预训练模型,就是模型本身已经训练好,有一定泛化能力。需要“再加工”满足别的任务需求。 进入后…...
tcp_v4_connect函数的解析
源码: int tcp_v4_connect(struct sock *sk, struct sockaddr *uaddr, int addr_len) {// 解析输入的地址结构struct sockaddr_in *usin (struct sockaddr_in *)uaddr;// 获取 TCP 协议栈的全局 death_row 对象struct inet_timewait_death_row *tcp_death_row;// …...
go-channel
设计原理 Go 提及的设计模式就是:不要通过共享内存的方式进行通信,而是应该通过通信的方式共享内存。 共享内存方式:多个协程共享同一块内存,但是多个协程中读写变量是操作同一块内存,会产生多线程问题的并发问题&am…...
K8s操作命令
生命周期管理 1. 创建 1. 创建资源 kubectl run 创建并运行一个或多个容器镜像。*创建一个deployment或job来管理容器*。 语法:kubectl run NAME --imageimage [–env“keyvalue”] [–portport] [–replicasreplicas] [–dry-runbool] [–overridesinline-jso…...
【MySQL】 MySQL数据库基础
文章目录 🐱👓数据库的操作📌显示当前的数据库📌创建数据库🎈语法:🎈语法说明🎈示例: 🌴使用数据库🎋删除数据库🐱🏍语…...
vscode 下载安装
vscode 下载安装常用插件 vscode 官网: https://code.visualstudio.com/ 点击右上角 Download 进入下载选择页面 选择自己使用操作对应 CPU 架构 下载 本文使用 x86 架构 64位 windows 系统为例 跳转下载页面 自动 开始下载 下载不开始?试试这个直…...
springboot对接postgres
安装postgres 注意:下述链接方式会自动创建数据库steven_russell,若需要创建其他数据库,可以手动执行命令创建数据库 docker run --name postgres \ -p 5432:5432 \ -e POSTGRES_USERsteven_russell \ -e POSTGRES_PASSWORD123456 \ -itd --privilegedtrue postgre…...
[python 刷题] 242 Valid Anagram
[python 刷题] 242 Valid Anagram 题目: Given two strings s and t, return true if t is an anagram of s, and false otherwise. An Anagram is a word or phrase formed by rearranging the letters of a different word or phrase, typically using all the o…...
算法通过村第七关-树(递归/二叉树遍历)青铜笔记|手撕递归
文章目录 前言1. 递归的特征2. 如何写出好的递归3. 怎么看懂递归的代码总结 前言 提示:我们生活在24小时不眠不休的社会里但是没有24小时不眠不休的身体有些东西必须舍弃 -- 马特海格 这一关,我看要谈论的是递归问题,说到它就牵扯到很多问题了…...
盐城企业做网站/张雪峰谈广告学专业
首页 > 编程技术 > 网络编程 > 正文Linux Serial Programming HOWTO - 串口通讯编程http://www.fanqiang.com (2001-05-02 11:07:12) by Peter H. Baumann, Peter.Baumanndlr.de 译者: 曾元佑 yytsengms16.hinet.net v1.0, 22 一月 1998 ---------------------------…...
建设银行官网网站首页纪念币预约/深圳白帽优化
CONVERT_TZ(dt,from_tz,to_tz)转换datetime值dt,从 from_tz 由给定转到 to_tz 时区给出的时区,并返回的结果值。 如果参数无效该函数返回NULL。mysql> SELECT CONVERT_TZ(2004-01-01 12:00:00,GMT,MET);--------------------------------------------…...
网站建设预计费用/长尾词seo排名优化
一.str类型由 "" """ 阔起来的内容就是字符串字符串是不可变的数据类型,无论你执行任何操作,每次操作都会返回一个新的字符串索引从0开始,使用[]可以获取到每一个字符,还可以倒着数(str[])切片str[ : ]顾头不顾尾没有步长只能从左往右切步长为负数可以…...
企业官方网站建设规划/自媒体账号申请
不知道哦是不是不小心点了哪里,pycharm开始不停闪烁并且显示updating indices, 暂停服务重启电脑都不起作用,用以下操作就成功解决了问题。 File-> 选中Invalidate Caches/Restart ->Invalidate Caches/Restart 好像是因为项目中有大量的文件&…...
专门做卫生间效果图的网站/游戏推广渠道
最近开始研究Python的并行开发技术,包括多线程,多进程,协程等。逐步整理了网上的一些资料,今天整理一下greenlet相关的资料。并发处理的技术背景并行化处理目前很受重视, 因为在很多时候,并行计算能大大的提…...
目前做美术的网站以及app/网络营销这个专业怎么样
(下面内容均是来源于网友经验,我只是大自然的搬运工,多谢广大网友) 原因应该是 :上次关机时未正常关机; 表现症状:QQ初始化失败,很多网页打不开,一些应用打不开ÿ…...