第1章 概述

本章最重要的内容:

(1)互联网边缘部分和核心部分的作用,其中包括分组交换的概念

(2)计算机网络的性能指标

(3)计算机网络分层次的体系结构,包括协议和服务的概念

ISP(Internet Service Provider)互联网服务提供商

1.互联网的组成

(1)边缘部分:由所有连接在互联网上的主机组成。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享

(2)核心部分:由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)

2.在网络边缘的端系统之间的通信方式可划分为两大类:客户-服务器方式(C/S方式)和对等方式(P2P方式)

(1)客户-服务器方式

客户是服务请求方,服务器是服务提供方。服务请求方和服务提供方都要使用网络核心部分所提供的服务。

在实际应用中,客户程序和服务器程序通常还具有以下一些主要特点:

客户程序:

1)被用户调用有运行,在通信时主动向远程服务器发起通信(请求服务)。因此,客户程序必须知道服务器程序的地址。

2)不需要特殊的硬件和很复杂的操作系统

服务器程序:

1)是一种专门用来提供某种服务的程序,可同时处理多个远程或本地客户的请求。

2)系统启动后即自动调用并一直不断运行着,被动地等待并接受来自各地的客户的通信请求。因此,服务器程序不需要知道客户程序的地址。

3)一般需要有强大的硬件和高级的操作系统支持

上述客户和服务器本来都指的是计算机进程(软件)

(2)对等连接方式(peer-to-peer)

对等连接是指两台主机在通信时并不区分哪一个是服务请求方哪一个是服务提供方。只要两台主机都运行了对等连接软件(P2P软件),它们就可以进行平等的、对等连接通信。

3.互联网的核心部分

在网络核心部分起特殊作用的是路由器。路由器是实现分组交换(packet swithching)的关键构件,其任务是转发收到的分组。

电路交换:

在使用电路交换通话之前,必须先拨号请求建立连接。当被叫用户听到交换机送来的振铃声并摘机后,从主叫端到被叫端就建立了一条连接,也就是一条专用的物理通路。这种必须经过“建立连接”(占用通信资源)—通话(一直占用通信资源)—释放连接(归还通信资源)三个步骤的交换方式成为电路交换。

电路交换的一个重要特点就是在通话的全部时间内,通话的两个用户始终占用端到端的通信资源。缺点:线路的传输效率往往很低,通信资源浪费。

分组交换:分组交换采用存储转发技术

该图表示把一个报文划分为几个分组后再进行传送。通常我们把发送的整块数据成为一个报文(message)。在发送报文之前,先把较长的报文划分成为一个更小的等长数据端。在每一个数据段前面,加上一些由必要的控制信息组成的首部(header)后,就构成了一个分组(packet)。分组又称为“包”,而分组的首部也可称为"包头"

分组交换在传送数据之前不必先占用一条端到端的链路的通信资源。分组在哪段链路上传送才占用这段链路的通信资源。分组到达一个路由器后,先暂时存储下来查找转发表,然后从一条合适的链路转发出去。分组在传输时就这样一段一段地断续占用通信资源,而且还省去了建立连接和释放连接的开销,因而数据的传输效率更高。

分组交换的优点:

优点 所采用的手段
高效 在分组传输的过程中动态分配传输带宽,对通信链路是逐段占用的
灵活 为每一个分组独立地选择最合适的转发路由
迅速 以分组作为传送单位,可以不先建立连接就能向其他主机发送分组
可靠 保证可靠的网络协议

三种交换方式在数据传送阶段的主要特点:

电路交换—整个报文的比特流连续地从源点直到终点,好像在一个管道中传送

报文交换—整个报文先传送到相邻结点,全部存储下来后查找转发表,转发到下一个结点。

分组交换—单个分组(这只是整个报文的一部分)传送到相邻结点,存储下来后查找转发表,转发到下一个结点。

计算机网络的性能:速度 带宽 吞吐量 时延 时延带宽积 往返时间RTT 利用率

5.计算机网络体系结构

在计算机网络中药做到有条不紊第交换数据,就必须遵守一些事先约定好的规则。这些规则明确规定了所交换的数据的格式以及有关的同步问题

这些为进行网络中的数据交换而建立的规则、标准或约定称为网络协议


(3)网络层

网络层负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送。在TCP/IP体系中,由于网络层使用IP协议,因此分组也叫作IP数据报,或简称数据报。

网络层的另一个任务就是要选择合适的路由,使源主机运输层所传下来的分组,能够通过网络中的路由器找到目的主机。

(4)数据链路层

在两个相邻结点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧(framing),在两个相邻结点间的链路上传送帧。每一帧包括数据和必要的控制信息(如同步信息、地址信息、差错控制等)。

(5)物理层

在物理层上所传数据的单位是比特。发送方发送1(0)时,接收方应当受到1(0),而不是0(1)。

图1-19说明的是应用进程的数据在各层之间的传递过程中 所经历的变化。

在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。要实现本层协议,还需要使用下面一层所提供的服务。

协议是“水平的”,即协议是控制对等实体之间通信的规则。但服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。

第2章 物理层

从通信的双方信息交互的方式来看,可以有以下三种基本方式:

(1)单向通信:又称为单工通信,即只能有一个方向的通信而没有反方向的交互。无线电广播或有线电广播以及电视广播就属于这种类型。

(2)双向交替通信:又称为半双工通信,即通信的双方都可以发送信息,但不能双发同时发送(当然也不能同时接收)。这种通信方式是一方发送另一方接收,过一段时间后可以再反过来。

(3)双向同时通信:又称为全双工通信,即通信的双方可以同时发送和接收信息。

第3章 数据链路层

数据链路层使用的信道主要有以下两种类型:

(1)点对点信道。这种信道使用一对一的点对点通信方式

(2)广播信道。这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。

本章主要内容:

(1)数据链路层的点对点信道和广播信道的特点,以及这种信道所使用的协议(PPP协议以及CSMA/CD协议)的特点。

(2)数据链路层呢个的三个基本问题:封装成帧、透明传输和差错检测。

(3)以太网MAC层的硬件地址

(4)适配器、转发器、集线器网桥、以太网交换机的作用以及使用场合。

1.点对点信道的数据链路层在进行通信时的主要步骤如下:

(1)结点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧

(2)结点A把封装好的帧发送给结点B的数据链路层

(3)若结点B的数据链路层收到额帧无差错,则从收到的帧中提取出IP数据报交给上面的网络层;否则丢弃这个帧。

数据链路层三个基本问题:封装成帧、透明传输和差错检测

(1)封装成帧:就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。

网络层的IP数据报传送到数据链路层就成为帧的数据部分。在帧的数据部分的前面和后面分别添加首部和尾部,就构成了一个完整的帧。这样的帧就是数据链路成的数据传送单元。

为了提高帧的传输效率,应当使帧的数据部分长度尽可能地大于首部和尾部的长度。但是,每一种链路层协议都规定了所能传送的帧的数据部分长度上限—最大传送单元MTU(Maximum Transfer Unit)

(3)差错检测

比特在传输过程中可能会产生差错。在计算机网络传输数据时,必须采用差错检测措施。目前在数据链路层广泛使用了循环冗余检验CRC(Cyclic Redundancy Check)的检错技术。

