diff --git a/2023/07/28/advice/index.html b/2023/07/28/advice/index.html index fc32738..9a9571d 100644 --- a/2023/07/28/advice/index.html +++ b/2023/07/28/advice/index.html @@ -148,7 +148,7 @@ @@ -389,12 +389,12 @@
作为前端负责人统筹开发供电厂使用的后台系统,项目特色在于 websocket 实时数据渲染, echarts 高自由度可视化趋势图, luckysheet 适配用户函数。
参考书籍:计算机网络——自顶向下方法(原书第 8 版)
+ + + +端系统(end system)通过通信链路(communication link)和分组交换机(packet switch)的网络连接到一起。
+端系统通过因特网服务提供商(Internet Service Provider,ISP)接入因特网。每一个 ISP 网络都是独立管理的。
+分布式应用(distributed application):涉及多个相互交换数据的端系统。
+与因特网相连的端系统提供了一个套接字接口(socket interface),因特网套接字接口是一套发送程序必须遵循的规则集合。
+为了完成一项工作,要求两个(或多个)通信实体运行相同的协议。
// TODO:附图计算机网络协议 P5
向一个 Web 服务器发出请求(即在 Web 浏览器中键入一个 Web 网页的 URL)所发生的情况:
首先,计算机向该 Web 服务器发送一条连接请求报文,并等待回答。该 Web 服务器最终能接收到连接请求报文,并返回一条连接响应报文。得知请求该 Web 文档正常后,计算机则在一条 GET 报文中发送该网页的名字,而该网页的名字要从这台 Web 服务器上取回。最后,Web 服务器向你的计算机返回该 Web 网页(文件)。
协议(protocol)定义了在两个或多个通信实体之间交换的报文的格式和顺序,以及报文的发送/接收或其他事件所采取的操作。
+WiFi:基于 IEEE 802.11 技术的无线 LAN(局域网)接入
+为了从源端系统向目的端系统发送一个报文(message),源将长报文划分为较小的数据块,称为分组(packet)。在源和目的地之间,每个分组都通过通信链路(communication link)和分组交换机(packet switch)传送,交换机主要有路由器(router)和链路层交换机(link-layer switch)两类。
+存储转发传输(store-and-forward transmission):交换机在开始向输出链路传输该分组的第一个比特之前,必须接受到整个分组。
+分组交换机具有一个输出缓存【output buffer,也称为输出队列(output queue)】,缓存充满时将出现分组丢失(丢包)(packet loss),到达的分组或已经排队的分组之一将被丢弃。
+转发表(forwarding table)用于将目的地址(或目的地址的一部分)映射为输出链路。
+通过网络链路和交换机移动数据有两种基本方法:电路交换(circuit switching)和分组交换(packet switching)。
在电路交换网络中,在端系统间通信会话期间,预留了端系统间沿路径通信所需要的资源(缓存,链路传输速率)。在分组交换网络中,这些数据不是预留的。
因特网尽最大努力以及时方式交付分组,但它不做任何保证。
电路交换网络中的复用
+电路交换不够经济:静默期 (silent period)专用电路是空闲的。
+端到端电路传输时间与链路数量无关。
+对比:
+// TODO:ISP 互联图
+位于相同等级结构层次的临近的一对 ISP 能够对等(peer),当两个 ISP 对等时,为减少费用通常不进行结算,即任何一个 ISP 都不对其对等付费。
因特网交换点(Internet Exchange Point,IXP)是一个汇合点,多个 ISP 能够在这里一起对等。
谷歌专用网络通过与较低层 ISP 对等(无结算),尝试“绕过”互联网的较高层。通过创建自己的网络,内容提供商不仅减少了向顶层 ISP 支付的费用,而且对其服务最终如何交付给端用户有了更多的控制。
节点总时延(total nodal delay):
+排队时延很大程度取决于流量到达队列的速率、链路的传输速率和到达流量的性质,即流量是周期性到达还是以突发形式到达。
+a - 分组到达队列的平均速率(分组/秒,pkt/s)
R - 传输速率,即从队列中推出比特的速率(bps)
假设所有分组由 L bit 组成,则比特到达队列的平均速率是La bps
,流量强度(traffic intensity)为La/R
sh
“开源(open source)”——人人可审查、修改与增强,可以从这篇文章稍作了解什么是开源?。
至于git——世界上目前最先进的分布式版本控制系统,详见廖雪峰大佬的Git教程。
以下内容不对其上概念和重要性做过多阐述,请自行选择阅读上述文章,以下仅从安装配置讨论。
+ + +Windows 上安装方法有几种,对于新手推荐以下两种。
+官网下载地址(通过科学上网访问):https://git-scm.com/download/win
++小提示:如果你对你的英语水平不自信,edge/chrome浏览器可以安装
+沉浸式翻译
插件。
官网安装的详细步骤详见Git详细安装教程
该安装程序包含图形化和命令行版本的 Git。它也能支持 Powershell,提供了稳定的凭证缓存和健全的换行设置。前往 Github for Windows 网站下载,网址为https://desktop.github.com/。
+打开 Git Bash ,命令行界面如下:
配置用户名:
+git config --global user.name "username" // 将"username"替换为你的账户名 |
邮箱:
+git config --global user.email "user@email.com" // 将"user@email.com"替换为你的邮箱 |
++如果你不清楚为什么要配置用户名和邮箱,请重新阅读Git教程并找到相关部分。
+
以上命令执行完毕后,可以用如下命令查看配置是否正确。
+git config --global --list |
确认完毕后,输入:
+ssh-keygen -t rsa |
此时有三个配置问题,第一次使用保持默认配置即可,请连按三次回车键。
结束后你可以看到两个目录地址,如你保持默认配置则前往系统盘目录C:\Users(用户)\"username"\.ssh
文件夹查看 ssh 文件是否生成成功,分别为id_rsa
和id_rsa.pub
。
此时 git 的配置暂时告一段落,让我们将目光转向 github ,世界上最大的开源仓库平台。
+如果你对注册账号的流程抱有疑问,请查看注册Github账号详细教程,本博客不再详述。
+++如若可以,建议用非 qq 邮箱注册,出于 qq 号可能被封禁考虑。
+
你的 github 主页如下:
点击右上角你的头像,选择Settings
:
于左侧Access
下选择SSH and GPG keys
:
点击New SSH Key
:
title随意取好,个人建议为你的电脑型号-Windows
(如ThinkBook16p-Windows
),方便日后管理不同电脑/虚拟机/系统的 git 密钥。 Key Type 保持不变为Authentication Key
。将公钥(id_rsa.pub
)文件中的内容用 vscode 打开后复制粘贴到key中,然后点击Add SSH key
即可。。
++如果你对 SSH 公钥与私钥之分很感兴趣,可以阅读理解公钥与私钥
+
测试一下你的配置是否成功,在 Git Bash 终端中输入:
+ssh -T git@github.com |
看到如上字样则你的 github 与 git 已经配置成功。欢迎来到开源世界!
“开源(open source)”——人人可审查、修改与增强,可以从这篇文章稍作了解什么是开源?。
至于git——世界上目前最先进的分布式版本控制系统,详见廖雪峰大佬的Git教程。
以下内容不对其上概念和重要性做过多阐述,请自行选择阅读上述文章,以下仅从安装配置讨论。
- - -Windows 上安装方法有几种,对于新手推荐以下两种。
-官网下载地址(通过科学上网访问):https://git-scm.com/download/win
--小提示:如果你对你的英语水平不自信,edge/chrome浏览器可以安装
-沉浸式翻译
插件。
官网安装的详细步骤详见Git详细安装教程
该安装程序包含图形化和命令行版本的 Git。它也能支持 Powershell,提供了稳定的凭证缓存和健全的换行设置。前往 Github for Windows 网站下载,网址为https://desktop.github.com/。
-打开 Git Bash ,命令行界面如下:
配置用户名:
-git config --global user.name "username" // 将"username"替换为你的账户名 |
邮箱:
-git config --global user.email "user@email.com" // 将"user@email.com"替换为你的邮箱 |
--如果你不清楚为什么要配置用户名和邮箱,请重新阅读Git教程并找到相关部分。
-
以上命令执行完毕后,可以用如下命令查看配置是否正确。
-git config --global --list |
确认完毕后,输入:
-ssh-keygen -t rsa |
此时有三个配置问题,第一次使用保持默认配置即可,请连按三次回车键。
结束后你可以看到两个目录地址,如你保持默认配置则前往系统盘目录C:\Users(用户)\"username"\.ssh
文件夹查看 ssh 文件是否生成成功,分别为id_rsa
和id_rsa.pub
。
此时 git 的配置暂时告一段落,让我们将目光转向 github ,世界上最大的开源仓库平台。
-如果你对注册账号的流程抱有疑问,请查看注册Github账号详细教程,本博客不再详述。
---如若可以,建议用非 qq 邮箱注册,出于 qq 号可能被封禁考虑。
-
你的 github 主页如下:
点击右上角你的头像,选择Settings
:
于左侧Access
下选择SSH and GPG keys
:
点击New SSH Key
:
title随意取好,个人建议为你的电脑型号-Windows
(如ThinkBook16p-Windows
),方便日后管理不同电脑/虚拟机/系统的 git 密钥。 Key Type 保持不变为Authentication Key
。将公钥(id_rsa.pub
)文件中的内容用 vscode 打开后复制粘贴到key中,然后点击Add SSH key
即可。。
--如果你对 SSH 公钥与私钥之分很感兴趣,可以阅读理解公钥与私钥
-
测试一下你的配置是否成功,在 Git Bash 终端中输入:
-ssh -T git@github.com |
看到如上字样则你的 github 与 git 已经配置成功。欢迎来到开源世界!
参考书籍:计算机网络——自顶向下方法(原书第 8 版)
- - - -端系统(end system)通过通信链路(communication link)和分组交换机(packet switch)的网络连接到一起。
-端系统通过因特网服务提供商(Internet Service Provider,ISP)接入因特网。每一个 ISP 网络都是独立管理的。
-分布式应用(distributed application):涉及多个相互交换数据的端系统。
-与因特网相连的端系统提供了一个套接字接口(socket interface),因特网套接字接口是一套发送程序必须遵循的规则集合。
-为了完成一项工作,要求两个(或多个)通信实体运行相同的协议。
// TODO:附图计算机网络协议 P5
向一个 Web 服务器发出请求(即在 Web 浏览器中键入一个 Web 网页的 URL)所发生的情况:
首先,计算机向该 Web 服务器发送一条连接请求报文,并等待回答。该 Web 服务器最终能接收到连接请求报文,并返回一条连接响应报文。得知请求该 Web 文档正常后,计算机则在一条 GET 报文中发送该网页的名字,而该网页的名字要从这台 Web 服务器上取回。最后,Web 服务器向你的计算机返回该 Web 网页(文件)。
协议(protocol)定义了在两个或多个通信实体之间交换的报文的格式和顺序,以及报文的发送/接收或其他事件所采取的操作。
-WiFi:基于 IEEE 802.11 技术的无线 LAN(局域网)接入
-为了从源端系统向目的端系统发送一个报文(message),源将长报文划分为较小的数据块,称为分组(packet)。在源和目的地之间,每个分组都通过通信链路(communication link)和分组交换机(packet switch)传送,交换机主要有路由器(router)和链路层交换机(link-layer switch)两类。
-存储转发传输(store-and-forward transmission):交换机在开始向输出链路传输该分组的第一个比特之前,必须接受到整个分组。
-分组交换机具有一个输出缓存【output buffer,也称为输出队列(output queue)】,缓存充满时将出现分组丢失(丢包)(packet loss),到达的分组或已经排队的分组之一将被丢弃。
-转发表(forwarding table)用于将目的地址(或目的地址的一部分)映射为输出链路。
-通过网络链路和交换机移动数据有两种基本方法:电路交换(circuit switching)和分组交换(packet switching)。
在电路交换网络中,在端系统间通信会话期间,预留了端系统间沿路径通信所需要的资源(缓存,链路传输速率)。在分组交换网络中,这些数据不是预留的。
因特网尽最大努力以及时方式交付分组,但它不做任何保证。
电路交换网络中的复用
-电路交换不够经济:静默期 (silent period)专用电路是空闲的。
-端到端电路传输时间与链路数量无关。
-对比:
-Github Pull Request 插件
+创建拉取请求
// TODO:ISP 互联图
-位于相同等级结构层次的临近的一对 ISP 能够对等(peer),当两个 ISP 对等时,为减少费用通常不进行结算,即任何一个 ISP 都不对其对等付费。
因特网交换点(Internet Exchange Point,IXP)是一个汇合点,多个 ISP 能够在这里一起对等。
谷歌专用网络通过与较低层 ISP 对等(无结算),尝试“绕过”互联网的较高层。通过创建自己的网络,内容提供商不仅减少了向顶层 ISP 支付的费用,而且对其服务最终如何交付给端用户有了更多的控制。
节点总时延(total nodal delay):
-排队时延很大程度取决于流量到达队列的速率、链路的传输速率和到达流量的性质,即流量是周期性到达还是以突发形式到达。
-a - 分组到达队列的平均速率(分组/秒,pkt/s)
R - 传输速率,即从队列中推出比特的速率(bps)
假设所有分组由 L bit 组成,则比特到达队列的平均速率是La bps
,流量强度(traffic intensity)为La/R
sh