《高级计算机网络》课程综述.docx
《《高级计算机网络》课程综述.docx》由会员分享,可在线阅读,更多相关《《高级计算机网络》课程综述.docx(17页珍藏版)》请在冰豆网上搜索。
《高级计算机网络》课程综述
《高级计算机网络》各专题总结
专题一计算机网络概述
1.计算机网络的发展
(1)电路交换网。
战争的需求往往会推动技术的发展。
最初,美国为了实现多个指挥中心之间的情报资源共享,将各个指挥中心互联在一起。
通过调制解调器将计算机数字信号调制为可在电话线路中传输的模拟信号,通过电话交换机将信号传输到目标计算机。
目标计算机再利用调制解调器将模拟信号解调为数字信号。
(2)分组交换网。
现在问题出现了。
每两台计算机在通信时要独占一条电话线路,随着通信计算机数量的增加,很快线路就会用尽交换机所有接口。
为实现线路共享,出现了分组传送技术和集线器。
多台计算机通过集线器可以共享一条电话线路,每台计算机将要传送的数据分割成若干数据包,采用分时、穿插的方式传送分组传送。
(3)TCP/IP。
随着计算机网络的普及,采用不同技术的网络相继出现。
它们之间的互联通信成为一个问题。
TCP/IP协议体系的出现,使得各局域网有了一个共同遵守的协议标准,从而实现了各局域网与Internat的互联。
(4)三层网络结构。
上网用户数量的激增,使得现有网络体系结构不能满足用户对网速的需求。
增加网络核心层汇聚路有点,可以使现有三层网络结构变得更加高效。
而随着网络的发展,电话网络、电视网络、计算机网络的“三网融合”成为下一代网络发展的目标。
2.网络体系结构模型
具有五层协议的网络体系结构既可以避免OSI七层协议体系结构的复杂不实用又可以填补TCP/IP协议体系结构的不完善。
该结构由物理层、数据链路层、网络层、传输层、应用层组成。
各层通常要实现以下一种或几种服务:
(1)差错控制:
使网络对端相应层次的通信更加可靠。
(2)流量控制:
使收、发信端速率相协调。
(3)分段和重装:
数据块的拆分和还原。
(4)复用和分用:
对底层链接的复用和分用。
(5)连接建立和释放:
数据交换前后逻辑链接的建立和释放
网络体系结构中,物理层的任务就是传送比特流。
具体用到的技术包括数据编码、数据调制、多路复用和数据交换。
数据编码技术有不归零制编码(用两个不同的电平表示0和1)和曼彻斯特编码(在每个时钟周期产生一个跳变,由高向低表示1,由低向高表示0)。
数据调制是指通过调制振幅、频率和相位等载波特性或者这些特性的某种组合将数字数据转化为模拟信号,基本的调制方式有:
幅移键控方式ASK、频移键控方式FSK、相移键控方式PSK。
多路复用是指利用一条物理信道同时传输多路信号。
多路复用技术包括频分多路复用、时分多路复用(同步和异步)、码分多路复用、波分多路复用。
数据交换是指如何实现两台连网计算机间的数据交换。
交换方式有如下三种方式:
(1)线路交换,在数据传送之前需建立一条物理通路,在线路被释放之前,该通路将一直被一对用户完全占有;
(2)报文交换,报文从发送方传送到接收方采用存储转发的方式,即发送站在发送一个报文时,把目的地址附加在报文上,途经的网络节点根据报文上的目的地址信息,把报文发送到下一个节点,通过逐个节点转送直到目的站点;
(3)报文分组交换报文被分成组传送,并规定了分组的最大长度,到达目的地后需重新将分组组装成报文。
下面分专题对数据链路层、网络层、传输层中涉及到的协议分别进行总结。
专题二数据链路层
数据链路层的基本服务包括:
为网络层提供良好的服务、成帧、差错控制、流量控制。
1.停止-等待协议
为实现链路层数据传输的流量控制,并实现可靠传输,停止-等待协议在发送方发出一帧后,就停下来等待接收方反馈一个确认帧,同时启动一个超时计时器,只有在超时周期内收到确认帧,才会发送下一帧。
若计时器失效时仍没有收到确认帧,发送重新发送未被确认的帧。
并且为了避免接收方收到重复帧,发送方为每一帧设置一个1位的发送序号,每发送新的一帧就将该帧发送序号加1。
这样,如果接收方收到发送序号相同的帧,就丢弃重复的帧,并向发送方反馈确认帧。
停止等待协议的执行过程如图2-1。
图2-1
停止-等待协议的优点是过程简单、易于程序实现;缺点是对通信信道的利用率不高,数据传输效率低。
现举例说明停止-等待协议的过程。
A给B发了一条短信,内容是“请于2011年11月12日下午2:
00到政治处开会。
请在15分钟内回复”。
发完后A就等待B的回复短信,如果15分钟内没收到回复,A就将刚才短信重发一次;15分钟内收到恢复,则继续布置后续任务。
B在看到A的短信后,马上回复一条短信“收到”。
如果看到后忘了及时给A回复,他会在一段时间后收到A的重复短信。
B一看是重复短信,就删除一条,并及时给A回复。
2.连续ARQ协议
为了提高数据传输速率,在停止-等待协议的基础上,连续ARQ协议在发送完一个数据帧后,不是停下来等待确认帧,而是可以连续再发送若干个数据帧。
每发送完一个数据帧时都要设置该帧的超时计时器。
如果在所设置的超时时间内收到确认帧,就立即将超时计时器清零。
但若在所设置的超时时间到了而未收到确认帧,就要重传相应的数据帧。
接收端只按序接收数据帧,丢弃不按序的帧和差错帧。
该协议存在一个明显的问题。
在未被确认的数据帧的数目太多时,只要其中一帧出错,它后面正常到达的数据帧都需要重传,这是对时间和资源的极大浪费。
现举例说明该协议。
每次发军装我们都是带队到仓库前,为了提高效率,按照事先制定的名单顺序5人一组到仓库里领,每组最后一名出来后下一组进去(一次按序号发送多帧)。
这比起单个人领(停止等待)要快,但是仓库班长严格按名单顺序来,其中一名同学衣服发错了都不会给下一名同学发。
(一帧出错,后面到达的帧都不会接收)过程展示如图2-2。
图2-2
3.选择重传协议
为了解决连续ARQ协议中出现的问题,选择重传协议中,接收方若发现某一帧出错,对后面送来的一定数量的正确的帧虽然不能立即送主机,但仍可收下来,放在一个缓冲区中,同时要求发送方重新传送出错的那一帧,一旦收到重传的帧后,就可以与原先已收到但暂存在缓冲区中的其余帧一起按正确的顺序送到上一层。
引入滑动窗口的概念,发送窗口对应当前允许发送或已发送等待确认的帧的序号,接收窗口对应接收方允许接收的帧的序号。
若发送过程中某帧出错,则接收方请求发送方重传此帧,并继续接收落在接收窗口内的其他帧,等待重传帧到达后将窗口内的帧按序递交给网络层。
选择重传协议提高了数据传输效率。
但是当窗口较大时,会占用较多的链路层内存。
现举例说明该协议。
在上例中,后来换了个班长,他在发衣服时,如果碰到某个同学发衣服时出问题比如对应型号没有了(帧丢失或破坏),他会让这个同学改天再来(重传),然后继续给后面的同学发衣服(继续接收后面的正确的帧)。
4.HDLC(High-levelDataLinkControl)协议
HDLC协议采用了序号和确认机制,使用零比特填充法,可传送任意组合的比特流,即实现数据链路层的透明传输。
在发送端,当一串比特流数据中有5个连续1时,就立即填入一个0,从而使数据流中不会出现标识字段F。
在接收帧时,先找到F字段以确定帧的边界。
接着再对比特流进行扫描。
每当发现5个连续1时,就将其后的一个0删除,以还原成原来的比特流。
5.PPP(Point-to-PointProtocol)协议
PPP是现在全世界使用得最多的数据链路层协议。
用户使用拨号电话线接入因特网时,一般都是使用PPP协议。
PPP协议由三个组成部分:
成帧、链路控制协议LCP、网络控制协议NCP。
PPP成帧采用字符填充法,将信息字段中出现的每一个7E字节转变成为2字节序列(7D,5E)。
若信息字段中出现一个7D的字节,则将其转变成为2字节序列(7D,5D)。
为了建立点对点链路通信,PPP链路的每一端,必须首先发送LCP包以便设定和测试数据链路。
在链路建立、LCP所需的可选功能被选定之后,PPP必须发送NCP包以便选择和设定一个或更多的网络层协议。
PPP没有采用序号和确认机制(尽最大努力的交付),原因包括:
在数据链路层出现差错的概率不大时,使用比较简单的PPP协议较为合理;数据链路层的可靠传输并不能够保证网络层的传输也是可靠的;帧检验序列FCS字段可保证无差错接受。
6.CSMA/CD(载波监听多点接入/碰撞检测)协议
在以太网中,多个用户共同使用一条总线。
为了避免多个竞争的用户同时发送数据造成帧的碰撞,实现共享信道的动态多点接入,需要使用CSMA/CD协议。
该协议的主要过程如下:
(1)先听后发。
主机A发送帧之前,首先检测信道上的信号电压大小,以此判断信道是否空闲,若信道忙,则等待;若信道空闲,则开始发送帧。
(2)边听边发。
主机A边发送帧边检测信道信号电压,若从帧发送开始到争用期内未检测到碰撞,那么在此帧发送过程中就不会发生碰撞。
(3)冲突停止。
若在争用期内发生碰撞,则立即停止发送帧,并发送人为干扰信号,通知信道上其它主机。
此时发去去的帧一定小于64字节(以太网把争用期定位51.2μs,10Mb/s),是无效帧。
(因此以太网规定最短有效帧长为64字节)
(3)动态退避后重发。
如果发生碰撞,主机A执行截断二进制指数退避算法,等待一定时间后,重新获得发送权,返回到
(1)。
具体的退避算法是:
首先,确定基本退避时间,它就是争用期2τ(即51.2μs);然后定义常数k=Min[重传次数,10],从整数集[0,1,···,(2k-1)]中随机取一个数r,则重传需等待的时间就是r倍的的争用期;若重传16次仍不能成功,则丢弃该帧,并向高层报告。
使用CSMA/CD协议的以太网只能进行半双工通信,每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能性。
这种发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率
现举例说明该协议。
下课后,同学们纷纷走出教室(多点接入,共享信道),但门口同一时刻只能容一人通过。
学生通过门口的时间都是随机的。
每个同学想出去时,都会事先看看门口有没有人,如果有同学已经到门口,那么他就要再等一会儿,如果没有,他就往门口走(先听后发);在走的过程中他会留意有没有其他同学往门口走,在到达门口前没有的话,他就能顺利通过(边听边发,争用期);如果两个同学同时发现门口没人,又同时走到了门口,他们就无法通过门口(冲突停止);这时,他们肯定都会后退一步,随机等待一小段时间再过(随机等待后重发)。
7.CSMA/CA(载波监听多点接入/碰撞避免)协议
无线局域网中,使用CSMA/CD协议就不合适了:
无线信道中,边听边发难以实现;即使能够检测,容易出现隐蔽站和暴露站问题,这就需要对协议进行改进,CSMA/CA协议很好的解决了无线局域网的多点接入。
具体实现过程如下:
(1)源站A在发送数据帧之前先发送一个请求发送帧RTS(RequestToSend),它包括源地址、目的地址和这次通信(包括相应的确认帧)所需的持续时间,其实这就是通过虚拟载波监听实现了先听后发;
(2)若空闲,目的站B就发送一个响应帧CTS(ClearToSend),它包括这次通信所需的持续时间、源地址、目的地址;
(3)收到CTS帧后,A就可以发送数据帧了;
(4)当一个站检测到正在信道中传送的MAC帧首部的“持续时间”字段时,就调整自己的网络分配向量NAV(NetworkAllocationVector),确定何时可进入信道,NAV指出了必须经过多少时间才能完成这次数据帧的传输,才能使信道转入到空闲状态。
图2-3直观的描述了CSMA/CA协议的工作过程。
图2-3
现举例说明该协议。
男生A看上了女生B,并开始追求该女生(广播发送请求帧RTS),女生B直到A在追自己后感觉A还可以,便答应跟他处一段时间(广播响应帧CTS),其他喜欢该女生的男生在看到他俩在一起后就不再追B了(虚拟载波监听)。
某一天A和B分手了(结束通信,进入争用窗口),于是其他男生便伺机追求B。
专题三网络层
网络层的工作是控制数据分组经由网络路径传输到目标端,具体包括拆分TCP数据报,封装IP数据包,编址,地址转换,路由选择。
网络层提供的是不可靠、无连接的、尽最大努力交付的服务。
1.ARP(AddressResolutionProtocol)地址解析协议
根据IP协议,网络层使用的是32位的IP地址,但网络层IP数据包传到数据链路层成帧时必须要使用MAC地址,如何通过目标设备的IP地址映查询其对应的MAC地址,就要使用ARP地址解析协议。
采用ARP协议,每一个主机都设有一个ARP高速缓存(ARPcache),里面存有所在的局域网上的各主机和路由器的IP地址到MAC地址的映射表,且该表经常动态更新。
但在主机刚开机时,它无法获知其它主机的MAC地址,缓存是空的。
这时,如果主机A如果想和同一局域网内的B通信,那么A会向所在局域网广播一个ARP请求分组,其中包含了自己的IP地址、MAC地址以及目标主机的IP地址。
局域网内其它主机收到后发现不是自己的IP,就会忽略该分组;目标主机B在接收该分组后,明白了A的意思,于是向A发送ARP响应分组,其中包含自己的IP地址和MAC地址,而且,B可以顺便把A的IP-MAC地址映射添加到其ARP缓存中。
A在收到B的响应后,就可以把B的IP-MAC地址映射添加到自己的ARP缓存中。
从上我们可以看出,ARP只能解决同一个局域网中的主机或路由器的IP地址和硬件地址的映射问题。
对于不同局域网中的主机通信,继续使用ARP显然不现实。
这时,主机A找到一个位于本局域网上的某个路由器的MAC地址,然后把分组发送给这个路由器。
路由器在下一个局域网内用ARP找到目标主机的MAC地址。
现举例说明ARP协议。
学员队某区队同学A要找一个叫B的同学。
首先,他在全区队同学面前喊“谁是B,你的学号是多少”(本局域网内广播求MAC地址),这时如果区队内有一个叫B的同学,他会站出来跟A说“我是B,学号是0001”,此后A就知道B的学号了(目标主机在同一局域网内);若B不在该区队,那么他就跟区队长说“我需要B的学号”(目标主机不在同一局域网中,向局域网中的路由器发请求),区队长到另外一个区队喊“谁是B,你的学号是多少”(在另一局域网内继续ARP)。
2.RIP(RoutingInformationProtocol)地址解析协议
数据链路层向网络层提供的服务是点到点的,并没有解决分组在网络中传输的选路问题,而RIP则为我们提供了路由选择的一种方式。
RIP协议属于内部网关协议(IGP),是一种分布式的基于距离向量的路由选择协议。
RIP协议要求网络中的每一个路由器都维护一个从它自己到自治系统内其它目的网络的路由表,表中字段包括目的网络地址N、最短距离d、下一跳路由器地址X。
从一个路由器到非直接连接的网络的距离(跳数)定义为:
所经过的路由器数+1。
RIP认为好的路由就是经过的路由器少。
初始时,每个路由器的路由表中仅有该路由器到直接连接的网络的路由信息,RIP通过交换路由信息的方式维护路由表。
每个路由器按固定时间间隔仅和相邻路由器交换自己的路由表,根据收到的路由信息更新路由表。
经过若干次的更新后,所有路由器都会知道自己到达自治系统中每个网络的最短距离以及下一跳路由器地址。
更新路由表时使用的距离向量算法如下:
(1)对地址为X的相邻路由器发来的路由信息进行修改:
把“下一跳”字段中的地址都改为X,并把所有“最短距离”字段值加1,“目的网路N”字段不变;
(2)对于路由信息中每一项(N,d+1,X),若自己路由表中没有目的网络N,则把该项添加到路由表中;若自己路由表有目的网络N,且下一跳地址也是X,则把该项“最短距离”值替换为d+1;若自己路由表有目的网络N,但下一跳地址不是X,若距离大于d+1,则将该项下一跳地址改为X,距离改为d+1;否则不做修改。
RIP协议最大的优点就是实现简单,代价小;但它能使用的最大距离为15,因此限制了网络规模;当网络出现故障时,需要经过较长时间才能将此信息传到所有路由器,即好消息传得快,坏消息传的慢;跳数并不能完全反映路由代价。
现举例说明RIP协议。
邮局在邮递一封信时,首先本地区邮局拿到信后(路由器收到本网络内IP数据包),根据邮编查找我们要到达的地区(根据IP地址查看所属网络),并查处到该地区最少转递次数(从路由表中找到到达该网络的最少跳数),以及要实现最少转递次数接下来应把信转递给哪个邮局(下一跳路由器地址)。
下一个邮局继续照此转递,直到信被送达收信方(途径每个路由器都要查表,根据表项选择下一跳路由器地址)。
3.ICMP传输控制协议
ICMP用于控制IP数据报在网络中的传输,以提高IP数据报成功交付的机会。
该协议通过允许主机或路由器报告差错情况和提供有关异常情况的报告,实现对网络的监控。
ICMP报文分为询问报文和差错报告报文。
前者包括回送请求和回答报文、时间戳请求和回答报文、掩码地址请求和回答报文。
后者的差错类型包括目标不可达、源站抑制(拟制分组传输)、时间超过(TTL域到达0)、参数问题(无效的头域)、改变路由(重定向)等。
ICMP协议就像一个适时反馈协议。
在现实中,我们网购后快递的邮寄过程就跟ICMP一样。
在各个中转站(路由器)快递员都要通过扫描快件(时间戳),记录快件邮递状态,这样买家和卖家都可以随时查看快件邮寄状态。
寄到后如果买家没有签收,说明快件有问题,就要向卖家反应(差错报告)。
专题四传输层
传输层提供应用进程间的端到端的逻辑通信,它属于面向通信部分的最高层,同时也是用户功能中的最低层。
应用层不同进程的报文通过不同的端口(16位)向下交到传输层,从而实现了传输层的复用和分用功能,端口的作用就是用来标志应用层不同进程。
根据应用程序的不同需求,传输层提供了两种不同的传输协议,即面向连接的TCP和无连接的UDP。
1.UDP(UserDatagramProtocol)用户数据报协议
UDP提供的是不可靠的、无连接的服务,发送之前通信双方不需要建立连接,接收方也不需要给出确认,因此该协议尽最大努力交付,且没有拥塞控制,这对某些实时通信是很重要的。
这也使得UDP的首部占用字节较少。
UDP用户数据报首部格式如图4-1:
图4-1
UDP首部只有8个字节,共4个字段。
源端口和目的端口在双方应用进程通信时使用。
长度表示的是UDP用户数据报的长度,检验和,检验数据报在传输中是否有错,有错就丢弃。
伪首部并不被发送,只是在计算检验和时把伪首部和数据报连在一起,以确保可靠无差错的传输。
现举例说明UDP协议。
在日常生活中,我们在发短信时,往往不会事先说“我要给你发短信了,你一定要开机等我短信”,而是想起来就直接发送了。
而且发送之后就什么也不管了。
2.TCP(TransmissionControlProtocol)传输控制协议
TCP是传输层可靠的、面向连接的协议,采用序号和确认机制提供端到端的可靠的、按序递交的通信。
TCP不支持多播或广播传送,且TCP连接是全双工的。
此外,TCP还要实现流控制和差错控制。
TCP报文首部格式如图4-2。
图4-2
TCP报文首部固定长度为20字节。
各字段作用:
(1)端口,用来标识不同应用进程。
传输层的复用和分用功能都要依赖端口。
(2)序号,TCP连接中传送的数据流中的每一个字节都编上一个序号。
序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。
序号用于保证按需递交。
(3)确认号,是期望收到对方的下一个报文段的数据的第一个字节的序号,这是一种捎带确认机制,因此实现了可靠传输。
(4)窗口,在确定自己的接收窗口大小后,通过窗口通知对方以确定对方的发送窗口的上限,从而完成流量控制。
(5)数据偏移,指明了TCP首部包含多少个32位。
(6)选项,告知对方最大报文段长度。
(7)URG,当URG1时,表明紧急指针字段有效,有紧急数据须优先传送。
(8)紧急指针,指出在本报文段中紧急数据的最后一个字节的序号(紧急数据首字节位于报文段开始)。
(9)ACK,只有当ACK1时确认号字段才有效;当ACK0时,确认号无效。
(10)PSH,接收TCP收到PSH=1的报文段,就优先将其上传至应用层进程,而不再等到整个缓存都填满后再交付。
它和URG分别对应发送方和接收方。
(11)RST,当RST1时,表明TCP连接中出错,须释放连接后重新连接。
(12)SYN,SYN=1表示这是一个连接请求或连接接受报文。
(13)FIN,FIN1表明此报文段的发送端的数据已发送完毕,并要求释放传输连接。
(14)检验和,提供TCP首部的差错检验,计算时加上伪首部确保可靠。
TCP首部有20字节的固定长度,为面向连接、确认机制、流控制、重传机制提供了条件。
下面介绍TCP连接通信过程。
TCP建立连接实行三次握手,如图4-3。
图4-3
(1)客户端A端口首先发送一个请求连接的TCP报文段到服务器端口B,报文首部SYN标志位置1;
(2)B若空闲,则发送确认连接的TCP报文段到A,报文首部传输标志位SYN、ACK置1;
(3)A继续对连接响应进行确认,双方连接建立。
TCP释放连接实行四次交互,如图4-4。
图4-4
(1)当A数据发送完毕后就可以像B发送终止连接的TCP报文段,首部FIN标志位置1;
(2)B对A的请求给出确认,但仍可向A发送数据,A只回复确认报文;
(3)B的数据也发送完了,给A发送断开连接的请求报文,同样首部标志位FIN置1;
(4)A给出确认后,双方释放链接。
现举例说明TCP协议。
张三要给李四打电话,为了确保不出差错,在接通后,张三通常会问“我是张三,请问是李四吗?
”(发送连接请求),李四听到后,马上回答“哦是张三啊,我是李四,什么事”(对连接请求进行确认,同意建立连接),张三接着回答“是这样的,···”(给出确认,双方建立连接,开始通信)。
这其实就是三次握手的过程。
张三的话说完了,对李四说“我要说的就这么多,可以挂了”(发送断开连接的请求)。
李四回答说“好的,不过我还有事要跟你说,···”(给出确认的同时,单向传送数据),李四说什么,张三都会说“好的”(确认)。
直到李四说“我也没事了,拜拜”(断开连接的请求),张三回答“拜拜”(确认),双方就可以关电话了(释放链接)。
图4-5直观地展示了该过程。
图4-5
专题五各层设备工作原理
网络体系结构各层形成的数据包最终都要通过相应的物理设备进行发送,并实现相关协议。
现就各层用到的设备及其原理、特点进行总结,从中比较各设备的异同点,加深对各协议的理解。
1.集线器
集线器工作在物理层,就像把共享信道集成到一个盒子里,通过盒子的若干端口连接不同主机,在逻辑上仍是一个总线网,各工作站使用的还是CSMA/CD协议。
工作原理:
假定在使用集线器的以太网中,终端1要将一条信息发送给终端2,当终端1的网卡将信息通过双绞线送到集线器上时,集线器并不会直接将信息直接送给终端2,而是将信息进行“广播”,同时发送给它连接的所有端口。
当每个端口上的计算机接收到这条广播信息时,其网卡会对信息进行检查,如果发现该信息是发给自己的,则接收,否则不予理睬。
通过上述,得出集线器在使用时的特点:
主机共享设备,导致数据传输效率低;采用广播方式传输数据(盲目的转发),只能是半双工模式。
2.二层交换机
交换机内存储有网内所有主机MAC地址和物理端口对应表,它根据所传递信息包的目的地址,查询此表,自动将每一信息包独立地从源端口送至目的端口,避免了和其他端口发生碰撞。
工作原理:
当交换机从某个端口收到一个数据包,它先读取包头中的源MAC地址,这样它就知道源MAC地址的机器是连在哪个端口上的;接着再去读取