关于我
你好!我是Jeacson, 一个依然在求知路上的大学生。
一个简单的博客
你好!我是Jeacson, 一个依然在求知路上的大学生。
这篇博客我们将系统介绍有关在传输层中实现可靠数据传输 (Reliable Data Transfer) 的原理, 包括 rdt 的各个系列协议,在 rdt3.0 协议的基础上讨论停等协议与流水线协议的区别,并介绍两种流水线协议:GBN 协议与SR协议。
传输层的主要功能是提供端到端的数据传输服务,例如 TCP 协议提供了可靠的、面向连接的数据传输服务。TCP使用序列号、确认应答、重传等机制来确保数据的可靠传输。因此,从抽象角度来看,我们可以将传输层之间的特定通讯视为提供了一种相对可靠的通信机制。
checksum 的构造方法比较简单,但是计算比较麻烦:将需要发送的 16-bit 二进制源数据两两相加,取从右往左数共十六位数,如果有多的位数就把该位数移到最低位再相加。如此反复将所有需要发送的数据相加完毕后对它作反码,即将这十六位数的1置0,0置1。
具体需要的数据以下列的表格作为例子:
发送端IP地址 | |||
接收端IP地址 | |||
UDP协议对应数(17) | UDP网段总长度 | ||
UDP源端口号 | UDP目的端口号 | ||
UDP网段总长度 | 校验和数值(在这里设为0) | ||
数据 | 数据 | 数据 | 数据 |
数据 | 数据 | 数据 | 数据 |
数据 | 数据 | 数据 | 数据 |
数据 | 数据 | 数据 | 数据 |
...... | |||
数据 | 数据 | 数据 | (后置位补零,有需要就加,否则不加) |
UDP 是一种简洁、轻量级的传输协议,只提供最基本的通讯服务。UDP 定义于 [RFC 768],其功能与传输协议差不多。除了多路复用/解复用功能和一些轻微的错误检查功能外,它没有为 IP 增加任何功能。也就是说,如果一个应用程序开发人员选择 UDP 而不是 TCP 作为传输协议的话,那么该应用程序几乎可以被认为是在直接与 IP 对话而没有任何其他的包装。
UDP 是无连接的,因此在两个进程开始通信之前不需要提前握手。因此,当应用程序通过 UDP 而不是 TCP 运行时,专用于这些特定应用程序的服务器通常可以支持更多的在线客户端。
UDP 提供的是一种不可靠的数据传输服务,也就是说:
翻译一下就是:
假设你打开浏览器,并在地址栏中输入 http://yourbusiness.com/about.html, 请问从你按下回车开始到在显示网页的过程间会发生什么?请提供所使用协议的详细信息以及所交换信息的高级描述。
SMTP(Simple Mail Transfer Protocol, 简单邮件传输协议) 是一种提供可靠且有效的电子邮件传输的协议,主要用于系统之间的邮件信息传递,并提供有关来信的通知。
为了说明 SMTP 的基本操作,让我们来假设一个常见的场景。假设 Alice 想要给 Bob 发送一条简单的 ASCII 消息:
这里存放了一些自动控制原理相关的知识。
f(t) | F(s) | f(kT) or f(k) | F(z) | name | |
---|---|---|---|---|---|
1 | δ(t) | 1 | δ(k) | 1 | 单位冲激 (unit impulse) |
2 | δ(t−td) | e−tds | δ(k−n) | z−n | 时延单位冲激(delayed unit impluse) |
3 | u(t)=1 | s1 | u(k)=1 | z−1z | 单位阶跃(unit step) |
4 | t | s21 | kT | (z−1)2zT | 斜坡函数(ramp) |
5 | t2 | s32 | (kT)2 | (z−1)3z(z+1)T2 | 抛物线函数(parabola) |
6 | ak | z−az | 几何序列(geometric sequence) | ||
7 | e−at | s+a1 | e−akT | z−e−aTz | 自然指数(natural exponential) |
8 | 1−e−at | s(s+a)1 | 1−e−akT | (z−1)(z−e−aT)(1−e−aT)z | 单位阶跃指数(unit step exponential) |
9 | te−at | (s+a)21 | kTe−akT | (z−e−aT)2Tze−aT | |
10 | kak−1 | (z−a)2z | |||
11 | ak−bk | (z−a)(z−b)(a−b)z | |||
12 | sinωt | s2+ω2ω | sinωkT | z2−2zcosωT+1zsinωT | sine |
13 | cosωt | s2+ω2s | cosωkT | z2−2zcosωT+1z(z−cosωT) | cosine |
14 | e−atsinωt | (s+a)2+ω2s | e−akTsinωkT | z2−2ze−aTcosωT+e−2aTze−aTsinωT | 自然欠阻尼(natural underdamped) |
15 | dtdf | sF(s)−f(0) | (空置) | (空置) | 一阶导(1st derivative) |
16 | dt2d2f | s2F(s)−sf(0)−dtdf(0) | (空置) | (空置) | 二阶导(2nd derivative) |
17 | f(k−n) | z−nF(z) | 左移n时位(backward shift of n) | ||
18 | f(t−td) | etdsF(s) | 时延(time delay) | ||
19 | (空置) | (空置) | f(k+1) | zF(s)−f(0) | 右移1时位(forward shift of one) |
20 | (空置) | (空置) | f(k+2) | sF(s)−f(0) | 右移2时位(forward shift of two) |
21 | f(0) | s→∞limsF(s) | f(0) | z→∞limF(z) | 初值(initial value) |
22 | f(∞) | s→0limsF(s) | f(∞) | z→1lim(z−1)F(z) | 终值(final value) |
一些在markdown-it踩坑后的总结向文章。
背景:在书写自动化控制原理相关表格时希望将表格进行合并,但是普通的Markdown并没有针对复杂表格的处理能力。
在这个文章当中都是有关计算与仿真相关笔记。如有错误还请帮忙指正!
请参考这里
在该章节中包含了有关IEEE-754单、双精度、十进制与机器数相互转换、机器精度(machine epsilon)、真误差(true error)/真实相对误差(true relative error)、舍入规则(Rounding Rule) 等问题的相关计算。
Symbol
是ES6引入的一种新的原始数据类型,表示独一无二的值。它是JavaScript语言的第七种数据类型。
相关信息
前六种是:undefined、null、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)。
基本数据类型不适用以new关键字新增, 因此它的创建方式如下: