1.端系统和网络核心、协议
处在因特网边缘的部分就是连接在因特网上的所有的主机。这些主机又称为端系统(end system)
网络核心部分要向网络边缘中的大量主机提供连通性,使边缘部分中的任何一个主机都能够向其他主机通信(即传送或接收各种形式的数据)。
在网络核心部分起特殊作用的是路由器(router)。
路由器是实现分组交换(packet switching)的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能。
注:分组交换主要有两类,一类叫做路由器,一类叫作链路层交换机。两者的作用类似,都是转发分组,不同点在于转发分组所依据的信息不同。路由器根据分组中的IP地址转发分组,链路层交换机根据分组中的目的MAC地址转发分组。
用于网络核心的交换技术主要有两种:电路交换(circuit switching),分组交换(packet switching)
协议(protocol)是通信双方共同遵守的规则,主要用于指定分组格式以及接收到每个分组后执行的动作。
2.两种基本的服务
(1)面向连接的服务
保证从发送端发送到接收端的数据最终将按顺序、完整地到达接收端
面向连接服务的过程包括连接建立、数据传输和连接释放3个阶段。在数据交换之前,必须先建立连接;数据交换结束后,必须终止这个连接。传送数据时是按序传送的。
有握手信号,由tcp提供,提供可靠的流量控制和拥塞控制
(2)无连接服务
对于传输不提供任何保证
在无连接服务的情况下,两个实体之间的通信不需要先建立好一个连接,因此其下层的有关资源不需要事先进行预定保留。这些资源将在数据传输时动态地进行分配。
无连接服务的特点是无握手信号,由udp提供,不提供可靠的流量控制和拥塞控制,因而是一种不可靠的服务,称为“尽最大努力交付”。面向连接服务并不等同于可靠的服务,面向连接服务时可靠服务的一个必要条件,但不充分,还要加上一些措施才能实现可靠服务。
目前Internet只提供一种服务模型,”尽力而为”,无服务质量功能
3.复用技术
概念:是指能在同一传输媒质中同时传输多路信号的技术,目的提高通信线路的利用率。
频分复用(FDM)的所有用户在同样的时间占用不同的带宽资源。
时分复用(TDM)则是将时间划分为一段段等长的时分复用帧(TDM 帧)。每一个时分复用的用户在每一个 TDM 帧中占用固定序号的时隙。利用不同的时隙传送不同的信号。
统计时分复用(STDM)在时分复用的基础上根据实际情况“按需分配”。
4.交换技术
交换‖(switching)就是按照某种方式动态地分配传输线路的资源。
1、电路交换: 在通信进行过程中,网络为数据传输在传输路径上预留资源,这些资源只能被这次通信双方所使用;
2、分组交换:数据被分成一个一个的分组,每个分组均携带目的地址,网络并不为packet传输在沿途packet switches上预留资源,packet switches为每个packet独立确定转发方向.
与电路交换不同,链路、交换机/路由器等资源被多个用户所共享,交换机在转发一个分组时的速度为其输出链路的full速度。
注:分组交换一般采用存储转发技术,分组在分组交换机中会经历一个排队(queuing)延迟。排队延迟与交换机的忙闲有关,大小可变。 如果分组到达时缓存已满,则交换机会丢掉一个分组。分组交换网络有两大类1、Datagram(数据报)网络2、Virtual Circuit虚电路网络
3、报文交换
将形成的报文发送给结点交换机,结点交换机把收到的报文存储并送输入队列等待处理。结点交换机再依次对输入队列中报文做适当处理,然后根据报文头中的目的地址选择适当的输出链路。若链路空闲,便将报文发送下一个结点交换机;若输出链路正忙,则将报文送该链路的输出队列等待发送。这样,通过多次转发直至报文到达指定目标。
5.通讯介质及特点
导向传输媒体:双绞线、同轴电缆、光纤
非导向传输媒体:无线电通讯
1.双绞线(Twisted-Pair Copper Wire) 抗电磁干扰,模拟传输和数字传输都可以用
2.同轴电缆(Coaxial Cable)广泛用于闭路电视中,容易安装、造价较低、网络抗干扰能力强、 网络维护和扩展比较困难、电缆系统的断点较多,影响网络系统的可靠性。
3.光纤(Fiber Optics)传输损耗小,抗雷电和电磁干扰性好,保密性好,体积小,质量轻。
4.无线电通讯(Radio)用无线电传输,优点:通讯信道容量大,微波传输质量高可靠性高,与电缆载波相比,投资少见效快。缺点:在传播中受反射、阻挡、干涉的影响。
6、常见网络接入技术
接入网络指连接Host到边界路由器的物理链路(last mile),分为家庭接入、单位接入和无线接入三类。
早期家庭上网通常使用拨号网络,利用调制解调器在普通电话线最多以56kbps的速率传输数据,此时在边界路由器处也需要一MODEM。因此,此时的接入网络是包括一对MODEM和一条点对点的电话线。由于速率较低,打电话和上网不能同时进行。
目前许多家庭使用宽带接入技术,如xDSL和HFC。
xDSL也是在模拟电话线路上传输数字信号,它使用了一种新的调制解调技术并且限定了最大传输距离,因此可以以更高速率进行数据传输。利用ADSL,打电话和上网可以同时进行,两者互不影响。ADSL之上行速率和下行速率不同。上行链路速率可达1Mbps,下行链路速率可达10Mbps。DSL使用频分多路复用技术,将通信链路分为三个频率互不覆盖的信道,分别为:
1、0~4KHz 的双向语音信道
2、4KHz~ 50KHz的上行数据信道
3、50KHz~1MHz的下行数据信道
另外一种宽带家庭接入网络技术是HFC。HFC与DSL技术不同,HFC在现有的广播有线电视系统基础上发展而来。在有线电视系统中,位于线缆头部的电视台向所有用户广播电视信号,电视信号沿电视台-〉用户方向进行传输和放大。HFC(混合光纤同轴电缆网 )中,Host需要使用叫做线缆Modem的设备接入网络, Cable Modem将link分成上行和下行两个信道。由于信道是在多个用户之间所共享,因此存在拥塞和网络规模问题。与ADSL类似,HFC的上行信道速率要低于下行信道速率,并且整个信道被所有用户所共享。而ADSL使用的是Point to Point信道,是专用信道。
无线局域网(WLAN)技术是通过基站传输的网络接入技术,基站与有线网相连的。目前该系列包含三种标准:802.11a(2Mbps)、802.11b (11Mbps)以及 802.11g (54Mbps)。
7、延时分类
1、传输时延(发送时延 )
发送数据时,数据块从结点进入到传输媒体所需要的时间。也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。
2、传播时延
电磁波在信道中需要传播一定的距离而花费的时间。 信号传输速率(即发送速率)和信号在信道上的传播速率是完全不同的概念。
3、处理时延 :交换结点为存储转发而进行一些必要的处理所花费的时间。
4、排队时延 :结点缓存队列中分组排队所经历的时延。排队时延的长短往往取决于网络中当时的通信量。
注:排队延迟是节点延迟中最复杂、也是最有趣的部分。之所以最有趣,指目前或多研究工作就是针对排队延迟来进行的,包括调度算法、缓存策略等。 排队延迟与网络设备的负载状况密切相关,不同分组所经历的排队延迟会随着负载的变化而变化
关于发送延迟和传播延迟,容易弄混。需要记住,传输延迟指将一个分组所有bit发送到link上所需的时间,与分组长度和发送速率有关,与两点之间的距离没有任何关系。而传播延迟指一位从链路的一端传播到另一端所需的时间,与link的长度和信号的传播速度有关。
8、TCP/IP的体系结构
1)层次、功能、层次之间的关系
2)每层数据包的名称
3)每层地址
4)接口、协议、服务
至上而下分为:
应用层:包含大量应用普遍需要的协议(如HTTP FTP SMTP DNS等);应用传递的数据包叫做报文。
传输层:负责从应用层接收消息,并传输应用层的message,到达目的后将消息上交给应用。传输层的数据包叫做segment(段)
此层协议有TCP UDP。
网络层:源Host的传输层协议负责将segment交给网络层,网络层负责将segment传输到目的host的传输层,网络层的数据包
叫做datagram(数据报)此层协议有IP。
链路层:网络层负责在源和目的之间传递数据,链路层负责将packet从一个节点传输到下一个节点。链路层传输数据的单位叫
做Frame(帧)此层协议有Ethernet、WiFi、PPP协议。
物理层:Link层负责将一个Frame从一个Node传递到下一个Node,物理层负责将Frame中的每一位(bit)从链路的一端传输到
另一端,物理层传输数据的单位叫做bit(比特)。
另一端,物理层传输数据的单位叫做bit(比特)。
数据报的名称 | 功能 | 层次之间的关系 | 每层地址 | ||
5 | 应用层 | Message报文 | 支持网络应用 |
一层嵌到另一层 (每一层次都从上层的导数据, 加上首部信息形成新的数据单元, 将新的数据单元传递给下一层) |
不同的应用有不同的地址 |
4 | 传输层 | Segment报文段 | 负责应用进程间的通讯 | 端口号 | |
3 | 网络层 | Datagram数据段 | 从源到目的地数据报的路由 | Ip地址 | |
2 | 链路层 | Frames帧 | 相邻节点之帧转发 | 网卡地址 | |
1 | 物理层 | 无数据包 | 比特转发 | 无 |
互联网是个异常复杂的系统,包括硬件软件,包括应用、协议、端系统、不同种类的通信介质、路由器/交换机等。Internet的体系结构也采用的分层结构, Internet的每一层也是利用本层或下层功能为上层提供一种或多种服务。
应用层的地址不止有IP地址还有端口号,传输层、网络层为IP地址,链路层、物理层的地址为MAC地址。 接口在两层之间,协议是同层之间的,服务是下层为上层提供的。
9.应用结构:client/server、P2P、Hybrid of C/S和P2P
客户服务器方式所描述的是进程之间的服务和被服务的关系。
客户是服务的请求方,服务器是服务的提供方。
Client/Server的好处是系统管理容易,问题是Server容易成为系统的bottleneck瓶颈.
P2P中,没有在C/S中处于中心地位的Server,所有Host的地位平等,叫做Peers,因此这种系统也叫Peer to Peer.
P2P中没有必须always on的服务器,并且peer可以随时更换自己的IP。Gnutella是Pure P2P的一个很好的例子。 P2P的最大好处是系统可扩展性(scalability)强。由于每个peer既是Server又是Client, 随着系统中Peer的数量增多,系统的处理能力越强。
P2P的问题是可管理性,由于系统是完全分散的、无中心的,管理起来极其困难。
Hybrid of C/S和P2P即以上两种方式的结合。
10.常见的应用、服务要求和底层协议
部分网络应用的要求:
应用 | 数据丢失 | 宽带 | 时间敏感 |
文件传输 | 不能丢失 | 弹性 | 不 |
电子邮件 | 不能丢失 | 弹性 | 不 |
Web文档 | 不能丢失 | 弹性(几kb/s) | 不 |
实时音频/视频 | 容忍丢失 | 音频(几kb/s) 视频(10kb/s~5mb/s) | 是,100ms |
存储音频/视频 | 容忍丢失 | 同上 | 是,几秒 |
交互游戏 | 容忍丢失 | (几kb/s~10kb/s) | 是,100ms |
即时讯息 | 不能丢失 | 弹性 | 是和不是 |
流行的因特网应用及其应用层协议和下面的运输协议
应用 | 应用层协议 | 下面的运输协议/底层协议 |
电子邮件 | Smtp | tcp |
远程终端访问 | telnet | tcp |
Web | http | tcp |
文件传输 | ftp | tcp |
远程文件服务器 | Nfs | Udp或tcp |
流媒体 | 通常专用,如real network | Udp或tcp |
因特网电话 通常专用,如dlalpad 典型udp
11.HTTP通讯 超文本传输协议
HTTP主要规定了message的结构和client和server交换message的方式。
1)B/S的通讯过程、无状态 2)流水线协议和非流水线协议
3)持续和非持续方式 4)代理服务器、cookie
1.
1) Browser首先建立与Server的TCP连接
2) 连接建立起来后,browser和server就向/从Socket发送/接收HTTP的消息。借助TCP的reliable data transfer,HTTP知道消息肯定会到达对方,这就是协议分层的好处。
HTTP是一种stateless(无状态)协议,server不保存任何client的任何状态信息。如果server在很短的时间内从browser接收到对某个object的两次请求,server就会发送两次response。
2. 非流水线方式:客户在收到前一个响应后才能发出下一个请求。这比非持续连接的两倍 RTT 的开销节省了建立 TCP 连接所需的一个 RTT 时间。但服务器在发送完一个对象后,其 TCP 连接就处于空闲状态,浪费了服务器资源。
流水线方式:客户在收到 HTTP 的响应报文之前就能够接着发送新的请求报文。一个接一个的请求报文到达服务器后,服务器就可连续发回响应报文。使用流水线方式时,客户访问所有的对象只需花费一个 RTT时间,使 TCP 连接中的空闲时间减少,提高了下载文档效率。
3. 1、非持续连接:建立一次TCP连接,browser和server通过此连接只传输一个request消息和一个respond消息 2、持续连接:建立一次TCP连接,browser和server通过此连接可以传输多个request消息和多个respond消息
4. 代理服务器(proxy server)又称为万维网高速缓存(Web cache),它代表浏览器发出 HTTP 请求。万维网高速缓存把最近的一些请求和响应暂存在本地磁盘中。当与暂时存放的请求相同的新请求到达时,万维网高速缓存就把暂存的响应发送出去,而不需要按 URL 的地址再去因特网访问该资源。
Cookie定义如下:Cookie是Web服务器保存在用户硬盘上的一段文本,Cookie允许一个Web站点在用户的电脑上保存信息并且随后再取回它。信息的片断以‗名/值‘对(name-value pairs)的形式储存。
注:Web Cache比Server更靠近Client,即使只从延迟上将也会减小服务响应时间;
利用Cache可以减小响应延迟,但Web Cache引入了一个新问题:即Web Cache中保存的对象可能与原始服务器中保存的对象不同。
12.DNS的作用以及两种查询方式
DNS 是域名解析系统 (Domain Name System) 的缩写,它是由解析器和域名服务器组成的。用于便于人们使用的机器名字转换为IP地址
两种查询方式:
1、主机向本地域名服务器的查询一般都是采用递归查询。如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文。
2、本地域名服务器向根域名服务器的查询通常是采用迭代查询。当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器:―你下一步应当向哪一个域名服务器进行查询‖。然后让本地域名服务器进行后续的查询。
13.传输层的作用
传输层位于网络层和应用层之间,是网络分层模型的核心。传输层负责运行在不同Host上应用进程之间的通信。
14. UDP的服务特点
UDP是一种无连接的、轻量级传输层协议,提供了最最健的服务模型。没有连接,直观上就应该比TCP更高效。
1、不可靠的数据传输:发送端将数据Push入UDP Socket后,UDP并不保证数据最终会到达接收端,即使到达也不保证是按序到达;
2、没有congestion control机制:发送方可以以任意的速率向网络中发送数据,不管网络的拥塞状况。但发送的数据可能最终到达不了接收方,产生丢包。
优点:
1、应用可更好控制何时发送何种数据:无须建立连接,UDP可尽快将消息发给网络层;TCP可能需要重传在规定时间内没有到达的Segment。UDP没有建立连接所引入的延迟,这可能是DNS选择UDP而不是TCP的最主要原因。
2、实现简单:UDP因为是无连接的,Host因而无须维护连接状态,实现简单;
3、头部开销小:UDP的Segment头部字段共8个字节;而TCP的头部共包括20个字节.
15.可靠性传输原理
可靠性传输原理是由rdt1.0 rdt2.0 rdt2.1 rdt2.2 rdt3.0一步步累加而来的。
rdt1.0:接收方无返回确认信息
rdt2.0:接收方进行检错,并发送ACK 或NAK反馈给发送方 rdt2.1:加入序列号0和1
rdt2.2:接收方不再发NAK而将ACK中加入序列号
rdt3.0:发送方引入定时器
以上都是停等式(stop-and-wait)协议为了解决stop-and-wait协议低效问题的方法非常简单,就是允许发送方可以在等待
流水线技术对可靠数据传输协议的影响:
1、更大的序列号范围。连续发送的并且是还没有得到ACK的多个分组必须要有唯一的序列号,否则引起混乱。
2、Sender和Receiver方需要存储空间来缓存分组。对于Sender来说,需要缓存已经发送出去但还没有得到ACK的分组;为了实现按序递交,接收方一般也需要存储空间。
序列号的范围和Buffer的大小取决于传输层协议如何相应分组丢失、差错以及过度延迟分组的方式。
解决流水线的差错恢复有两种基本方法:回退N步(Go-Back-N)和选择性重传(Selective Repeat)
GBN(Go-Back-N)允许发送方发送N个分组而无需确认,流水线中最多有N个等待确认消息的分组,允许使用的序列号范围可以看作是长度为N的一个窗口。随着协议的运行,这个窗口在序列号空间内向前滑动,因此这种协议也叫滑动窗口协议(sliding-window protocol) 在此系统中,一个分组或其ACK的丢失可能造成GBN重传太多的分组。当信道差错率逐渐变大,信道会被不必要的重传分组所塞满。
SR(Selective Repeat)选择性重传就是Sender只重传那些出现错误的分组,而不是窗口中的所有分组。
16.TCP的流量控制原理
流量控制(flow control)就是让发送方的发送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞。
实现方式:利用滑动窗口机制可以很方便地在 TCP 连接上实现流量控制。
定义:主要是为避免低速端系统不至于被对端发送的数据所淹没。基本机制是缓冲。
流量控制的基本思想比较简单,即TCP的Sender维护一个叫做接收窗口Receiver windows的变量,指示接收方空闲的缓存大小,发送方最多背靠背发送RcvWindow个字节,以免淹没接收方。
连接建立时接收方开辟大小为RcvBuffer的缓存,应用进程不断从Buffer中读取数据,利用LastByteRead和LastByteRcvd分别Las记录最后读取的字节和最后收到字节的序列号,则LastByteRcvd-LastByteRead就是在Buffer中应用还未读取的数据。则RcvWindow = RcvBuffer – (LastByteRcvd - tByteRead)为空闲的Buffer大小。
TCP Segment的头部中包含叫做Receive Window的头部字段,通知发送方自己的空闲Buffer大小。发送方限制自己已经发送的但还未收到ACK的数据不超过接收方的空闲Buffer尺寸。这样,加上那些已经发送了ACK但还未被应用读取的数据后的总量便可小于总的Buffer大小。
17.TCP的服务特点、流的概念
TCP (Transmission Control Protocol,传输控制协议) 是一种面向连接的协议,即数据传输之前要经过三次握手建立一条全双工连接,然后才能进行真正的数据传输。
TCP除了是一种面向连接的协议外,还提供可靠的、按需到达的字节流数据传输、流控和拥塞控制。无头无尾,连续不断。
面向字节流。 (TCP不采用停等式的传输,而用流水线的方式,且序列号是根据数据段的第一个字节填写的)
18.TCP的拥塞控制原理
TCP拥塞控制的基本思想:避免网络进入一种叫做Gridlock的状态,即检测到网络出现拥塞状况时降低自己的发送速度。具体实现时需要考虑三个问题:
1、如何降低发送速率?2、如何检测网络拥塞?3、利用什么样的算法来减低发送速度?
1、如何降低发送速率?
CongWin是限制发送速率的主要因素 发送速率 rate ≈ CongWin/RTT (bytes/Sec)。
因此,通过调整CongWin可以控制发送端的发送速率
2、如何检测网络拥塞?
超时/收到对某个分组的三次重复确认消息ACK,则认为网络出现拥塞。此时,TCP降低自己的发送速率
3、利用什么样的算法来减低发送速度?
TCP的拥塞控制算法主要包括三部分:
1) 加性增-乘性减(Additive Increase, Multiplicative Decrease, AIMD)2) 慢启动3) 对超时事件的反应
19.TCP连接建立和拆除的过程
TCP的连接建立过程是:首先由Client进程发起、服务器确认、客户再确认,其中前两次segment中没有数据,而第三次中可以携带数据。TCP的连接建立过程也叫三次握手。
TCP的连接拆除过程是:首先由Client进程发FIN给服务器、服务器确认、服务器再发FIN给Client,Client确认。四次握手。
在发送完最后的ACK后,发起连接拆除方需要等待一段时间,以便在ACK丢失时,拆除方可以重新发送ACK。一般等待30s。
20.TCP段结构中各单元表示的意义与作用
源端口和目的端口字段——各占 2 字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。
序号字段——占 4 字节。TCP 连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。
确认号字段——占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。
数据偏移(即首部长度)——占 4 位,它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。“数据偏移”的单位是 32 位字(以 4 字节为计算单位)。
保留字段——占 6 位,保留为今后使用,但目前应置为 0。
紧急 URG —— 当 URG = 1 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。
确认 ACK —— 只有当 ACK = 1 时确认号字段才有效。当 ACK = 0 时,确认号无效。
推送 PSH (PuSH) —— 接收 TCP 收到 PSH = 1 的报文段,就尽快地交付接收应用进程,而不再等到整个缓存都填满了后再向上交付。
复位 RST (ReSeT) —— 当 RST = 1 时,表明 TCP 连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。
同步 SYN —— 同步 SYN = 1 表示这是一个连接请求或连接接受报文。
终止 FIN (FINis) —— 用来释放一个连接。FIN = 1 表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。
窗口字段 —— 占 2 字节,用来让对方设置发送窗口的依据,单位为字节。
紧急指针字段 —— 占 16 位,指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。
21.数据报和虚电路的概念
数据报(Datagram)
面向无连接的数据传输,工作过程类似于报文交换。采用数据报方式传输时,被传输的分组称为数据报。
虚电路(Virtual Circuit)的概念
虚电路是面向连接的数据传输,工作过程类似于线路交换,不同之处在于此时的电路是虚拟的。
对比的方面 |
虚电路 |
数据报服务 |
思路 |
可靠通讯应由网络来保证 |
可靠通讯由用户主机来保证 |
链接的建立 |
必须有 |
不需要 |
终端地址 |
仅在连接建立阶段使用,每个分组使用短的虚电路号 |
每个分组都有终点的完整地址 |
分组转发 |
属于同一条虚电路的分组均按照同一路由进行转发 |
每个分组独立选择路由进行转发 |
当节点出故障时 |
所有通过出故障的节点的虚电路均不能工作 |
出故障的结点可能会丢失分组,一些路由可能会发生变化 |
分组顺序 |
总是按发送顺序到达终点 |
到达终点时不一定按发送顺序 |
端到端的差错处理和流量控制 |
可以有网络负责,也可以由用户主机负责 |
由用户主机负责 |
22.两种路由算法、主要区别
路由算法根据网络拓扑信息来计算最小开销路径,根据网络拓扑信息是全局的或分散的,路由算法可以分为两大类:
1、全局路由算法:利用完整的、全局性的网络信息来计算最小开销路径。运行全局路由算法的路由器需要事先获取整个网络的节点之间的连接关系以及链路开销,然后才能计算从源到目的节点之间的最短路径。这种算法通常被称作“链路状态算法”。
2、分布式路由算法:以一种迭代的、分布式的方式计算最小开销路径。每个路由器只知道道与其直接相连的节点之间的链路开销,而不知道整个网络的完整的连接关系和开销。这种算法通常被称作“距离向量算法”
23.Internet的主要路由算法
RIP中的路由更新消息在邻居之间利用RIP响应消息进行交换,每30秒交换一次。再用分布式路由算法进行计算。
OSPF中的Open指OSPF是一种开放性的路由协议并被认为是RIP的后继协议。OSPF与RIP相比有许多优点。本质上,OSPF是一种使用链路状态泛洪(flooding)的链路状态协议和 Dijkstra最短路径算法。每个路由器均可获取整个自治系统的完整网络拓扑并独立地计算以自己为根的最短路径树。
以上两种为AS内部协议
BGP是一种自治系统间的路由协议,也是事实上的标准。BGP为每个AS提供了实现下述目标的手段,即:
1、从其它AS获取网络的可达性信息;
2、将获得的可达性信息在AS内部传播;
3、根据可达性信息和策略确定到达目的网络的”Good”路由。
BGP允许一个网络向Internet公告其存在性,并使得所有AS知道如何到达这个网络。
BGP为AS之间协议
24.数据报分片
1)为什么分片
2)怎样分片、怎样组装
3)在哪里分片和组织
1)不同链路层协议能够携带的最大传输单元MTU不同,为了将超长的ip分组挤到链路层分组的有效载荷字段。
源发送的某个分组可能需要在某个路由器处分割成多个更小的分组(fragment,片),以便能够封装在Frame中。
某个分组的所有片需要在将其交给传输层协议之前进行重组。根据端到端原则,分片的重组由端系统完成,而不是由路由器完成。端系统的网络层协议收到fragment后,根据其头部携带的identification(标识)、flag(分片标志)以及fragment offset(片偏移量)等字段信息来对片进行排序,重组等。
属于某个分组的所有fragments具有相同的identifier,根据flag和offset字段的值判断时都收到了所有的fragment并对他们进行排序。当一个分组的一个或多个Fragment没有收到,目的端系统将丢弃这个分组的所有已经收到的Fragment。
3)在路由器里分组在终端系统里组装
25. IP数据报格式
一个 IP 数据报由首部和数据两部分组成。
首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。
在首部的固定部分的后面是一些可选字段,其长度是可变的
版本号——占 4 位,指 IP 协议的版本目前大多数的 IP 协议版本号为 4 (即 IPv4)
首部长度——占 4 位,可表示的最大数值是 15 个单位(一个单位为 4 字节)因此 IP 的首部长度的最大值是 60 字节。
区分服务——占 8 位,用来区分更好的服务
总长度——占 16 位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节。
标识(identification) 占 16 位,它是一个计数器,用来产生数据报的标识。
标志(flag) 占 3 位,目前只有两位有意义。标志字段的最低位是 MF (More Fragment)。MF = 1 表示后面“还有分片”。MF = 0 表示最后一个分片。
标志字段中间的一位是 DF (Don't Fragment) 。只有当 DF = 0 时才允许分片。
片偏移(12 位)指出:较长的分组在分片后某片在原分组中的相对位置。片偏移以 8 个字节为偏移单位。
生存时间(8 位)记为 TTL (Time To Live)数据报在网络中可通过的路由器数的最大值。
协议(8 位)字段指出此数据报携带的数据的上层使用何种协议以便目的主机的 IP 层将数据部分上交给哪个处理过程(6代表TCP 17代表UDP)
首部检验和(16 位)字段只检验数据报的首部不检验数据部分。这里不采用 CRC 检验码而采用简单的计算方法
源地址和目的地址都各占 4 字节,即32位的IP地址。
IP 首部的可变部分就是一个选项字段,用来支持排错、测量以及安全等措施,内容很丰富。选项字段的长度可变,从 1 个字节到 40 个字节不等,取决于所选择的项目。增加首部的可变部分是为了增加 IP 数据报的功能,但这同时也使得 IP 数据报的首部长度成为可变的。这就增加了每一个路由器处理数据报的开销。实际上这些选项很少被使用。
26.IP地址
我们把整个因特网看成为一个单一的、抽象的网络。IP 地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是唯一的 32 位的标识符,采用点分十进制进行表示。每一类地址都由两个固定长度的字段组成,其中一个字段是网络号 net-id,它标志主机(或路由器)所连接到的网络,而另一个字段则是主机号 host-id,它标志该主机(或路由器)。A类地址net-id为8位,host-id为24位,B类地址net-id为16位host-id为16位C类地址net-id为24位host-id为8位。
目前,Internet中的IP地址分配策略为CIDR(classless inter-domain routing,无类域间路由)。CIDR将32位的IP地址分为两部分:子网地址和主机地址。地址的表示方式为:a.b.c.d/x,x表示子网地址的长度。
这样,IP地址的高x位为网络号,低32-x位为网络内部的主机号部分。
27. ICMP协议
ICMP是(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
ICMP的用途包括:
1) ping:源端发送type=8,code=0的ICMP消息,目的端发送type=0, code = 0 的响应
2) 源抑制机制:实际中没有使用,目的是拥塞控制
3) Trace route:跟踪主机到主机的路由,TraceRoute利用ICMP报文来实现
28.IPv6基本概念
(1) IPv6是128位的地址
(2)解决了IPv4面临的最大问题即地址匮乏问题,解决这一问题是IPv6的初衷;
另外,IPv6简化了在分组头部格式
(3)如何实现IPv4与IPv4之间的通信?
1) 一种方法是宣布一个标志日,到时所有的路由器和主机同时从IPv4升级到IPv6。网络规模巨大,使得这种方法不可行。
2) 最直接的方法是采用双协议栈(dual stack),即同时运行IPv4和IPv6两种网络层协议;这种方法的问题是并没有节省IPv4地址。
3) 另外一种可行的方法是采用隧道技术(tunneling):将IPv6的分组封装进IPv4分组里面,作为IPv4的Payload(载荷)。
29.常用校验技术
常用的检错机制包括:奇偶校验,校验和(checksum)和循环冗余检验码(CRC)。
1位奇偶校验可能是最简单的检错方法。假设带发送的数据D有d位,在偶校验方案中只需附加一位校验信息,其值应使得d+1位中1的个数为偶数;奇校验校验位的值应使得d+1位中1的个数为奇数。1位奇偶校验方案中,发送方和接收方的处理都比较简单。接收方只需要数d+1位信息中1的个数,对于偶校验方案,如果d+1位中有奇数个1,则至少有1位发生了错误,精确地说有奇数位信息在传输过程中发生了错误。但是,如果其中有偶数个位信息发生了错误,奇偶校验方案将无法检测出错误的发生。
1位奇偶校验方法能够检测到单个位错误,但没有办法纠正错误。
Internet校验和的基本思想是:
发送方Checksum的计算规则:
1、segment按2字节为单位进行分组,奇数字节的segment最后补一个全为0的字节;checksum字段初值为0
2、计算所有2字节数的和,进位加在和的后面;
3、将计算得到的和按位求反,得到checksum
接收方的规则:
1、如果计算所得的和不是全为1,则Segment在传输过程中发生了错误。否则;
2、认为没有发生错误
TCP/IP中,TCP和UDP对包括头部和数据的信息求校验和,IP只对头部信息求校验和。
CRC叫做循环冗余检测编码,也叫做多项式编码(polynomial code)。
多项式编码基于将位串看成是系数为0或1的多项式,一个k位位串可以看作是从xk-1到x0的多项式的系数序列,此多项式的阶数为k-1。如110001有6位,表示成多项式x5+x4+x0。此多项式为5阶多项式。
CRC的基本思想是:设d位长的位串D,附加长度为r的校验和R,则实际传输的位串长度为d + r。将校验和R附加在位串D的尾部,计算校验和R,使带校验和的位串的多项式能被生成多项式除尽。当接收方收到带校验和的位串时,用G去除它,如果有余数,则传输出错。
多项式按模2运算规则进行运算,即,加法不进位,减法不借位,加法、减法与异或运算的结果相同。
CRC中,发送方和接收方必须事先商量好一个r阶的叫做生成多项式 (Generator) 的G (r+1位位模式) ,并且其最高位和最低位必须为1。
计算校验和的算法如下:
1、设G为r阶,则在待带传输位串的后面添加r个0,使位串变为d+r位,则相应的多项式为D.2r
2、按模2除法用D.2r除以G
3、余数即为校验和R
CRC这里有个计算
30. MAC的两种方式以及CSMA/CD
多路访问协议可以如下描述:
1) 是一种控制共享信道在节点之间共享的分布式算法
2) 利用信道本身进行信道共享的协商、通信,控制信息传输采用带内机制。
多路访问控制协议可以大致分为三类:
1)信道划分协议;
2)随机访问协议;
3)轮转协议。
随机访问协议:每个节点如果有数据发送,总是以信道的全速率发送。但多个节点同时发送会引发碰撞,此时节点将重传数据,直到数据无碰撞地到达接收端。
随机访问协议中,如果发生碰撞,节点可能需要延迟一段时间再重新发送数据,而延迟时间的大小是随机的,并且每个节点独立地选择这个延迟时间。因而这类协议叫做随即访问协议。
轮转协议主要有两大类:
1、轮询协议:网络中存在一个主节点,主节点以循环方式询问其他每个节点。例如,主节点通知节点1可以发送的最大信息量;在节点1传输完毕后,主节点通知节点2可以发送的最大信息量,依次类推。轮询协议可以消除碰撞的可能,并能避免随机协议中的空闲时隙问题,可以获得很到的信道利用率。不过,轮询协议存在如下缺点:1) 轮询延迟; 2) 单点故障问题
2、令牌协议:网络没有主节点,网络中按某种固定次序传递叫做Token(令牌)的Frame。节点只有获得令牌后才能发送Frame,并且,节点只有在有数据要发送的情况下才能有持有令牌,否则将立即将令牌传向下一个节点。同时,一个节点在获得令牌后可以发送的最大信息量固定。令牌协议的缺点包括:令牌传递开销;延迟;单点故障(令牌的丢失与恢复)。
CSMA(载波侦听多路访问)中,节点在传输Frame之前侦听信道,如果信道空闲时才开始发送整个Frame。不过,CSMA中的节点在开始发送Frame后就要发送整个Frame,不管在该Frame的发送过程中有没有碰撞产生。
CSMA/CD与CSMA类似,节点在发送数据之前首先侦听信道,如果信道忙,则延后一段时间继续侦听信道,直到信道空闲才能开始发送;另外,CSMA/CD节点在发送Frame的同时继续侦听信道,如果检测到碰撞,则立即中止Frame的发送。CSMA/CD对CSMA的改善是显而易见的。
31. ARP协议
地址解析协议(Address Resolution Protocol)的工作是从IP地址得到对应的MAC地址。
每个主机的ARP模块维护ARP表,ARP表的结构一般为<IP Address,MAC Address, TTL>。其中,TTL指示表项从开始创建到从表中删除的时间。
同一个子网内部的ARP处理过程:
1、主机A构造一个ARP查询消息,向子网内所有主机广播,消息中包含欲解析主机(B)的IP地址。
2、主机B收到ARP查询消息后,向A回答自己的MAC地址。
ARP表是自动生成的,无须手工操作。同时,ARP表也起着Cache的作用。
32. 10Mbps以太网组网技术
HUB、交换机的区别、交换机的自学习、交换机的切入式转发
1)HUB、交换机的区别
集线器(HUB)本质上是一个物理层设备,它作用于单个bit而不是Frame。Hub将收到的信号进行再生和放大,并广播所收到的每一位。
由于Hub工作在物理层,所以它没有实现CSMA/CD,要靠主机中的网络适配器来检测冲突。
Hub可以收集信息,提供一定的网络管理功能。比如,将一个故障站点断开连接。
交换机是数据链路层设备,利用存储转发机制处理Frame。交换机收到一个Frame后,检查其中的目的MAC地址,查找本地MAC地址表来决定Frame的出口。当Frame被转发到一个LAN Segment时,利用CSMA/CD来访问Segment的广播信道。
2)交换机的自学习
若从 A 发出的帧从接口 x 进入了某交换机,那么从这个接口出发沿相反方向一定可把一个帧传送到 A。
交换机每收到一个帧,就记下其源地址和进入交换机的接口,作为交换表中的一个项目。
在建立建环表时是把帧首部中的源地址写在“地址”这一栏的下面。
在转发帧时,则是根据收到的帧首部中的目的地址来转发的。这时就把在“地址”栏下面已经记下的源地址当作目的地址,而把记下的进入接口当作转发接口。
3)交换机的切入式转发
交换机载转发时不用等收集到一个完整的帧就开始转发。
33.PPP的字节填充技术
在PPP中01111110是数据帧的标志(FLAG)字段,代表这个帧的开始或结束如果在info字段中有同样的位模式,如果不进行处理则会不适当地看作Frame已经结束。PPP的透明性又要求不能限制高层协议数据的位模式,因此,需要PPP以某种机制来保证透明性。
常用方法叫做byte-stuffing(字节填充),即定义一个特殊的控制转义字节:01111101,出现在帧中除Flag外任何地方的01111110,前面都要填充上转义字符01111101,以指示下一个01111110不是Flag,而是实际的数据部分。接收方看到01111110前面有转移字符01111101,则将取出填充的转义字节以重构数据。同样的,如果在实际数据中出现01111101(转义字符),则在其前同样填充一个转义字符。接收方只看到一个转义字符时,则知道这个字符是被填充进的;如果成对出现转义字符,则实际数据中有与转义字符相同的位模式,需要取出一个转移字符以还原只是的数据。
34.重要协议的完整英文中文名称
FDM frequency-division multiplexing 分频复用
TDM time-division multiplexing 分时复用
HTTP HyperText Transfer Protocol 超文本传送协议
DNS Domain Name System 域名解析系统
FTP File Transfer Protocol 文件传输协议
TCP Transmission Control Protocol 传输控制协议
UDP User Datagram Protocol 用户数据包协议
IP Internet Protocol 网络之间互连的协议
ICMP Internet Control Message Protocol 网际控制报文协议
ARP Address Resolution Protocol 地址解析协议
LS Link State 链路状态
DV Distance Vector 距离向量
OSPF Open Shortest Path First 开放最短路径优先
RIP Routing Information Protocol 路由信息协议
BGP Border Gate-way Protocol 分界网关协议
NAT Network Address Translation 网络地址转换
CSMA/CD Carrier Sense Multiple Access (with) collision detection 带冲突检测的载波侦听多路访问
PPP Point-to-Point Protocol点到点协议
HTML Hyper Text Mark-up Language 超文本标记语言
MAC Medium Access Control 介质访问控制