CRCFO运算就是在数据M的后面添加供差错检测用得n位冗余码,然后构成一个帧发送出去,一位共发送(k+n)

这个余数R作为冗余码,拼接在数据M的后面发送出去。

2.使用广播信道的数据链路层

广播信道可以进行一对多的通信。

局域网按网络拓扑分类:星型网,环形网和总线网

共享信道要着重考虑一个问题就是如何使众多用户能够合理而方便地共享通信媒体资源。在技术上有两种方法:

(1)静态划分信道

(2)动态媒体接入控制,它又称为多点接入(multiple access),其特点是信道并非用户通信时固定分配给用户。这里又分为两类:

  • 随机接入:随机接入的特点是所有的用户可随机地发送信息。但如果恰巧有两个或更多的用户在同一时刻发送信息,那么在共享媒体上就要产生碰撞(即发生了冲突),使得这些用户的发送都失败。因此,必须有解决碰撞的网络协议。
  • 受控接入

IEEE802委员会把局域网的数据链路层拆分成两个子层,即逻辑链路控制LLC(Logical Link Control)子层和媒体接入控制MAC(Medium Access Control)子层。

3.适配器(网卡):

计算机与外界局域网的连接是通过通信适配器(Adapter)进行的。适配器和局域网之间的通信时通过电缆或双绞线以串行传输方式进行的,而适配器和计算机之间的通信是通过主板上的I/O总线以并行传输方式进行的。因此,**适配器的一个重要功能就是要进行数据串行传输和并行传输的转换。**由于网络上的数据率和计算机总线上的数据率并不相同,因此在适配器中必须装有对数据进行缓存的存储芯片。在主板撒花姑娘插入适配器时,还需要把管理适配器的设备驱动程序安装在计算机的操作系统中。这个驱动程序以后就会告诉适配器,应当从存储器的什么位置上把多长的数据块发送到局域网,或者应当在存储器的什么位置上把局域网传送过来的数据块存储下来。适配器还要能够实现以太网协议。

4.CSMA/CD协议

总线上只要有一台计算机在发送数据,总线的传输资源就被占用。因此,在同一时间只能允许一台计算机发送数据,否则各计算机之间就会互相干扰,使得所发送数据被破坏。因此,如何协调总线上各计算机的工作就是以太网要解决的一个重要问题。CSMA/CD就是为了解决这一问题的。

CSMA/CD载波监听多点接入/碰撞检测(Carrier Sense Multiple Access with Collision Detection)

多点接入:总线型网络,许多计算机以多点接入的方式连接在一根总线上。

载波监听:用电子技术检测总线上有没有其他计算机也在发送。不管在发送前,还是在发送中,每个站都必须不停地检测信道。

碰撞检测:边发送边监听,即适配器边发送数据边检测信道上的信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。

MAC层的硬件地址:在局域网中,硬件地址又称为物理地址或MAC地址,也即适配器地址

适配器有过滤功能。适配器从网络上每收到一个MAC帧就先用硬件检查MAC帧中的目的地址。如果发往本站的帧则收下,然后再进行其他的处理。否则就将此帧丢弃,不再进行其他的处理。发往本站的帧包括以下三种帧:

(1)单播(unicast)帧(一对一),即收到的帧的MAC地址与本站的硬件地址相同。

(2)广播(broadcast)帧(一对全体),即发送给本局域网所有站点的帧(全1地址)

(3)多播(multicast)帧(一对多),即发送给本局域网上一部分站点的帧

5.MAC帧的格式

第4章 网络层

本章最主要的内容:

(1)虚拟互连网络的概念

(2)IP地址与物理地址的关系

(3)传统的分类的IP地址(包括子网掩码)和无分类域间路由选择CIDR

(4)路由选择协议的工作原理

网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。

网络在发送分组时不需要先建立连接。每一个分组(也就是IP数据报)独立发送,与其前后的分组无关(不进行编号)。网络层不提供服务质量的承诺。

1.网际协议IP

与IP协议配套使用的还有三个协议:

  • 地址解析协议ARP(Address Resolution Protocol)
  • 网际控制报文协议ICMP(Internet Control Message Protocol)
  • 网际组管理协议IGMP(Internet Group Management Protocol)

ARP画在最小面,因为IP经常要使用这个协议。ICMP和IGMP画在这一层的上部,因为它们要使用IP协议。

2.网络中的一些中间设备

将网络互相连接起来要使用一些中间设备。根据中间设备所在的层次,可以有以下四种不同的中间设备:

(1)物理层使用的中间设备叫做转发器

(2)数据链路层使用的中间设备叫做网桥或桥接器(bridge)

(3)网络层使用的中间设备叫做路由器

(4)在网络层以上使用的中间设备叫做网关(gateway)。用网关连接两个不兼容的系统需要在高层进行协议转换。

源主机H1要把一个IP数据报发送给目的主机H2的过程:

主机H1先要检查自己的路由表,看目的主机是否就在本网络上。如果是,则不需要经过任何路由器而是直接交付,任务就完成了。如果不是,则必须把IP数据报发送给某个路由器(图中的R1)。R1在查找了自己的路由表后,知道应当把数据报转发给R2,进行间接交付。这样一直转发下去,最后由路由器R5知道自己是和H2连接在同一个网络上,不需要再使用别的路由器转发了,于是就把数据报直接交付给目的主机H2。

3.分类的IP地址

IP地址的编址方法共经过了三个历史阶段:

(1)分类的IP地址。这是最基本的编址方法

(2)子网的划分。这是对最基本的编址方法的改进

(3)构成超网。这是比较新的无分类编址方法

4.IP地址与硬件地址

从层次角度看,物理地址是数据链路层和物理层使用的地址,而IP地址是网络层和以上各层使用的地址,是一种逻辑地址。

地址解析协议ARP:

在实际应用中,我们经常会遇到这样的问题:已经知道了一个机器(主机或路由器)的IP地址,需要找出其相应的硬件地址。地址解析协议ARP就是用来解决这样的问题的。

在一个网络上可能经常会有新的主机加入进来,或撤走一些主机。更换网络适配器也会使主机的硬件地址改变。地址解析协议ARP解决这个问题的方法是在主机ARP高速缓存中存放一个从IP地址到硬件地址的映射表,并且这个映射表还经常动态更新(新增或超时删除)。每一台主机都设有一个ARP高速缓存(ARP Cache),里面有本局域网上的各主机和路由器的IP地址到硬件地址的映射表,这些都是该主机目前知道的一些地址。那么主机怎样知道这些地址呢?

5.IP数据报的格式

一个IP数据报由首部和数据两部分组成。首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。

(1)版本 占4位,指IP协议的版本。通信双方使用的IP协议的版本必须一致。

(2)首部长度 占4位

(3)区分服务 用来获得更好的服务。

(4)总长度 总长度指首部和数据之和的长度

(5)标识

(6)标志(flag)

(7)片偏移

(8)TTL生存时间

由发出数据报的源点设置这个字段,其目的是防止无法交付的数据报无限制地在互联网中兜圈子(例如从路由器R1转发到R2,再转发到R3,然后又转发到R1),因而白白消耗网络资源。每经过一个路由器时,就把TTL减去1。当TTL值为零时,就丢弃这个数据报。

