【计算机网络笔记】计算机网络学习笔记1
计算机网络
第一章 概述
1.1因特网概述
-
1网络、互联网和因特网
-
网络由若干节点和连接这些节点的链路组成
-
多个网络还可以通过路由器互连起来,这样就构成可一个覆盖范围更大的网络,即互联网。因此互联网是“网络的网络”
-
因特网是世界上最大的互联网络
-
-
2因特网发展的三个阶段
- 3因特网的组成
- 边缘部分:由所以连接在因特网上的主机组成。这部分是由用户直接使用的,用来通信和资源共享
- 核心部分:由大量网络和连接这些网络的路由器组成,这部分是为边缘部分提供服务的
1.2三种交换方式
-
1电路交换
-
电话交换机接通电话线的方式称为电路交换
-
从通信资源分配角度来看,交换就是按照某种方式动态的分配传输线路的资源
-
电路交换的三个步骤:
-
①建立连接(分配通信资源)
②通话(一直占用通信资源)
③释放连接(归还通信资源)
-
2分组交换
-
分组交换其核心思想是将待传输的整块数据(如文件、网页内容)分割成若干个大小固定或可变的 “分组”(Packet,也叫 “数据包”),每个分组携带目标地址、源地址等控制信息,通过网络中的交换机 / 路由器逐段转发,最终在目的地重新组装成完整数据
-
发送方:构造分组,发送分组
-
路由器:缓存分组,转发分组
-
接收方:接收分组,还原报文
-
-
3报文交换
- 报文交换是早期数据通信中的一种存储 - 转发(Store-and-Forward)交换技术,其核心逻辑是:发送端将完整的 “报文”(Message,即未经分割的整块数据,如一份完整文件、一封邮件)先传输到中间交换节点(如交换机、通信网关),节点将报文完整接收并存储后,再根据报文头部的目标地址,转发到下一个节点,最终逐步传递至接收端
-
4三种交换方式对比
1.3计算机网络的定义和分类
-
1计算机网络的定义
-
计算机网络的精确定义并未统一
-
计算机网络的最简单那的定义是:一些互相连接的‘自治的计算机的集合
- 互连:是指计算机之间可以通过有线和无线的方式进行数据通信
- 自治:是指独立的计算机,他有自己的硬件和软件,可以单独的运行
- 集合:是指至少需要两台计算机
-
计算机网络比较好的定义:计算机网络是由一些特定的一些通用的’可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特定的目的。这些可编程的硬件能够用来传输多种不同类型的信息,并能支持广泛和日益增长的应用
-
-
2计算机网络的分类
-
按交换技术分类:电路交换网络,报文交换网络,分组交换网络
-
按使用者分类:公用网,专用网
-
按传输介质分类:有线网络,无线网络
-
按覆盖范围:广域网WAN,城域网MAN,局域网LAN,个域网PAN
-
按拓扑结构分类:总线型网络,星型网络,环形网络,网状型网络
-
1.4计算机网络的性能指标
-
1常用的计算机网络的性能指标有八个:速率,带宽,吞吐量,时延,时延带宽积,往返时间,利用率和丢包率
-
2速率
-
连接在计算机网络上的主机在数字信道上传送比特的速率,也称为比特率或数据率
-
基本单位:bit/s,常用单位:kb/s,Mb/s,Gb/s,Tb/s
-
-
3带宽
- 用来表示网络的通信线路所能传输数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”,单位与速率单位相同
-
4吞吐量
-
吞吐量表示在单位时间内通过某个网络(信道或接口)的数据量
-
吞吐量被经常用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络,吞吐量受网络的带宽或额定速率限制
-
-
5时延
-
发送时延=分组长度(b)/发送速率(b/s)
-
传播时延=信道长度(m)/电磁波传播速率(m/s)
-
处理时延
-
-
6时延带宽积
-
传播时延和带宽的乘积
-
若发送端连续发送数据,则在所发送的第一个比特即将到达终点时,发送端就已经发送了时延带宽积个比特
-
链路的时延带宽积又称为以比特为单位的链路长度
-
-
7往返时间RTT
-
在许多情况下,因特网上的信息不仅仅单方向传输,而是双向交互
-
我们有时很需要知道双向交互一次所需的时间
-
-
8利用率
-
信道利用率:用来表示某信道有百分之几的时间是被利用的(有数据通过)
-
网络利用率:全网络的信道利用率的加权平均
-
利用率并非越高越好:当某信道的利用率增大时,该信道引起的时延也会迅速增加
-
也不能使信道利用率太低,这会使宝贵的通信资源被白白浪费
-
-
9丢包率
- 丢包率即分组丢失率,是指在一定的时间范围内,传输过程中丢失的分组数量与总分组数量的比率
- 分组丢失的两个主要原因:分组误码,结点交换机缓存队列满(网络拥塞)
1.5计算机网络的体系结构
- 1常见的计算机网络体系结构
-
OSI体系结构
-
-
TCP/IP体系结构
-
-
原理体系结构
-
- 2计算机网络体系结构分层的必要性
- 3计算机网络的专用术语
- 协议:控制两个对等实体进行逻辑通信的规则的集合
- 协议的三要素:
- 语法:定义所交换信息的格式
- 语义:定义收发双方所要完成的操作
- 同步:定义收发双方的时序关系
- 在协议的控制下,两个对等实体间的裸机通信使得本层能够向上一层提供服务
- 要实现本层协议,还需要使用下面一层所提供的服务
- 协议是“水平的”,服务是“垂直的”
- 实体看得见相邻下层所提供的服务,但并不知道实现该服务的具体协议。也就是说,下面的协议对上面的实体是“透明的“
- 服务访问点:在同一系统中相邻两层的实体交换信息的逻辑接口,用于区分不同的服务类型
- 数据链路层的服务访问点为帧的”类型“字段
- 网络层的服务访问点为IP数据报首部中的”协议字段“
- 运输层的服务访问点为”端口号“
- 服务原语:上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令称为服务原语
第二章 物理层
2.1物理层的基本概念
1物理层协议的主要任务
机械特性:指明接口所用接线器的形状和尺寸、引脚数目和排列、固定和锁定装置
电气特性:指明接口电缆的各条线上出现的电压的范围
功能特性:指明某条线上出现的某一电平的电压表示何种意义
过程特性:指明对于不同功能的各种可能事件的出现顺序
2物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流
3物理层为数据链路层屏蔽了各种传输媒体的差异,使数据链路层只需要考虑如何完成本层的协议和服务,而不必考虑网络具体的传输媒体是什么
2.2物理层下面的传输媒体
导引型传输媒体:同轴电缆,双绞线,光纤,电力线
非导引型传输媒体:无线电波,微波,红外线,可见光
第三章 数据链路层
3.1数据链路层概述
- 1链路就是从一个结点到相邻结点得一段物理线路,而中间没有任何其他的交换结点数据链路是指把实现通信协议得硬件和软件加到链路上,就构成了数据链路
- 2数据链路层以帧为单位传输和处理数据
-
3数据链路层得三个重要问题(点对点信道):
- 封装成帧
- 封装成帧(framing) 就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧
- 首部和尾部的一个重要作用就是进行帧定界
-
差错检测
- 在传输过程中可能会产生比特差错:1 可能会变成 0, 而 0 也可能变成 1
- 可靠传输
- 接收方主机收到有误码的帧后,是不会接受该帧的,会将它丢弃
- 如果数据链路层向其上层提供的是不可靠服务,那么丢弃就丢弃了,不会再有更多措施
- 如果数据链路层向其上层提供的是可靠服务,那就还需要其他措施,来确保接收方主机还可以重新收到被丢弃的这个帧的正确副本
3.2封装成帧
- 1封装成帧是指数据链路层给上层交付的协议数据单元添加枕头和帧尾使之成为帧
- 帧头和帧尾中包含有重要的控制信息
- 帧头和帧尾的作用之一就是帧定界
-
2透明传输是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样
-
面向字节的物理链路使用字节填充的方法实现又没传输
-
面向比特的物理链路使用比特填充的方法实现透明传输
- 3为了提高帧的传输效率,应当使帧的数据部分的长度尽可能大些
- 4考虑到差错控制等多种因素,每一种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU
3.3差错检测
- 1检错码只能检测出帧在传输中出现了差错,但不能定位错误,因此无法纠正错误
- 2要想纠正传输中的差错,可以使用冗余信息更多的纠错码进行前向纠错。但纠错码的开销比较大,在计算机网络中较少使用
- 3循环冗余校验CRC有很好的检错能力(漏检率非常低),虽然计算复杂,但非常易于用硬件实现,因此被广泛应用于数据链路层
3.4可靠传输
3.4.1可靠传输的基本概念
- 1比特差错只是传输差错中的一种
- 2从整个计算机网络体系结构来看,传输差错还包括分组丢失、分组失序以及分组重复
- 3分组丢失、分组失序以及分组重复这些传输差错,一般不会出现在数据链路层,而会出现在其上层
- 4可靠传输服务并不仅局限于数据链库层,其他各层均可选择实现可靠传输
- 5可靠传输的实现比较复杂,开销也比较大,是否使用可靠传输取决于应用需求
3.4.2可靠传输的实现机制-停止-等待协议SW
- 1接收端检测到数据分组有误码后,将其丢弃并等待发送方的超时重传。但对于误码率较高的点对点链路,为了使发送方尽早重传,也可给发送方发送NAK分组
- 2为了让接收方能够判断所收到的数据分组是否是重复的,需要给数据分组编号。由于停止-等待协议的停等特性,只需1个比特编号就够了,即编号0和1
- 3为了让发送方能够判断所收到的ACK分组是否是重复的,要给ACK分组编号,所用比特数量与数据分组编号所用比特数量一样。数据链路层一般不会出现ACK分组迟到的情况,因此在数据链路层实现停止-等待协议可以不用给ACK分组编号
- 4超时计时器设置的重传时间应仔细选择。一般可将重传时间选为略大于“从发送方到接收方的平均往返时间”
- 在数据链路层点对点的往返时间比较确定,重传时间比较好设定
- 然而在运输层,由于端到端往返时间非常不确定,设置合适的重传时间有时并不容易
- 5当往返时延RTT远大于数据帧发送时延To时(例如使用卫星链路),信道利用率非常低
- 6若出现重传,则对于传送有用的数据信息来说,信道利用率还要降低
- 7为了克服停止-等待协议信道利用率很低的缺点,就产生了另外两种协议,即后退N帧协议GBN和选择重传协议SR
3.4.3可靠传输的实现机制-回退N帧协议GBN
-
1发送方
-
接收方无法分辨新、旧数据分组发送方可在未收到接收方确认分组的情况下,将序号落在发送窗口内的多个数据分组全部发送出去
-
发送方只有收到对已发送数据分组的确认时,发送窗口才能向前相应滑动
-
发送方收到多个重复确认时,可在重传计时器超时前尽早开始重传,由具体实现决定
-
发送方发送窗口内某个已发送的数据分组产生超时重发时,其后续在发送窗口内且已发送的数据分组也必须全部重传,这就是回退N帧协议名称的由来
-
-
2接收方
- 接收方只接收序号落在接收窗口内且无误码的数据分组,并且将接收窗口向前滑动一个位置,与此同时给发送方发回相应的确认分组。为了减少开销,接收方不一定每收到一个按序到达且无误码的数据分组就给发送方发回一个确认分组
- 而是可以在连续收到好几个按序到达且无误码的数据分组后(由具体实现决定),才针对最后一个数据分组发送确认分组,这称为累积确认
- 或者可以在自己有数据分组要发送时才对之前按序接收且无误码的数据分组进行捎带确认
- 接收方收到未按序到达的数据分组,除丢弃外,还要对最近按序接收的数据分组进行确认
- 接收方只接收序号落在接收窗口内且无误码的数据分组,并且将接收窗口向前滑动一个位置,与此同时给发送方发回相应的确认分组。为了减少开销,接收方不一定每收到一个按序到达且无误码的数据分组就给发送方发回一个确认分组
3.4.4可靠传输的实现机制-选择重传协议SR
-
1发送方
-
发送方可在未收到接收方确认分组的情况下,将序号落在发送窗口内的多个数据分组全部发送出去
-
发送方只有按序收到对已发送数据分组的确认时,发送窗口才能向前相应滑动;若收到未按序到达的确认分组时,对其进行记录,以防止其相应数据分组的超时重发,但发送窗口不能向前滑动
-
-
2接收方
- 接收方可接收未按序到达但没有误码并且序号落在接收窗口内的数据分组
- 为了使发送方仅重传出现差错的分组,接收方不能再采用累积确认,而需要对每个正确接收到的数据分组进行逐一确认!接收方只有在按序接收数据分组后,接收窗口才能向前相应滑动
3.5点对点协议PPP
-
1PPP协议为在点对点链路传输各种协议数据提供了一个标准方法:
对各种协议数据封装方法(封装成帧)- 链路控制协议LCP:用于建立、配置以及测试数据链路的连接
- 一套网络控制协议NCPs:其中的每一个协议支持不同的网络协议层协议
-
2PPP协议帧格式
-
-
标志(Flag)字段:PPP帧的定界符,取值为0x7E
-
地址(Address)字段:取值为0xFF,预留(目前没有什么作用)
-
控制(Control)字段:取值为0x03,预留(目前没有什么作用)
-
协议(Protocol)字段:指明帧的数据部分送交哪个协议处理
- 取值0x0021表示:帧的数据部分为IP数据报
- 取值0xC021表示:帧的数据部分为LCP分组
- 取值0x8021表示:帧的数据部分为NCP分组
-
帧检验序列(Frame CheckSequence)字段:CRC计算出的校验位
-
-
3PPP帧的透明传输
- 面向字节的异步链路使用字节填充法(插入转义字符)
- 面向比特的同步链路使用比特填充法(零比特传输)
-
4PPP协议的工作状态
3.6MAC地址、IP地址以及ARP协议
3.6.1 MAC地址
- 当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,则每个主机都必须有一个唯一的标识,即一个数据链路层地址
- 在每个主机发送的帧中必须携带标识发送主机和接收主机的地址。由于这类地址是用于媒体接入控制MAC,因此这类地址被称为MAC地址
- MAC地址一般被固化在网卡的电可擦可编程只读存储器EEPROM中,因此MAC地址也被称为硬件地址
- MAC地址有时也被称为物理地址
- 一般情况下,用户主机会包含两个网络适配器:有线局域网适配器(有线网卡)和无线局域网适配器(无线网卡)。每个网络适配器都有一个全球唯一的MAC地址。而交换机和路由器往往拥有更多的网络接口,所以会拥有更多的MAC地址。综上所述,严格来说,MAC地址是对网络上各接口的唯一标识,而不是对网络上各设备的唯一标识
3.6.2IP地址
- IP地址是因特网上的主机和路由器所使用的地址,用于标识两部分信息
- 网络编号:标识因特网上数以万计的网络
- 主机编号:标识同一网络上不同主机或路由器
- 很显然,之前介绍的MAC地址不具备区分不同网络的功能
- 如果只有只是一个单独的网络,不接入因特网,可以只使用MAC地址
- 如果主机所在的网络要接入因特网,则IP地址和MAC地址都需要使用
- 数据包转发过程中IP地址与MAC地址的变化情况:
- 源IP地址和目的IP地址保持不变
- 源MAC地址和目的MAC地址逐个链路或逐个网络改变
3.6.3ARP协议
- 源主机在自己的ARP高速缓存表中查找目的主机的IP地址所对应的MAC地址,若找到了,则可以封装MAC帧进行发送;若找不到,则发送ARP请求(封装在广播MAC帧中)
- 目的主机收到ARP请求后,将源主机的IP地址与MAC地址记录到自己的ARP高速缓存表中,然后给源主机发送ARP响应(封装在单播MAC帧中),ARP响应中包含有目的主机的IP地址和MAC地址
- 源主机收到ARP响应后,将目的主机的IP地址与MAC地址记录到自己的ARP高速缓存表中,然后就可以封装之前想发送的MAC帧并发送给目的主机
- ARP的作用范围:逐段链路或逐个网络使用
- 除ARP请求和响应外,ARP还有其他类型的报文
- ARP没有安全验证机制,存在ARP欺骗(攻击)问题
3.7 集线器与交换机的区别
- 集线器HUB
- 早期以太网的互连设备
- 工作在OSI体系结构的物理层
- 对接收到的信号进行放大、转发
- 使用集线器作为互连设备的以太网仍然属于共享总线式以太网。集线器互连起来的所有主机共享总线带宽,属于同一个碰撞域和广播域
- 交换机SWITCH
- 目前以太网中使用最广泛的互连设备
- 工作在OSI体系结构的数据链路层(也包括物理层)
- 根据MAC地址对帧进行转发
- 使用交换机作为互连设备的以太网,称为交换式以太网。交换机可以根据MAC地址过滤帧,即隔离碰撞域
- 交换机的每个接口时一个独立的碰撞域
- 交换机隔离碰撞域但不隔离广播域(VLAN除外)
3.8以太网交换机自学习和转发帧的流程
- 以太网交换机工作在数据链路层(也包括物理层)
- 以太网交换机收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧
- 以太网交换机是一种即插即用设备,刚上电启动时其内部的帧交换表是空的。随着网络中各主机间的通信以太网交换机通过自学习算法自动逐渐建立起帧交换表
- 以太网交换机自学习和转发帧的流程:
- ①收到帧后进行登记。登记的内容为帧的源MAC地址及进入交换机的接口号
- ②根据帧的目的MAC地址和交换机的帧交换表对帧进行转发,有以下三种情况
- 明确转发:交换机知道应当从哪个(或哪些)接口转发该帧(单播,多播,广播)
- 盲目转发:交换机不知道应当从哪个端口转发帧,只能将其通过除进入交换机的接口外的其他所有接口转发(也称为泛洪)
- 明确丢弃:交换机知道不应该转发该帧,将其丢弃
- 帧交换表中的每条记录都有自己的有效时间,到期删除。原因如下:
- 交换机的接口改接了另一台主机
- 主机更换了网卡
3.9以太网交换机的生成树协议STP
- 如何提高以太网的可靠性?
- 添加冗余链路可以提高以太网的可靠性
- 但是,冗余链路也会带来负面效应–形成网络环路
- 网络环路会带来以下问题:
- 广播风暴:大量消耗网络资源,使得网络无法正常转发其他数据帧
- 主机收到重复的广播帧:大量消耗主机资源
- 交换机的帧交换表震荡(漂移)
- 以太网交换机使用生成树协议STP(Spanning Tree Protocol),可以在增加冗余链路来提高网络可靠性的同时又避免网络环路带来的各种问题
- 不论交换机之间采用怎样的物理连接,交换机都能够自动计算并构建一个逻辑上没有环路的网络,其逻辑拓扑结构必须是树型的(无逻辑环路)
- 最终生成的树型逻辑拓扑要确保连通整个网络
- 当首次连接交换机或网络物理拓扑发生变化时(有可能是人为改变或故障)交换机都将进行生成树的重新计算
3.10虚拟局域网VLAN
3.10.1概述
- 以太网交换机工作在数据链路层(也包括物理层)
- 使用一个或多个以太网交换机互连起来的交换式以太网,其所有站点都属于同一个广播域
- 随着交换式以太网规模的扩大,广播域相应扩大
- 三大的广播域会带来很多弊端:广播风暴、难以管理和维护、潜在的安全问题
- 网络中会频繁出现广播信息(TCP/IP协议栈中很多协议都会使用广播,例如ARP、RIP、DHCP等)
- 分割广播域的方法:使用路由器可以隔离广播域,但路由器成本较高,虚拟局域网VLAN技术应运而生
- 虚拟局域网VLAN(Virtual Local Area Network)是一种将局域网内的设备划分成与物理位置无关的逻辑组的技术,这些逻辑组具有某些共同的需求
3.10.2虚拟局域网VLAN的实现机制
- IEEE 802.1Q帧(也称Dot One Q帧)对以太网的MAC帧格式进行了扩展,插入了4字节的VLAN标记
-
VLAN标记的最后12比特称为VLAN标识符VID,它唯一地标志了以太网属于哪一个VLAN
- VID的取值范围是0~4095
- 0和4095都不用来表示VLAN,因此用于表示VLAN的VID的有效取值范围是1~4094
-
802.1Q帧是由交换机来处理的,而不是用户主机来处理的
- 当交换机收到普通的以太网帧时,会将其插入4字节的VLAN标记转变为802.1Q帧,简称“打标签“
- 当交换机转发802.1Q帧时,可能会删除其4字节VLAN标记转变为普通以太网帧,简称“去标签”
-
交换机的端口类型:Access、Trunk 、Hybrid
-
Access:
- 连接用户计算机
- 只能属于一个VLAN
- PVID与端口所属VLAN的ID相同,默认值为1
- 接收处理方法:一般只接收来打标签的曾通以太网横,并给其打标签。
- 发送处理方法:若核中的VID等于端口PVID,则去掉标签并转发;否侧罢弃。
-
Trunk
- 交换机之间或交换机与路由器之间的连接
- 可以属于多个VLAN
- 用户可以设置PVID,默认为1
- 接收处理方法:接收已打标签的帧;接收未打标签的帧,根据端口的PVID值给帧打标签
- 发送处理方法:帧中VID等于端口PVID,去掉标签再转发;帧中VID不等于端口PVID,直接转发
-
Hybrid
-
交换机之间、交换机与路由器、交换机与用户计算机之间的连接
-
可以属于多个VLAN用户可以设置PVID,默认为1
-
接收处理方法:接收已打标签的帧;接收未打标签的帧,根据端口的PVID值给帧打标签
-
发送处理方法:查看数据帧中的VID是否在端口的“去标签”列表中:如果存在,则去掉标签再转发;如果不存在,则直接转发
AN的ID相同,默认值为1 -
接收处理方法:一般只接收来打标签的曾通以太网横,并给其打标签。
-
发送处理方法:若核中的VID等于端口PVID,则去掉标签并转发;否侧罢弃。
-
-
Trunk
- 交换机之间或交换机与路由器之间的连接
- 可以属于多个VLAN
- 用户可以设置PVID,默认为1
- 接收处理方法:接收已打标签的帧;接收未打标签的帧,根据端口的PVID值给帧打标签
- 发送处理方法:帧中VID等于端口PVID,去掉标签再转发;帧中VID不等于端口PVID,直接转发
-
Hybrid
-
交换机之间、交换机与路由器、交换机与用户计算机之间的连接
-
可以属于多个VLAN用户可以设置PVID,默认为1
-
接收处理方法:接收已打标签的帧;接收未打标签的帧,根据端口的PVID值给帧打标签
-
发送处理方法:查看数据帧中的VID是否在端口的“去标签”列表中:如果存在,则去掉标签再转发;如果不存在,则直接转发
-