本文是根据韩立刚老师讲计算机网络整理的笔记,如有疏漏或不当之处,欢迎指正。
目录
1.概览
1.1. 分层体系
OSI7层 | 说明 | tcp/ip4层 | 本书五层 | 对应内容 |
application | 应用层:与用户交互 | application | 应用层 | 协议数据单元pdu |
presentation | 表示层:加密、压缩。开发人员需要考虑的事情。 | |||
session | 会话层:服务和客户端建立的会话 | |||
transport | 传输层 :建立会话,是不可靠传输,流量控制。 | transport | 运输层 | 报文 |
network | 网络层:选择最佳路径(动态路由协议),IP地址编址 | internet | 网络层 | IP分组 |
data link | 数据链路层:数据如何封装,添加物理层地址Mac | network access | 数据链路层 | 数据帧 |
physical | 物理层:定义电压、接口标准 | 物理层 | 比特流 | |
分层的思想:把一类的东西抽象成为一层,向上只提供接口进行调用,不必关心底层是怎么实现的。降低了耦合性,并且不用耗费太多精力花费在下层的内容,提高了效率。也方便网络排错,从下到上,逐层分析就可以了。Javaweb中也分了dao-service-action的层级。
1.2. 初步认知
- 因特网:
- 核心部分:电路交换/报文交换/分组交换,文章内容主要指分组交换的内容
- 边缘部分:对等方式/网络模式(如客户-服务器模式)
- 吞吐量:单位时间内通过网络的总数据量。
- 时延:指数据从网络的一端传送到另一端所需的时间
- 发送时延:主机或路由器发送数据帧所需要的时间;发送时延 = 数据帧长度(b) / 信道带宽(b/s);
- 传播时延:电磁波在信道中传播一定距离需要花费的时间;传播时延=信道长度/电磁波在信道上的传播速率(光速)。
- 处理时延:主机或路由器在收到分组时要花费一定的时间处理;
- 排队时延:分组在进入路由器后再输入队列中的等待处理的时间;
- 时延带宽积:时延带宽积 = 传播时延 * 带宽;
- 往返时间RTT:从数据的发送开始,到发送方接收到来自接收方的一种的性能指标;ping网址时可以显示;
- 利用率:信道利用率(某信道有百分之几的时间是被利用的即有数据通过)。网络利用率(全网络的信道利用率的加权平均值)。信道或者网络利用率过高会产生非常大的时延。
- ISP:网络运营商,分层级的,在一个运营商的网络里连接快,因此有的网站需要部署在多个运营商的网络里。中国一级宽带运营商只有电信和联通。
2.物理层
2.1. 概念认知
-
单工/半双工/全双工通信:只能一方发送一方接收;都能发送接收,但不能同时发;能同时发送接收。
-
曼彻斯特编码:是一个同步时钟编码技术,被物理层使用来编码一个同步位流的时钟和数据。在一个周期里面的周期中心位置跳变,高→低代表1、低→高代表0。
-
差分曼彻斯特编码:在每一位的中心始终有跳变,更加稳定,抗干扰能力强。如下图:
-
带通调制方法:调幅AM/调频FM/调相PM;正交振幅调制QAM;
-
信道的极限容量:
-
奈氏准则:码元在信道上传输速率有上限值,太快它们之间会有干扰,接收端无法识别。理想的低通信道上的最大传输速率是 m a x = 2 W B a u d max = 2WBaud max=2WBaud W是理想低通信道的带宽,单位为赫(Hz);Baud是波特,是码元传输速率的单位,1波特为每秒传送1个码元。即:每赫带宽的理想低通信道的最高码元传输速率是每秒2个码元。在局域网内可以用这个算一下最大速率。
-
信噪比:是信号的平均功率和噪声的平均功率之比,记作 S/N 。计算公式:
信 噪 比 ( d B ) = 10 log 10 ( S / N ) ( d B ) 信噪比(dB) = 10\log_{10}(S/N) (dB)% 3 信噪比(dB)=10log10(S/N)(dB) -
香农公式:计算信道的极限传输速率C: C = W log 2 ( 1 + S / N ) ( b / s ) C=W\log_2(1+S/N) (b/s) C=Wlog2(1+S/N)(b/s) W为信道带宽,S是信道内所传信号的平均功率,N为信道内的高斯噪声功率。
公式说明:带宽或者信噪比越大,极限传输速率就越高。只要信息传输速率低于极限传输速率,就一定能找到某种方法实现无差错传输。
提高信息传输速率的方法:用编码的方法让每一个码元携带更多比特的信息量。编码传输
-
-
计算信息量:熵指的是接收的每条消息中包含的信息的平均量。熵的计算是对随机变量的比特量和顺次发生概率相乘再总和的数学期望。样本有限时: H ( X ) = − ∑ i P ( x i ) l o g b P ( x i ) H(X)=-\sum_i P(x_i)log_b P(x_i) H(X)=−i∑P(xi)logbP(xi) P 是概率,b是2、e或者10,当b = 2,熵的单位是bit;当b = e,熵的单位是nat;而当b = 10,熵的单位是Hart。熵 信息量
2.2.信道复用
- 目的:充分利用带宽,有发送复用和接收复用。
- 频分复用FDM:每个不同的用户用不同的频率进行调制,然后一起发送,接收的时候用对应地频率解调。用途比如说打电话,但是现在采用时分复用替代了。
- 时分复用TDM:时间域被分成周期循环的一些小段,每段时间长度是固定的,每个时段用来传输一个子信道。每个设备一个时间段,通过排名传递信号.
- 统计时分多路复用STDM:又称同步时分多路复用;使用按需分配的技术,即根据用户需求动态分配时隙。应用 VLAN。
- 波分复用WDM:就是光的频分复用,在光纤通信商利用;一根光纤上传几十路信号——密集波分复用DWDM。
- 码分复用CDM:码分多址CDMA:各用户使用不同的码型,抗干扰能力强。
2.3.其他
- 脉码调制:长途传输信号,采用时分复用PCM的传输方式。北美使用24路的T1速率(1.544Mb/s);欧洲、中国使用30路的E1速率(2.048Mb/s).现在使用SDH/SONET标准。
- 宽带接入技术:过时的电话线拨号上网ADSL;有线电视采用的光纤同轴混合网HFC;光纤入户的FTTx.
3.数据链路层
3.1. 初步认知
- 数据链路层的信道有2种:点对点(一对一)、广播(一对多)。
- 链路层传输内容是帧:
- 链路层给数据包加上Mac地址等信息;
- 链路层不用确认数据的完整性、没有重传机制,由上层来决定。
3.2.三个基本问题
- 封装成帧:在数据报的前后加首部SOH(0x01)和尾部EOT(0x04);MTU值为1500字节。
- 透明传输:使首部和尾部对外是不可见的,需要在接受之后去掉他们。链路层只接受完整的帧;数据中如果有和SOH、EOT相同的,会被转义——前面加ESC(0x1B).
- 差错检测:防止出现比特差错,广泛使用的技术是循环冗余检测CRC技术,具体流程如下:
- 数据链路层会定义一个二进制数P;发送数据为M。临时给M结尾加上P-1位的0,去除P。得到的余数称作帧检验序列FCS,加在M后面一起发送;
- 接受方时除以P,如果没有余数说明传输出错的可能性很小。
3.3. 点对点协议PPP
- 组成:网络控制协议NCP;链路控制协议LCP;高级数据链路控制HDLC。
- 以太网上的PPPOE:说明PPP协议能适应多种类型数据链路。
- 帧格式:
F:flag,表示头部开始;A:地址字段,表示目标地址,因为是一对一的,不用写,直接全写1;C:控制字段。AC字段其实还没有定义,留着万一以后会用到呢;
协议:指明传的信息部分是什么内容:0x0021-ip数据包、0xC021-PPP链路控制协议LCP、0x8021-网络控制数据、0xC023-安全认证PAP、0xC025-LQR、0xC223-安全认证CHAP. - 实现透明传输:
- 填充字节:通过转义保证没有0x7E。0x7E→0x7D 0x5E;0x7D→0x7D 0x5D
- 零比特填充:出现连续5个1就在最后一个1后面加一个0,接收的时候再去掉。——简单、粗暴、有效。
- 工作状态图:
3.4. 使用广播信道的数据链路层
- 在局域网内使用;
- 使用动态媒体接入技术(多点接入)的方法共享信道,(静态划分是2.2节的信道复用)。分为2类:随机接入-以太网;受控接入-令牌环局域网(连接时轮询访问);
- 以太网使用CSMA/CD协议:即载波监听多点接入/碰撞检测;使用曼彻斯特编码;半双工通信。
- 多点接入:是总线型网络。
- 载波监听:发送前和发送中监测网络,有其他的在发我就先不发,等没人用的时候我再发。
- 碰撞检测: 发送中监测,也叫边发送边监听。电信号超过一个门限值就认为有2个在发送。
- 冲突避让:使用二进制指数类型退避算法计算发生了碰撞我重传的时间。
- a.退避时间=争用期 2τ;争用期是以太网端到端的往返时间。
- b. 设定参数K=min[重传次数,10];
- c. 随机取[0,1,2…2^k-1]的一个数r,把r*2τ作为基本退避时间;
- d.如果重传16次还没传出去就报错,向高层报告问题。
- 信道利用率:
极 限 信 道 利 用 率 S m a x = T 0 T 0 + τ = 1 1 + a 极限信道利用率S_{max}= \cfrac{T_0}{T_0+τ}= \cfrac{1}{1+a} 极限信道利用率Smax=T0+τT0=1+a1
a是以太网单程端到端时延τ与帧的发送时间T0的比值。公式说明当a远小于1时才能得到尽可能高的极限利用率。T0管不了,就是让争用期尽可能小,这样利用率才能尽可能高。统计说以太网的利用率达到30%就处于重载的情况了。
3.5. 以太网的几个概念
- Mac地址:以太网的硬件地址;局域网内是根据Mac地址确定设备的,互联网里面是根据ip确定主机的;Mac地址可以修改,层级隔了几个月检查电脑就发现Mac地址变化了。但是硬件的唯一标识是改不了的。
- Mac地址是48位,前24位是开发商,后24位是开发商定义的,是开发商从一个组织那里购买的,所有一般不会重复。
- Mac帧:跟PPP差不多,都是链路层。一对一的话数据包用PPP包装起来,在以太网里面用MAC帧。
- 采用曼彻斯特编码,可以没有尾巴:没有信号了就是送完了。
- 优化以太网:使用网桥:它有自学习算法,能记录端口对应的Mac地址。交换机是一种高速网桥;透明网桥使用了生成树算法,避免闭环造成影响。
- LAN:局域网。
- VLAN:虚拟局域网。