网络的种类
常见的网络有三种,即电信网络、有线电视网络和计算机网络。其中发展最快并起到核心作用的是计算机网络。
电信网络:为用户提供电话、电报、传真等服务。
有线电视网络:向用户传送各种电视机节目。
计算机网络:使用户能在计算机间传递数据文件。
计算机网络和互联网
计算机网络(简称网络)是由若干结点(node)和连接节点的链路(link)组成的。网络把许多计算机连接在一起,而互联网则把许多网络通过路由器连接在一起,是网络的网络。通常把与网络相连的计算机常称为主机。
Internet是由数量极大的各种计算机网络互联而成的,采用互联网这个译名可以很好地体现Internet的最主要特征。
互联网的基本特点:连通性和共享。连通性是指不管互联网上的用户相距多远,都可以很方便地传递各种信息,就好像这些用户都彼此连通一样。共享指的是资源共享,资源共享包括很多方面,可以是信息共享,软件共享也可以是硬件共享。
以小写字母i开始的 internet(互连网)是一个通用名词,它泛指由多个计算机网络互连而成的计算机网络。在这些网络之间的通信协议(即通信规则)可以任意选择,不一定非要使用 TCP/IP 协议。
以大写字母I开始的 Internet(互联网,或因特网)则是一个专用名词,它指当前全球最大的、开放的、由众多网络相互连接而成的特定互连网,它采用 TCP/IP协议族作为通信的规则,且其前身是美国的 ARPANET。
可见,任意把几个计算机网络互连起来(不管采用什么协议),并能够相互通信,这样构成的是一个互连网 (internet),而不是互联网( Internet)。
互联网基础结构发展的三个阶段:
- 从单个网络ARPANET向互联网发展的过程
- 建成了三级结构的互联网(主干网、地区网、校园网(或企业网))
- 逐渐形成了多层次ISP结构的互联网
互联网交换点IXP的主要作用就是允许两个网络直接相连并交换分组,而不需要再通过第三个网络来转发分组。例如,在上图右方的两个地区ISP通过一个IXP连接起来了。这样,主机A和主机B交换分组时,就不必再经过最上层的主干ISP,而是直接在两个地区ISP之间用高速链路对等地交换分组。这样就使互联网上的数据流量分布更加合理, 同时也减少了分组转发的迟延时间,降低了分组转发的费用。典型的IXP由一个或多个网络交换机组成,许多ISP再连接到这些网络交换机的相关端口上。IXP常采用工作在数据链路层的网络交换机,这些网络交换机都用局域网互连起来。
互联网的核心部分
在互联网的核心部分起到重要作用的是路由器,它是一种专用的计算机。它是实现分组交换的关键构件,其任务是转发收到的分组。
电路交换
从通信资源的分配角度来看,交换( switching)就是按照某种方式动态地分配传输线路的资源。在使用电路交换通话之前,必须先拨号请求建立连接。
电路交换:经过“建立连接(占用通信资源)→通话(一直占用通信资源)→释放连接(归还通信资源)”三个步骤的交换方式。
分组交换
分组交换采用存储转发技术。
分组交换在传送数据之前不必先占用一条端到端的链路的通信资源。分组在哪段链路上传送才占用这段链路的通信资源。分组到达一个路由器后,先暂时存储下来,査找转发表,然后从一条合适的链路转发出去。分组在传输时就这样一段一段地断续占用通信资源,而且还省去了建立连接和释放连接的开销,因而数据的传输效率更高。
计算机之间的通信
计算机通信是计算机中的进程(即运行着的程序)之间的通信。计算机网络采用的通信方式是客户-服务器方式和对等连接的方式。
客户和服务器都是指通信中所涉及的应用进程。客户是服务请求方,服务器是服务提供方。
几种不同类别的计算机网络
按照网络的作用范围进行分类:
- 广域网(WAN)
- 城域网(MAN)
- 局域网(LAN)
- 个人区域网(PAN)
按照网络的使用者进行分类:
- 公用网
- 专用网
计算机网络的性能
计算机网络的性能指标
速率。数据的传输效率,在网络中提到的速率一般指的是额定速率或标称速率而不是实际的运行速率。速率的单位一般为bit/s
带宽。在计算机网络中带宽用来描述某一个通道传达数据的能力,表示在单位时间内网络中的某信道能通过的最高数据率,这种情况下带宽的单位为bit/s
吞吐量。表示在单位时间内通过某个网络(或信道、接口)的实际数据量。吞吐量受到网络带宽或者网络额定速率的限制。
时延。数据(一个报文或者分组,甚至是一个比特)从网络(链路)的一端发送到另一端所需要的时间。
- 发送时延。发送时延是主机或者路由器发送数据帧所需要的时间。
- 传播时延。传播时延是电磁波在信道中传播一定的距离所花费的时间。
处理时延。主机或者路由器在收到分组时需要花费一定的时间处理。
排队时延。分组经过路由器后要先在输入队列中排队等待处理。
一般来说,总时延的计算公式如下:
- 时延带宽积。链路的时延带宽积又称为以比特为单位的链路长度。
- 往返时间RTT。有时需要计算双向交互一次所需要的时间。当使用卫星通信的时候,往返时间RTT相对较长,是一个很重要的性能指标。
利用率。利用率分为信道利用率和网络利用率两种。
- 信道利用率:某信道有百分之几的时间是被利用的(有数据通过)。信道利用率并非越高越好。
- 网络利用率:网络利用率是全网络信道利用率的加权平均值。
计算机网络的非性能指标
- 费用
- 质量
- 标准化
- 可靠性
- 可扩展性和可升级性
- 易于管理和维护
计算机网络体系结构
协议与划分层次
为进行网络中的数据交换而建立的规则、标准或者约定称为网络协议。网络协议也可以简称为协议。
协议的三个要素:
- 语法,即数据与控制信息的结构或格式
- 语义,需要发出何种控制信息,完成何种动作以及作出何种响应
- 同步,即事件实现顺序的详细说明
分层带来的好处:
- 各层之间是独立的
- 灵活性好
- 结构上可分开
- 易于实现和维护
能促进标准化工作
- 差错控制
- 容量控制
- 分段和重装
- 复用和分用
- 连接建立与释放
计算机网络的各层及其协议的集合就是网络的体系结构。换种说法,计算机网络的体系结构就是这个计算机网络及其构件所应完成的功能的精确定义。
五层协议的体系结构
- 应用层。应用层的任务是通过应用进程之间的交互来完成特定网络应用。应用层协议定义的是应用进程通信和交互的规则。常见的协议有:DNS、HTTP、SMTP等
运输层(传输层)。运输层的任务就是负责向两台主机中进程之间的通信提供可靠的数据传输服务。
- 传输控制协议(TCP) 提供面向连接的,可靠的数据传输服务,其数据传输的单位是报文段。
- 用户数据报协议(UDP) 提供无连接的、尽最大努力的数据传输服务(不保证数据传输的可靠性),数据单位是用户数据报。
- 网络层(网际层或者IP层)。网络层负责为分组交换网上的不同主机提供通信服务。在发送数据的时候,网络层把运输层产生的报文段或者用户数据报封装成分组(IP数据报)或者包进行传送。网络层使用的网络协议是无连接的网际协议IP和许多路由选择协议。
- 数据链路层(链路层)。数据链路层将网络层交下来的IP数据报组装成帧,在两个相邻节点间的链路上传送帧。如果发现此帧出现错误,数据链路层直接将该帧丢弃。
- 物理层。在物理层上传输数据的单位是比特。
物理层
物理层的任务
物理层的主要任务就是确定与传输媒体接口有关的一些特性,如:机械特性、电气特性、功能特性、功能特性和过程特性等。
数据通信系统
一个数据通信系统可划分为三大部分,即源系统
、传输系统
和目的系统
。源系统包括源点(或源站、信源)和发送器,目的系统包括接收器和终点(或目的站,或信宿)。
信道的基本概念
从通信的双方信息交互的方式来看,可以有以下三种基本方式:
- 单向通信又称为单工通信,即只能有一个方向的通信而没有反方向的交互。无线电广播或有线电广播以及电视广播就属于这种类型。
- 双向
交替
通信又称为半双工通信,即通信的双方都可以发送信息,但不能双方同时发送(当然也就不能同时接收)。这种通信方式是一方发送另一方接收,过一段时间后可以再反过来。双向同时通信又称为全双工通信,即通信的双方可以同时发送和接收信息。
单向通信只需要一条信道,而双向交替通信或双向同时通信则都需要两条信道(每个方向各一条)。显然,双向同时通信的传输效率最高。 - 双向
同时
通信又称为全双工通信,即通信的双方可以同时发送和接收信息。
单向通信只需要一条信道,而双向交替通信或双向同时通信则都需要两条信道(每个方向各一条)。显然,双向同时通信的传输效率最高。
物理层下的传输媒体
传输媒体也称为传输介质或者传输媒介,它是数据传输系统中发送器和接收器之间的物理通路
。
常见的传输媒体可以分为导引型传输媒体
和非导引型传输媒体
。在导引型传输媒体中,电磁波被导引沿着固体媒体(铜线或光纤)传播,而非导引型传输媒体就是指自由空间,在非导引型传输媒体中电磁波的传输常称为无线传输。
导引型传输媒体:
- 双绞线
- 同轴电缆
光缆
- 多模光纤:存在多条不同角度的入射光线再一根光纤中传播
- 单模光纤:光纤的直径缩小到只有一个光的波长,从而使光线一直向前传播而不会发生反射
非导引型传输媒体:
微波通信
地面微波接力通信
- 在微波通信的两个终端基站之间建立若干个中继站,用来对放大传来的信号并将其传输到下一站
短波通信
- 高频通信,主要利用了电离层的反射
常用的信道复用技术
频分复用技术
在同一时刻,不同的用户占有不同的带宽资源(这里的带宽指的是频率带宽)。
在使用频分复用的时候,当用户变多的时候,每个用户分到的带宽就会变小。
时分复用技术
所有的用户在不同的时间段内占有相同的带宽资源。
TMD:时分复用帧
在使用时分复用的时候,一个TMD帧的长度是不变的,所以随着用户数量的增多,每个用户分到的时间间隔就会变得很小,但是每个用户分到的带宽的大小却不会变。
统计时分复用技术
统计时分复用使用STMD帧
来传送复用的数据。但是每一个STMD帧中的时隙数小于连接在集中器中的用户数,各用户有了数据就随时发往集中器的输入缓存,然后集中器按顺序依次扫描输入缓存,把缓存中的输入数据放入STDM帧中。对没有数据的缓存就跳过去个帧的数据放满了,就发送出去。因此,STDM帧不是固定分配时隙,而是按需动态地分配时隙。因此统计时分复用又称异步时分复用
,而普通的时分复用又称同步时分复用
。
波分复用
波分复用就是光的频分复用。
码分复用CDM
码分复用CDM( Code Division Multiplexing)是另一种共享信道的方法。实际上,人们更常用的名词是码分多址CDMA( Code Division Multiple Access)每一个用户可以在同样的时间使用同样的频带进行通信。由于各用户使用经过特殊挑选的不同码型,因此各用户之间不会造成干扰。码分复用最初用于军事通信,因为这种系统发送的信号有很强的抗干扰能力,其频谱类似于白噪声,不易被敌人发现。
令向量表示S站的码片向量,向量表示其它站的码片向量。两个不同站的码片向量不相交,即:向量与向量的内积为0
而码片向量S和与该码片向量自己的内积为1,与S的反码向量的内积为-1
%7D%5E2%20%3D%201%0A#card=math&code=S%20%5Cbullet%20S%20%3D%20%5Cfrac%7B1%7D%7Bm%7D%5Csum%7Bi%3D1%7D%5Em%20S_iS_i%20%3D%20%5Cfrac%7B1%7D%7Bm%7D%5Csum%7Bi%3D1%7D%5Em%20%7BSi%7D%5E2%20%3D%20%5Cfrac%7B1%7D%7Bm%7D%5Csum%7Bi%3D1%7D%5Em%20%7B%28%5Cpm1%29%7D%5E2%20%3D%201%0A)
这样就可以通过使用码片向量S与发来的数据做内积的值来判断发送的数据是什么。当S站发送一个1时,内积为1;当S站发送一个0时,内积为-1;当S站没有发送数据的时候,内积为0。
常用的宽带接入技术
ADSL
非对称数字用户线ADSL(Asymmetric Digital Subscriber Line)技术是用数字技术对现有的模拟电话用户线进行改造
,使它能够承载数字业务。
ADSL最大的好处就是可以利用电话网中现有的电话线进行通信,而不需要重新布线。
FTTx
FTTx表示多种光纤宽带接入方式
- FTTH 光纤到户
- FTTB
- FTTF
练习题
设码片序列对应的码片向量我为#card=math&code=S%20%3D%20%28-1%2C%201%2C%20-3%2C%201%2C%20-1%2C%20-3%2C%201%2C%201%29),分别对A、B、C、D站的码片向量做内积:
%20%3D%20%5Cfrac%7B1%7D%7B8%7D%20%5Cbullet%208%20%3D%201%20%0A#card=math&code=S%20%5Cbullet%20A%20%3D%20%5Cfrac%7B1%7D%7B8%7D%5Csum%28-1%20%2A%20-1%20%2B%201%20%2A%20-1%20%2B%20-3%20%2A%20-1%20%2B%201%20%2A%201%20%2B%20-1%20%2A%201%20%2B%20-3%20%2A%20-1%20%2B%201%20%2A%201%20%2B%201%20%2A%201%29%20%3D%20%5Cfrac%7B1%7D%7B8%7D%20%5Cbullet%208%20%3D%201%20%0A)
%20%3D%20%5Cfrac%7B1%7D%7B8%7D%20%5Cbullet%20(-8)%20%3D%20-1%0A#card=math&code=S%20%5Cbullet%20B%20%3D%20%5Cfrac%7B1%7D%7B8%7D%5Csum%28-1%20%2A%20-1%20%2B%201%20%2A%20-1%20%2B%20-3%20%2A%201%20%2B%201%20%2A%20-1%20%2B%20-1%20%2A%201%20%2B%20-3%20%2A%201%20%2B%201%20%2A%201%20%2B%201%20%2A%20-1%29%20%3D%20%5Cfrac%7B1%7D%7B8%7D%20%5Cbullet%20%28-8%29%20%3D%20-1%0A)
%20%3D%20%5Cfrac%7B1%7D%7B8%7D%20%5Cbullet%200%20%3D%200%0A#card=math&code=S%20%5Cbullet%20C%20%3D%20%5Cfrac%7B1%7D%7B8%7D%5Csum%28-1%20%2A%20-1%20%2B%201%20%2A%201%20%2B%20-3%20%2A%20-1%20%2B%201%20%2A%201%20%2B%20-1%20%2A%201%20%2B%20-3%20%2A%201%20%2B%201%20%2A%20-1%20%2B%201%20%2A%20-1%29%20%3D%20%5Cfrac%7B1%7D%7B8%7D%20%5Cbullet%200%20%3D%200%0A)
%20%3D%20%5Cfrac%7B1%7D%7B8%7D%20%5Cbullet%208%20%3D%201%0A#card=math&code=S%20%5Cbullet%20D%20%3D%20%5Cfrac%7B1%7D%7B8%7D%5Csum%28-1%20%2A%20-1%20%2B%201%20%2A%201%20%2B%20-3%20%2A%20-1%20%2B%201%20%2A%20-1%20%2B%20-1%20%2A%20-1%20%2B%20-3%20%2A%20-1%20%2B%201%20%2A%201%20%2B%201%20%2A%20-1%29%20%3D%20%5Cfrac%7B1%7D%7B8%7D%20%5Cbullet%208%20%3D%201%0A)
所以A、B、D站发送了数据,C站没有发送数据。A和D站发送了一个1,B站发送了一个0。
数据链路层
数据链路层属于计算机网络的低层。数据链路层主要使用的信道主要有以下两种类型:
- 点对点信道。这种信道使用的是一对一的点对点的通行方式。
- 广播信道。这种信道使用的是一对多的广播通信方式,过程比较复杂。
(1)数据链路层的点对点信道和广播信道的特点,以及这两种信道所使用的协议(PP 协议以及 CSMA/CD协议)的特点。
(2)数据链路层的三个基本问题:封装成帧、透明传输和差错检测。
(3)以太网MAC层的硬件地址。
(4)适配器、转发器、集线器、网桥、以太网交换机的作用以及使用场合。
从网络的整体结构来看数据的传输过程:
从层次结构的角度来看数据的传输过程:
从数据链路层的角度来看数据的传输过程:
使用点对点信道的数据链路层
数据链路:实现在物理链路上通信的协议的硬件和软件以及实际的物理链路的整体叫做数据链路。
帧是数据链路层的协议控制单元。数据链路层把网络层交下来的数据组成帧发送到数据链路上,以及把帧中的数据取出并将其上交给网络层。
使用点对点信道的数据链路层在进行通信的时候的主要步骤:
- 节点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装称帧。
- 节点A把封装好的帧发送给节点B的数据链路层。
- 若节点B收到的数据链路层收到的帧无差错,则从收到的帧中提取IP数据报交给上面的网路层;否则则丢弃这个帧。
三个基本问题
封装称帧
封装称帧就是在一段数据的前后加上首部和尾部,这样就构成了一个帧。首部和尾部的一个重要作用就是帧定界(确定帧的界限),此外首部和尾部中还有很多控制信息。为了提高帧的传输效率,应当使帧中数据部分的长度尽可能大于首部和尾部的长度。但是每一种数据链路层的协议都规定了数据部分的长度上限 — 最大传送单元(MTU)
透明传输
由于帧的开始和结束部分都有专门指明的控制字符,因此所传输数据中任何8bit的组合都不允许出现和用作帧定界的控制字符的编码一样,否则会出现帧定界的问题。
透明:某一个实际存在的事物看起来好像不存在一样。
透明传输:无论传输什么样的字符,都可以放在帧的数据部分并且进行正常地传输。
解决透明传输的问题:
使用字节填充(字符填充)的方法。数据链路层需要发送的数据中含有帧定界符,则在其前面插入一个转义字符“ESC”;在接收端需要删除这个插入的转义字符。
差错检测
检测数据在传输过程中是否发生了差错,即:接收的数据月发送的数据不一致。
比特差错检测
比特差错检测指在传输过程中由于某种原因将1变为了0或者将0变为了 1而产生的传输错误。
差错检测措施:冗余校验CRC
CRC的基本步骤:
- 发送端先把数据进行分组,假定每组k个bit,之后在计算数据的冗余码并将其拼接在数据之后发出去;
- 在接收端把接收到的数据以帧为单位进行CRC校验,如果数据没有出现差错,则余数是0;如果出现差错,则余数一般不为0。
- 接收端接收无差错的数据,并丢弃出现差错的数据。 ==》 数据链路层并不保证可靠传输
冗余码的计算方法:
假定待传送的数据#card=math&code=M%3D101001%28k%3D6%29),用二进制的模2运算进行乘M的运算,这相当于在M后面添加n个0。得到的(k+n)位的数除以收发双方事先商定的长度为(n+1)位的除数P
,得出商是Q而余数是R(n位,比P少一位)。假定除数P=1101(即n=3)。经模2除法运算后的结果是:商Q=110101(这个商并没有什么用处),而余数R=001。这个余数R就作为冗余码拼接在数据M的后面发送出去。这种为了进行检错而添加的冗余码常称为帧检验序列FCS( Frame Check Sequence)
。因此加上FCS后发送的帧是101001001(即), 共有(k+n)位。
传输差错检测
接收方接收到的帧并没有出现比特差错,但却出现了帧丢失、帧重复或帧失序。
例如,发送方连续传送三个帧:[#1[#21[#]。假定接收端收到的每一个帧都没有比特差错,但却出现下面的几种情况:
- 帧丢失:收到[#1]-[#3] (丢失[#2])。
- 帧重复:收到[#1]-[#2]-[#2]-[#3] (收到两个[#2])。
- 帧失序:收到[#1]#3]-[#2] (后发送的帧反而先到达了接收端,这与一般数据链路层的传输概念不一样)。
过去OSI的观点:必须让数据链路层向上提供可靠传输。所以在CRC的基础上添加了帧编号、确认和重传机制。但是现在的通信链路的质量大大提高了,所以由于通信链路质量不好而引发的差错概率大大降低。所以现在的互联网采取了区别对待的方式:
- 对于数据链路质量较好的网络,数据链路层不使用确认和重传机制,如果数据出现了差错并且需要改正则由上层协议(如TCP协议)来完成。
- 对于数据链路质量较差的网络,数据链路层使用确认和重传的机制,数据链路层继续向上提供可靠的传输服务。
点对点协议PPP
在通信线路质量比较差的年代,使用高级链路控制协议HDLC来实现数据链路层的可靠传输。由于现在通信线路质量变好,所以简单的点对点协议PPP成为了目前使用最广泛的协议。
PPP协议满足的需求:
简单。使得协议在不同实现上的互操作性提高了。
封装成帧。PPP协议必须规定特殊字符为帧定界符。
透明性。PPP协议必须保证数据传输的透明性。
多种网络层协议。PPP协议必须要在同一条物理链路上支持多种网络层协议(如IP和IPX)的运行
多种类型链路。PPP协议还需要保证能在多种不同的链路上运行。
PPPoE(PPP over Ethernet)是一个运行在以太网上的PPP协议,该协议能够适应多种类型链路。差错检测。对帧进行检测,丢弃有差错的帧。
检测连接状态。PPP必须有一种机制能够及时地检测出链路是否处于正常工作的状态。
最大传送单元。PPP协议必须对每一种类型的点对点链路设置最大传送单元MTU的标准默认值。
网络层地址协商。PPP协议还必须提供一种机制使得通信的两个网络层的实体能够通过协商知道或者能够配置彼此的网络层地址。协商的算法应该尽可能简单,并且能在所有情况下协商出结果。
数据压缩协商。PPP协议必须提供一种方法来协商使用数据压缩算法。
PPP协议由三部分组成:
- 将IP数据报封装到串行链路的方法。PPP既支持异步链路,也支持同步链路。
- 一个用来建立、配置、测试数据链路连接的链路控制协议LCP(Link Control Protocol)
- 一套网络控制协议NCP(Network Control Protocol),其中的每一个协议支持不同的网络层协议,如:IP、OSI的网络层等。
PPP协议的帧格式:
- F(Flag) 表示标志字段, 其值为7E(01111110),对应的符号为0x,表示后面的字符是用十六进制表示的
- A为首部的地址字段,规定为FF(11111111)
- C为控制字段,值为0x03(00000011),定义还未给出
- 协议字段说明网络层所采取的协议,当协议字段为0x0021时,表示数据为IP数据报;若为0xC021则表示信息字段是PPP链路控制时的LCP数据;若为0x8021,则表示信息字段是网络层的控制数据
字节填充
当PPP使用异步传输时,它把转义符定义为0x7D(即0111),并使用字节填充。
填充方法:
- 把信息字段中出现的每一个0x7E字节转变成为2字节序列(0X7D,0x5E)。
- 若信息字段中出现一个0x7D的字节(即出现了和转义字符一样的比特把Ox7D转变成为2字节序列(0x7D,0x5D)。
- 若信息字段中出现ASCI码的控制字符(即数值小于0x20的字符),则在该字符前面要加入一个0x7D字节,同时将该字符的编码加以改变。例如,出现0x03(在控制字符中是“传输结束”ETX)就要把它转变为2字节序列(0x7D,0x23)。
零比特填充
PP协议用在 SONET/SDH链路时,使用同步传输(一连串的比特连续传送)而不是异步传输(逐个字符地传送)。在这种情况下,PPP协议采用零比特填充方法来实现透明传输。
步骤:发送端遇到5个连续的1,就立即填充一个0;接收端遇到5个连续的1就把之后的0删除。
PPP协议的工作状态
使用广播协议的数据链路层
广播信道可以进行一对多的通信。
局域网的数据链路层
局域网的优点:
- 具有广播功能,能方便地从一个站点访问全网
- 便于系统的扩展和逐渐演变,各个设备的位置可以灵活调整和改变。
- 提高了系统的可靠性、可用性和生存性。
局域网按网络的拓扑可分为:星型网、环状网、总线网。
CSMA/CD 协议
CSMA/CD协议的要点:
- 多点接入。许多计算机以多点接入的方式连接在一根总
- 载波监听。载波监听就是检测信道,不管在发送前还是发送中,每个站都必须不停地检测信道。
- 碰撞检测。边发送边监听,适配器边发送数据边检测信道上信号电压的变化情况。
传播时延对载波监听的影响:
以太网使用截断二进制指数退避算法来确定碰撞后的重传时机。
CSMA/CD要点总结:
以太网的MAC层
在局域网中,硬件地址又称为物理地址或者MAC地址(6字节)。指的是局域网中固化在适配器ROM中的地址。
MAC帧的格式
以太网v2的MAC帧格式:
IEEE802.3标准规定凡出现下列情况之一的即为无效的MAC帧:
- 帧的长度不是整数个字节
- 用收到的帧检验序列FCS查出有差错;
- 收到的帧的MAC客户数据字段的长度不在46-1500字节之间。考虑到MAC帧首部和尾部的长度共有18字节,可以得出有效的MAC帧长度为64~1518字节之间。
扩展的以太网
在物理层扩展以太网
用多个集线器将以太网连接起来:
在数据链路层扩展以太网
最初使用网桥
在数据链路层扩展以太网,网桥根据其收到的帧根据其MAC帧的目的地址进行转发和过滤。当网桥收到一个帧时,并不会向所有的接口转发此帧,而是根据此帧的目的MAC地址,査找网桥中的地址表,然后确定将该帧转发到哪一个接口,或者是把它丢弃(即过滤)。
后来就渐渐淘汰了网桥使用交换式集线器。交换式集线器又叫以太网交换机( switch)或第二层交换机(L2 switch)。
高速以太网
网络层
网络层的协议:
- IP协议
- 地址解析协议ARP
- 网际控制报文协议ICMP
- 网际组管理协议IGMP
将网络互相连接起来需要中间设备。根据中间设备所在的层次,可以分为以下几种中间设备:
- 物理层使用的中间设备叫转发器
- 数据链路层使用的中间设备叫网桥或者桥接器
- 网络层使用的中间设备叫路由器
- 在网络层以上使用的中间设备叫网关
互联网可以由多种异构的网络组成。
分类的IP地址
IP地址的编址方法经过了三个阶段。
- 分类的IP地址
- 子网的划分
- 构成超网
分类的IP地址:每个IP地址都由两个固定长度的字段组成。其中第一个字段是网络号,它标志主机或路由器连接的网络。一个网络号在互联网范围内必须是唯一的。第二个字段是主机号,它标志了该主机或路由器。主机号在它前面的网络号指明的网络内是唯一的。
使用点分十进制的方式表示IP地址:
IP数据报格式:
版本。表示IP协议的版本,目前常用的IP协议的版本为IPV4,所以该字段的值为4;对于IPV6网络,该字段的值为6
首部长度。
区分服务。目前该字段没有被用到
总长度。总长度占16位,所以数据报的最大长度为:65535字节。由于在数据链路层协议规定了最大的传输字段的长度,该长度称为MTU,一般大小为1500字节。
标识。占16位,标志发送短产生数据报的个数。
标志。占3位,目前只有前两位有意义。
- 标志字段中的最低位记为MF( More Fragment)。MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片中的最后一个。
- 标志字段中间的一位记为DF( Dont Fragment),意思是“不能分片”。只有当DF= 0时才允许分片。
片偏移。占3位,较长分组在分片后,某片在原分组中的相对位置。
生存时间。占8位,常用TTL来表示。目的:防止无法交付的数据报无限制地在互联网中兜圈子。
协议。占8位,指出此数据报携带的数据是采用何种协议,以便使的主机的IP层上交给哪个协议进行处理。
首部校验和。占16位。这个字段只检测数据报文的首部,但不包括数据部分。数据报每经过一次路由器都会重新计算一次首部校验和,不加入数据部分进行校验是为了减少计算的工作量。
源地址。占32位。
目的地址。占32位。
IP层转发分组的流程:
传输层
协议
传输层的两个主要协议:
- 用户数据报协议
UDP
- 传输控制协议
TCP
UDP
最求实时性,准确性可以次之。
TCP
TCP首部
- 数据偏移:占 4 bit,它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。“数据偏移”的单位不是字节而是 32 bit 字(4 字节为计算单位)
- 保留:占 6 bit,保留为今后使用,但目前应置为 0
- URG:紧急比特,当 URG = 1 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快处理(相当于高优先级的数据)
- ACK:确认比特,只有当
ACK=1
时确认号字段才有效;当ACK=0
时确认号无效 - PSH:推送比特(PuSH),接收 TCP 收到推送比特置 1 的报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都填满了后再向上交付
- RST:复位比特(ReSeT),当
RST=1
时,表明TCP连接中出现严重差错(如由于主机崩溃或者其它原因),必须先释放连接,然后再重新建立连接 - SYN:同步比特,同步比特SYN置为1,就表示这是一个连接请求或者连接接受报文
- FIN:终止比特(FINal),用来释放一个连接,当FIN为1的时候,表明此报文段的发送端的数据已经发送完了,要求释放运输连接
- 窗口:占2个字节。由接收方写入,接收方根据自己缓存空间的大小确定对方的发送窗口的上限。在未收到接收方的确认消息之前,发送方可以连续发送的字节数是多少
- 校验和:占2个字节。校验和检测范围包括首部和数据两个部分。在计算校验和时,需要在TCP报文段的前面加上12字节的伪首部。
- 紧急指针:占2个字节。紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。
- 选项字段:选项字段的长度是可变的。TCP只规定了一种选项,即最大报文段长度MSS(Maximum Segment Size)。MSS告诉对方TCP:“我的缓存所能接收的报文段的数据字段的最大长度是MSS个字节。”
- 填充字段:与选项字段一起构成32bit。
TCP建立连接(三次握手)
TCP建立连接的过程:
- A向B发送请求连接的报文段,其中SYN置为1,同时选择序号x,表明传送数据时的第一个数据字节的序号是x+1
- B接收到A发送的请求连接的报文段后,如果同意建立连接,则发回确认连接的报文。在确认连接的报文中,SYN应该置为1,同时将确认号置为x+1,同时自己选择序号y
- A接收到B发送的确认连接的报文段后,向B发回一个确认连接的报文。在A发送的确认连接的报文中,将确认号置为y+1,序列号为x+1(传送数据时的第一个数据字节的序号)
主要功能
- 传输层主要是通过
端口
来为应用进程之间提供端到端的逻辑通信
- 传输层还需要对收到的报文进行差错检测
应用层
参考
- 《计算机网络 第7版》谢希仁