计算机网络 第一章 引言
第一章 引言Computer network(计算机网络):
一组互联的计算机,通过同一种技术自主交换信息
可看见实际的计算机情况,即可见,不透明
计算机网络不是Internet因特网(因特网是一种特殊的覆盖全球的计算机网络)
计算机网络不是WWW万维网(万维网是建立在因特网之上的分布式系统)
计算机网络的组成:
计算机/主机/端系统(数据通信的源端和数据端)
通信链路(分为有线和无线)
交换机/路由器,作为Node节点
Distributed system(分布式系统):
一组独立的计算机,对外是一个统一的系统,是不可见,透明的
在计算机网络的基础上加入中间件(一种应用于分布式系统的基础软件),来实现这个模型
典型的分布式系统:万维网
网络硬件计算机网络的分类方式:
以传输技术分类:
广播网络: 向所有的目的地发送数据包,如果接收机器正确,那么接收机器就会处理数据包,否则不接收直接忽略。
多播/组播:向一组机器发送数据包
典型:局域网
点到点网络: 通过访问多个中间设备,将数据包从源端传送到目的端,有时候也称为unicasting单播 ...
计算机网络 第三章 数据链路层
第三章 数据链路层物理层给数据链路层提供的服务是传送数字信号,这个信号有可能是恒定的比特流或字节流
数据链路层在两个邻接的计算机之间提供可靠的,高效率的通信(点到点)
邻接:两个计算机之间用一个通信信道(有线或无线)连接在一起,也叫点到点。
通信信道在概念上就像一条线路(比如同轴电缆、电话线或者无线信道)。信道像一条线路的本质特性使得信道上传递的比特顺序与发送顺序完全相同。
数据链路层的设计问题数据链路层使用物理层提供的服务在通信信道上发送和接收比特。它要完成一些功能,包括:(1) 向网络层提供一个定义良好的服务接口。(2) 把比特流或字节流封装成帧。(3) 处理传输错误,尾部用于差错控制。(4) 调节数据流,确保慢速的接收方不会被快速的发送方淹没。
数据链路层的功能:
为网络层提供业务接口
数据链路层通常会提供以下3种可能的服务:
无确认的无连接服务:源机器向目标机器发送独立的帧,目标机器并不对这些帧进行确认
想发就发,不管数据有没有差错或者丢失
例如以太网
差错率非常低,如果出错需要最高层去解决,但是越高层解决,代价就越大
语音传输
...
计算机网络 第六章 传输层
第六章 传输层传输层的必要性既然网络层已把源主机上发出的数据包传送给了目的主机,那么为什么还需要设置一个传输层呢?
位于两台网络主机间的真正数据通信主体不是这两台主机,而是两台主机中的各种网络应用进程。因为在同一时刻,两主机间可以进行多个应用通信。而这里的应用进程识别就要依靠“传输层”了,它就是通过“端口”将不同应用进程进行对应的。
传输层服务(1)面向连接服务
在提供传输服务前需要先建立专门的传输连接,而且这条连接是可管理的,在需要或通信结束时进行拆除。面向连接的传输服务是可靠的传输服务,而且可提供拥塞控制和差错控制功能,如TCP提供的传输服务。
(2)无连接服务
在提供服务前不需要建立专门的传输连接,直接向目的节点发送数据,不管是否有可传输的通道,只提供不可靠(仅做尽力传输)的传输服务,如UDP提供的传输服务。
上述服务与网络层提供的面向连接和无连接服务很像,但网络层是通信子网的一个组成部分,网络服务质量并不可靠,如频繁地丢失分组,网络层系统可能崩溃或不断地进行网络复位。对于这些情况,用户将束手无策,因为用户不能对通信子网加以控制。而传输层能对通信子网进行管理和控制。
释放连接(1 ...
计算机网络 第五章 网络层
第五章 网络层网络层概述网络层在数据链路层提供的两个相邻端点之间的数据帧的传送功能上,进一步管理网络中的数据通信,将数据设法从源端经过若干个中间节点传送到目的端,从而向运输层提供最基本的端到端的数据传送服务。
网络层向传输层提供的服务数据报(无连接服务)
虚电路(面向连接服务)
数据报VS虚电路问题|数据报网络|虚电路网络| —— | —— | —— |电路建立|不需要|需要寻址|每个包包含全部的源和目标地址|每个包包含简短的VC号状态信息|路由器不保留连接状态|针对每个连接,每条VC都需要路由器保存其状态(要增加表项)路由方式|每个数据包被单独路由(每个分组独立选路,导致路线不一样)|建立VC时选择路由(之后就不用再选路了),所有包都遵循该路由路失效的影响|没影响,除了那些路由器崩溃期间丢失的包|穿过故障路由器的所有VC都将中断服务质量|困难|容易,如果在预先建立每条VC时有足够的资源可分配拥塞控制|困难|容易,如果在预先建立每条VC时有足够的资源可分配
路由算法路由表:(地址,子网掩码,输出链路,下一跳)
如果子网内部使用数据报,则必须为每个到达的数据包重新做出此决定,因为自上次 ...
计算机网络 第四章 介质访问控制子层
第四章 介质访问控制子层要解决:各个站点如何在不起冲突的情况下把通信完成
信道分配问题M/M/1系统:多用户在同一个线路上发数据
第一个M:有多个数据包,每个数据包按照泊松分布的概率来发送
第二个M:每一个数据包在线路上的时间也按概率分布
1:只有一个线路
在周期T中有K个数据到达的概率满足泊松分布
$T$:平均等待时间(排队时间+服务时间)
$\lambda$:平均到达率(frames/sec)
$1/\mu$:平均帧长(bits/frame)
$C$:数据传输速率,信道容量(bps),服务速率为µC(frames/sec)
静态信道分配:
把单个信道拆分成N个独立的子信道(时分复用或频分复用),每个信道的容量为${\frac{C}{N}}$
平均到达率:${\frac{\lambda}{N}}$
平均等待时间(效率较低):
动态信道分配:
受控的多路访问:
有中心的(有集中的领导统一指挥): 轮询必须要有主控站,若主控站出错则会导致瘫痪每个站发送数据不自由,需要等待轮询发送数据
分布式的(没有主站): 令牌有令牌才可以发 ...
计算机网络 第二章 物理层
第二章 物理层基本概念:
信道(Channel): 传送信息的媒体
数据率(Bit Rate): 数据传输速率 (bps)
波特(Baud): 码元传输速率(每秒传输多少个符号)
$1 Baud = (\log_{2}{V})$ bps,其中V是信号的电平级数,一般都为2的幂次。
例如: 四电平传输是指在数字通信中使用四个电平级别来传输数字信号。与二电平(高电平和低电平)不同,四电平使用四个电平(例如-3V,-1V,+1V和+3V)来表示数字信号,这样就可以在每个脉冲周期内传输更多的比特。
传播速度(Propagation Speed): 通信线路上,信号单位时间内传送的距离(米/秒)
媒体不同,传播速度也不同
同种媒体,频率不同的电磁波速度有差异
小于光速
带宽(Bandwidth): 信号占用的频率范围 (Hz) ,超出范围则无法传输
信道容量(Channel Capacity): 信道的最大数据率
吞吐量(Throughput): 网络容量的度量,表示单位时间内网络可以传送的数据位数(bps)
误码率BER(Bit Error Rate): ...
计算机网络冷知识名词
中英互译
Standardization 标准化
interconnected 互相连接的
paradigm 范式
illusion 幻觉
uniprocessor 单处理器
Coax 同轴电缆
Twisted Pair 双绞线
integration 融合
commerce 商业
shopping carts 购物车
Ubiquitous computing 普适计算
Eavesdropping 窃听
Spam 垃圾邮件
wireshark 抓包
payload 有效载荷
Topology 拓扑结构
Mesh网孔型
Store-and-forward (存储转发)
packet-switched 分组交换
Classification 分类
Broadcasting vs. Multicasting(组播/多播)
shielding 保护
Philosopher 哲学家
Peers (对等实体)
comprising 包括
primitive 原始的
Scalability(可扩展性)
Statistical multiplexing(统计复用:按需分配)
Encapsulation ...
blog优化更新
2023.3.4增加Hexo渲染latex功能
Hexo渲染latex
命令:npm uninstall hexo-math --savenpm install hexo-renderer-mathjax --save_config.butterfly.yml修改:# MathJax Supportmathjax: enable: true per_page: truepost开头添加:---title: Hexo渲染LaTeX公式关键date: 2020-09-30 22:27:01mathjax: true--
命令:npm uninstall hexo-renderer-marked --savenpm install hexo-renderer-kramed --save魔改/node_modules\kramed\lib\rules\inline.js:// escape: /^\\([\\`*{}\[\]()#$+\-.!_>])/, escape: /^\\([`*\[\]()#$+\-.!_>])/,// em: /^\b_(( ...
博客搭建
Jay:前几天突发奇想,想和Erine搭建一个私人博客,一直都没有开始,一个是觉得域名需要购买非常麻烦,还要ICP备案,租借服务器之类的。而且本来打算用django手搓一个,感觉太麻烦了。后来知道了很多人用Hexo加Github Pages就能实现一个博客,几乎没有成本,跃跃欲试。而且Hexo有很多大佬的模板,非常精美。最后Erine找到了一个Butterfly的主题模板,好看到眼睛放光。后来遇到了很多问题,逐一解决了,也学习到了很多知识,在这里记录一下。
最初的git配置和hexo安装网上有很多教程,安装起来还算方便。https://zhuanlan.zhihu.com/p/37826880
最开始的时候,不太了解Hexo的原理,想直接修改html文件,来修改网站的外观。后来发现在Hexo g命令之后,这些html文件又变了。了解到Hexo的原理,原来是只用通过修改_config文件,就能修改网站的外观。每一次的html文件都是自动生成的。观察Hexo目录下的module文件夹,发现里面一大堆的js文件和pug文件,上网查了下,pug文件是用于网站自动渲染的,Hexo自动生成网页就是 ...
重装hexo本地仓库
不知道为什么,本地的Hexo库突然就失效了,于是重新装了一下。
首先新建一个文件夹,给hexo安装一大堆依赖库npm uninstall hexo-renderer-marked --savehexo initnpm install --save hexo-renderer-jade hexo-generator-feed hexo-generator-sitemap hexo-browsersync hexo-generator-archive hexo-theme-butterfly hexo-deployer-git hexo-renderer-kramed hexo-blog-encrypt
之后处理和添加git仓库git initgit remote add origin https://xxxxxxgit fetch --allgit reset --hard origin/mastergit push --set-upstream origin master需要先安装完所有库再git pull,魔改过的modules:hexo-theme-butterfly hexo-r ...