(9)协议 协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个协议进行处理。

(10)首部校验和 这个字段只检验数据报的首部,不包括数据部分。

6.划分子网和构造超网

(1)从两级IP地址到三级IP地址 即划分子网

划分子网:从网络的主机号借用若干位作为子网号(subnet-id),于是两级IP地址在本单位内部就变成了三级IP地址:网络号、子网号和主机号

IP地址::={<网络号>,<子网号>,<主机号>}

图4-18表示某单位拥有近一个B类IP地址,网络地址145.13.0.0(网络号是145.13)。凡目的地址为145.13.x.x的数据报都被送到这个网络上的路由器R1

现在剩下一个问题就是:假定一个数据报(其目的地址是145.13.3.10)已经到达了路由器R1。那么这个路由器如何把它转发到子网145.13.3.0呢?子网掩码

把子网掩码255.255.255.0和IP地址145.13.3.10逐位“与”AND运算,就可得出网络地址145.13.3.0

路由器在和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器。在路由器的路由表中的每一个项目,除了要给出目的网络地址,还必须同时给出该网络的子网掩码。若一个路由器连接在两个子网上就拥有两个网络地址和两个子网掩码。

7.查找路由表

下面进一步讨论使用了子网掩码后应怎样查找路由表

使用子网时分组的转发:

使用子网划分后,路由表必须包含以下三项内容:目的网络地址、子网掩码和下一跳地址

8.无分类编址CIDR(构造超网)

使用变长子网掩码VLSM(Variable Length Subnet Mask)可进一步提高IP地址资源的利用率。在VLSM的基础上又进一步研究出无分类编码方法,即无分类域间路由选择CIDR(Classless Inter-Domain Routing)

CIDR最主要的特点有两个:

(1)CIDR消除了传统的A类、B类和C类地址以及划分子网的概念。

CIDR把32位的IP地址划分为前后两个部分。前面部分是“网络前缀”(network-prefix),用来指明网络,后面部分则用来指明主机。因此CIDR使IP地址从三级编址(使用子网掩码)又回到了两级编址。

IP地址::={<网络前缀>,<主机号>}

(2)CIDR把网络前缀都相同的连续的IP地址组成一个“CIDR地址块”

分配到一个CIDR地址块的单位,仍然可以在本单位内根据需要划分出一些子网。这些子网也都只有一个网络前缀和一台主机号字段,但子网的网络前缀比整个网络前缀要长些。例如,某单位分配到地址块/20,就可以再继续划分为8个子网(即需要从主机号中借用3位来划分子网)。这时每一个子网的网络前缀就变成23位(原来的20位加上从主机号借来的3位),比该单位的网络前缀多了3位

128.1435.7/20=10000000 00001110 00100011 00000111

/20地址块的子网掩码:**11111111 11111111 1111**0000 00000000

斜线记法中,斜线后面的数字就是子网掩码中1的个数。

9.网际控制报文协议ICMP

为了更有效地转发IP数据报和提高交付成功的机会,在网际层使用了ICMP。ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。ICMP报文封装在IP数据报中共,作为其中的数据部分。

ICMP报文的种类有两种:ICMP差错报告报文和ICMP询问报文

10.路由选择协议

路由选择协议:路由表中的路由是怎么得出的

路由选择协议的核心是路由算法,即需要何种算法来获得路由表中的各项目

根据路由算法能够随网络的通信量或拓扑自适应地进行调整变化来划分,静态路由选择策略和动态路由选择策略

静态路由选择特点:简单和开销小,但不能即使适应网络状态的变化。对于很简单的小型网络,完全可以采用静态路由选择,人工配置每一条路由。

动态路由特点:能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大。动态路由适合较复杂的大型网络。

分层次的路由选择协议:

内部网关协议IGP(Interior Gateway Protocol):即一个自治系统内部使用的路由选择协议,而这与在互联网中的其他自治系统选用什么路由选择协议无关。目前这类路由选择协议最多,如RIP和OSPF协议。

外部网关协议EGP(External Gateway Protocol):若源主机和目的主机处在不同的自治系统中(这两个自治系统可能使用不同额内部网关协议),当数据报传到一个自治系统的边界时,就需要使用功能一种协议将路由选择信息传递到另一个自治系统中。目前使用最多的外部网关协议是边界网关协议BGP(Broder Gateway Protocol)

10.1 内部网关协议RIP

路由信息协议RIP(Routing Information Protocol)。RIP是一种分布式的基于距离向量的路由选择协议。最大优点就是简单

RIP协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录(一组距离,即距离向量)。RIP协议的“距离”也称为“跳数”,因为每经过一个路由器,跳数就加1.RIP认为好的路由就是它通过的路由器的数目少,即“距离短”。RIP允许一条路径最多只能包括15个路由器。因此“距离”等于16时即相当于不可达。(注意理解TTL字段的含义) RIP只适合于小型网络

RIP协议三个要点:和哪些路由器交换信息?交换什么信息?在什么时候交换信息?

RIP协议的特点:

(1)仅和相邻路由器交换信息

(2)路由器交换的信息时当前本路由器所知道的全部信息,即自己现在的路由表。也就是说,交换的信息是:“我到本自治系统中所有网络的(最短)距离,以及到每个网络应经过的下一跳路由器”

(3)按固定的时间间隔交换路由信息

RIP协议让一个自治系统中的所有路由器都和自己的相邻路由器定期交换路由信息,并不断更新其路由表,使得从每一个路由器到每一个目的网络的路由都是最短的(即跳数最少)

RIP协议使用运输层的用户数据报UDP进行传送(使用UDP端口520)

RIP协议在应用层,为网络层服务。

10.2内部网关协议OSPF

开放最短路径优先OSPF(Open Shortest Path First)最主要的特征就是使用分布式的链路状态协议,而不是像RIP那样的距离向量协议。和RIP协议相比,OSPF的三个要点和RIP的都不一样:

(1)向本自治系统中所有路由器发送信息。洪泛法(flooding),路由器通过所有输出端口向所有相邻的路由器发送信息。

(2)发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。

(3)只有当链路状态发送变化时,路由器才向所有路由器用洪泛法发送此信息。而不像RIP那样,不管网络拓扑有无发生变化,路由器之间都要定期交换路由表的信息。

OSPF适用于大型网络,OSPF不用UDP而是直接用IP数据报传送

11.VPN和NAT

1.虚拟专用网VPN

让本机构的一些计算机使用仅在本机构有效的IP地址(这种地址为本地地址),而不需要向互联网的管理机构申请全球唯一的IP地址(这种地址称为全球地址)

专用地址只能用做本地地址而不能用做全球地址。在互联网中的所有路由器,对目的地址是专用地址的数据报一律不进行转发。专用地址块:

10.0.0.0~10.255.255.255 172.16.0.0~172.31.255.255

192.168.0.0~192.168.255.255

采用这样的专用IP地址的互连网络称为专用互联网或本地互联网,或专用网。

有时一个很大的机构的许多部分分布的范围很广(例如,在世界各地),这些部门经常要互相交换信息。这可以有两种方法。(1)租用电信公司的通信线路为本机构专用。这种方法虽然简单,但线路的租金太高,一般难于承受。(2)利用公用的互联网作为本机构各专用网之间的通信载体,这样的专用网又称为虚拟专用网(Virtual Private Network)

