计算机网络(四)
计算机网络(四)
第4章 网络层:数据平面
在网络中的每一台主机和路由器中都有一个网络层部分。
网络层能够被分解为两个相互作用的部分,即 数据平面 和 控制平面 。
数据平面功能: 即网络中每台 路由器 的功能,该数据平面功能决定到达路由器输入链路之一的数据报(即网络层分组)如何转发到该路由器的输出链路之一。
控制平面功能: 即网络范围逻辑,控制数据报沿着从源主机到目的主机的端到端路径中路由器之间的路由方式。
4.1 网络层概述
下图显示了一个简单网络,其中有 H1 和 H2 两台主机,在 H1 与 H2 之间的路径上有几台路由器。假设 H1 正在向 H2 发送信息。H1 中的网络层取得来自于 H1 运输层的报文段,将每个报文段封装成一个数据报,然后向相邻路由器 R1 发送该数据报。在接收方主机 H2,网络层接收接收来自相邻路由器 R2 的数据报,提取出运输层报文段,并将其向上交付给 H2 的运输层。
4.1.1 转发和路由选择:数据平面和控制平面
网络层的作用表面上看就是把分组从一台发送主机移动到另一台接收主机。为此,需要两种重要的网络层功能:
转发(forwarding) ...
计算机网络(三)
计算机网络(三)
第3章 运输层
3.1 概述和运输层服务
运输层协议为运行在不同主机上的应用进程之间提供了 逻辑通信(logic communication) 功能。
运输层协议是在端系统中而不是在路由器中实现的。在发送端,运输层将发送应用程序进程发来的报文转换为运输层分组,称为运输层 报文段(segment) 。实现的方法是将应用报文划分为较小的块,并为每块加上一个运输层首部以生成运输层报文段。然后,在发送端系统中,运输层将这些报文段传递给网络层,网络层将其封装成网络层分组(即数据报)并向目的地发送。
注意:网络路由器仅作用于该数据报的网络层字段;不检查封装在该数据报的运输层报文段的字段。在接收端,网络层从数据包中提取运输层报文段,并将该报文段上交给运输层。运输层处理接收到的报文段,使其中数据为接收应用进程所使用。
3.1.1 运输层和网络层的关系
网络层提供了 主机 之间的逻辑通信,而运输层为运行在不同主机上的进程之间提供了逻辑通信。
运输层协议只工作在端系统中。在端系统中,运输层协议将来自应用进程的报文移动到网络边缘(即网络层),反过来也一样,但对有关这些报文在网络核心中如何 ...
计算机网络(二)
计算机网络(二)
第2章 应用层
2.1 应用层协议原理
网络核心设备(如路由器或链路层交换机)并不在应用层起作用,而仅在较低层起作用,特别是在网络层及其下面层次起作用。
我们不需要为网络核心设备写应用软件,我们也做不到这一点。
这种将应用软件限制在端系统的方法,促进了大量网络应用程序的迅速研发和部署。
2.1.1 网络应用程序体系结构
应用程序体系结构(application architecture) 由应用程序研发者设计,规定了如何在各种端系统上组织该应用程序。
应用程序的体系结构明显不同于网络的体系结构。
从应用程序研发者的角度看,网络体系结构是固定的,并为应用程序提供了特定的服务集合。
现代网络应用程序中所使用的两种主流体系结构:
客户—服务器体系结构
P2P体系结构
客户—服务器体系结构(client-server architecture)
有一个总打开的主机称为 服务器 ,它服务于许多其他称为 客户 的主机。
配备大量主机的 数据中心(data center) 常被用于创建强大的虚拟服务器。
特点:
客户相互之间不直接通信
该服务器具有固定的、周知的地 ...
Chrome实用小插件
Chrome 实用小插件
记录一些使用的 Chrome 小插件。
1. Tampermonkey
好用没得说。
2. Octotree - GitHub code tree
在 github 上查看项目时,侧边栏以目录的形式给出,方便查看。
3. MathJax Plugin for Github
在GitHub上一些 readme.md 写的非常精彩,可是网页本身对一些数学公式不能正常渲染,让人心里非常着急,下面这个插件可以在一定程度上解决这个问题。
安装插件后,进入要查看的 github 界面,可以看到公式没有正常渲染
刷新一下界面后,公式就被成功渲染出来了。
4. 侧边翻译
选中待翻译的文字后,会弹出一个小标,点击即可在侧边栏看到内容的翻译,方便快捷。
5. Proxy SwitchyOmega
轻松管理代理,不用手动来回切换,很方便。
windows10/11修改系统用户名
Windows10/11修改系统用户名
1.修改注册表
win+R+regedit 打开注册表编辑器
在下面路径下打开最长的文件夹
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
双击下面的选项
将用户名修改为自己想要的样子
确定后重启电脑
2.修改用户文件夹名
修改 C:\Users\ 路径下的用户文件夹名称与刚刚注册表中的一致
如果显示被占用无法修改,则打开任务管理器,按如下方法关闭占用进程后重试
性能 -> 打开资源监视器 -> CPU
成功修改文件夹名后,重启电脑
3.修改环境变量
打开环境变量界面
此电脑 -> 属性 -> 高级系统设置 -> 环境变量
将上下两栏中所有有涉及 C:\Users\旧用户名 的环境变量修改为新用户名
再将下面 Path 中的所有涉及 C:\Users\旧用户名 的环境变量修改为新用户名
至此修改用户名就成功啦!
当然很难一次性将所有涉及 ...
升级windows11专业版
升级windows11专业版
win10/11家庭升级专业版
激活步骤 :
1.点开始——设置——更新和安全——激活——点击更改产品密钥
输入密钥后重启
NH887-X4WJG-2R7GK-BW3YG-HFR9G
-----------------------
2.成功升级到专业版后,此时可能已经成功激活了,享用即可
如果显示未激活,则如下操作
点开始——设置——更新和安全——激活——点击更改产品密钥
输入下面密钥
XPF84-N4GC9-RXKJ9-434H4-2KCKM
——激活成功
C语言——指针
C语言——指针
1. 指针
首先看一个指针的基本示例
1234567891011121314151617181920212223242526272829#include <stdio.h>int main() { char a = 'F'; int f = 123; char *pa = &a; int *pb = &f; printf("a = %c\n", *pa); printf("f = %d\n", *pb); // 间接访问变量并修改值 *pa = 'C'; *pb += 2; printf("a = %c\n", *pa); printf("f = %d\n", *pb); // 查看地址长度 printf("size of pa is %d\n", sizeof(pa)); printf("size of pb is %d\n", sizeof(pb)); / ...
计算机网络(一)
计算机网络(一)
第1章 计算机网络和因特网
1. 什么是因特网
1.1 具体构成描述
因特网是一个世界范围的计算机网络,将端系统通过通信链路和分组交换机连接到一起,接入因特网并通过特定的协议传输数据。
我们使用的接入网络的设备称为主机(host)或端系统(end system)。
端系统通过 通信链路(communication link) 和 分组交换机(packet switch) 连接到一起。
端系统通过 因特网服务提供商(Internet Service Provider, ISP) 接入因特网。
每个ISP是由一个多台分组交换机和多段通信链路组成的网络。因特网就是将端系统彼此互联,因此为端系统提供接入的ISP也必须互联。较低层的ISP通过国家的、国际的较高层ISP(如 Level 3 Communications、AT&T、Sprint和NTT)互联起来。较高层ISP是由通过高速光纤链路互联的高速路由器组成的。无论是较高一层还是较低层的ISP网络,它们每个都是独立管理的,运行着IP协议,遵从一定的命名和地址规则。
端系统、分组交换机和其他因特网部件都要运行一系列 ...
计组复习
计组复习
第一章 计算机系统概论
记录一些概念性的内容,理解性的和计算的部分要落在纸上、多练
果然时间紧张,没记完。。。
1. 软硬件
计算机系统由“硬件”和“软件”两大部分组成。
硬件
计算机的实体部分
软件
看不见摸不着,友人们实现编制的具有各类特殊功能的程序组成
系统软件(系统程序)
主要用来管理整个计算机系统,监视服务,使系统资源得到合理的调度,高效运行
包括:标准数据库,语言处理程序,操作系统,数据库管理系统,网络软件等
应用软件
用户更具任务需要所编制的各种程序
如:科学计算程序,数据处理程序,过程控制程序,事物管理程序
2. 计算机系统的层次结构
层次
作用
类型
虚拟机器 M4(高级语言机器)
用编译程序翻译成汇编语言程序
虚拟机
虚拟机器 M3(汇编语言机器)
用汇编程序翻译成机器语言程序
虚拟机
虚拟机器 M2(操作系统机器)
用机器语言解释操作系统
虚拟机
传统机器 M1(机器语言机器)
用为程序解释机器指令
实体机
微程序机器 M0(微指令系统)
由硬件直接执行微指令
实体机
翻译程序: 将高级语言程序翻译 ...
人工智能(四)
人工智能复习(四)
四、搜索策略
1. 搜索的基本概念
2. 状态空间的搜索
2.1 盲目搜索
广度优先
深度优先
代价一致
关于上述几种搜索,在另一篇文章中有对比说明:https://www.awellfrog.cc/p/401ea1e.html
2.2 代价树搜索
代价树的深度优先搜索
从open表中选择刚扩展的子节点中代价最小的节点
代价树的广度优先搜索
从open表中选择全体节点中代价最小的节点
2.3 启发式搜索(重点)
A算法
在图搜索算法中,如果能在搜索的每一步都利用估价函数f(n)=g(n)+h(n)对Open表中的节点进行排序,则该搜索算法为A算法。由于估价函数中带有问题自身的启发性信息,因此,A算法又称为启发式搜索算法(英文:heuristic search)。
对启发式搜索算法,又可根据搜索过程中选择扩展节点的范围,将其分为全局择优搜索算法和局部择优搜索算法。
全局择优搜索中,每当需要扩展节点时,总是从Open表的所有节点中选择一个估价函数值最小的节点进行扩展。
局部择优搜索中,每当需要扩展节点时,总是从刚生成的子节点中选择一个估价函数值最小的节 ...










