计算机网络第七版·第六章 链路层和局域网
思维导图: https://www.mubu.com/doc/gscgX7wQEA 一. 链路层概述1.1 核心术语 节点(Node):指运行链路层协议的设备,包括主机、路由器、交换机和 WiFi 接入点。 链路(Link):连接相邻节点的通信信道。 传输过程:数据报从源主机到目的主机的过程中,会经过多段链路。在每一段链路上,传输节点会将数据报封装在链路层帧中进行传输。  1.2 链路层提供的服务 成帧:这是链路层协议最基础的服务。在传输之前,它会将网络层数据报封装在一个链路层帧中。这个帧由数据字段(包含数据报)和多个头部字段组成,其结构由具体的协议定义。 链路接入:这指的是媒体访问控制(MAC)协议,它规定了帧在链路上传输的规则。 在点对点链路(只有两个节点)上,MAC协议通常很简单,发送方只要链路空闲就可以发送。 在多路访问链路(多个节点共享一条链路)上,MAC协议则复杂得多,它需要协调多个节点的传输以避免冲突。   可靠交付:某些链路层协议提供这项服务,通过确认和重传来确保每个数据报无差错地传输。这与 TCP...
计算机网络第七版·第五章 网络层:控制平面
思维导图: https://www.mubu.com/doc/5kfptNvEsEA 一.概述1.1...
计算机网络第七版·第四章 网络层:数据平面
思维导图: https://www.mubu.com/doc/5kfptNvEsEA 一. 网络层概述1.1 网络层概述核心作用:网络层负责实现主机到主机的通信服务,将数据从发送端主机传输到接收端主机。 与其他层的不同:与只存在于端系统(主机)的应用层和传输层不同,网络层协议在网络中的所有主机和路由器上都有运行。这使得它成为协议栈中最复杂、最具挑战性的层次。 为了更好地理解网络层,可以将其分解为两个相互关联的部分:数据平面和控制平面。  数据平面 职责:处理路由器上的本地操作。它决定一个到达路由器的数据报(即网络层分组)如何从输入链路被转发到正确的输出链路。 学习重点:本章(第4章)将详细讨论数据平面。内容包括传统的基于目的IP地址的转发、更通用的转发方式,以及IPv4和IPv6协议和寻址。   控制平面 职责:处理网络范围的逻辑。它决定了数据报从源主机到目的主机所经过的端到端路径。 学习重点:下一章(第5章)将重点讨论控制平面。内容包括路由选择算法以及如OSPF和BGP等路由协议。    1.2...
计算机网络第七版·第三章 运输层
思路导图: https://www.mubu.com/doc/17DpcaeLvoA 一.概述运输层是网络协议栈中的核心层,它为运行在不同主机上的应用进程之间提供逻辑通信功能。这意味着,尽管主机可能相隔千里,物理连接复杂,但应用进程之间仿佛直接相连。 1.1 运输层与网络层的关系 网络层提供的是主机到主机的逻辑通信。以寄信为例,网络层协议(如 IP)就像邮政服务,负责将信件从一个家庭(主机)送到另一个家庭。 运输层提供的是进程到进程的逻辑通信。运输层协议(如 TCP 和 UDP)就像家庭里的“收发员”,负责将信件从一个家庭成员(进程)发送给另一个家庭成员,并在信件中添加自己的控制信息。  1.2 因特网运输层概述因特网提供了两种主要的运输层协议,每种协议提供不同的服务模型:  UDP (User Datagram Protocol) - 用户数据报协议 服务模型:一种不可靠、无连接的服务。 主要功能:仅提供进程到进程的数据交付和差错检查。它不保证报文段的交付、按序交付或数据完整性。 特点:速度快,简单高效,应用程序可以以任何速率发送数据,不会进行流量调节。   TCP...
计算机网络第七版·第二章 应用层
思维导图: https://www.mubu.com/doc/2Rh6HHN-f8A 一. 应用层协议原理1.1 网络应用程序体系结构应用程序是一个广义的概念,指的是任何能在计算机或其他设备上运行的软件程序。它可以独立运行,不依赖于网络连接。 网络应用程序是必须通过网络才能实现其核心功能的应用程序。它通常由运行在不同设备上的多个进程(例如,客户端和服务器)组成,这些进程通过网络相互通信来完成任务。 应用程序体系结构由应用程序研发者设计,  规定了如何在各种端系统上组织该应用程序 。  客户-服务器(Client-Server)体系结构:有一个总是打开的主机称为服务器,它服务于来自许多其他称为客户的主机的请求。在客户-服务器体系结构中,客户相互之间不直接通信。 对等(P2P)体系结构:这种模型则允许不同的设备(对等方)之间直接通信和共享资源,而无需依赖中心化的服务器。  1.2...
计算机网络第七版·第一章 计算机网络和因特网
思维导图: https://www.mubu.com/doc/6jjGwF9-dUA 一. 什么是因特网什么是因特网?回答这个问题有两种方式 :    其一,关注的是因特网的物理和技术基础设施;    其二,关注的是因特网的功能和用途。 1.1 具体构成描述计算机网络 (Computer Network)  定义: 泛指互联了多个计算设备的网络。 演进: 传统上主要连接PC、工作站和服务器,但随着技术发展,越来越多的非传统设备(如智能手机、平板、智能家居设备、汽车等)也接入网络,使得“计算机网络”这个术语本身在某些语境下显得有些“过时”或不够全面,因为它现在连接的远不止传统的计算机。  因特网 (Internet)  定义: 因特网是一个世界范围的计算机网络,它连接了遍及全世界数十亿的计算设备。      端系统 (End System) 或 主机 (Host)  定义: 在因特网术语中,所有连接到因特网的计算设备,无论其是传统的计算机(如PC、工作站、服务器)还是非传统的设备(如智能手机、平板、电视、游戏机、智能家居设备、汽车等),都被统称为主机或端系统。  通信链路...
一文了解大模型
一.相关概念1. 人工智能人工智能是最大的一个概念,它是所有这些技术的终极目标和总称。它的目标是让机器像人类一样思考、学习、推理、感知和行动。 2. 机器学习机器学习是实现人工智能的一种核心“方法”。它不再需要程序员为每一个具体任务编写硬编码的规则。相反,机器学习让机器通过分析大量数据来自己学习规律和模式,从而完成任务。它是人工智能的子集,解决了让机器“学习”的问题。 3. 深度学习深度学习是机器学习的一个“分支”。它使用一种特殊的算法——深度神经网络。这些网络由许多层的神经元组成,能够自动从原始数据中提取出复杂的特征,这比传统的机器学习算法更强大。 4. 预训练模型预训练模型是深度学习的一种“训练范式”或“策略”。传统的深度学习模型需要为每个任务从头开始训练,这耗时耗力且需要大量标注数据。预训练模型改变了这种模式:它先用一个通用的、海量的无标注数据集(如整个互联网的文本和图像)进行训练,让模型学习到通用的知识和表示。这个“预训练”阶段结束后,模型就可以作为一个基础,用于各种不同的下游任务,只需用少量的标注数据进行微调即可。 5....
LeetCode42接雨水
题目:给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 示例 2:输入:height = [4,2,0,3,2,5]输出:9 提示:  n == height.length 1 <= n <= 2 * 104 0 <= height[i] <= 105  解法一:暴力逐个计算每一列能存下的水量。 遍历整个数组。针对数组中的每个元素arr[i],都分别向左、向右遍历一遍数组,找到arr[i]左侧和右侧的最大值,计为leftMax和rightMax,如果leftMax <= arr[i]或者rightMax <= arr[i],说明当前这一列存不出水。否则当前列能存储的水量为min(leftMax, rightMax) -...
将本地项目上传到 GitHub 仓库的步骤
首次上传新项目到 GitHub如果你有一个全新的本地项目,还没有任何 Git 初始化或关联,可以按照以下步骤操作:  在本地项目文件夹中初始化 Git 仓库: 打开项目文件夹,右键点击空白处,选择“Git Bash Here”或者打开终端/命令提示符,导航到项目目录。然后运行:  git init  这会在项目文件夹中创建一个名为 .git 的隐藏文件夹,表示本地仓库已初始化。  将项目文件添加到暂存区: 接下来,需要告诉 Git 哪些文件需要被追踪并提交。  git add .  git add . 会将当前目录下所有文件(包括子文件夹中的文件)添加到暂存区。如果只想添加特定文件,可以将 . 替换为文件名或文件夹名。  提交到本地仓库: 现在,将暂存区的文件提交到本地 Git 仓库,并附上一条有意义的提交信息。      git commit -m "Initial commit of my project"  将 "Initial commit of my project" 替换为你自己的提交信息。  在 GitHub 上创建新的远程仓库:  登录 GitHub...
IDEA数据库连接报错“文件名或扩展名太长”
问题在IDEA中连接MYSQL数据库时报错如下DBMS: MySQL (no ver.)Case sensitivity: plain=mixed, delimited=exactCannot run program "D:\IDEA\IntelliJ IDEA 2023.1.2\jbr\bin\java" (in directory "D:\college\javaWebStudy\hello-mp"): CreateProcess error=206, 文件名或扩展名太长。 解决方法卸载当前IDEA版本,更换新的IDEA版本。本人:2023.1.2 ->2024.3.6 曾尝试过的无用方法:1.更换项目位置将项目放在D盘下,没用 2.更改IDEA位置卸载IDEA,更改IDEA的安装路径,使路径变短,没用。 3.配置 IntelliJ IDEA 的“Shorten command line”选项没用4.配置 IntelliJ IDEA 使用短 Classpath到 Runner 选项卡,勾选 Delegate IDE build/run actions to...