文章目录
👉本文是基于B站王道考研的《计算机网络》视频课程的学习笔记。
一、基本概念
计算机网络是互联的、自治的计算机集合,是为了实现数据通信、资源共享、分布式处理等功能,其主要由硬件(光纤、路由器、交换机等)、软件(QQ、微信等)、协议组成。
1.1 计算机网络的分类
按照不同角度分,如下:
- 按照分布范围分:广域网WAN(使用交换技术)、城域网MAN、局域网WNA(使用广播技术)、个人局域网PAN ;
- 按使用者分:公用网(如电信、移动)、专用网(如军队银行、铁路系统网路)
- 按交换技术分:电路交换、报文交换、分组交换;
- 按拓扑结构分:总线型、星型、环型、网状型(常用于广域网);
- 按传输技术分:广播式网络(共享公共通信通道)、点对点网络(使用分组存储转发和路由选择机制);
1.2 计算机网络的性能指标
名称 | 描述 |
---|---|
速率 | 即数据率或数据传输率或比特率,单位是b/s 、Kb/s、Mb/s、Gb/s 和 Tb/s 。 |
带宽 | 用来表示网络的通信线路传输数据的能力,即网络设备所能达到的最高速度。通常指单位时间内从网络中的某一点到另一点多能通过的最高数据率,单位是b/s 、Kb/s、Mb/s、Gb/s 和 Tb/s 。 |
吞吐量 | 表示在单位时间内通过某个网络(或信道、接口)的数据量,单位是b/s 、Kb/s、Mb/s、Gb/s 和 Tb/s 。 |
时延 | 指数据(报文/分组/比特流)从网络(或链路)的一端传送到另一端所需要的时间,单位是s 。时延包括发送时延、传播时延、排队时延和处理时延 |
时延带宽积 | 时延带宽积 = 传播时延 / 带宽 ,单位 bit 。描述了某一时刻的信道中有多少bit的数据。 |
往返时延RTT | 从发送方发送数据开始,到发送方接到接收方的确认,总共经历的延时。 |
1.3 计算机网络的分层参考模型
计算机网络的分层结构可以分为7层OSI参考模型和4层TCP/IP参考模型。那么计算机网络又为什么需要分层呢?这是因为计算机网络需要解决的使是一个很庞大、复杂的网络,需要将这个复杂的过程进行拆分,不同层次完成不同的事情。下面首先介绍OSI七层参考模型和4层TCP/IP参考模型,然后介绍在前两种模型的基础上发展的五层参考模型。
1.3.1 OSI七层参考模型
OSI七层参考模型可以分为通信子网和资源子网两个功能区。如下:
- 通信子网:由各种传输介质、通信设备、网络协议组成,实现数据通信,包括物理层、数据链路层和网络层;
- 资源子网:由实现资源共享的设备和软件组成,实现资源共享/数据处理,包括会话层、表示层和应用层;
序号 | 名称 | 功能组成 | 描述 |
---|---|---|---|
一层 | 物理层(PHY) | 通信子网 | 主要是在物理媒体上实现比特流的透明传输,传输单位是bit。透明传输是指不管所传数据是什么样的比特组合,都应当在链路上传输。即你给我什么,我就发什么。主要的功能有: 1)定义接口特性; 2)定义传输模式,单工、双工、半双工; 3)定义传输速率;4)比特同步; 5)比特编码; 常见的协议有 Rj45、802.3 。 |
二层 | 数据链路层(MAC) | 通信子网 | 把网络层传下来的数据报组装成帧,数据链路层传输单位为帧。主要功能包括: 1)封装成帧(定义帧的开始和结束); 2)差错控制,包括帧错、位错; 3)流量控制; 4)访问(接入)控制,控制对信道的访问; 主要协议有 SDLC、HDLC、PPP、STP 。 |
三层 | 网络层(IP) | 通信子网 | 把分组从源端传到目的端,传输的单位是数据报。数据报过长时就可以切割成不用的分组。功能包括: 1)路由选择,根据算法选择最佳路径; 2)流量控制; 3)差错控制,如奇偶校验码等; 4)拥塞控制; 主要协议有IP、IPX、ICMP、IGMP、ARP、RARP、OSPF 。 |
四层 | 传输层(TCP/UDP) | 通信子网和资源子网的接口 | 负责主机中两个进程的通信,即端到端的通信。主要功能包括: 1)可靠传输、不可靠传输; 2)差错控制; 3)流量控制; 4)复用分用; 主要协议有 TCP、UDP 。 |
五层 | 会话层 | 资源子网 | 向表示层实体/用户进程提供建立连接,并在连接上有序地传输数据,功能包括: 1)建立、管理、终止会话; 2)使用校验点可使会话在通信失效时从校验点/同步点继续恢复通信,实现数据同步,如传输大文件; 主要协议有 ADSP、ASP 。 |
六层 | 表示层 | 资源子网 | 用于处理在两个通信系统中交换信息的表示方式,功能包括: 1)数据格式的变换; 2)数据加密、解密; 3)数据压缩和恢复; 注:表示层是没有单独的协议的。 |
七层 | 应用层 | 资源子网 | 所有能和用户交互产生网络流量的程序。 1)典型的程序如QQ、163网易邮箱; 主要协议如:文件传输(FTP)、电子邮件(SMTP)、万维网(HTTP); |
1.3.2 TCP/IP 四层参考模型
由于OSI7层参考模型是处于一个理论模型,并没有在市场上得到大规模的使用,而TCP/IP 参考模型则是在市场上得到广泛的使用。如下:
序号 | 名称 | 协议 | 描述 |
---|---|---|---|
一层 | 网络接口层 | Ethernet、ATM、Frame Relay | |
二层 | 网络层 | IP | |
三层 | 传输层 | TCP、UDP | |
四层 | 应用层 | HTTP、FTP、DNS |
1.3.3 OSI七层参考模型与TCP/IP 四层参考模型的对比
相同点:
- 都采用分层的体系结构;
- 基于独立的协议栈;
- 可以实现异构网络互联;
不同点:
- OSI的参考模型先于协议发明,不偏向特定协议;而TCP/IP 模型则是根据TCP/IP协议栈建立起来的模型;
- TCP/IP 一开始就考虑异构网络互联的问题,将IP作为一个重要的层次,所以在网络层只有面向无连接的方式。如下表:
OSI七层参考模型 | TCP/IP 四层参考模型 | |
---|---|---|
网络层 | 面向无连接 面向连接 | 面向无连接 |
传输层 | 面向连接 | 面向无连接 面向连接 |
注:面向连接是有握手之后才传输;面向无连接是不经过握手,直接传输。
1.3.4 五层参考模型
五层参考模型综合了OSI七层参考模型与TCP/IP 四层参考模型的优点,如下:
序号 | 名称 | 协议 | 描述 |
---|---|---|---|
一层 | 物理层 | 比特传输 | |
二层 | 数据链路层 | Ethernet、PPP | 把网络层传下来的数据报组装成帧 |
三层 | 网络层 | IP 、ICMP、OSPF | 源主机到目的主机的数据分组路由与转发 |
四层 | 传输层 | TCP、UDP | 进程-进程的数据传输 |
五层 | 应用层 | HTTP、FTP、SMTP | 支持各种网络应用 |
数据封装与解封装过程,如下:
解释上图:
- 首先数据从主机A的应用层出发,在数据末端添加一个应用层标志,形成报文,发送给传输层;
- 传输层收到报文后,在报文末端添加传输层标签,形成报文段,发送给网络层;
- 网络层收到报文段后,在报文段末端添加网络层标志,形成数据报,发送给数据链路层;
- 数据链路层收到数据报后,在首尾添加标志,封装成帧,交给物理层;
- 物理层将收到的帧通过比特流的方式传输给主机B的物理层;
- 再经过自下而上的层层解包,去掉标志位,直到应用层拿到自己想要的数据。
二、物理层
物理层解决的如何在各种计算机的传输媒体上传输数据比特流。主要任务:确定与传输媒体接口有关的一些特性。这里不做太多介绍了。
三、数据链路层
3.1 封装成帧
封装成帧就是在一段数据的前后部分添加首部和尾部。接收端在收到比特后,就可以根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。组帧的方式有四种方法:1.字符计数法;2.字符(节)填充法;3.零比特填充法;4.违规编码法。
3.2 差错控制
产生差错的原因主要来自外界特定的短暂原因造成的冲击噪声,通常利用编码技术来解决,包括:检错编码(奇偶校验码、循环冗余码)和纠错编码(海明码)。
- 奇偶校验码:只能检验奇数个bit位错;
- 循环冗余码(CRC):要发的数据 / 生成多项式 = FSC(帧检验序列);
- 海明码:只能发现双比特错,纠正单比特错。
3.3 流量控制与可靠传输机制
流量控制是为了避免在接受方接受速度低、发送方的发送速度快所产生的速率不匹配时,防止传输数据出错。流量控制的手段:
- 停止-等待协议:没发送完一个帧就停止发送,等待对方的确认后再发送下一帧,或者发送方等待确认的时间大于超时等待时间,发送方会重新再发一遍,效率比较低。
- 滑动窗口协议:收到一个最小序号的确认帧,滑动窗口向前滑动一位;但在未收到确认帧时,可以先发送窗口内其他位对应的帧。包括 后退N帧协议(GBN) 和 选择重传协议(SR)。
协议 | 发送窗口 | 接受窗口 | 特点 | 超时处理 |
---|---|---|---|---|
停止-等待协议 | 1 | 1 | 1)协议简单,容易实现; 2)信道利用率低; | 1)发送方:超过超时等待时间都没收到接收方的ACK,重发当前帧; 2)接收方:一直等待对应帧; |
后退N帧协议(GBN) | >1 | 1 | 1)接收方只按顺序接受帧,不按序的帧丢弃。比如接收方当前需要 5 号帧,你到达的是 6号帧,就会丢弃6号帧,一直在等待5号帧,直到超过超时等待; 2)累积确认。比如回复ACK3,则表明1、2、3号帧全部接收成功; 3)信道利用率高,但出错时会批量重传。如果发送方一直收不到ACK,就会批量重传所有已发送但是没有收到ACK 的帧; | 1)发送方:如果等不到接收方需要的帧,就会重发发送方窗口中所有已发送但是没有收到ACK 的帧; 2)接收方:如果等不到当前接受窗口对应的帧,就一直会丢弃包; |
选择重传协议(SR) | >1 | >1 | 1)来者不拒。接收方只要收到一个帧,就会像发送方回复一个ACK,而不需要管帧的顺序。失序的帧会先被缓存; 2)如果收到一个小于窗口下界的帧,直接回复ACK。因为这可能是ACK回复时丢失了,发送方没收到ACK,就重新发送了一个。 3)只重传出错的帧; | 一个超时事件只会重传一个帧。 |
数据链路层与传输层的流量控制的区别:
- 链路层的流量控制是点对点的,而传输层的流量控制是端到端的。
- 数据链路层的流量控制是通过接收方收不下时,就不回复确认;传输层的流量控制是接收端给发送端一个窗口公告,这个窗口公告中能够接收端告诉发送端缓冲区还有多大。
3.4 介质访问控制
传输数据时一般会使用两种链路:一、点对点链路,如ppp协议,常用于广域网;二、广播式链路,常用于局域网。为了避免两个节点之间的通信相互干扰。可以分为静态划分和动态划分,如下:
- 静态划分 – 信道划分介质访问控制
1)频分多路复用 FDM
2)时分多路复用 TDM
3)波分多路复用 WDM
4)码分多路复用 CDM - 动态划分 – 动态分配信道
1.轮询访问:
1)令牌传递协议
2.随机访问:
1)ALOHA 协议
2)CSMA 协议
3)CSMA/CD 协议
4)CSMA/CA 协议
这里只介绍重要的 CSMA/CD 协议和 CSMA/CA 协议,如下:
协议 | 工作原理 | 应用 |
---|---|---|
CSMA/CD 协议 | 发送端发送数据前,先检测信道是否空闲。同时边发送数据,边检测信道是否空闲。步骤: 1)当两个主机A和B都想给对方发送数据时,两个主机A和B会监听信道,确认站点是否有信号进来; 2)但是由于传播时延的影响,A和B都没有监听到信号进入站点,A和B就开始发送数据,从而产生冲突和碰撞; 3)碰撞使得相应地帧被破话,A和B站点收到错误帧后,会认为时自己的错导致了冲突,会产生一个退避时间,在这个退避时间内,该端不发送任何数据; 4)在A或B主机的退避时间过后,其又会重新监听信道,并发送帧; 5)当重传次数超过规定的重传次数(一般16次)时,说明网络太拥挤,该帧永远无法正确发送,抛弃此帧,并向高层报告错误; 注:正因为这个传播时延的存在,为了避免冲突被检测到时,帧已经发送完毕,没办法停止发送,所以规定了最下的帧长。 | 总线型局域网 或 以太网 |
CSMA/CA 协议 | 发送端发送数据前,先检测信道是否空闲。步骤: 1)若信道空闲,则发送端发出RTS(request to send),RTS中包括发送端地址、接收端地址、下一份数据将持续发送的时间等信息; 2)信道忙则等待; 3)接收端收到RTS后,响应CTS(clear to send); 4)发送端收到CTS后,开始发送数据帧。同时预约信道,告诉其他站点自己要传多久的数据。 5)接收端收到数据端后,检验正确后响应ACK帧。发送端收到ACK后就可以进行下一个数据帧的发送; 6)若发送端一直没有收到ACK则重传,利用二进制指数退避算法确定随机的推迟时间。 | 无线局域网 |
四、局域网
局域网(LAN)是指某一区域内由多台计算机互联成的计算机组,使用广播信道。其特点是:
1.覆盖的地理范围较小,只在一个相对独立的局部范围互联;
2.使用专门铺设的传输介质(双绞线、同轴电缆)进行联网,传输速率高;
3.通信延迟时间短、误码率低、可靠性高;
4.各站点共享传输信道;
5.多采用分布式控制和广播式通信,可以进行广播和组播。
LAN 的拓扑结构:1.星型 ;2.总线型 ;3.环型 ;4.树型 ;
LAN 的分类,包括:
类别 | 描述 |
---|---|
以太网(Ethernet) | 符合IEEE802.3标准,逻辑拓扑为总线型,物理拓扑是星型 |
无线局域网(WLAN) | 采用IEEE802.11标准 |
ATM网 | 新型的单元交换技术,使用53字节固定长度的单元进行交换 |
FDDI网 | 基本不用 |
令牌环网 | 基本不用 |
IEEE802标准所描述的局域网参考模型只对应OSI参考模型的数据链路层和物理层,将数据链路层又分为逻辑链路LLC子层和介质访问控制MAC子层。
- LLC子层负责识别网络层协议,然后进行封装。为网络层提供服务。
- MAC子层主要功能包括数据帧的封装和解封装,帧的寻址和识别,帧的接收和发送等。MAC子层的存在屏蔽了不同物理链路种类的差异。
4.1 以太网
以太网(Ethernet)是由Xerox、intel和DEC公司联合开发的基带总线局域网规范,使用CSMA/CD技术,符合 IEEE802.3 标准和 DIX Ethernet V2 标准(二者在以太网帧的封装有区别)。
特点:
- 无连接:发送方和接收方之间无“握手过程”。
- 不可靠:不对发送方的数据帧编号,接收方不向发送方进行确认,差错帧直接丢弃,差错纠正交由高层(如传输层)负责。
4.1.1 以太网帧
常用的MAC帧是 Ethernet V2的格式,如下所示:
类别 | 描述 | 作用 |
---|---|---|
Preamble | 7个byte的101010…,第8个byte为10101011 | 用于发送端与接收端的时钟同步; 注:一般不将preamble计入到以太网帧的长度中。 |
4.2 无线局域网
4.2.1 WLAN的MAC帧
五、广域网
广域网(WAN)跨接很大的物理范围,能连接多个城市或国家,或者横跨几个洲。WAN的通信子网主要使用分组交换技术。目前最大范围的广域网就是 Internet 。下面先介绍WAN中最常使用的协议:PPP协议 和 HDLC协议。
5.1 PPP协议
PPP协议(point-to-point)是目前使用最广泛的数据链路层协议,用户使用拨号电话接入Internet时一般都是用PPP协议。PPP协议只支持全双工链路。
5.2 HDLC协议
未完,持续更新…