之所以称为"专用网"是因为这种网络是为本机构的主机用于机构内部的通信,而不是用于和网络外非本机构的主机通信。如果专用网不同网点之间的通信必须经过公用的互联网,但又有保密的要求,那么所有通过互联网传送的数据都必须加密。

2.网络地址转换NAT

下面讨论另一种情况,就是在专用网内部的一些主机本来已经分配了本地IP地址(即仅在专用网内使用的专用地址),但现在又想和互联网上的主机通信(并不需要加密),那么应当采取什么措施?NAT技术

在专用网连接到互联网的路由器上安装NAT软件,装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址。这样,所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和互联网连接。

NAT路由器收到从专用网内部的主机A发往互联网上主机B的IP数据报:源IP地址是192.168.0.3,而目的IP地址是213.18.2.4。NAT路由器把IP数据报的源IP地址192.168.0.3,转换为新的源IP地址(即NAT路由器的全球IP地址)172.38.1.5,然后转发出去。因此,主机B收到这个IP数据报时,以为A的IP地址是172.38.1.5.B并不知道A的专用地址192.168.0.3.当NAT路由器收到互联网上的主机B发来的IP数据报时,还要进行一次IP地址的转换。通过NAT地址转换表,就可把IP数据报上的旧的目的IP地址172.38.1.5,转换为新的目的IP地址192.168.0.3(主机A真正的本地IP地址)

为了更有效地利用NAT路由器上的全球IP地址,现在常用的NAT转换表把传输层的端口号也利用上。这样,就可以使多个拥有本地地址的主机,共用一个NAT路由器上的全球IP地址,因而可以同时和互联网上的不同主机进行通信。使用端口号的NAT也叫网络地址和端口号转换NAPT,端口映射。

第5章 运输层

本章先概括介绍运输层协议的特点、进程之间的通信和端口等重要概念,然后讲述比较简单的UDP协议。其余的篇幅都是讨论较为复杂但非常重要的TCP协议和可靠传输的工作原理,包括停止等待协议盒ARQ协议。在详细讲述TCP报文段的首部格式之后,讨论TCP的三个重要问题:滑动窗口、流量控制和拥塞控制。最后,介绍TCP的连接管理。

主要概念:

(1)运输层为相互通信的应用进程提供逻辑通信

(2)端口和套接字的意义

(3)无连接的UDP的特点

(4)面向连接的TCP的特点

(5)在不可靠的网络上实现可靠传输的工作原理,停止等待协议盒ARQ协议

(6)TCP的滑动窗口、流量控制、拥塞控制和连接管理

1.进程之间的通信

通信的真正的端点并不是主机而是主机中的进程。端到端的通信时应用进程之间的通信。运输层提供应用进程之间的逻辑通信

可以看出网络成和运输层有明显的区别。网络层为主机之间提供逻辑通信,而运输层为应用进程之间提供端到端的的逻辑通信。

运输层还要对收到的报文进行差错检测

2.运输层的两个主要协议

根据应用程序的不同需求,运输层需要有两种不同的协议,即面向连接的TCP和无连接的UDP。

用户数据报协议UDP(User Datagram Protocol)

传输控制协议TCP(Transmission Control Protocol)

在TCP/IP体系中,根据所使用的协议是TCP还是UDP,两个对等运输实体在通信时传送的数据单位,分别称为TCP报文段(Segment)或UDP用户数据报

3.运输层的端口

当运输层收到IP层交上来的运输层报文时,就能够根据其首部中的目的端口号把数据交付应用层的目的应用进程

TCP/IP的运输层用一个16位端口号来标志一个端口

两个计算机中的进程要相互通信,不仅必须知道对方的IP地址(为了找到的对方的主机),而且要知道对方的端口号(为了找到对方计算机中的应用进程)

运输层的端口号分为两大类:

(1)服务器端使用的端口号

分为两类,最重要的一类叫做熟知端口号或系统端口号,数值为0~1023

另一类叫做等级端口号,数值为1024~49151

(2)客户端使用的端口号

数值为49152~65535,由于这类端口号仅在客户进程运行时才动态选择,因此叫做短暂端口号。这类端口号留给客户进程选择暂时使用。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的端口号,因而可以把数据发送给客户进程。通信结束后,刚才已使用的客户端口号就不复存在,这个端口号就可以供其他客户进程使用。

4.用户数据报协议UDP

UDP只在IP的数据报服务之上增加了很少一点的功能,这就是复用和分用的功能以及差错检测的功能。

UDP的主要特点:

(1)UDP是无连接的,即发送数据之前不需要建立连接

(2)UDP使用尽最大努力交付,即不保证可靠交付

(3)UDP是面向报文的。发送方的UDP对应用进程交下来的报文,在添加首部后就向下交付IP层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。即应用层交个UDP多长的报文,UDP就照样发送,即一次发送一个报文。UPD一次交付一个完整的报文。

(4)UDP没有拥塞控制

网络出现的拥塞不会使源主机的发送速率降低,这对某些实时应用是很重要的。很多的实时应用(如IP电话,实时视频会议等)要求源主机以恒定的速率发送数据,并且允许在网络发生拥塞时丢失一些数据,但却不允许数据有太大的时延。UDP正好符合这种要求。

(5)UDP支持一对一、一对多、多对一和多对多的交互通信

(6)UDP的首部开销小,只有8字节,比TCP的20字节的首部要短。

UDP的首部格式

用户数据报UDP有两个字段:数据字段和首部字段。首部字段很简单,只有8个字节,由四个字段组成。各字段意义如下:

当运输层从IP层收到的UDP数据报时,就根据首部中的目的端口,把UDP数据报通过相应的端口,上交最后的终点—应用程序

请注意,虽然在UDP之间的通信要用到其端口号,但由于UDP的通信是无连接的,因此不需要使用套接字(TCP之间的通信必须要在两个套接字之间建立连接)

5.传输控制协议TCP

TCP最主要的特点:

(1)TCP是面向连接的。应用程序在使用TCP协议之前,必须先建立连接。在传送数据完毕后,必须释放已经建立的TCP连接。

(2)每一条TCP连接只能有两个端点(endpoint),每一条TCP连接只能是点对点(一对一)

(3)TCP提供可靠交付的服务。通过TCP连接传送的数据,无差错、不丢失、不重复,并且按序到达。

(4)TCP提供全双工通信。TCP允许通信双方的应用进程在任何时候都能发送数据。TCP连接的两端都设有发送缓存和接收缓存,用来临时存放双方通信的数据。在发送时,应用程序在把数据传送给TCP的缓存后,就可以做自己的事,而TCP在合适的时候把数据发送出去

(5)TCP是面向字节流的

TCP中的“流”stream指的是流入到进程或从进程流出的字节序列

图5-8指出,TCP和UDP在发送报文时所采用的方式完全不同。TCP并不关心应用进程一次把多长的报文发送到TCP的缓存中,而是根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节(UDP发送的报文长度是应用进程给出的)。如果应用进程传送到TCP缓存的数据块太大,TCP就可以把它划分短一些再传送。如果应用程序一次只发来一个字节,TCP也可以等到积累有足够多的字节后再构成报文段发送出去。

