重读《自顶向下》---关于计算机网络的一些新认识(上)

重读自顶向下---关于计算机网络的一些新的认识(上)

前言

  最近这段时间,抽空又重新读了一遍《Computer Networking - A Top-Down Approach》。过程中有不少新的认识,总结如下,希望可以便人便己。

注:本文属于重读回顾性质的总结,很多理解都是来自于书籍。同时下面对网络的认识从表述形式上没有太多的章节规律(基本上是从各个网络层次这条主脉络),大都以条目形式列出, 如有阅读不适,请见谅 (/ω\)


一、概论

1、接入网的几种形式?

(1) 拨号上网
(2) DSL
(3) Cable
(4) FTTH
(5) Ethernet
(6) WiFi
(7) Wide-Area Wireless Access

2、数据在网络中传输的方式?

  • 电路交换: 可以使用时分复用和频分复用
  • 报文交换: 可以理解为统计时分复用

3、如何理解Internet?

简单的说,可以把Internet 理解为网络连接成的网络。如下图所示。
在这里插入图片描述

4、衡量网络性能的几个指标?

  • packet在传输过程中的几种延时

    • 处理延时
    • 排队延时
    • 发送延时
    • 传输延时
  • 丢包率

  • 吞吐量


5、网络安全涉及的一些内容?

  • 传播恶意软件:如病毒、木马、蠕虫等
  • 攻击服务器和网络基础设施,如Dos工具 ,如发送精心设计的msg、带宽洪攻击、连接攻击
  • 网络监听, 如sniff packets
  • 通信伪装,伪装成某一个信任的端点


6、请问,ip数据包经由路由转发的时候源ip,目的ip是否改变?
一般来说,包转发过程中ip地址不变,mac地址会改变。除非做了nat地址转换。从某种程度上来说,一个packet在网络传递的过程中就是从一个“局域网”跨越到另一个“局域网” (这也是把Internet看成由网络连接的网络的原因),在这个过程中,ip地址一直是不变的,而目的mac地址在每个局域网中是不同的(一般是下一条路由器的mac地址)。

具体可参考:ip数据包经由路由转发的时候源ip,目的ip是否改变


7、对于终端用户或者非网络人员(普通程序员)来说,终端(end system)是关注的重点,上面运行着各种各样的应用。中间的网络部分从某种程度上来说,只是提供了一种“数据传输”的服务。


二、应用层

1、网络应用的两种主要架构方案?

  • CS
  • P2P


