该层是用来确定多路访问信道下一个使用者的协议属于数据链路层的一个子层,称为介质访问控制(Medium Access Control) 子层,也叫MAC 子层。注意这章的标题是“子层”,也就是说这一章的内容还是属于数据链路层,是它的一个子层,虽然出现的章节比第三章要晚,但实际上却是整个数据链路层的底层。
因为在同一介质中相同频率波段的传输信号会相互干扰,导致无法得到有效的信号,而采用频率,时间区别不同信号又无法最大限度地利用资源,这时候就希望有种协议可以协商三个以上的机器如何可以在没有统一调度的前提下“遵守秩序”“不打断别人”地发言,让介质顺利被利用不产生冲突。数据链路层的两点之间可靠传输有个前提,首先要确定到底是哪个点可以获得信道开始传输。所以说这一章内容是数据链路层的底层。
上图为本章考试重点,非原书结构,仅供参考。
多路访问协议ALOHA 系统纯ALOHA用户有数据就发送,不考虑信道是否空闲,只管发。用户如果发现有冲突,则随机等待一段时间后再发。它的意义在于提出了非协调用户竞争使用单个共享信道的系统的问题,现实中已不使用,详见P203。
分槽ALOHA为了提高发送的容量,将 ...
数据链路层是基于物理层不可靠的传输向上层提供可靠的传输,它提供的是相邻两个节点之间可靠的数据传输。本章将学习网络模型中的第二层(即数据链路层)的设计原则。学习内容涉及两台相邻(指两台机器通过一条通信信道连接起来)机器实现可靠有效的完整信息块(称为帧)通信的一些算法,而不像物理层那样只关注单个比特传输。解决通信线路中出错的情况、关于有限的数据传输率、发送时间和接受时间存在的非零延迟等问题。
本章内容结构:
首先介绍数据链路层的关键设计问题,并学习如何考察错误的本质以及如何检测和纠正这些错误。
然后,我们将学习一系列复杂性逐步递增的协议,每个协议解决了本层中越来越多的问题。
最后会给出一些数据链路层协议的例子。
上图为本章考试重点,非原书结构,仅供参考。
数据链路层的设计问题数据链路层使用物理层提供的服务在通信信道上发送和接受比特。完成一些功能:
向网络层提供一个定义良好的服务接口。
处理传输错误。
调节数据流,保证慢速的接收方不会被快速的发送方淹没。
为实现这些目标:,数据链路层从网络层获得数据包,并将之包装成包含:帧头+ 有效载荷(存放数据包)+ 帧尾的帧(frame ...
物理层是网络协议模型的最底层,该层定义了比特作为信号在信道上发送时相关的电气、时序和其他接口,是构建网络的基础。物理信道的不同特性决定了其传输性能的不同(比如,吞吐量、延迟和误码率),所以物理层是我们展开网络之旅的最好始发地。
本章内容结构:
首先从数据传输的理论分析出发,探讨决定信道传输的自然局限。
接着给出三类传输介质:有线(铜线和光纤)、无线(陆地无线电)和卫星。每种技术都有其自身独特的性质,而这将影响到采用这些传输技术的网络设计和性能。这部分内容为我们理解现代网络的关键传输技术提供了背景知识。
然后讨论数字调制解调技术,主要解决如何把模拟信号转换成数字比特以及将数字比特还原成模拟信号。在此基础上,引入多路复用方案,探讨如何在同一个传输介质上同时进行多个会话而彼此不会干扰。
最后将关注三个被广泛应用于计算机广域网的通信系统实例:(固定)电话系统、移动电话系统和有线电视系统。
该篇博客将讨论后两部分。
上图为本章考试重点,非原书结构,仅供参考。
数字调制有线和无线信道运载模拟信号,模拟信号可表示成诸如连续变化的电压、光照强度或声音强度。为了发送数字信息,我们必须设法用 ...
物理层是网络协议模型的最底层,该层定义了比特作为信号在信道上发送时相关的电气、时序和其他接口,是构建网络的基础。物理信道的不同特性决定了其传输性能的不同(比如,吞吐量、延迟和误码率),所以物理层是我们展开网络之旅的最好始发地。
本章内容结构:
首先从数据传输的理论分析出发,探讨决定信道传输的自然局限。
接着给出三类传输介质:有线(铜线和光纤)、无线(陆地无线电)和卫星。每种技术都有其自身独特的性质,而这将影响到采用这些传输技术的网络设计和性能。这部分内容为我们理解现代网络的关键传输技术提供了背景知识。
然后讨论数字调制解调技术,主要解决如何把模拟信号转换成数字比特以及将数字比特还原成模拟信号。在此基础上,引入多路复用方案,探讨如何在同一个传输介质上同时进行多个会话而彼此不会干扰。
最后将关注三个被广泛应用于计算机广域网的通信系统实例:(固定)电话系统、移动电话系统和有线电视系统。
该篇博客将讨论前两部分。
上图为本章考试重点,非原书结构,仅供参考。
数据通信的理论基础概念
带宽(bandwidth):在传输中不会明显减弱的频率的宽度,通常引用的带宽是指从0 到使得接收能量 ...
计网是四大件之一,在计算机基础中占重要地位,对于相关学习者来说是绕不开的一部分。
以此系列博客记录一下我大三上学期计网的学习过程,期间用到的教材是第五版龙书,有需要电子版的朋友可以联系我。(因为是由英文原书翻译过来的,有些看起来荒谬冗长的语句需要大家联想纠正)
博客内容主要是考试重点,有很多不完整的部分建议看原书。
上图为本章考试重点,非原书知识结构,仅供参考。
基本概念
计算机网络(computer networks):表示一组通过单一技术相互连接起来的自主计算机集合。
分布式系统(distributed system):分布式系统是建立在网络之上的软件系统,有高度的内聚性和透明性。内聚性:每一个数据库分布节点高度自治,有本地数据库管理系统透明性:每个数据库分布节点对用户应用来说是透明的,用户感觉不到数据是分布的
Internet 是最著名的计算机网络,万维网是最著名的分布式系统,万维网(软件)运行于Internet(硬件)上
虚拟专用网络(VPN,virtual private networks):一种可以将不同地点的单个网络联结成一个扩展网络的技术。
P2P 与CS( ...
博客加载速度一直较慢,在查阅了配置文件之后发现可以用CDN提升加载速度,于是乎了解了一下CDN并运用到自己的配置中。
CDN是什么CDN英文全称Content Delivery Network,中文翻译为内容分发网络。它是建立并覆盖在承载网之上,由分布在不同区域的边缘节点服务器群组成的分布式网络。CDN应用广泛,支持多种行业、多种场景内容加速,例如:图片小文件、大文件下载、视音频点播、直播流媒体、全站加速、安全加速。
借用上图阿里云官网的例子,来简单介绍CDN的工作原理。假设通过CDN加速的域名为www.a.com,接入CDN网络,开始使用加速服务后,当终端用户(北京)发起HTTP请求时,处理流程如下:
当终端用户(北京)向www.a.com下的指定资源发起请求时,首先向LDNS(本地DNS)发起域名解析请求。
LDNS检查缓存中是否有www.a.com的IP地址记录。如果有,则直接返回给终端用户;如果没有,则向授权DNS查询。
当授权DNS解析www.a.com时,返回域名CNAME www.a.tbcdn.com对应IP地址。
域名解析请求发送至阿里云DNS调度系统,并为 ...
计网是四大件之一,在计算机基础中占重要地位,对于相关学习者来说是绕不开的一部分。以此系列博客记录一下我大三上学期计网的学习过程,期间用到的教材是第五版龙书,有需要电子版的朋友可以联系我。(因为是由英文原书翻译过来的,有些看起来荒谬冗长的语句需要大家联想纠正)
这里将网络层的拥塞控制这一章节详细展开讲述
拥塞的发生网络中存在太多的数据包导致数据包被延迟和丢失,从而降低了传输性能,这种情况称为拥塞(congestion)。网络层和传输层共同承担着处理拥塞的责任,在这里,我们将着眼于拥塞控制在网络层方面的处理。
图5-21 描绘了拥塞的发生。当主机发送到网络的数据包数量在其承载能力范围之内时,送达的数据包数与发送的数据包数成正比例增长。如果发送量增加了两倍,则送达量也增长了两倍。然而,随着负载接近承载能力,偶尔突发的流量填满了路由器内部的缓冲区,因而某些数据包会被丢失。这些丢失的数据包消耗了部分容量,因此,送达的数据包数量低于理想曲线。网络现在开始拥挤了。
拥塞控制的途径拥塞的出现意味着负载暂时大于资源可以处理的能力。很自然人们能想到两个解决方案:增加资源或减少负载。
如图5-22 ...
前言在重装系统、换电脑等很多情况下需要对Hexo迁移,进行新部署。
这里有个前提,一定要把之前博客相关的本地文件夹保存起来,可以上传到git或者直接迁移。
正文主要有两个步骤,安装配置所需环境(1-3)和部署博客,如果已经安装了相应环境可以直接跳转。
1.Git安装配置从官网Git下载git,在新电脑上安装,因为https速度慢,而且每次都要输入口令,常用的是使用ssh。使用下面方法创建,也可以自己找教程:
打开git bash,在用户主目录下运行:
1ssh-keygen -t rsa -C "youremail@xxx.com"
把其中的邮件地址换成自己的邮件地址,然后一路回车。
完成后,会在用户主目录下生成.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH key密钥对,id_rsa是私钥,千万不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
登陆GitHub,打开「Settings」->「SSH and GPG keys」,然后点击「new SSH key」,填上任意Title,在Key文本框里 ...
前言突发奇想,想搭建一个自己的博客记录一下计算机的学习生涯,在查阅了一些资料后决定使用GitHub Pages来搭建 Hexo 静态博客网站,用的主题是hexo-theme-butterfly。
说干就干,折腾了半天之后终于搞定,这里要感谢Ethan.Tzy大佬提供的技术博客,步骤很明确,大家有兴趣的可以关注一下。
正文基本的博客搭建步骤在前言提到的技术博客中都可以找到,这里我记录一下几个没有提到的基本问题。
博客的创建文章可以手动创建,也可以通过hexo new命令创建。hexo官方建议的流程如下:
首先确定layout模板,模板中定义的内容可以认为是一种公共内容的提取,模板的内容称为Front-matter,在创建文章时会自动添加到新文件中。hexo自带了三种模板(可按实际情况修改):page、post、draft。
page:用于创建列表页;
post:用于创建具体的博客文章;
dratf:用于创建草稿(一般不太用)。
使用 hexo new命令创建文章。
给出一个最简单的创建文章的例子(文章标题自拟)
1hexo new 文章标题
博客的更新在本地对自己的博客进行 ...