TCP的连接

每一条TCP连接有两个端点,这两个端点叫做套接字(Socket)

套接字(socket)=(IP地址:端口号)

**每一条TCP连接唯一地被通信两端的两个端点(即两个套接字)所确定。**即:

TCP连接 ::= {socket1,socket2}={ (IP1:port1), (IP2:port2)}

这里IP1和IP2分别是两个端点主机的IP地址,而port1和port2分别是两个端点主机中的端口号。

TCP和UDP主要区别:

(1)TCP是有连接的,UDP是无连接的

(2)TCP提供可靠交付的服务,UDP不保证可靠交付

(4)TCP是面向字节流的,UDP是面向报文的

(5)TCP连接是一对一的,UDP连接可以是一对一,一对多和多对多的通信

6.可靠传输的工作原理

6.1 停止等待协议

“停止等待”就是每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。

使用上述的确认和重传机制,我们就可以再不可靠的传输网络上实现可靠的通信。

为了提高传输效率,发送方可以不使用低效率的停止等待协议,而是采用流水线传输。流水线传输就是发送方可连续多个分组,不必每发完一个分组就停顿下来等待对方的确认。

当使用流水线传输时,就要使用连续的ARQ协议和滑动窗口协议

6.2 连续ARQ协议

连续ARQ协议规定,发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。接收方一般都是采用积累确认的方式。即接收方不必对收到的分组逐个发送确认,而是在收到几个分组后,对 按序到达的最后一个分组发送确认,这就表示:到这个分组为止的所有分组都已正确收到了。

累积确认优点:容易实现,即使确认丢失也不必重传。缺点:不能向发送方反映出接收方已经正确收到的所有分组的信息。

7.TCP报文段的首部格式

TCP虽然是面向字节流的,但TCP传送的数据单元是报文段。一个TCP报文段分为首部和数据两部分,而TCP的全部功能都体现在它首部中各字段的作用。因此,只有弄清TCP首部各字段的作用才能掌握TCP的工作原理

TCP报文段首部的前20个字节是固定的

(1)序号 在一个TCP连接中传送的字节流中的每一个字节都按顺序编号。整个要传送的字节流的起始序号必须在连接建立时设置。首部中的序号字段值则指的是本报文段所发送的数据的第一个字节的序号。

(2)确认号 占4字节,是期望收到对方下一个报文段的第一个数据字节的序号

例如,B正确收到了A发送过来的一个报文段,其序号字段值是501,而数据长度是200字节(序号501~700),这表明B正确收到了A发送的到序号700为止的数据。因此,B期望收到A的下一个数据序号是701,于是B在发送给A的确认报文段中把确认号置为701。请注意,现在的确认号不是501,也不是700,而是701。

若确认号=N,则表明:到序号N-1为止的所有数据都已正确收到。

(3)数据偏移 占4位,它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远

(4)紧急URG(URGent) 当URG=1时,表明紧急指针字段有效,它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据),而不是按原来的排队顺序来传送。

(5)确认ACK(ACKnowledgment) 仅当ACK=1时确认号字段才有效。当ACK=0时,确认号无效。TCP规定,在连接建立后所有传送的报文段都必须把ACK置1

(6)推送PSH(Push)

(7)复位RST(ReSeT) 当RST=1时,表明TCP连接中共出现严重差错

(8)同步SYN(SYNchronization) 在连接建立时用来同步序号。当SYN=1而ACK=0,表明这是一个连接请求报文段。对方若同意建立连接,则应在响应的报文段中使SYN=1和ACK=1。因此,SYN置为1就表示这是一个连接请求或连接接受报文。

(9)终止FIN 用来释放一个连接。当FIN=1时,表明此报文的发送方的数据已发送完毕,并要求释放运输连接。

(10)窗口 占2字节。窗口值[0,2^16-1]之间的整数。窗口指的是发送本报文段中的一方的接受窗口(而不是自己的发送窗口)。窗口值告诉对方:从本报文段首部中的确认号算起,接收方目前允许对方发送的数据量。窗口值作为接收方让发送方设置其发送窗口的依据

例如,发送了一个报文段,其确认号是701,窗口字段是1000.这就是告诉对方:“从701号算起,我(即发送此报文段的一方)的接受缓存空间还可接收1000个字节数据(字节序号是701~~1700),你在给我发送数据时,必须考虑到这一点”。

窗口字段明确指出了现在允许对方发送的数据量。窗口值经常在动态变化着。

(11)检验和

(12)紧急指针

8.TCP可靠传输的实现

8.1以字节为单位的滑动窗口

现假定A收到了B发来的确认报文段,其中窗口是20字节,而确认号是31(这表明B期望收到的下一个序号是31,而序号30为止的数据已经收到了)。根据这两个数据,A就构造出自己的发送窗口,如图5-15所示

9.TCP流量控制

利用滑动窗口实现流量控制

一般来说,我们总是希望数据局传输得更快一些。但如果发送方把数据发送得过快,接收方可能来不及接收,这就会造成数据的丢失。所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。

设A向B发送数据。在连接建立时,B告诉了A:“我的接收窗口rwdn=400”。因此,发送方的发送窗口不能超过接收方给出的接收窗口的数值。

接收方B进行了三次流量控制。第一次把窗口减小到rwnd=300,第二次又减到rwnd=100,最后减到0,即不允许发送方再发送数据了。这种使发送方暂停发送的状态将持续到主机B重新发出一个新的窗口值为止。

10.TCP的拥塞控制

拥塞控制与流量控制的关系密切,它们之间也存在一些差别。所谓拥塞控制就是防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载

拥塞控制是一个全局性的过程,涉及到所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素。流量控制往往是值点对点通信量的控制,是个端到端的问题(接收端控制发送端),流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收。

10.1 TCP拥塞控制方法

TCP进行拥塞控制的算法有四种:慢开始(Slow-start)、拥塞避免(Congestion avoidance)、快重传(fast retransmit)和快恢复(fast recovery)

1.慢开始和拥塞避免

下面讨论的拥塞控制也叫作基于窗口的拥塞控制。为此,发送方维持一个叫做拥塞窗口cwnd(congestion window)的状态变量。拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化。发送方让自己的发送窗口等于拥塞窗口。

发送方控制拥塞窗口的原则是:只要网络没有出现拥塞,拥塞窗口就可以再增大一些,以便把更多的分组发送出去,这样就可以提高网络的利用率。但只要网络出现拥塞或有可能出现拥塞,就必须把拥塞窗口减少一些,以减少注入到网络中的分组数,以便缓解网络出现的拥塞。

下面讨论拥塞窗口cwnd的大小是怎样变化的。

慢开始算法:当主机开始放松数据时,由于不清楚网络的负荷情况,所以如果立即把大量数据字节注入到网络,那么就有可能引起网络发送拥塞。经验证明,较好的方法是先探测一下,即由小到大逐渐增大发送窗口,即由小到大逐渐增加拥塞窗口数值。

慢开始的“慢”并不是指cwnd的增长速率慢,而是指在TCP开始发送报文段先设置cwnd=1,使发送方在开始时只发送一个报文段(目的是试探一个网络的拥塞情况),然后再逐渐增大cwnd。