2、 一个网络应用包括很多个组件,协议((用于规定消息的格式和交换的时机)可能只是其中的一部分;比如说web应用包括web服务器,web客户端,html(web 网页格式),还有http协议等。

3、 http连接的两种方式?

  • 长连接
  • 短连接

    4、web cache 本质上是一个服务器缓存。当浏览器支持代理之时,会在一定程度上降低对原始服务器(original web server)的访问压力。 它是代理服务器的一种(proxy)(还有其他形式的代理服务器)。

    5、电子邮件服务的架构图

  关于smtp协议(Push方式),从发送端用户push到邮件服务器
在这里插入图片描述
 和POP3、IMAP和HTTP的关系(Pull方式),接收端通过pull方式从服务器段拉取
在这里插入图片描述

6、smtp邮件协议和http协议的区别?
从某种程度上来说,和http协议一样,smtp也是一种文件传输协议。但他们也有些区别
(1) http协议主要是采用pull方式来传输文件。而smtp相对来说采用的是push的方式来发送邮件
(2) smtp协议需要每个message必须是ASCII类型的,如果消息中存在二进制类型的数据,那么必须要进行重新进行编码。而http则无此限制
(3) 如果一个文件中包含text和image, 那么对于http来说,它把这两种数据当成不同的object来分别传送。而smtp则把它们放在同一个message中传输。


7、DNS的几种作用

  • 域名解析
  • host aliasing (主机别名)
  • 负载均衡


8、DNS的记录格式
在这里插入图片描述
在这里插入图片描述

9、对于DNS来说,从宏观上来看,它是一个分布式的数据库。这个数据库的数据遍布在全球的很多地方。 之所以设计成成去中心化的,是因为中心化的数据库有以下几个问题:
(1) 单点失败问题(a single point of failure)
(2) 性能问题(performance problem)。包括请求负载压力和dns的巨大容量问题
(3) 遥远的距离问题(distant centralized database)。 即,不同的访问dns服务的距离不同,无法利用分布式多server的近距离优势


三、传输层

1、传输层可以提供给应用层的服务

  • 可靠传输
  • 吞吐量保证(即保证一定的吞吐量)
  • 时序(即保证一定的时序规则)
  • 安全性保证


2、TCP提供的服务

  • 面向连接
  • 可靠数据传输(面向的是host)
  • 拥塞控制 (面向的是整个网络)


3、UDP提供的服务

  • 尽最大的可能传输数据(即,可能会有数据丢失和数据的unorder)


4、TCP提供的可靠的数据传输到底有多可靠?

    这里所说的tcp提供的可靠性主要指的是发送端发送的数据和接收端接受到的数据是不是一样的。换言之,会不会因为硬件或者软件错误导致传输的数据出错(某个bit或者某个组合的bit出错)而却能通过层层的监测机制(以太网的crc校验、网路层的ip checksum 和tcp 层的checksum)

答案是,可以。也就是说tcp虽然是个可靠的数据传输机制,但不是完全绝对的可靠传输,也就是说有可能(当然可能性很小)发送端发送的数据和接收端接受的数据不一致。

一般说来,对于严格的网络应用来说,都需要在应用层加上自己的一套检测机制,如md5、checksum等。

当然,按照我的理解,即使是应用层加上了检测机制,虽然可以很大程度上降低出错的可能,但是概率上能不能降到0,还是个问题。我没找到确切的答案,如果有小伙伴了解的,欢迎指教。

下面【2】-【6】是相关的资料。


5、原生的TCP是不提供安全数据传输的服务(如加密等),但是改进版的tcp,如ssl(也有的把ssl当成应用层的功能)可以提供安全传输数据的服务。应用层如果想要使用ssl服务的话,一般需要在应用层代码中包含对应的库。


6、现在的Internet上,传输层并没有提供吞吐量和时序的保证,所以对于低延时要求的应用来说,应用层就需要额外考虑这点。


7、关于端口复用的一些问题?
  对于一般的网络程序来说,一个socket可以确定一对connection 端,其中ip主要用来确定host,而port主要用来确定host中运行的网络进程。但是现在的操作系统中大都提供了端口复用的功能,也就是说多个进程可以共享一个port, 或者说多个进程可以绑定到一个ip+port上,以此来提高网络程序的性能。对于这种情况,操作系统如何知道把请求转发给哪个进程呢? 按照我的理解,操作系统会把多个绑定到同一个port的进程(准确的来说是socket )做一个记录,当请求到来之时,会尽可能平均的把请求转发给记录中的socket(Round-Robin ?),从内核的角度来达到负载均衡的作用。


最近在看influx 源码的时候,发现其内部的tcp服务还使用了应用层次的端口复用,即用一个总的listener 来监听端口,接受数据,然后根据第一个字节进行判断,把请求分发给对应的子listener(复用过程只存在连接accept阶段)。
在这里插入图片描述

在这里插入图片描述
现在理解这种复用(尤其是软件层面)机制,本质上就像是一种switch…case…的逻辑。由一个总的入口,然后通过一个标识(可能是在协议的报文中(比如说port端口号),也可能是在内核中,还可能是在应用层面上(比如这里接受数据的第一个字节))进行switch, 转发给最终的handler。


8、对于socket来说,listen 阶段的socket在 程序退出时,是直接从listen 状态直接变为close状态吗?

    这里要注意,一般来说对于服务器端程序,处于listening 状态的socket (简称为listenFd) 和之后accept 的socket(connFd)并不是同一个socket连接,前者接受客户端的连接,后者进行具体后续的通信。对于前者来说,按照我的理解,当关闭了这个listenFd之后它是不会进入到time_wait的状态,应该是直接就close了。 对于后者connFd来说,如果关闭了这个socket,那么这个socket会进入到time_wait的状态。
同时,需要注意的是,在进行三次握手的时候,这个listenFd会一直处于listening状态,它不会因为客户端发来syn连接请求而进入SEND_RCV。真正进入到SEN_RCV状态的应该是另一个半连接状态的socket(也就是后来被accept的socket)。也就是说,按照我的理解,listenFd一般只会处于listening状态和close状态。

以上的想法均是个人见解,如果有问题的话,欢迎指正(* ^ ▽ ^ *)。


9、推拉是种哲学。对于抽象的数据传输来说,

  • 推数据的方式方便了推端,但是对端需要有一种机制在“候着”,准备接受数据。同时,这种方式在实时性较高。
  • 拉数据的方式方便了拉端,但是对端需要有一种机制在“候着”,准备传送数据。这种方式是根据拉端的需求进行你那个传送,但是相对来说在信息的实时性方面不够高。


10、 一般来说,运输层提供的服务要以其下面几层提供的服务为基础。如果网络层不提供某种服务,比如说吞吐量和延时保证,那么运输层也不会提供这样的服务。但是也有例外,就是网络层不提供可靠的服务,但是运输层通过一些机制向上层提供了可靠传输的服务。

11、网络层提供的是host to host的服务,运输层提供的最基础的服务需要是process to process的服务。同时,运输层还可能提供一些其他的服务,如错误检测(udp和tcp),可靠传输(tcp)等等

12、UDP是无连接的,它只需要(dst ip 和dsp port)这样一个二元组就可以确定一个socket,换句话说,一般来看,udp只    有一个socket,所有的数据包(无论源ip和源port是否相同)都会发向这一个socket(只要其目的ip和目的port相同); 而TCP是面向连接的,对于服务端来说,每accept一个请求就会创建一个新的socket,这样的话,光凭(dst ip 和dsp port) 是无法确定具体的socket的,需要加上src ip 和src port 才可以。
从某种程度上来看,可以认为tcp在udp上又多了一层。


13、需要说明的是,在理论上可靠数据传输服务可以由数据链路层、网络层、传输层甚至应用层实现。但是在运输层实现这个功能相对来说比较好些。

14、udp服务的优势

  • 应用层可以更快的发送数据(tcp发送到缓冲区之后,最终什么时候发送还得看网络的traffic)
  • 不需要建立连接,想发送数据直接发送
  • 无连接的状态,即host中不需要保存连接的状态信息
  • 头部开销较小

15、比起IP来说,UDP提供了最基础的process to process 服务(还有一丁点错误处理的功能,即可选的checksum,之所以还提供error check的功能,是因为有的udp 的底层协议有可能不提供error check的功能。 )


16、如果想使用udp来达到可靠传输的目的,那么应用层就必须承担起类似tcp的那种重传和确认的机制。 (腾讯面试的时候经常喜欢出这样的题:“如何用udp实现一个tcp?” )

17、一般来说,udp socket 没有发送缓冲区(不太确定?),只有接受缓冲区。所以对于udp来说,上层传递的数据,udp就会“蹭蹭蹭”的发出去,而不管对端是否来得及接受。 而对于接收端来说,如果发送端的数据超过了接受缓冲区的大小,整个报文就会被丢弃,无论这个报文是否可以接受一部分。

18、一般来说,udp在接收数据的时候是按照报文来接受的,一次read一个报文段,接受的报文和报文是不会合并的。

19、可靠传输的几个模型

  • ARQ:停止等待协议
  • GBN(Go-Back-N协议):滑动窗口协议
  • SR(select repeat):选择重传机制

20、网络传输模型: 对于只有bit error 没有packet loss 的通道来说来说,如何保证可靠传输?
  采用ACK确认机制

21、网络传输模型:对于既有bit error 也有packet loss 的传输通道来说,如何保证可靠传输呢?
  重传机制,序列号机制

22、可靠传输涉及到的机制有哪些?

  • 重传、序列号、ACK确认
  • 定时器(重传需要)、checksums(重传需要)

23、 GBN 和SR协议最大的不同是什么?

对于GBN协议来说,其接收方的窗口大小为1,即只能ACK最小的那个还未acknowledge的packet, 即使接受到更大seq num 的packet.;对于SR来说,其接收方的大小为N, 可以ack 接受窗口内的N个packet. 但是发送方需要为发送窗口内的每个packet 设置一个定时器,哪个定时器timeout 了,就重新发送那个packet.

24、对于发送方来说,超时重传的time 一般是挺长的,所以为了加快让发送方处理到已经发送的某个packet 可能丢失,发送方一般会采用快重传的机制-收到连续的三个相同ACK, 就进行重传响应的报文。
  
25、对于现实中的tcp协议来说,它是GNB(回退N步)还是SR(选择重传)协议呢?

TCP 确认是采用累积确认方式,并且对失序报文不会给出确认。这让 TCP 看起来像是一个 GBN 协议,但是与 GBN 不同的是,TCP 会缓存失序的分组。 按照书中的说法,有建议说tcp按照选择确认的机制实现, 它允许 TCP 接收方有选择地确认失序报文段 , 而不是累积地确认最后一个正确接收的有序报文段 。 当将该机制与选择重传机制结合起来使用时(即跳过重传那些已被接收方选择性地确认过的报文段) , TCP 看起来就很像我们通常的 SR 协议 。 所以从某种程度上来说, TCP 更像是GNB和SR的混合方式。
  
26、tcp中为什么不采用 NACK的机制,即不采用 “否定接受到某个包”的形式?
从某种程度上来说,ack代表了一种确认报文段已经收到了(可以进行累计确认)的机制,是一种肯定回复;但是对于nack来说,它代表的是某个报文段没有收到,是一种否定回复。它们都是接收方根据接收到报文段的情况被动进行的一种反馈。

如果有这样一个场景,一系列顺序(ordered)的报文段丢失了(比如所发送端发送了1-10, 但是接收端只接收到了1-5),前者可以发送端可以根据超时(接收端迟迟没发送ack)进行重传; 而后者就有点尴尬,因为不知道是发送方根本就没发送,还是在路途中丢失了。【8】

当然,现在也有一些其他协议采用nack的方式【9】,它们应是采取了其他的措施避免了这个问题。这里就不细究了

27、tcp为了防止接收端的接受不及时造成的大量packet丢失,使用了流控制协议。也就是说要保证发送方发送的数据不会超过接收方目前的接收窗口的大小(接收方会持续的把其可接受的窗口大小,也就是free buffer size 发送给发送方)。

28、如果C端和S端同时受到建立连接的请求怎么办? 同时收到关闭连接的请求呢?
经典的说法是如果A和B两端同时打开或者同时关闭连接,tcp的状态会发生怎样的变化? 答案如下:

同时打开:
在这里插入图片描述
AB 的状态都经历了SYN_RVD和SYN_SENT。

同时关闭:
在这里插入图片描述
A和B的状态都和正常主动关闭连接的情况类似。


29、对于传输层的拥塞控制来说,如何让sender了解到网络已经拥塞了呢?
大体上有两种方式,一个是无下层网络的辅助,主要是通过丢包率和延时(tcp就是采用这种); 还有一个就是有下层网络的辅助,下层网络可以主动提供网络的拥塞程度,甚至可以提供中间路由器的发送速率等信息。


30、TCP 使用receiver 返回的正常的ACK来当做网络顺畅的信号; 使用丢包事件(收到三次重复的ACK或者超时)来当做网络阻塞的信号。

31、 TCP拥塞控制的状态转换和cwnd的变化图:
在这里插入图片描述

在这里插入图片描述

注意,并不是只有在拥塞避免的状态才会发生丢包事件,然后进入快恢复或者慢启动; 在其他两个状态也是可以的。也就是说在慢启动状态如果发生了丢包引起的超时事件,那么拥塞窗口会降为1MSS, ssthresh 降为cwnd/2 ,重新开始慢启动状态。

32、对于一个网络来说,tcp是相对来说考虑到了整个网络的公平性,即控制整个网络的拥塞程度。而udp并没有拥塞控制的机制,所以如果udp和tcp在一个网络中同时存在的话,从某种程度上来说,udp的应用可能会使整个网络陷入拥塞的境地,in other way,这是对tcp是不太公平的。所以有些路由器是会关闭对udp的传递功能的。

33、站在上帝的视角上看,在一个网络中,如果一个application比其他的application用了更多的tcp connection, 那么从某种程度上来说 ,它是侵占了整个网络更多的带宽资源。这就有点像linux系统上的多线程一样,如果你在linux系统上开了更多的线程(在linux上线程的本质是轻量级进程,和普通单进程一起调度),那么相对来说,你是侵占了跟多的cpu资源(当热,linux操作系统对这种“侵占”会有一定的限制)

34、对于tcp的拥塞控制来说,如果每个连接的发送速率差不多的话,可以简单认为拥塞控制的算法对每个连接是相对公平的,无论这些连接是在什么时候开始发送数据的。



参考

【1】、TCP新手误区–数据校验的意义
【2】、《Linux多线程服务端编程》
【3】、The Limitations of the Ethernet CRC and TCP/IP checksums for error detection
【4】、TCP协议100%可靠吗?
【5】、为什么说 TCP/IP 是一个不确定性网络
【6】、TCP新手误区–数据校验的意义
【7】、告知你不为人知的 UDP:疑难杂症和使用
【8】、NACK vs. ACK? When to use one over the other one?
【9】、谈谈网络通信中的 ACK、NACK 和 REX

出版者的话 作译者简介 译者序 前言 第1章 计算机网络和因特网 1.1/什么是因特网/1 1.1.1/具体构成描述/1 1.1.2/服务描述/4 1.1.3/什么是协议/5 1.2/网络边缘/6 1.2.1/客户机和服务器程序/7 1.2.2/接入网/8 1.2.3/物理媒体/13 1.3/网络核心/15 1.3.1/电路交换和分组交换/15 1.3.2/分组是怎样通过分组交换网形成其通路的/20 1.3.3/ISP和因特网主干/21 1.4/分组交换网中的时延、丢包和吞吐量/22 1.4.1/分组交换网中的时延概述/23 1.4.2/排队时延和丢包/25 1.4.3/端到端时延/26 1.4.4/计算机网络中的吞吐量/28 1.5/协议层次和它们的服务模型/30 1.5.1/分层的体系结构/30 1.5.2/报文、报文段、数据报和帧/33 1.6/攻击威胁下的网络/35 1.7/计算机网络和因特网的历史/38 1.7.1/分组交换的发展:1961~1972/38 1.7.2/专用网络和网络互联:1972~1980/39 1.7.3/网络的激增:1980~1990/40 1.7.4/因特网爆炸:20世纪90年代/41 1.7.5/最发展/42 1.8/小结/42 本书路线图/43 课后习题和问题/44 复习题/44 习题/45 讨论题/49 Ethereal实验/49 人物专访/50 第2章 应用层 2.1/应用层协议原理/52 2.1.1/网络应用程序体系结构/53 2.1.2/进程通信/55 2.1.3/可供应用程序使用的运输服务/56 2.1.4/因特网提供的运输服务/57 2.1.5/应用层协议/60 2.1.6/本书涉及的网络应用/61 2.2/Web应用和HTTP协议/61 2.2.1/HTTP概况/62 2.2.2/非持久连接和持久连接/63 2.2.3/HTTP报文格式/65 2.2.4/用户与服务器的交互:cookie/68 2.2.5/Web缓存/70 2.2.6/条件GET方法/72 2.3/文件传输协议:FTP/73 2.4/因特网中的电子邮件/74 2.4.1/SMTP/76 2.4.2/与HTTP的对比/78 2.4.3/邮件报文格式和MIME/79 2.4.4/邮件访问协议/81 2.5/DNS:因特网的目录服务/84 2.5.1/DNS提供的服务/85 2.5.2/DNS工作机理概述/86 2.5.3/DNS记录和报文/90 2.6/P2P应用/94 2.6.1/P2P文件分发/94 2.6.2/在P2P区域中搜索信息/98 2.6.3/案例学习:Skype的P2P因特网电话/102 2.7/TCP套接字编程/103 2.7.1/TCP套接字编程/104 2.7.2/一个Java客户机/服务器应用程序例子/105 2.8/UDP套接字编程/109 2.9/小结/114 课后习题和问题/115 复习题/115 习题/116 讨论题/120 套接字编程作业/121 Ethereal实验/122 人物专访/122 第3章 运输层 3.1/概述和运输层服务/124 3.1.1/运输层和网络层的关系/125 3.1.2/因特网运输层概述/126 3.2/多路复用与多路分解/127 3.3/无连接运输:UDP/133 3.3.1/UDP报文段结构/135 3.3.2/UDP检验和/135 3.4/可靠数据传输的原理/136 3.4.1/构造可靠数据传输协议/137 3.4.2/流水线可靠数据传输协议/144 3.4.3/回退N步/147 3.4.4/选择重传/149 3.5/面向连接的运输:TCP/154 3.5.1/TCP连接/154 3.5.2/TCP报文段结构/156 3.5.3/往返时延的估计与超时/160 3.5.4/可靠数据传输/162 3.5.5/流量控制/166 3.5.6/TCP连接管理/168 3.6/拥塞控制原理/173 3.6.1/拥塞原因与开销/173 3.6.2/拥塞控制方法/177 3.6.3/网络辅助的拥塞控制例子:ATMABR拥塞控制/178 3.7/TCP拥塞控制/180 3.8/小结/187 课后习题和问题/189 复习题/189 习题/190 讨论题/195 编程作业/196 Ethereal实验:探究TCP/196 Ethereal实验:探究UDP/196 人物专访/196 第4章 网络层 4.1/概述/199 4.1.1/转发和选路/200 4.1.2/网络服务模型/202 4.2/虚电路和数据报网络/203 4.2.1/虚电路网络/204 4.2.2/数据报网络/206 4.2.3/虚电路和数据报网络的由来/208 4.3/路由器工作原理/208 4.3.1/输入端口/210 4.3.2/交换结构/211 4.3.3/输出端口/212 4.3.4/何时出现排队/213 4.4/网际协议:因特网中的转发和编址/215 4.4.1/数据报格式/216 4.4.2/IPv4编址/220 4.4.3/ICMP:互联网控制报文协议/230 4.4.4/IPv6/232 4.4.5/IP安全性概述/236 4.5/选路算法/237 4.5.1/链路状态选路算法/239 4.5.2/距离向量选路算法/242 4.5.3/层次选路/248 4.6/因特网中的选路/250 4.6.1/因特网中自治系统内部选路:RIP/251 4.6.2/因特网中AS内部选路:OSPF/253 4.6.3/自治系统间的选路:BGP/255 4.7/广播和多播选路/260 4.7.1/广播选路算法/260 4.7.2/多播/264 4.8/小结/269 课后习题和问题/270 复习题/270 习题/271 讨论题/277 编程作业/278 Ethereal实验/278 人物专访/279 第5章 链路层和局域网 5.1/链路层:概述和服务/281 5.1.1/链路层提供的服务/281 5.1.2/链路层在何处实现/283 5.2/差错检测和纠错技术/284 5.2.1/奇偶校验/285 5.2.2/检验和方法/287 5.2.3/循环冗余检测/287 5.3/多路访问协议/288 5.3.1/信道划分协议/290 5.3.2/随机接入协议/292 5.3.3/轮流协议/297 5.3.4/局域网/297 5.4/链路层编址/298 5.4.1/MAC地址/298 5.4.2/地址解析协议/300 5.5/以太网/303 5.5.1/以太网帧结构/304 5.5.2/CSMA/CD:以太网的多路访问协议/307 5.5.3/以太网技术/309 5.6/链路层交换机/310 5.6.1/交换机转发和过滤/311 5.6.2/自学习/312 5.6.3/链路层交换机的性质/313 5.6.4/交换机和路由器的比较/314 5.7/PPP:点对点协议/315 5.8/链路虚拟化:网络作为链路层/318 5.8.1/异步传输方式/318 5.8.2/多协议标签交换/322 5.9/小结/324 课后习题和问题/325 复习题/325 习题/325 讨论题/329 Ethereal实验/329 人物专访/329 第6章 无线网络和移动网络 6.1/概述/332 6.2/无线链路和网络特征/334 6.3/WiFi:802.11无线LAN/339 6.3.1/802.11体系结构/339 6.3.2/802.11MAC协议/342 6.3.3/IEEE802.11帧/345 6.3.4/在相同的IP子网中的移动性/348 6.3.5/802.11中的高级特色/348 6.3.6/802.11以外的标准:蓝牙和WiMAX/349 6.4/蜂窝因特网接入/352 6.4.1/蜂窝网体系结构概述/353 6.4.2/蜂窝网标准和技术:简要回顾/354 6.5/移动管理:原理/356 6.5.1/寻址/358 6.5.2/选路到移动节点/359 6.6/移动IP/363 6.7/蜂窝网中的移动性管理/366 6.7.1/对移动用户呼叫的选路/367 6.7.2/GSM中的切换/368 6.8/无线和移动性:对高层协议的影响/370 6.9/小结/372 课后习题和问题/372 复习题/372 习题/373 讨论题/375 Ethereal实验/375 人物专访/376 第7章 多媒体网络 7.1/多媒体网络应用/378 7.1.1/多媒体应用的例子/378 7.1.2/当今因特网上的多媒体障碍/380 7.1.3/因特网应该如何演化才能更好地支持多媒体/381 7.1.4/音频和视频压缩/382 7.2/流式存储音频和视频/384 7.2.1/通过Web服务器访问音频和视频/385 7.2.2/从流式服务器向助手应用程序发送多媒体/386 7.2.3/实时流协议/388 7.3/充分利用尽力而为服务/390 7.3.1/尽力而为服务的限制/390 7.3.2/在接收方消除音频的时延抖动/392 7.3.3/从丢包中恢复/394 7.3.4/在今天的因特网中分发多媒体:内容分发网络/397 7.3.5/规划尽力而为网络以提供服务质量/399 7.4/实时交互应用的协议/400 7.4.1/RTP/400 7.4.2/RTP控制协议/403 7.4.3/SIP/405 7.4.4//H.323/409 7.5/提供多个等级的服务/410 7.5.1/启发研究的场景/411 7.5.2/调度和监管机制/414 7.5.3/区分服务/419 7.6/提供服务质量保证/423 7.6.1/一个有启发的例子/423 7.6.2/资源预约、呼叫准入、呼叫建立/424 7.6.3/在因特网中确保QoS:Intserv和RSVP/425 7.7/小结/427 课后习题和问题/428 复习题/428 习题/429 讨论题/433 编程作业/433 人物专访/434 第8章 计算机网络中的安全 8.1/什么是网络安全/436 8.2/密码学的原则/438 8.2.1/对称密钥密码学/440 8.2.2/公开密钥加密/443 8.3/报文完整性/447 8.3.1/密码散列函数/447 8.3.2/报文鉴别码/449 8.3.3/数字签名/450 8.4/鉴别/455 8.4.1/鉴别协议ap1.0/455 8.4.2/鉴别协议ap2.0/456 8.4.3/鉴别协议ap3.0/456 8.4.4/鉴别协议ap3.1/457 8.4.5/鉴别协议ap4.0/457 8.4.6/鉴别协议ap5.0/458 8.5/电子邮件安全/460 8.5.1/安全的电子邮件/461 8.5.2/PGP/464 8.6/使TCP连接安全:SSL/465 8.6.1/宏观描述/466 8.6.2/更完整的描述/468 8.7/网络层安全性:IPsec/469 8.7.1/鉴别首部协议/469 8.7.2/ESP协议/470 8.7.3/SA和密钥管理/471 8.8/使无线LAN安全/471 8.8.1/有线等效保密/472 8.8.2/IEEE802.11i/473 8.9/运行安全性:防火墙和入侵检测系统/475 8.9.1/防火墙/475 8.9.2/入侵检测系统/479 8.10/小结/482 课后习题和问题/482 复习题/482 习题/483 讨论题/485 Ethereal实验/485 人物专访/485 第9章 网络管理 9.1/什么是网络管理/487 9.2/网络管理的基础设施/490 9.3/因特网标准管理框架/493 9.3.1/管理信息结构:SMI/494 9.3.2/管理信息库:MIB/496 9.3.3/SNMP协议运行和传输映射/498 9.3.4/安全性和管理/500 9.4/ASN.1/502 9.5/小结/506 课后习题和问题/506 复习题/506 习题/507 讨论题/507 人物专访/507 参考文献/509
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值