此文章记录自己学习计算机网络笔记
第一章 概述
计算机网络的七个性能指标
- 速率:主机传送数据位数的速率 1Gb/s = 1000 Mb/s = 1000000kb/s = 1000000000b/s
- 带宽:数字通道所能传送的最高数据率
- 吞吐量:单位时间通过某个网络的数据量
- 时延:发送时延+传播时延+处理时延+排队时延
- 时延带宽积:传播时延×带宽
- 往返时间:从发送方发送数据开始,到发送方收到接收方确认
- 利用率:信道利用率 (有数据通过时间/(有+无)数据通过时间),网络利用率(信道利用率加权平均)
OSI参考模型
- 应用层:所有能产生流量的程序(比如QQ,记事本不行)
- 表示层:在传输之前是否对数据进行加密或者压缩处理 二进制 ASCLL
- 会话层:查木马 (当一个主机访问另一个主机,需要建立会话,我们就可以查看这些会话的是什么程序,已经从哪里来)
- 传输层:可靠传输 流量控制 不可靠传输 (当你的电脑访问一个网站,网站给你发来一段数据,若你的电脑没接受到,网站就会重新发一次,传输层做的就是这样的事)
- 网络层:负责选择最佳路径,规划IP地址,选择路由器
- 数据链路层:将网络层交下来的IP组装成帧,包括帧的开始和结束, 识别数据的开头和结尾
- 物理层:接口标准,电器标准,如何在数据链路层更快的传输
第二章 物理层
物理层解决的是如何在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。
主要任务:确定传输媒体的接口的一些特性,例如机械特性(接口大小,形状),电气特性(电压范围-5V到+5V),功能特性,过程特性。
第三章 数据链路层
数据链路层使用的信道主要有两种类型:
- 点对点信道:使用一对一的通信方式
- 广播信道:使用一对多的广播通信方式,过程比较复杂
链路是一条点到点的物理线段(网线),中间没有任何其他的交换结点。
数据链路除了物理线路外,还有通信协议来控制数据的传输,若把实现这些协议的硬件和软件加到链路上,就构成数据链路。
数据链路层解决三个问题:封装成帧,透明传输,差错控制
封装成帧
如下图,数据链路层传送的是帧,即网络层传下来的IP数据报,数据链路层给它加上一个帧头和帧尾,还有一个校验值,然后在B结点,数据链路层识别帧头和帧尾,将IP数据层往上传给网络层。
透明传输
如果按照上面的方法,那可能会发现 在数据部分,如果出现了帧尾,后面的数据就会被舍弃。
对于这个问题,是这样解决的,在数据里面每个帧头,帧尾,在其前面都填充上一个转义字符“ESC"(其十六进制是1B),这样当网卡读到ESC的时候,就会认为是数据部分,从而避免上面的问题。
差错检测
传输过程可能会产生比特差错,1变成0,0变成1,一段时间内,传输错误的比特占传输比特总数的比率成为误码率(BER)。而数据链路层就能检测出这些错误,然后将他丢掉,然后由传输层的可靠传输再发送一次数据。
两种情况下的数据链路层
- 使用点对点信道的数据链路层(广域网)
比如家里的电脑,用ADSL拨号上网,通过网线连接到电信的设备上,这就叫点对点,他们遵守PPP协议,这个协议是数据链路层的协议,用户使用拨号电话接入因特网的时候,一般都是使用PPP协议。
说下PPP协议的帧格式,它的帧格式是这样的,和上面的差不多。
那如果信息部分出现了7E怎么办,我们可以用字节填充的方法,若出现0x7E,将0x7E转为两字节序列(0x7D,0x5E),若出现0x7D,可以转为(0x7D,0x5D);
还有另外一个办法,是零比特填充方法,因为7E转成二进制是01111110,所以零比特填充方法就是在发送端,只要发现有5个连续1,就立即填入1个0,接收端对帧中的比特流进行扫描,当发现5个连续1后,就会5个连续1后的一个0删除,然后剩下的就是发送端发的信息部分了。
- 使用广播信道的数据链路层(局域网)
在局域网下,我们需要使用广播信道的数据链路层, 一般使用的是随机接入(被以太网所使用),有总线性接入的网和集线器接入的网。
那么它使用的协议是什么,是CSMA/CD协议,也就是多点接入,载波监听。- 多点接入:表示许多计算机以多点接入的方式连接在一根总线上。
- 载波监听:指每一个站在发送之前都要先检测一下总线上是否有其他计算机在发送数据。如果有则暂时不要发送数据,以免发生碰撞。
- 碰撞检测:下面图片介绍怎么检测到碰撞,还有检查到之后怎么进行处理
接下来介绍一下集线器,它在逻辑上仍是一个总线网。各工作站使用的还是CSMD/CD协议。
以太局域网
以太网是说符合DIX Ethernet V2标准的局域网。
MAC层
为了使数据链路层 更好的适应多种局域网标准,局域网的数据链路层被分为两个子层。LLC(逻辑链路控制)子层和MAC(媒体接入控制)子层。但LLC基本被忽略,所有只有MAC层。
适配器从网络上每收到一个MAC帧就首先用硬件检查MAC帧中的MAC地址。
如果是发往本站的帧则收下,然后再进行其他的处理,否则就将此帧丢弃,不再进行其他的处理。
发往本站的帧包括以下三种帧
- 单播帧(一对一):目标地址就是它的地址
- 广播帧(一对全体):目标地址是全F(16进制),或者是全1(2进制)
- 多播帧(一对多):目标地址是多播帧
MAC地址
在局域网中,硬件地址称为物理地址,或MAC地址。
MAC地址有48位二进制(6个字节)组成的,全球唯一,前三个字节由IEEE注册管理机构向厂家分配。后三个字节由厂家自行指派。
MAC地址实际就是适配器(网卡)地址。显示的是16进制的数字,比如00-01-6C-06-A6-29。
MAC帧格式
最常用的MAC帧是以太网V2的格式,如下图。
目的地址占6个字节,源地址6个字节,协议占2个字节,说明了网络层遵守什么协议,FCS是校验值。
MAC的帧最短是64字节,现在已经有了18个字节,所以数据的字节最少是46到1500.当数据字段长度小于46字节时,应在数据后面加入整数字节的填充字段,保证以太网的MAC帧长不小于64字节。
在MAC帧之前还有8个字节,前7个字节是前同步码,后1个字节是帧开始定界符。
扩展局域网
对于几个局域网,我们可以通过网线将他们的集线器连接起来,这样可以形成一个大的局域网。
- 优点:扩大了局域网覆盖的地理范围。
- 缺点:碰撞域增大了,但总的吞吐量并未提高。
我们用网桥来解决这个问题,网桥具有过滤帧的功能,当它收到一个帧时,并不是向所有接口转发此帧,而是先检查此帧的目的MAC地址,然后再确定将该帧转发到哪一个接口。
网桥有多少个接口,我们就可以接多少个局域网,当网桥的口越来越多,我们就直接接计算机,候来网桥演变成了交换机。交换机的前身就是网桥,保存了网桥的优点,通讯之间不碰撞,并且交换机的口能够存储数据帧,端口带宽独享。