拥塞避免算法:让拥塞窗口cwnd缓慢地增大,即每经过一个往返时间RTT就把发送方的拥塞窗口cwnd加1,而不是像慢开始阶段那样加倍增长。因此拥塞避免阶段就有“加法增大”的特点。这表明在拥塞避免阶段,拥塞窗口cwnd按线性规律缓慢增长,比慢开始算法的拥塞窗口增长速率缓慢很多。

当拥塞窗口cwnd=24时,网络出现了超时,发送方判断为网络拥塞。于是调整门限值ssthresh=cwnd/2=12,同时设置拥塞窗口cwnd=1,进入慢开始阶段。

快重传算法

在图5-25中的点4,发送方知道现在只是丢失了个别的报文段。于是不启动慢开始,而是执行快恢复算法。这时,发送方调整门限值ssthresh=cwnd/2=8,同时设置拥塞窗口cwnd=ssthresh=8,并开始执行拥塞避免算法。

11.TCP的运输连接管理

运输连接有三个阶段:连接建立数据传送连接释放

运输连接的管理就是使运输连接的建立和释放都能正常地进行

在TCP连接建立过程中要解决一下三个问题:

(1)要使每一方能够确知对方的存在

(2)要允许双方协商一些参数(如最大窗口值、是否使用窗口扩大选项和时间戳选项以及服务质量等)

(3)能够对运输实体资源(如缓存大小、连接表中的项目等)进行分配

TCP连接的建立采用客户服务器方式。主动发起连接建立的应用程序叫做客户,而被动等待建立的应用程序叫做服务器

11.1 TCP的连接建立

TCP建立连接的过程叫做握手,握手需要在客户和服务器之间交换三个TCP报文段,如图所示

上面给出的连接建立过程叫做三次握手。请注意,在图5-28中B发送给A的报文段,也可以拆成两个报文段。可以先发送一个确认报文段(ACK=1,ack=x+1),然后再发送一个同步报文段(SYN=1,seq=y)。这样的过程就变成了四报文握手,但效果是一样的。

为什么不是两次握手?

采用三次握手,可以防止上述现象的发生。例如刚才的异常情况下,A不会向B的确认发出确认。B由于收不到确认,就知道A并没有要求建立连接。

服务器要确认客户的连接请求,然后客户要对服务器的确认进行确认

11.2 TCP的连接释放

数据传输结束后,通信的双方都可释放连接。

A的应用进程先向其TCP发出连接释放报文段,并停止再发送数据,主动关闭TCP连接。A把连接释放报文段首部的终止控制位FIN置1,其seq=u,它等待前面已传送过得数据的最后一个字节的序号加1。这时A进入FIN-WAIT-1(终止等待1)状态,等待B的确认。

B收到连接释放报文段后即发出确认,确认号是ack=u+1,而这个报文段自己的序号是v,等于B前面已传送过得数据的最后一个字节的序号加1.然后B就进入CLOSE-WAIT(关闭等待)状态。

TCP的连接释放采用四次握手机制。任何一方都可以在数据传送结束后发出连接释放的通知,待对方确认后就进入半关闭状态。当另一方也没有数据再发送时,则发送连接释放通知,对方确认后就完全关闭了TCP连接。

第6章 应用层

本章讨论各种应用进程通过什么样的应用层协议来使用网络所提供的通信服务

在上一章,我们已经学习了运输层为应用层提供了端到端的通信服务。但不同的网络应用的应用进程之间,还需要不同的通信规则。因此在运输层协议之上,还需要有应用层协议。这是因为,每个应用层协议都是为了解决某一个类应用问题,而问题的解决又必须通过位于不同主机中的多个应用进程之间的通信和协同工作来完成。应用进程之间的这种通信必须遵循严格的规则。应用层的具体内容就是精确定义这些通信规则。应用层协议应当定义:

  • 应用进程交换的报文类型,如请求报文和响应报文’
  • 各种报文类型的语法,如报文中的各个字段及其详细描述
  • 字段的语义,即包含在字段中的信息的含义
  • 进程何时、如何发送报文,以及对报文进行响应的规则

下面先讨论许多应用协议都要使用的域名系统。在介绍了文件传输协议和远程登录协议后,再重点介绍万维网的工作原理及其主要协议。

本章主要内容:

  • 域名系统DNS------从域名解析出IP地址
  • HTTP协议
  • 电子邮件的传送过程,SMTP协议等
  • 动态主机配置协议DHCP的特点
  • 系统调用和应用编程接口的基本概念

1.域名系统DNS

用户与互联网上某台主机通信时,必须要知道对方的IP地址。然而用户很难记住对方的IP地址。应用层为了便于用户记忆各种网络应用,连接在互联网上的主机不仅有IP地址,而且还有便于用户记忆的主机名字。域名系统DNS能够把互联网上的主机名字转换为对应的IP地址

2.FTP

FTP使用客户服务器方式。一个FTP服务器进程可同时为多个客户进程提供服务。FTP的服务器进程由两大部分组成:一个主进程,负责接收新的请求;另外有若干个从属进程,负责处理单个请求。

主进程的工作步骤如下:

(1)打开熟知端口(端口号为21),使客户进程能够脸上

(2)等待客户进程发出连接请求。

(3)启动从属进程处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程

(4)回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发进行的

在进行文件传输时,FTP的客户和服务器之间要建立两个并行的TCP连接:“控制连接”和“数据连接”。控制连接在整个会话期间一直保持打开,FTP客户所发出的传送请求,通过控制连接发送给服务器端的控制进程,但控制连接并不用来传送文件。服务器端的控制进程在接收到FTP客户发送来的文件传输请求后就创建“数据传送进程”和“数据连接”,用来连接客户端和服务器端的数据传送进程。数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行。

当客户进程向服务器进程发出建立连接请求时,要寻找连接服务器进程的熟知端口21,同时还要告诉服务器进程自己的另一个端口号码,用于建立数据传送连接。接着,服务器进程用自己传送数据的熟知端口20与客户进程所提供的端口号建立数据传送连接。由于FTP使用了两个不同的端口号,所以数据连接与控制连接不会发生混乱。

3.远程终端协议TELNET

用户用TELNET就可在其所在地通过TCP连接注册(即登录)到远地的另一台主机上(使用主机名或IP地址)。TELNET能将用户的击键传到远地主机,同时也能将远地主机的输出通过TCP连接返回到用户屏幕。

4.统一资源定位符URL

URL(Uniform Resource Locator)

URL用来表示从互联网撒花姑娘得到的资源位置和访问这些资源的方法。URL实际上就是在互联网上的资源的地址。

URL的一般形式由以下四个部分组成: <协议>://<主机>:<端口>/<路径>

主机就是指该主机在互联网上的域名。

HTTP的URL的一般形式: http://<主机>:<端口>/<路径>

5.HTTP

HTTP协议定义了 浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。

HTTP协议是无状态的(stateless).也就是说,同一个客户第二次访问同一个服务器上的页面时,服务器的响应与第一次被访问的相同(假定现在服务器还没有把该页面更新),因为服务器并不记得曾经访问过的这个客户,也不记得为该客户曾经服务过多少次。HTTP的无状态特性简化了服务器的设计,使服务器更容易支持大量并发的HTTP请求。

HTTP/1.1协议使用了持续连接,所谓持续连接就是万维网服务器在发送响应后仍然在一段时间内保持这条连接,使同一个客户和服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文。

代理服务器(proxy server) 代理服务器把最近的一些请求和响应暂存在本地磁盘中。当新请求达到时,若代理服务器发现这个请求与暂时存放的请求相同,就返回暂存的响应,而不需要按URL的地址再次去互联网访问该资源。

HTTP的报文结构

HTTP有两类报文:

(1)请求报文------从客户向服务器发送请求报文

(2)响应报文------从服务器到客户的回答

HTTP请求报文和响应报文都是由三个部分组成的

请求报文的第一行“请求行”只有三个内容,即方法,请求资源的URL,以及HTTP的版本

**在服务器上存放用户的信息:**Cookie

Cookie工作原理:当用户A浏览某个使用Cookie的网站时,该网站的服务器就为A产生一个唯一的识别码,并以此作为索引在服务器的后端数据库中产生一个项目。接着在给A的HTTP响应报文中共添加一个叫做Set-cookie的首部行。例如这个首部行:

Set-cookie:31d4d96e407aad42

当A收到这个响应时,其浏览器就在它管理的特定Cookie文件中添加一行,其中包括这个服务器的主机名和Set-cookie后面给出的识别码。当A继续浏览这个网站时,每发送一个HTTP请求报文,其浏览器就会从其Cookie文件中取出这个网站的识别码,并放在HTTP请求报文的cookie首部行中。cookie:31d4d96e407aad42

于是,这个网站就能够跟踪用户31d4d96e407aad42(用户A)在该网站的活动。需要注意的是,服务器并不需要知道这个用户的真实姓名以及其他的信息。但服务器能够知道用户31d4d96e407aad42在什么时候访问了哪些页面,以及访问这些页面的顺序。如果A是在网上购物,那么这个服务器可以为A维护一个所购物品的列表,使A在结束这次购物是可以一起付费。

6.简单邮件传送协议SMTP(Simple Mail Transfer Protocol)

一个电子邮件系统具有三个主要组成构件:用户代理、邮件服务器,以及邮件发送协议(SMTP)和邮件读取协议(POP3)

用户代理UA(User Agent)就是用户与电子邮件系统的接口,在大多数情况下它就是运行在用户电脑中的一个程序。因此用户代理又称为电子邮件客户端软件。用户代理向用户提供一个很友好的接口来发送和接收邮件。

7.动态主机配置协议DHCP

8.应用进程跨越网络的通信

系统调用和应用编程接口

大多数操作系统使用系统调用的机制在应用程序和操作系统之间传递控制权。

当某个应用进程启动系统调用时,控制权就从应用进程传递给了系统调用接口。此接口再把控制权传递给计算机的操作系统。操作系统把这个调用转给某个内部过程,并执行所请求的操作。内部过程一旦执行完毕,控制权就又通过系统调用接口返回给应用进程。因此系统调用实际上就是应用进程的控制权和操作系统的控制权进行转换的一个接口。由于应用程序在使用系统调用之前要编写一些程序,特别是需要设置系统调用中的许多参数,因此这种系统调用又称为应用编程接口API。应用进程只要使用标准的系统调用函数就可得到操作系统的服务。从程序设计角度看,可以把API看成是应用程序和操作系统之间的接口。

现在TCP/IP协议软件已驻留在操作系统中。由于TCP/IP协议族被设计成能运行在多种操作系统的环境中,因此TCP/IP标准没有规定应用程序与TCP/IP协议软件如何接口的细节,而是允许系统设计者能够选择有关API的具体实现细节。

网络编程时常常把套接字作为应用进程和运输层协议之间的接口。

几种常用的系统调用

(1)连接建立阶段 (2)数据传送阶段 (3)连接释放阶段

第7章 网络安全

本章最主要的内容:

(1)对称密钥密码体制和公钥密码体制的特点

(2)数字签名与鉴别的概念

(3)网络层协议IPsec协议族和运输层安全协议SSL/TLS的要点

(4)系统安全:防火墙与入侵检测

1.数据加密模型

密钥通常由密钥中心提供,当密钥需要向远地传送时,一定要通过另一个安全信道。

2.两类密码体制

对称密钥密码体制:加密密钥与解密密钥使用相同的密码体制

数据加密标准DES属于对称密钥体制,DES的保密性仅取决于密钥的保密,而算法是公开的。DES的问题是它的密钥长度,56位的密钥意味着有2^56中可能的密钥,

公钥密码体制:使用不同的加密密钥与解密密钥

公钥密码体制的产生主要有两个方面的原因:一是由于对称密钥密码体制的密钥分配问题,二是由于对数字签名的需求。

在许多应用中共,人们需要对纯数字的电子电子信息进行签名,表明该信息确实是某个特定的人产生的。

在公钥密码体制中,加密密钥PK是向公众公开的,而解密密钥SK是需要保密的,加密算法E和解密算法D也都是公开的

第8章 互联网上的音视频服务

本章首先对互联网提供音频/视频服务进行概述。然后介绍流式音频/视频中的媒体服务器和实时流式协议RTSP,并以IP电话为例介绍交互式音视频所使用的一些协议,如实时运输协议RTP、实时传送控制协议RTCP、H.323以及会话发起协议SIP。接着讨论改进"尽最大努力交付"的服务的一些措施,包括怎样使互联网能够提供服务质量,并介绍综合服务IntServ、资源预留协议RSVP和区分服务DiffServ的要点。

1.流式(streaming)存储音视频

流式存储音视频文件的特点是能够边下载边播放

实时流式协议RTSP(Real-Time Streaming Protocol) RTSP是为了给流式过程增加更多的功能而设计的协议。RTSP本身并不传送数据,而仅仅是使媒体播放器能够控制多媒体的传送,因此RTSP又称为外带协议。RTSP协议以客户服务器方式工作,它是一个应用层的多媒体播放控制协议,用来使用户在播放从互联网下载的实时数据时能够控制,如:暂停/继续、快退、快进等。因此RTSP又称为“互联网录像机遥控协议”

2.交互式音视频

这种类型是用户使用互联网和其他人进行实时交互式通信。现在的互联网电话或互联网会议就属于这种类型。

实时运输协议RTP及其配套的协议—实时运输控制协议RTCP

实时运输协议RTP(Real-time Transport Protocol) RTP为实时应用提供端到端的运输,但不提供任何服务质量的保证。

需要发送的多媒体数据块(音视频)经过压缩编码处理后,先送给RTP封装称为RTP分组(也可称为RTP报文)。RTP分组装入运输层的UDP用户数据报后,再向下递交给IP层。

RTP自己并不对多媒体数据块做任何处理,而只是向应用层提供一些附加的信息,让应用层知道应当如何进行处理。

实时运输控制协议RTCP,RTCP协议也是RTP协议不可分割的部分

FTCP协议的主要功能:服务质量的监视与反馈、媒体间同步(如某一个RTP发送的声音和图像的配合),以及多播中成员的标志。RTCP分组(也可称为RTCP报文)也使用UDP来传送,但RTCP并不对音频/视频分组进行封装。RTCP分组周期性地在网上传送,它带有发送端和接收端对服务质量的统计信息报告(例如,已发送的分组数和字节数、分组丢失率、分组到达时间间隔的抖动等)

实时流式协议RTSP(Real-Time Streaming Protocol) RTSP是为了给流式过程增加更多的功能而设计的协议。RTSP本身并不传送数据,而仅仅是使媒体播放器能够控制多媒体的传送,因此RTSP又称为外带协议。RTSP协议以客户服务器方式工作,它是一个应用层的多媒体播放控制协议,用来使用户在播放从互联网下载的实时数据时能够控制,如:暂停/继续、快退、快进等。因此RTSP又称为“互联网录像机遥控协议”

2.交互式音视频

这种类型是用户使用互联网和其他人进行实时交互式通信。现在的互联网电话或互联网会议就属于这种类型。

实时运输协议RTP及其配套的协议—实时运输控制协议RTCP

实时运输协议RTP(Real-time Transport Protocol) RTP为实时应用提供端到端的运输,但不提供任何服务质量的保证。

需要发送的多媒体数据块(音视频)经过压缩编码处理后,先送给RTP封装称为RTP分组(也可称为RTP报文)。RTP分组装入运输层的UDP用户数据报后,再向下递交给IP层。

RTP自己并不对多媒体数据块做任何处理,而只是向应用层提供一些附加的信息,让应用层知道应当如何进行处理。

实时运输控制协议RTCP,RTCP协议也是RTP协议不可分割的部分

FTCP协议的主要功能:服务质量的监视与反馈、媒体间同步(如某一个RTP发送的声音和图像的配合),以及多播中成员的标志。RTCP分组(也可称为RTCP报文)也使用UDP来传送,但RTCP并不对音频/视频分组进行封装。RTCP分组周期性地在网上传送,它带有发送端和接收端对服务质量的统计信息报告(例如,已发送的分组数和字节数、分组丢失率、分组到达时间间隔的抖动等)

计算机网络笔记整理(第七版)谢希仁相关推荐

  1. 研究生考试 之 计算机网络第七版(谢希仁) 第一章 课后答案

    研究生考试 之 计算机网络第七版(谢希仁) 第一章 课后答案 目录 研究生考试 之 计算机网络第七版(谢希仁) 第一章 课后答案 一.简单介绍 二.计算机网络第七版(谢希仁) 第一章 课后答案 1. ...

  2. 计算机网络第七版谢希仁

    <计算机网络>是2008年电子工业出版社出版的图书,作者是谢希仁.该书全面系统地介绍了计算机网络的发展和原理体系结构.物理层.数据链路层等内容. 内容简介 <计算机网络>是由谢 ...

  3. 计算机网络第七版谢希仁著课后习题答案

    计算机网络第七版答案 第一章 概述 1-01 计算机网络向用户可以提供那些服务?答: 连通性和共享 1-02 简述分组交换的要点.答:(1)报文分组,加首部(2)经路由器储存转发(3)在目的地合并 1 ...

  4. 计算机网络第七版(谢希仁) 第一章 概述 1-10,1-17作业答案

    计算机网络第七版 第一章 概述 1-10,1-17答案 1-10: 试在下列条件下比较电路交换和分组交换.要传送的报文x(bit) .从源点到终点共经过k 段链路,每段链路的传播时延为d(s), 数据 ...

  5. 计算机网络 第五/七 版 ----谢希仁

    第五版 链接:https://pan.baidu.com/s/1k_iNVBDw1MaKS8gFcRGLfg 提取码:xx9a 第七版 链接:https://pan.baidu.com/s/1jOiz ...

  6. 计算机网络第七版谢希仁知识点总结

    1.专有名词: 互联网服务提供商ISP(Interest Service Provider) 互联网交换点 IXP (Internet eXchange Point) 广域网WAN(Wide Area ...

  7. 计算机网络(第七版 谢希仁)第1章 概述(一)

    1.1计算机网络在信息时代的作用 (一)三大类熟悉的网络 电信网络 有线电视网络 计算机网络 (二)互联网的基本特点 连通性 共享 1.2互联网概述 1.2.1网络的网络 1.计算机网络:由若干节点和 ...

  8. 计算机网络术语sonet,计算机网络(第七版)谢希仁-第2章 物理层(示例代码)

    第 2 章 物理层 物理层的基本概念 物理层的主要任务描述为确定与传输媒体的接口的一些特性 机械特性 指明接口所用接线器的形状和尺寸.引线数目和排列.固定和锁定装置等等. 电气特性 指明在接口电缆的各 ...

  9. 计算机网络第七版(谢希仁)第三章——数据链路层课后习题答案

    文章目录 3-01 3-02 3-03 解答 解析 3-01 3-02 3-03 3-04 3-05 3-06 3-07 解答 解析 3-04 3-08 3-09 3-10 解答 3-11 解析 3- ...

  10. 《计算机网络》第三章课后答案第七版谢希仁

    第三章数据链路层 3-01数据链路(即逻辑链路)与链路{即物理链路)有何区别?"电路接通了"与"数据链路接通了"的区别何在? 答:数据链路与链路的区别在于数据链 ...

最新文章

  1. android studio编辑页面案例,2.4、Android Studio使用主题编辑器设计主题
  2. ASP.NET-后台cookie与前台JQUERY解析cookie
  3. 学习笔记:验证对称二叉树
  4. 基本数据结构 - 栈和队列
  5. 设计模式-UML关系基础
  6. 局域网ssr转pptp_[网络技术][转]PPTP连接过程
  7. 粤教版小学认识计算机教案,粤教版八年级信息技术下册教案:第一章第一节初识计算机程序oc.pdf...
  8. 7-5 抓老鼠啊~亏了还是赚了? (20 分)
  9. 信息熵 条件熵 信息增益 信息增益比 GINI系数
  10. iptables禁止国外ip访问-脚本
  11. 如何使用万能地图下载器解决百度地图的偏移问题
  12. bootstrap-table重载_Bootstrap Table的使用总结
  13. opencms整合到java项目里_java-将标签云添加到OpenCMS网站
  14. Excel-VBA 快速上手(三、数组和字典)
  15. R语言实战 input+结果——ROC曲线的绘制 auc 时量下曲线面积
  16. 铁路售票处实习记:买火车票须知
  17. 有一个8位机,采用单总线结构......(计算机组成原理课后习题)
  18. xml文件c语言读取函数,IDL读取XML文件
  19. 【android工具篇】Firefly-RK系列(eg:RK3288 RK3368)一键获取root权限工具RootUtils
  20. 淘宝API系列开发,buyer_info买家信息,买家卖家订单官方接口

热门文章

  1. java teechart怎么用_TeeChart for Java
  2. activex与matlab,在MATLAB图形用户界面设计中使用ActiveX控件
  3. OPPO R9tm 刷机/root/救砖/第三方recovery
  4. 参考文献引用格式实例
  5. 自定义网站地址栏图标
  6. JSP毕业设计源码带论文和答辩、大作业、实例程序源码下载合集【10套】
  7. 抢红包插件实现原理浅析
  8. 网易邮箱服务器怎么注册,免费网易域名邮箱申请教程
  9. 牛逼!用文言文来编程,97 年 CMU 本科生火遍全网!
  10. OFD在线预览方案评测