【计算机基础】计算机网络①

文章目录

一、通讯协议

网络通信协议

主要协议分为:

  • Socket 接口抽象层
  • TCP / UDP 面向连接(可靠) / 无连接(不可靠)
  • HTTP1.1 / HTTP2 / QUIC(HTTP3) 超文本传输协议

在这里插入图片描述

TCP/IP模型

TCP/IP协议模型(Transmission Control Protocol/Internet Protocol),包含了一系列构成互联网基础的网络协议,是Internet的核心协议。

TCP/IP是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。
TCP/IP定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。
通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。

基于TCP/IP的参考模型将协议分成四个层次,它们分别是链路层、网络层、传输层和应用层。

下图表示TCP/IP模型与OSI模型各层的对照关系。

在这里插入图片描述

TCP/IP协议族按照层次由上到下,层层包装。
TCP/IP模型是互联网的基础,它是一系列网络协议的总称。这些协议可以划分为四层,分别为链路层、网络层、传输层和应用层。

  • 链路层:负责封装和解封装IP报文,发送和接受ARP/RARP报文等。
  • 网络层:负责路由以及把分组报文发送给目标网络或主机。
  • 传输层:负责对报文进行分组和重组,并以TCP或UDP协议格式封装报文。
  • 应用层:负责向用户提供应用程序,比如HTTP、FTP、Telnet、DNS、SMTP等。

在这里插入图片描述
上图清楚地表示了TCP/IP协议中每个层的作用,而TCP/IP协议通信的过程其实就对应着数据入栈与出栈的过程。

入栈的过程,数据发送方每层不断地封装首部与尾部,添加一些传输的信息,确保能传输到目的地。

出栈的过程,数据接收方每层不断地拆除首部与尾部,得到最终传输的数据。

IP

IP 用于计算机之间的通信。

IP 是无连接的通信协议。它不会占用两个正在通信的计算机之间的通信线路。这样,IP 就降低了对网络线路的需求。每条线可以同时满足许多不同的计算机之间的通信需要。

通过 IP,消息(或者其他数据)被分割为小的独立的包,并通过因特网在计算机之间传送。

IP 负责将每个包路由至它的目的地。

tcp ip协同工作

TCP/IP 意味着 TCP 和 IP 在一起协同工作。

TCP 负责应用软件(比如你的浏览器)和网络软件之间的通信。

IP 负责计算机之间的通信。

TCP 负责将数据分割并装入 IP 包,然后在它们到达的时候重新组合它们。

IP 负责将包发送至接受者。

TCP

看TCP的英文全称就知道,其主要作用就是传输 、控制,传输的是数据,控制的是在传输过程中丢包后的重发 、分包乱序后的有序重组 、控制数据传输的速率防止网络拥塞等

这也是我们口中一直说的TCP是一种可靠的传输协议的原因。

TCP的概念(可靠,面向连接的协议)

TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一种面向连接(连接导向)的、可靠的、基于字节流的传输层(Transport layer)通信协议,因为是面向连接的协议。

服务端流程:

  • 监听端口
  • 接收客户端请求建立连接
  • 创建 goroutine 处理连接

客户端流程:

  • 建立与服务端的连接
  • 进行数据收发
  • 关闭连接

TCP的通信机制

一、TCP连接管理(三次握手、四次挥手)

在这里插入图片描述

二、分段数据发送

TCP不是拿到一整个包就直接原封不动地传给接收端的,因为若这样做,即使是发生了数据丢失,也不知道到底丢失了哪部分的数据,因此其采用的就是将数据分段发送的方式

这里先说明一点,不光建立和断开连接时接收端需要向发送端发送请求应答,在数据交互时也是需要的

例如有一个数据包,我们可以将其按顺序给每一个字节都标上一个序号,然后我们假设每次发送1000个序号区间的数据给接收端,所以第一次发送的是 序号 1 ~ 1000 的数据,接收端接收到了以后会返回给发送端一个请求应答,告知发送端下一次请发送 序号 1001 ~ 2000 的数据过来,过程如图所示

在这里插入图片描述

三、重发控制(超时重传)

我们都知道,在数据传输过程中可能会因为各种原因出现丢包现象,而当出现丢包现象时,即发送端在发完数据以后等待一段时间,并未收到接收端的确认应答,则视为丢包,于是就会进行重发

其中丢包现象又分为两种:

  • 发送端向接收端发送数据的过程中,发生了丢包现象,接收端并未接收到数据,因此不会给发送端发送确认应答
  • 接收端收到了发送端传过来的数据,并且也向发送端返回了确认应答,但确认应答的包却在发送的途中出现了丢包,所以发送端接收不到确认应答

以上两种情况如下图所示:

第一种
在这里插入图片描述
第二种
在这里插入图片描述

那么,发送端发送完数据后多久没收到确认应答才判定数据丢包了呢?这个都是随着网络环境的变化而变化的,TCP会在每次发包时计算往返时间以及偏差来决定等待的时间

若重发后又出现了丢包,则下一次等待的时间会以2倍、4倍的指数函数延长

但其又不会无限进行重发,当重发次数达到一定程度后,会判定为网络异常,两端通信就会被强制关闭

四、传输拥塞控制
1.滑动窗口控制
2.滑动窗口的重发控制(快重传)

若使用了滑动窗口控制这一技术后,即使某段数据出现了丢包现象,也不会造成太大的影响,因为接收端会一边接收发送端传过来的数据,一边用某种方式告知发送端刚才丢失了哪段数据

接下来我们来介绍一下其作用过程,如图所示

在这里插入图片描述

图中,在发送第二段数据(1001 ~ 2000)时发生了丢包,因此接收端没有接收到对应的包,所以当发送端传过来第三段数据的时候,接收端返回的仍是第二段的确认应答,紧接着发送端分别发送了第四段、第五段数据,可接收端都返回的是第二段的确认应答

就这样连着三次发送了同一个确认应答给发送端,所以发送端得知刚才传输数据的过程中第二段数据发生了丢包,因此此时会将丢失的数据重发一份

然后接收端在接收到之前丢掉的那段数据以后,因为之前的数据都成功接收了,所以下一次就开始请求 5001 ~ 6000 这段数据了

五、流控制

有时,发送端发送给接收端的数据超过了接收端的最大承载能力,因此会造成数据无法接收的情况,从而导致之后会进行数据重发,这非常得浪费性能。

为了防止上述情况得发生,TCP提供了一种机制可以使发送端每次发送的数据尽可能得在接收端得承载能力之内,而其实现得方式就是接收端向发送端告知自己能够接收的数据大小,因此发送端每次发送的数据就都不会超过该值,我们称该值为窗口大小

一旦接收端暂时无法接收任何数据,它会告知发送端,因此发送端会暂停数据的发送,但为了后续数据的正常发送,发送端会不时地向接收端发送一个窗口探测,试探性地看一下接收端是否能继续接收数据了

具体的过程如下图所示
在这里插入图片描述

流量控制和拥塞控制的区别

1.相同点

(1)现象都是丢包;
(2)实现机制都是让发送方发的慢一点,发的少一点

2.不同点

  • 丢包位置不同
    • 流量控制丢包位置是在接收端上
    • 拥塞控制丢包位置是在路由器上
  • 作用的对象不同
    • 流量控制的对象是接收方,怕发送方发的太快,使得接收方来不及处理
    • 拥塞控制的对象是网络,怕发送发发的太快,造成网络拥塞,使得网络来不及处理

3.联系

  • 拥塞控制
    • 拥塞控制通常表示的是一个全局性的过程,它会涉及到网络中所有的主机、
    • 所有的路由器和降低网络传输性能的所有因素
  • 流量控制
    • 流量控制发生在发送端和接收端之间,只是点到点之间的控制

TCP三次握手、四次挥手

从tcp协议的本质出发,tcp是面向连接的,需要客户端和服务器连接后才能进行数据传输,连接后传输数据才能清楚数据的传输是否是成功的。所以tcp协议是可靠的。那么传输数据之前,我们需要确认客户端和服务器是否已经建立连接。如何评判是否建立连接呢?那么只需要保证双端都可以进行数据的接收和发送即可,也就是客户端和服务器要确定对方具有数据发送和接收的能力。

在这里插入图片描述

在三次握手的情况下,服务端收不到第三次握手的ack确认包,不会认为连接成功

  • 序列号seq:32位,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。就是用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。

  • 确认序号ack:32位,期待对方下一个报文段的第一个数据字节的序号,列号表示报文段携带数据的第一个字节的编号;而确认号指的是期望接收到下一个字节的编号;因此当前报文段最后一个字节的编号+1即为确认号。

6个标志位:

  • URG:紧急指针是否有效,为1,表示某一位需要被优先处理;
  • ACK:确认号是否有效,仅当ACK=1时,确认号字段才有效,- ACK=0,确认号无效
  • PSH:提示接收端应用程序立刻从TCP缓冲区把数据读走
  • RST:对方要求重新建立连接;
  • SYN:连接建立时用于同步序号。当SYN=1,ACK=0时表示:这是一个连接请求报文段。若同意连接,则在响应报文段中使得SYN=1,- ACK=1。因此,SYN=1表示这是一个连接请求,或连接接受报文。- SYN这个标志位只有在TCP建立连接时才会被置1,握手完成后SYN标志位被置0。
  • FIN:通知对方,本段要关闭了,释放一个连接,FIN=1表示:此报文段的发送方的数据已经发送完毕,并要求释放运输连接。

说明:ACK、AYN和FIN这些大写的字母表示标志位,其值要么是1,要么是0,;ack,seq小写的表示序号;

在这里插入图片描述

  • 第一次握手:建立连接时,客户端将标志位SYN置为1,随机产生一个值seq=x,并将该数据包送给服务端,进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。

  • 第二次握手:服务器收到数据包后由标志位SYN=1知道客户请求建立连接,服务器将标志位都置为1,ack=x+1,随机产生一个值seq=y,并将该数据包发送给客户端以确认连接请求,此时服务器进入SYN_RECV状态;

  • 第三次握手:客户端收到确认后,检查ack是否为x+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=y+1,并将该数据包发送给服务器,服务器检查ack是否为y+1,如果正确则建立成功,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手,随后客户端和服务器之间可以开始传输数据了。

由于客户对报文段进行了编号,它知道哪些序号是期待的,哪些序号是过时的。当客户发现报文段的序号是一个过时的序号时,就会拒绝该报文段,这样就不会造成重复连接。

TCP四次挥手

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

一旦四次挥手的 ack包在网络中丢失,服务端将一致停留在最后的确认状态。如果服务端没有收到第四次挥手的ack包,服务端会重新发送FIN包,客户端会重发四次挥手ACK包刷新超时时间, 这个机制也是在不可靠的网络传输中,进行可靠连接。

Client发送一个请求连接的位码SYN和一个随机产生的序列号给Seq

在这里插入图片描述

TCP/UDP区别总结与应用

在这里插入图片描述

面向字节流

面向字节流的话,虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序看成是一连串的无结构的字节流。TCP有一个缓冲,当应用程序传送的数据块太长,TCP就可以把它划分短一些再传送。

面向报文

面向报文的传输方式是应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。因此,应用程序必须选择合适大小的报文。若报文太长,则IP层需要分片,降低效率。若太短,会是IP太小。

什么时候应该使用TCP?

当对网络通讯质量有要求的时候,比如:整个数据要准确无误的传递给对方,这往往用于一些要求可靠的应用,比如HTTP、HTTPS、FTP等传输文件的协议,POP、SMTP等邮件传输的协议。

什么时候应该使用UDP?

当对网络通讯质量要求不高的时候,要求网络通讯速度能尽量的快,这时就可以使用UDP。

TCP 如何保证可靠性传输

1.TCP重传

报文重传是TCP最基本的错误恢复功能,它的目的是防止报文丢失。

报文丢失的可能因素有很多种,包括应用故障,路由设备过载,或暂时的服务宕机。报文级别速度是很高的,而通常报文丢失是暂时的,因此TCP能够发现和恢复报文丢失显得尤为重要。

重传机制在实现数据可靠传输功能的同时,也引起了相应的性能问题:何时进行数据重传?如何保证较高的传输效率?
重传时间过短:在网络因为拥塞引起丢包时,频繁的重传会进一步加剧网络拥塞,引起丢包,恶化网络传输性能。
重传时间过长:接收方长时间无法完成数据接收,引起长时间占用连接线路造成资源损耗、传输效率较低等问题。
  
针对上述问题,TCP中设计了超时重传机制。该机制规定当发送方A向B发送数据包P1时,开启时长为RTO(Retransmission Timeout)的重传定时器,如果A在RTO内未收到B对P1的确认报文,则认为P1在网络中丢失,此时重新发送P1。由此,引出RTO大小的设定问题。

决定报文是否有必要重传的主要机制是重传计时器(retransmission timer),它的主要功能是维护重传超时(RTO)值。当报文使用TCP传输时,重传计时器启动,收到ACK时计时器停止。报文发送至接收到ACK的时间称为往返时间(RTT)。对若干次时间取平均值,该值用于确定最终RTO值。在最终RTO值确定之前,确定每一次报文传输是否有丢包发生使用重传计时器,

超时重传

超时重传机制用来保证TCP传输的可靠性。每次发送数据包时,发送的数据报都有seq号,接收端收到数据后,会回复ack进行确认,表示某一seq号数据已经收到。发送方在发送了某个seq包后,等待一段时间,如果没有收到对应的ack回复,就会认为报文丢失,会重传这个数据包。

快速重传

接受数据一方发现有数据包丢掉了(并不是所期望的值。这意味着报文在传送中丢失。接收端注意到报文乱序,并且在第三个报文中发送重复ACK)。就会发送重复ACK报文告诉发送端重传丢失的报文。
  当重传主机从发送端接收到3个重复ACK时,它会假设此报文确实在传送中丢失,并且立即发送一个快速重传。一旦触发了快速重传,所有正在传输的其他报文都被放入队列中,直到快速重传报文发送为止。

2.滑动窗口 (流量控制)
  • 什么是流量控制?流量控制的目的?

    如果发送者发送数据过快,接收者来不及接收,那么就会有分组丢失。为了避免分组丢失(阻塞掉包),控制发送者的发送速度,使得接收者来得及接收,这就是流量控制。流量控制根本目的是防止分组丢失,它是构成TCP可靠性的一方面

  • 如何实现流量控制?
    tcp给出的方法是,每一个tcp header中专门预制一个字段:接收窗口,表示该tcp数据源的接收能力。因此,接收方可以通过该字段:接收窗口,告诉发送方自己的接收能力。(接收方返回的 ACK 中会包含自己的接收窗口的大小,并且利用大小来控制发送方的数据发送。

    由于每接收到一个数据后,数据如果没有被上层立即,那么下一次接收窗口肯定得变小。如果数据被上层都处理完,下一次接收窗口肯定得变大。所以,窗口会一直变化,即所谓的滑动窗口。通过窗口大小的改变(滑动),发送方就知道自己发送数据时,大概一次可以发多少,而不是盲目地发送。可见滑动窗口,在流控中的作用至关重要,可以说没有滑动窗口,流控无从说起。

  • 流量控制引发的死锁?怎么避免死锁的发生?

    当发送者收到了一个窗口为0的应答,发送者便停止发送,等待接收者的下一个应答。但是如果这个窗口不为0的应答在传输过程丢失,发送者一直等待下去,而接收者以为发送者已经收到该应答,等待接收新数据,这样双方就相互等待,从而产生死锁。
    为了避免流量控制引发的死锁,TCP使用了持续计时器。每当发送者收到一个零窗口的应答后就启动该计时器。时间一到便主动发送报文询问接收者的窗口大小。若接收者仍然返回零窗口,则重置该计时器继续等待;若窗口不为0,则表示应答报文丢失了,此时重置发送窗口后开始发送,这样就避免了死锁的产生。

3.拥塞控制 BBR算法

2016年底google的开发者Neal Cardwell等5个⼤⽜在acmqueue上发表了论⽂BBR: Congestion-Based Congestion Control,提出了TCP拥塞控制的BBR算法。BBR即Bottleneck Bandwidth and Round-trip propagation time,正如其名,它是⼀种基于瓶颈带宽和往返传播时间的拥塞控制算法。

网络传输过程中,某段时间如果网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能就会变差,这种情况就叫做网络拥塞

为什么需要拥塞控制
考虑一下这样的场景:某一时刻网络上的延时突然增加,那么,TCP对这个事做出的应对只有重传数据,但是,重传会导致网络的负担更重,于是会导致更大的延迟以及更多的丢包,于是,这个情况就会进入恶性循环被不断地放大。试想一下,如果一个网络内有成千上万的TCP连接都这么行事,那么马上就会形成“网络风暴”,TCP这个协议就会拖垮整个网络。

为解决这个问题,TCP中使用了四种拥塞控制算法

  • 慢开始
  • 拥塞避免
  • 快重传
  • 快恢复

滑动窗用来做流量控制。流量控制只关注发送端和接受端自身的状况,而没有考虑整个网络的通信情况。拥塞控制,则是基于整个网络来考虑的。

慢开始

慢开始的核心思想:指数级由小到大逐渐增加拥塞窗口大小,如果网络出现阻塞,拥塞窗口就减小。

先试探一下网络的负荷,由小到大逐渐增大发送窗口,也就是说,由小到达逐渐增大拥塞窗口值。指数增长。设立慢启动门限 **ssthresh(slow start threshold)**初始值。

发送方会维持一个拥塞窗口cwnd的状态变量,拥塞窗口的大小取决于拥塞程度,并且会在收发包过程中动态的进行变化。发送方会让本端的发送窗口等于拥塞窗口。

判断出现网络拥塞的依据:没有按时收到应当到达的确认报文(即发生重传)。
维护一个慢开始门限ssthresh状态变量:

  • 当cwnd < ssthresh 时,使用慢开始算法。

  • 当cwnd > ssthresh 时,停止使用慢开始算法而改用拥塞避免算法。

  • 当cwnd = ssthresh 时,既可以使用慢开始算法,也可以使用拥塞避免算法。

拥塞避免

从指数增长变为线性增长

拥塞避免算法是让拥塞窗口缓慢增长,每经过一个往返时间RTT就把发送方的拥塞窗口cwnd加1,而不是加倍,拥塞窗口按线性规律缓慢增长。

在这里插入图片描述

快重传

解决什么问题:
快速重传机制是什么呢?
考虑下面这种情况,在数据传送过程中,网络有可能不太稳定,个别报文段在网络中丢失了,但是实际上网络并没有发生拥塞。这样会导致发送方超时重传,误以为网络上发生了拥塞,由于有慢开始和拥塞避免机制,发送方错误的启动了慢开始算法,并且把拥塞窗口cwnd又设置为最小值1,因为降低了传输效率。

为解决这个问题,快重传要求接收方在收到一个失序的报文段后立即发出重复确认,为的是让发送方知道有一个报文丢失了,快速重传算法规定,发送方只要一连收到三个重复确认就应当立即重传对方还没有接收到的报文段,而不必继续等待设置的重传计时器时间到期。

个别报文丢失,但是网络没有拥塞。此时接收方对上一个报文一直发送确认包,发送了3次重复的确认包,接收方立即重传丢失的报文。

快恢复

调整门限值为ssthresh/2,然后执行拥塞避免算法

1.5 TCP、udp 协议问题汇总

网络通信程序实际开发中,或者技术面试时,面试官通常会问的比较多的一个问题是:网络通信时,如何解决粘包?

1.5.1 为什么需要三次握手而不是两次?

原因:避免重复连接

比如在网络环境比较复杂的情况,客户端可能会连续发送多次请求。如果只设计成两次握手的情况,服务端只能一直接收请求,然后返回请求信息,也不知道客户端是否请求成功。这些过期请求的话就会造成网络连接的混乱。
所以TCP设计成三次握手的目的就是为了避免重复连接。

然后可以设计成四次握手?五次握手?不可以?

答案是也是可以的,不过为了节省资源,三次握手就可以符合实际情况,所以就没必要设计成四次握手、五次握手等等情况

1.5.2 SYN攻击

在TCP 连接建立是需要三次握手,假设攻击者短时间伪造不同 IP 地址的 SYN 报文,服务端每接收到一个 SYN 报文,就进入SYN_RCVD 状态,但服务端发送出去的 ACK + SYN 报文,无法得到未知 IP 主机的 ACK 应答,久而久之就会占满服务端的半连接队列,使得服务器不能为正常用户服务。

1.5.2 TCP三次握手,如果服务端中断,客户端该怎么办?

TCP三次握手是建立TCP连接的过程,其中客户端和服务端都需要参与。如果服务端在握手过程中中断,客户端应该采取以下措施:

  • 超时重传:客户端会等待服务端发送确认消息,如果在一定时间内没有收到确认消息,客户端会重新发送连接请求。客户端会不断重试,直到建立连接或达到最大重试次数。

  • 错误处理:客户端可以通过错误处理来处理服务端中断的情况。如果客户端收到服务端的重置消息(RST),则表示连接已被中断,客户端应该关闭连接并报告错误。

  • 超时处理:如果客户端在一定时间内没有收到服务端的响应消息,则可能是服务端已经中断连接。客户端可以关闭连接并报告错误。

总之,客户端需要采取适当的措施来处理服务端中断的情况,以确保能够及时地识别和处理连接中断。

面试题

TCP是面向连接的, 怎么样才算是一个连接呢?

  • 连接: 自己监听的端口接收到来自远端的连接请求, 从数据包中解析出IP,端口等数据信息来维护一份数据结构来表示同一份来自远端的请求。
  • 断开: 四次挥手后确保对方的连接已经断开,删除本地维护的远端的数据结构

为什么UDP是面向报文的协议?

用户通过UDP协议传输时,操作系统不会对消息进行拆分,直接组装头部就交给网络层处理

所以每个UDP报文就是一个用户消息的边界,读一个UDP报文就能读取到完整的用户消息

操作系统在收到UDP报文后,将其插入到队列中,队列中每一个元素都是一个UDP报文,这样用户调用recvfrom()系统调用读取数据的时候,就会从队列拿出数据,从内核里拷贝给用户缓冲区
在这里插入图片描述

为什么TCP是面向字节流的协议?

通过TCP协议传输时,消息可能会被操作系统分组成多个TCP报文

如何理解tcp面向字节流、udp面向报文段?

面向字节流和面向报文段的区别在于:用户读数据的时候,是不是有边界。

  • 没有边界:也就是我这次read,不知道是读了几个tcp报文段,可能是1个、2个、2.5个…,因此需要上层协议按照自己的边界来划分。
  • 有边界:每次read到的一定是一个数据包,即使这个数据包太大没读完,那么下一次读也是一个新的数据包。

报文和流的区别?

  • 一般TCP/IP的应用层或者OSI的会话、表示、应用层把数据称为数据或者信息,到了传输层把数据称为报文,到了最底层就是比特流了也就是字节流

  • 字节:字节就是散乱的数据

  • 报文就是添加了标记,封装后的数据

字节流是由字节组成的, 字节流是最基本的,所有的InputStrem和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的

面向报文的传输方式是应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。
因此,应用程序必须选择合适大小的报文。若报文太长,则IP层需要分片,降低效率。若太短,会是IP太小。
UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。
这也就是说,应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。

面向字节流的话,虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序看成是一连串的无结构的字节流。TCP有一个缓冲,当应用程序传送的数据块太长,TCP就可以把它划分短一些再传送。如果应用程序一次只发送一个字节,TCP也可以等待积累有足够多的字节后再构成报文段发送出去。

Http 的Keep-Alive 和TCP的Keepalive 有什么区别?

前者是多个http用同一个tcp连接,后者是tcp实现的类似“心跳"的机制

如何优化高并发TCP链接中产生的大量的TIME_WAIT的状态?

在这里插入图片描述

通过上图,我们可以看到TIME_WAIT状态是在tcp断开链接时产生的,因为TCP连接是双向的,所以在关闭连接的时候,两个方向各自都需要关闭。

先发FIN包的一方执行的是主动关闭;后发FIN包的一方执行的是被动关闭。
主动关闭的一方会进入TIME_WAIT状态,并且在此状态停留两倍的MSL时长。

MSL指的是报文段的最大生存时间,如果报文段在网络活动了MSL时间,还没有被接收,那么会被丢弃。关于MSL的大小,RFC 793协议中给出的建议是两分钟,不过实际上不同的操作系统可能有不同的设置,以Linux为例,通常是半分钟,两倍的MSL就是一分钟,也就是60秒,并且这个数值是硬编码在内核中的,也就是说除非你重新编译内核,否则没法修改它。

TIME_WAIT状态存在的必要性。

虽然双方都同意关闭连接了,而且握手的4个报文也都协调和发送完毕,按理可以直接回到CLOSED状态(就好比从SYN_SEND状态到ESTABLISH(establish)状态那样);但是因为我们必须要假想网络是不可靠的,你无法保证你最后发送的ACK报文会一定被对方收到,比如丢包或者延迟到达,因此对方处于LAST_ACK状态下的SOCKET可能会因为超时未收到ACK报文,而重发FIN报文,所以这个TIME_WAIT状态的作用就是用来重发可能丢失的ACK报文,并保证于此。

简单说timewait之所以等待2MSL的时长,是为了避免因为网络丢包或者网络延迟而造成的tcp传输不可靠,而这个time_wait状态则可以最大限度的提升网络传输的可靠性。

网络通信时,如何解决粘包、分包、丢包或者包乱序问题?

应用层传到 TCP 协议的数据,不是以消息报为单位向目的主机发送,而是以字节流的方式发送到下游,这些数据可能被切割和组装成各种数据包,接收端接收到这些数据包后没有正确还原之前的消息,因此出现粘包现象。

https://baijiahao.baidu.com/s?id=1744728859176967544&wfr=spider&for=pc

  • 如果是 TCP 协议,在大多数场景下,是不存在丢包和包乱序问题的,TCP 通信是可靠通信方式,TCP 协议栈通过序列号和包重传确认机制保证数据包的有序和一定被正确发到目的地;

  • 如果是 UDP 协议,如果不能接受少量丢包,那就要自己在 UDP 的基础上实现类似 TCP 这种有序和可靠传输机制了(例如 RTP协议、RUDP 协议)。所以,问题拆解后,只剩下如何解决粘包的问题。

造成TCP粘包的原因

TCP产生拆包和粘包的原因:

  • TCP 是基于字节流的,虽然应用层和 TCP 传输层之间的数据交互是大小不等的数据块,但是 TCP 把这些数据块仅仅看成一连串无结构的字节流,没有边界;

  • 从 TCP 的帧结构也可以看出,在 TCP 的首部没有表示数据长度的字段。

(1)发送方原因
因为TCP是面向流,没有边界,而操作系统在发送TCP数据时,会通过缓冲区来进行优化,例如缓冲区为1024个字节大小。

  • 如果一次请求发送的数据量比较小,没达到缓冲区大小,TCP则会将多个请求合并为同一个请求进行发送,这就形成了粘包问题。

  • 如果一次请求发送的数据量比较大,超过了缓冲区大小,TCP就会将其拆分为多次发送,这就是拆包。

(发送端需要等缓冲区满才发送出去,造成粘包)

(2)接收方原因

TCP接收到数据包时,并不会马上交到应用层进行处理,或者说应用层并不会立即处理。实际上,TCP将接收到的数据包保存在接收缓存里,然后应用程序主动从缓存读取收到的分组。这样一来,如果TCP接收数据包到缓存的速度大于应用程序从缓存中读取数据包的速度,多个包就会被缓存,应用程序就有可能读取到多个首尾相接粘到一起的包。(接收方不及时接收缓冲区的包,造成多个包接收)

如何处理粘包现象?(TCP无保护消息边界的解决)

针对这个问题,一般有3种解决方案:即直到边界的位置来划分出等效的用户消息

  • 固定长度的消息:这种方式灵活性不高,实际很少用

  • 特殊字符作为边界,比如HTTP的消息头中,使用回车符和换行符
    注意的是,这个特殊字符如果出现在了消息内容里,需要对这个字符转义
    在这里插入图片描述

  • 自定义消息结构(把消息的尺寸与消息一块发送):可以自定义一个消息结构,head固定大小,head里存储一个字段来说明后面的数据有多大
    在这里插入图片描述

UDP会不会产生粘包问题呢?

TCP为了保证可靠传输并减少额外的开销(每次发包都要验证),采用了基于流的传输,基于流的传输不认为消息是一条一条的,是无保护消息边界的(保护消息边界:指传输协议把数据当做一条独立的消息在网上传输,接收端一次只能接受一条独立的消息)。

UDP则是面向消息传输的,是有保护消息边界的,接收方一次只接受一条独立的信息,所以不存在粘包问题。

举个例子:有三个数据包,大小分别为2k、4k、6k,如果采用UDP发送的话,不管接受方的接收缓存有多大,我们必须要进行至少三次以上的发送才能把数据包发送完,但是使用TCP协议发送的话,我们只需要接受方的接收缓存有12k的大小,就可以一次把这3个数据包全部发送完毕。

TCP为什么不两次握手?

谢希仁版《计算机网络》中的例子:

"已失效的连接请求报文段”的产生在这样一种情况下:

client发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接释放以后的某个时间才到达server。

本来这是一个早已失效的报文段,但server收到此失效的连接请求报文段后,就误认为是client再次发出的一个新的连接请求。

于是就向client发出确认报文段,同意建立连接。

假设不采用“三次握手”,那么只要server发出确认,新的连接就建立了。

由于现在client并没有发出建立连接的请求,因此不会理睬server的确认,也不会向server发送数据,但server却以为新的运输连接已经建立,并一直等待client发来数据。

这样,server的很多资源就白白浪费掉了

采用“三次握手”的办法可以防止上述现象发生

tcp缺点,及UDP如何实现可靠传输?

拥塞控制和慢启动等“缺点”

UDP要想可靠,就要接收方收到UDP之后回复个确认包,发送方有个机制,收不到确认包就要重新发送,每个包有递增的序号,接收方发现中间丢了包就要发重传请求,当网络太差时候频繁丢包,防止越丢包越重传的恶性循环,要有个发送窗口的限制,发送窗口的大小根据网络传输情况调整,调整算法要有一定自适应性。

好多游戏的tcp都是这么做的,自己实现udp的可靠传输

tcp如何处理丢包、乱序问题?

tcp为建立的每一个链接 建立了发送缓冲区,从建立的第一个序列号为0,后面每个字节的序列号都会+1
在这里插入图片描述

TCP 连接后是否会在一个 HTTP 请求完成后断开?什么情况下会断开?

默认情况下建立 TCP 连接不会断开,只有在请求报头中声明 Connection: close 才会在请求完成后关闭连接

什么是 TCP keepalive ?

这东西其实就是 TCP 的保活机制

在S和C建立连接后,若双方均不发送数据只保持连接,则再两小时后系统会自动启动保活机制向peer发送包,看对方是否回应ack,若可以收到则继续保持,否则无效。

在这里插入图片描述

TCP 异常断开连接的场景

https://zhuanlan.zhihu.com/p/390939380

  • 开启keepalive

    如果两端的 TCP 连接一直没有数据交互,达到了触发 TCP 保活机制的条件,那么内核里的 TCP 协议栈就会发送探测报文。

    • 如果对端程序是正常工作的(服务端)。当 TCP 保活的探测报文发送给对端, 对端会正常响应,这样 TCP 保活时间会被重置,等待下一个 TCP 保活时间的到来。

    • 如果对端主机崩溃(客户端),或对端由于其他原因导致报文不可达。当 TCP 保活的探测报文发送给对端后,石沉大海,没有响应,连续几次,达到保活探测次数后,TCP 会报告该 TCP 连接已经死亡。

    所以,TCP 保活机制可以在双方没有数据交互的情况,通过探测报文,来确定对方的 TCP 连接是否存活。

  • 主机崩溃(无keepalive)

    在没有开启 TCP keepalive,且双方一直没有数据交互的情况下,如果客户端的「主机崩溃」了,会发生什么。

    如果客户端主机崩溃了,服务端是无法感知到的,在加上服务端没有开启 TCP keepalive,又没有数据交互的情况下,服务端的 TCP 连接将会一直处于 ESTABLISHED 连接状态,直到服务端重启进程。

  • 进程崩溃的情况(无keepalive)

    kill -9 来模拟进程崩溃的情况,发现在 kill 掉进程后,服务端会发送 FIN 报文,与客户端进行四次挥手。

    所以,即使没有开启 TCP keepalive,且双方也没有数据交互的情况下,如果其中一方的进程发生了崩溃,这个过程操作系统是可以感知的到的,于是就会发送 FIN 报文给对方,然后与对方进行 TCP 四次挥手。

TCP四次握手中 CLOSE_WAIT 状态后什么时侯server端能发送FIN呢?

在 TCP 四次握手过程中,当客户端发送了 FIN 报文后,服务器进入了 CLOSE_WAIT 状态,表示服务器已经接收到了客户端发来的 FIN 报文,并向客户端发送了 ACK 报文作为响应,但服务器还有数据需要发送给客户端,因此仍然保持连接。

在 CLOSE_WAIT 状态下,服务器可以发送数据,但不能再发送 FIN 报文。只有在服务器的应用程序结束了对该连接的所有数据传输,并主动关闭了连接后,服务器才能发送 FIN 报文,即进入最后的 TIME_WAIT 状态,等待可能出现的重传报文。

因此,只有在服务器应用程序结束了对该连接的所有数据传输,并调用了 close() 函数关闭连接时,服务器才能发送 FIN 报文,进行 TCP 的最后一次握手,完成连接的关闭。

TCP释放连接时为什么time_wait状态必须等待2MSL时间

在这里插入图片描述

第一,为了保证A发送的最后一个ACK报文(四次挥手)能够到达B。这个ACK报文段有可能丢失,因而使处在LAST-ACK状态的B收不到对已发送的FIN+ACK报文段的确认。B会超时重传这个FIN+ACK报文段,而A就能在2MSL时间内收到这个重传的FIN+ACK报文段。

如果A在TIME-WAIT状态不等待一段时间,而是在发送完ACK报文段后就立即释放连接,就无法收到B重传的FIN+ACK报文段,因而也不会再发送一次确认报文段。这样,B就无法按照正常的步骤进入CLOSED状态。

第二,A在发送完ACK报文段后,再经过2MSL时间,就可以使本连接持续的时间所产生的所有报文段都从网络中消失。这样就可以使下一个新的连接中不会出现这种旧的连接请求的报文段。

HTTP

HTTP是一个属于应用层的面向对象的协议,主要特点概括主要有5点:

  • 1、无状态:协议对于事务处理无记忆能力,每次客户端发起请求,都会新开一个TCP连接。

  • 2、支持客户/服务器模式。

  • 3、简单快速:客户端请求只需发送请求方法和路径。

  • 4、灵活:允许任意类型的数据对象,使用Content-Type加以标记。

  • 5、无连接:TCP不可复用,即服务器处理完客户请求并收到应答后,断开连接,节省传输时间。

HTTP2.0

特性

  • 新的二进制格式。
  • 流量控制。
  • 多路复用(MultiPlexing),即连接共享,即每一个request都是是用作连接共享机制的。一个request对应一个id,这样一个连接上可以有多个request,每个连接的request可以随机的混杂在一起,接收方可以根据request的 id将request再归属到各自不同的服务端请求里面。
  • header压缩,通讯双方各自cache一份header fields表,既避免了重复header的传输,又减小了需要传输的大小,像cookie这类重复的数据来回传输很占用带宽。
  • 双向数据流,服务端也能具备主动推送消息的能力

HTTP/1.1 和 HTTP/2.0 是 HTTP 协议的两个不同版本,它们在性能、效率和功能上有一些显著的区别:

1. 多路复用,代替原来的序列和阻塞机制(Multiplexing)
  • HTTP/1.1: 在 HTTP/1.1 中,每个请求都需要单独建立连接,因此在处理多个请求时可能会导致网络阻塞和延迟。这种序列化的方式限制了并行传输的能力,通常采用技巧如域名分片(domain sharding)或连接池(connection pooling)来提高性能。
  • HTTP/2.0:
    • 同个域名只需要占用一个 TCP 连接,消除了因多个 TCP 连接而带来的延时和内存消耗。
    • 单个连接上可以并行交错的请求和响应,之间互不干扰。
    • 在HTTP/2中,每个请求都可以带一个31bit的优先值,0表示最高优先级, 数值越大优先级越低。有了这个优先值,客户端和服务器就可以在处理不同的流时采取不同的策略,以最优的方式发送流、消息和帧。
2. 头部压缩,通过 HPACK 压缩格式(Header Compression)
  • HTTP/1.1: 在 HTTP/1.1 中,每个请求和响应的头部信息都需要重复发送,这会占用额外的带宽和增加延迟。 HTTP 1.1请求的大小变得越来越大,有时甚至会大于TCP窗口的初始大小,因为它们需要等待带着ACK的响应回来以后才能继续被发送。

  • HTTP/2.0: header 头部压缩,通过 HPACK 压缩格:HTTP/2对消息头采用HPACK(专为http/2头部设计的压缩格式)进行压缩传输,能够节省消息头占用的网络的流量。而HTTP/1.x每次请求,都会携带大量冗余头信息,浪费了很多带宽资源。(通讯双方各自cache一份header fields表,既避免了重复header的传输)

3. 服务器推送(Server Push)
  • HTTP/1.1: 在 HTTP/1.1 中,服务器只能响应客户端发出的请求,不能主动向客户端推送数据。
  • HTTP/2.0: HTTP/2.0 支持服务器推送,允许服务器在客户端请求之前主动向客户端发送资源,提高了页面加载速度和性能。
4. 优化的流控制(Stream Prioritization)
  • HTTP/1.1: 在 HTTP/1.1 中,所有的请求都是同等重要的,无法指定优先级。
  • HTTP/2.0: HTTP/2.0 支持流控制,可以对请求和响应进行优先级排序,确保关键资源优先加载,提高用户体验。
5. 二进制分帧,按帧方式传输(Binary Protocol)
  • HTTP/1.1: HTTP/1.1 使用文本格式传输数据,包括请求和响应头部信息和正文,HTTP / 1 的请求和响应报文,都是由起始行,首部和实体正文(可选)组成,各部分之间以文本换行符分隔。
  • HTTP/2.0: HTTP/2 将请求和响应数据分割为更小的帧,并且它们采用二进制编码,而非 HTTP 1.x 的文本格式,二进制协议解析起来更高效。

总的来说,HTTP/2.0 相对于 HTTP/1.1 在性能、效率和功能上有较大的改进,特别是在多路复用、头部压缩、服务器推送等方面,使得现代网站和应用能够更快地加载和更高效地交互。

HTTP3:

连接建立延时低,一次往返可建立HTTPS连接
改进的拥塞控制,高效的重传确认机制
切换网络保持连接,从4G切换到WIFI不用重建连接

http0.9、http1.0、1.1、2.0区别

http0.9 (TCP不可复用,耗性能)

首先在HTTP 0.9版本中,每次请求都需要新开一个TCP连接,是不可复用的,这非常的消耗性能。

HTTP 1.0 (HTTP 1.0版本,引入Keepei-Alive概念,实为短连接,未正名)

因此在HTTP 1.0版本,引入了Keep-Alive 持久连接的概念,使用Connection: Keep-Alive的首部来操作TCP的持久连接,有效的解决了TCP连接不可复用的问题,减少性能损耗。

但是,他也存在一定的问题,在HTTP 1.0中其实默认的是短链接,没有正式规定Connection: Keep-Alive操作,这时HTTP 1.1版本出现了。

HTTP 1.1 (tcp的长连接,正名Keep-Alive,引入pipelining 管道技术,但有队头阻塞问题。)

HTTP1.1规定了默认保持长连接(HTTP persistent connection ,也有翻译为持久连接),数据传输完成了保持TCP连接不断开(不发RST包、不四次握手),等待在同域名下继续用这个通道传输数据;支持长连接(PersistentConnection)和请求的流水线(Pipelining)处理,相反的就是短连接,它只支持短连接。

顺序接收

  • 虽然http1.1实现了tcp的长连接,在一个tcp链接通道中,我们可以连续处理多个http请求响应,但是这个处理过程是半双工模式,也就是同一时刻只能处理一个request的请求或者响应,后面的request必须等到前面的请求响应之后才能进行。顺序绝对不能乱,这就是http1.1pipeline的弊端。

在这里插入图片描述

  • 还有另一个pipeline的限制,只能是幂等请求(get、head等)才能应用pipeline,大部分浏览器默认是关闭pipeline的。
HTTP2 多路复用(启用数据分帧,只解决粒度级别为http request的队头阻塞。)

http2完全摒弃http1.1半双工通信的方式,实现了全双工通信,具体表现为:浏览器针对同一个域名的资源,只建立一个tcp连接通道,所有的针对这个域名的请求全部在这个通道中完成,并且引入了流的机制,这条通道可以同时处理多个request,这不同于http1.1的pepeline,http2的多路复用,对于request的响应并不会因为上一个request的响应未完成而阻塞,http2彻底解决了http层面的队头阻塞。

http2中在一个tcp通道中的所有http请求不分先后,不会阻塞,同样是一个页面中多个资源同时去请求

- 数据格式

- http1.1是明文协议,解析http1.1的明文是基于文本。
- http2.0的协议采用的是二进制格式。

数据分帧

就在这时,光芒照在了HTTP 2.0上,HTTP 2.0 over TCP出现了,它通过数据分帧 — 多个请求复用一个TCP连接(最多6个),然后每个request-response都被拆分成若干个frame帧发送,这样即使一个请求被阻塞了,也不会影响其他请求,如下图,其实它只解决了一部分问题~

在这里插入图片描述

HTTP2.0通过在应用层和传输层之间增加一个二进制分帧层,突破了HTTP1.1的性能限制、改进传输性能。
在这里插入图片描述

多路复用
概念

  • 流(stream):已建立连接上的双向字节流。
  • 消息:与逻辑消息对应的完整的一系列数据帧。
  • 帧(frame):HTTP2.0通信的最小单位,每个帧包含帧头部,至少也会标识出当前帧所属的流(stream id)

ps:如果队头阻塞的粒度是http request级别,那么HTTP/2 over TCP的确解决了HTTP 1.1中的问题。但是在HTTP 2.0 over TCP版本都是基于TCP实现。因此,HTTP 2.0 over TCP并没有解决数据传输层的队头阻塞问题。

http3.0 (HTTP 2.0 over QUIC,启用UDP协议真正的解决传输层的队头阻塞问题。)

HTTP 2.0 over QUIC也可以称为HTTP 3.0,它使用UDP实现了一个可靠的多路复用传输层。我们所知的UDP是面向数据报文的,数据包之间没有约束(这也带来了一定的安全性问题,详见UDP协议及其安全隐患),QUIC就是充分利用这个特性解决传输层的队头阻塞问题的。当然,QUIC的协议实现有非常多的细节,而这方面Google确实做得非常好,如果你想进一步了解,可以关注他们的 开源实现。

HTTP是如何建立起来的

在这里插入图片描述

在TCP传输中客户端与服务端通过socket进行通信,通信流程:

在这里插入图片描述

对于服务器端开发主要流程–类似于 接电话过程

socket()[找到一个可以通话的手机]----->bind()[插入一个固定号码]------>listen()-------> accept------->recv()------->send()------>close();

对于客户端开发主要流程----类似于打电话过程

socket()----->connect()------>recv/read/send------>close()

对于TCP协议 =建立连接就在客户端connect()与服务器listen之间 建立TCP连接(三次握手)

一个服务器启动的时候,会监听一个端口。其实就是新建了一个socket。

那么如果有一个连接到来的时候,我们通过accept就能拿到这个新连接对应的socket。那么这个socket和监听的socket是不是同一个呢?

其实socket分为监听型和通信型的。表面上,服务器用一个端口实现了多个连接,但是这个端口是用于监听的,底层用于和客户端通信的其实是另一个socket。

所以每一个连接过来,负责监听的socket发现是一个建立连接的包(syn包),他就会生成一个新的socket与之通信(accept的时候返回的那个)。

accept()系统调用要做的事情:

  • 1.建立一个新的套接字供服务器端和客户端通信
  • 2.创建一个新的fd供应用程序后续读写该套接字
客户端connect()函数

对于客户端的 connect() 函数,该函数的功能为客户端主动连接服务器,建立连接是通过三次握手,而这个连接的过程是由内核完成,不是这个函数完成的,这个函数的作用仅仅是通知 Linux 内核,让 Linux 内核自动完成 TCP 三次握手连接(三次握手详情,请看《浅谈 TCP 三次握手》),最后把连接的结果返回给这个函数的返回值(成功连接为0, 失败为-1)。

通常的情况,客户端的 connect() 函数默认会一直阻塞,直到三次握手成功或超时失败才返回(正常的情况,这个过程很快完成)。

listen()函数

对于服务器,它是被动连接的。举一个生活中的例子,通常的情况下,移动的客服(相当于服务器)是等待着客户(相当于客户端)电话的到来。而这个过程,需要调用listen()函数。

listen() 函数的主要作用就是将套接字( sockfd )变成被动的连接监听套接字(被动等待客户端的连接),至于参数 backlog 的作用是设置内核中连接队列的长度(这个长度有什么用,后面做详细的解释),TCP 三次握手也不是由这个函数完成,listen()的作用仅仅告诉内核一些信息

这里需要注意的是,listen()函数不会阻塞,它主要做的事情为,将该套接字和套接字对应的连接队列长度告诉 Linux 内核,然后,listen()函数就结束。

这样的话,当有一个客户端主动连接(connect()),Linux 内核就自动完成TCP 三次握手,将建立好的链接自动存储到队列中,如此重复。

所以,只要 TCP 服务器调用了 listen(),客户端就可以通过 connect() 和服务器建立连接,而这个连接的过程是由内核完成。

accept()函数

accept()函数功能是,从处于 established 状态的连接队列头部取出一个已经完成的连接,如果这个队列没有已经完成的连接,accept()函数就会阻塞,直到取出队列中已完成的用户连接为止。

如果,服务器不能及时调用 accept() 取走队列中已完成的连接,队列满掉后会怎样呢?UNP(《unix网络编程》)告诉我们,服务器的连接队列满掉后,服务器不会对再对建立新连接的syn进行应答,所以客户端的 connect 就会返回 ETIMEDOUT。但实际上Linux的并不是这样的!

HTTPS

https是在TCP协议与http之间加了一个控制安全传输的SSL协议,也就是说,直接运行在TCP之上的HTTP是普通的HTTP,运行在SSL/TLS上的HTTP则是HTTPS。这几个协议在计算机网络的OSI七层模型中的位置如下表所示:
在这里插入图片描述

TCP连接建立好后,对于HTTP而言,服务器就可以发数据给客户端。

但是对于HTTPS,它还要运行SSL/TLS协议,SSL/TLS协议分两层,第一层是记录协议,主要用于传输数据的加密压缩;第二层是握手协议,它建立在第一层协议之上,主要用于数据传输前的双方身份认证、协商加密算法、交换密钥。

HTTPS验证过程就是SSL握手协议的交互过程。“HTTPS验证”这个说法其实不准确的,应该是“SSL验证”,这两种说法网上都能看到。

HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。

HTTPS单向认证

双向认证,顾名思义,客户端和服务器端都需要验证对方的身份,在建立HTTPS连接的过程中,握手的流程比单向认证多了几步。

单向认证的过程,客户端从服务器端下载服务器端公钥证书进行验证,然后建立安全通信通道。

双向通信流程,客户端除了需要从服务器端下载服务器的公钥证书进行验证外,还需要把客户端的公钥证书上传到服务器端给服务器端进行验证,等双方都认证通过了,才开始建立安全通信通道进行数据传输。

单向认证流程中,服务器端保存着公钥证书和私钥两个文件,整个握手过程如下:

在这里插入图片描述

HTTPS双向认证

双向认证流程

在这里插入图片描述

在这里插入图片描述

Websocket

Websocket和http协议有什么区别

WebSocket 和 HTTP 协议都是基于TCP协议,是用于网络通信的两种不同的协议,它们有以下几个主要区别:

  1. 连接方式:

    • HTTP: HTTP 是一种无状态的协议,每次请求都需要建立一个新的连接,并在请求完成后立即关闭连接。这种请求-响应模式适用于传统的网页浏览和数据传输,但不适合实时通信。
    • WebSocket: WebSocket 通过一个持久的连接实现全双工通信。客户端和服务器可以通过这个连接进行双向的实时数据传输,而无需每次通信都建立新的连接。这种长连接的方式适合实时性要求高的应用,比如聊天应用、实时游戏等。
  2. 通信开销:

    • HTTP: 每次请求都需要在客户端和服务器之间进行握手,发送请求头和请求体,然后服务器响应并发送响应头和响应体。这种请求-响应模式的通信开销相对较高。
    • WebSocket: WebSocket 在建立连接后,只需要进行一次握手,之后就可以在同一个连接上发送多个消息。由于不需要重复建立连接和发送额外的请求头,WebSocket 的通信开销比较低。
  3. 数据格式:

    • HTTP: HTTP 协议主要用于传输文本和二进制数据,但通常需要在传输之前将数据编码成字符串。常见的格式包括 JSON、XML、HTML、文本等。
    • WebSocket: WebSocket 支持传输任意格式的数据,包括文本和二进制数据。这意味着它可以更灵活地处理不同类型的数据,比如音频、视频、图像等。
  4. 应用场景:

    • HTTP: HTTP 协议适用于传统的网页浏览和数据传输,包括获取静态资源、提交表单、下载文件等。
    • WebSocket: WebSocket 更适合实时通信和推送场景,比如在线聊天、实时数据更新、多人游戏等。

总的来说,HTTP 协议适用于请求-响应式的通信模式,适合于静态资源的传输和网页的浏览;而 WebSocket 协议适用于实时通信场景,可以提供低延迟、高效率的双向数据传输。

总结

TCP/IP 和 HTTP 的区别和联系是什么?

HTTP是要基于TCP连接基础上的,简单的说,TCP就是单纯建立连接,不涉及任何我们需要请求的实际数据,简单的传输。HTTP是用来收发数据,即实际应用上来的。

TCP/IP是一个分层的协议,计算机里面很多东西都是这样分层来设计的,这样设计的好处是每一层只需要考虑自己需要处理的数据。

在TCP/IP协议的四层模型里,HTTP属于应用层,之所以叫应用层是因为这些是我们直接接触到的具体应用,比如用于网页浏览的HTTP,用于传输文件的FTP,或者远程登录的Telnet和SSH。应用层需要交换数据的时候,比如你需要访问一个网页,浏览器会先生成HTTP的数据包,然后交给传输层去建立连接。

TCP是传输层,它通过流量控制,重传等机制来在主机间建立一个可靠的连接。TCP使用不同的端口来标记不同的应用发起的连接。为了避免在网络层产生分片,TCP会通过协商MSS,Path MTU Discovery的方式来对数据包进行分段交给网络层。

IP是网络层,负责处理不同的网络之间发送的数据包,它不需要考虑具体应用或者端口的信息。它的主要工作是分片(fragmentation)和重组(reassembly)数据包(TCP需要通过重传来保证可靠性,所以不依赖网络层的分片,主要是UDP使用)以及根据IP地址做路由(route)。

TCP是底层通讯协议,定义的是数据传输和连接方式的规范
HTTP是应用层协议,定义的是传输数据的内容的规范
HTTP协议中的数据是利用TCP协议传输的,所以支持HTTP也就一定支持TCP

HTTP2.0的多路复用和HTTP1.X中的长连接复用有什么区别?

  • HTTP/1.* 一次请求-响应,建立一个连接,用完关闭;每一个请求都要建立一个连接;

  • HTTP/1.1 通过设定 Connection:keep-alive 字段来保持TCP的长连接 ,下一个请求需要在上一个请求的响应之后发送,因此会存在队头阻塞。HTTP1.1进一步地支持在持久连接上使用管道化(pipelining)特性。管道化允许客户端在已发送的请求收到服务端的响应之前发送下一个请求,借此来减少等待时间提高吞吐率。但是需要响应的顺序是按照请求顺序进行,因此也会存在队头阻塞。一旦有某请求超时等,后续请求只能被阻塞,毫无办法,也就是人们常说的线头阻塞;

  • HTTP/2多个请求可同时在一个连接上并行执行(一个连接被多个流复用。一个流表示一次请求-响应过程。)。某个请求任务耗时严重,不会影响到其它连接的正常执行;

    这个过程有两个概念:流和帧。帧代表着最小的数据单位,每个帧会标识出该帧属于哪个流,流也就是多个帧组成的数据流。

    多路复用,就是在一个 TCP 连接中可以存在多条流。换句话说,也就是可以发送多个请求,对端可以通过帧中的标识知道属于哪个请求。通过这个技术,可以避免 HTTP 旧版本中的队头阻塞问题,极大的提高传输性能。

好处:
减少服务端连接压力,减少占用内存,提升连接吞吐量;
连接数的减少改善了网络拥塞状况,慢启动时间减少,拥塞和丢包恢复速度更快;
避免连接频繁创建和关闭(三次连接、四次挥手);

如果服务器挂掉或者客户端挂掉,会怎么样?

挂掉,则一段时间之后,保活时间到期,则关闭。

或者TCP等待时间结束,关闭TCP连接。或者采用应用层周期发送心跳包来检测是否对方还在。

HTTPS

超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。

为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。

HTTP特点与HTTPS特点:

HTTP特点:

  • 无状态:协议对客户端没有状态存储,对事物处理没有“记忆”能力,比如访问一个网站需要反复进行登录操作
  • 无连接:HTTP/1.1之前,由于无状态特点,每次请求需要通过TCP三次握手四次挥手,和服务器重新建立连接。比如某个客户机在短时间多次请求同一个资源,服务器并不能区别是否已经响应过用户的请求,所以每次需要重新响应请求,需要耗费不必要的时间和流量。
  • 基于请求和响应:基本的特性,由客户端发起请求,服务端响应
  • 简单快速、灵活
  • 通信使用明文、请求和响应不会对通信方进行确认、无法保护数据的完整性

HTTPS特点:
基于HTTP协议,通过SSL或TLS提供加密处理数据、验证对方身份以及数据完整性保护

通过抓包可以看到数据不是明文传输,而且HTTPS有如下特点:

  • 内容加密:采用混合加密技术,中间者无法直接查看明文内容
  • 验证身份:通过证书认证客户端访问的是自己的服务器
  • 保护数据完整性:防止传输的内容被中间人冒充或者篡改

HTTPS和HTTP的区别主要如下:

1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

从输入URL到浏览器显示页面发生了什么?

大致流程

  • URL 解析
  • DNS 查询
  • TCP 连接
  • 处理请求
  • 接受响应
  • 渲染页面

一、URL 解析
地址解析:

首先判断你输入的是一个合法的 URL 还是一个待搜索的关键词,并且根据你输入的内容进行自动完成、字符编码等操作。

HSTS

由于安全隐患,会使用 HSTS 强制客户端使用 HTTPS 访问页面。详见:你所不知道的 HSTS。

其他操作

浏览器还会进行一些额外的操作,比如安全检查、访问限制(之前国产浏览器限制 996.icu)。

检查缓存

在这里插入图片描述
二、DNS 查询
基本步骤

在这里插入图片描述

Go语言中的io多路复用

network poller

首先我们先说一下什么是文件描述符(File descriptor),根据它的英文首字母也简称FD,它是一个用于表述指向文件的引用的抽象化概念。

它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。

writefds、readfds、和exceptfds是三个文件描述符集合。

select会遍历每个集合的前nfds个描述符,分别找到可以读取、可以写入、发生错误的描述符,统称为就绪的描述符。

https://www.dmozdir.org/News/?CID=54444

netpoll调用epollwait获取就绪的 fd 列表

netpoll会调用epollwait获取就绪的 fd 列表,对应的epoll函数是epoll_wait。toRun是一个 g 的链表,存储要恢复的 goroutines,最后返回给调用方。

如果epollwait返回的n大于零,那么表示被监控的文件描述符出现了待处理的事件,那么需要调用for循环进行处理。

循环里面会根据时间类型设置mode,然后拿出对应的pollDesc,调用netpollready方法。

在这里插入图片描述

在这里插入图片描述

runtime.netpoll的源码 两处需要注意的地方

  • 调度器中执行runtime.schedule(),该方法中会执行runtime.findrunable(),在runtime.findrunable()中调用了runtime.netpoll获取待执行的goroutine;
  • Go runtime 在程序启动的时候会创建一个独立的sysmon监控线程,sysmon 每 20us~10ms 运行一次,每次运行会检查距离上一次执行netpoll是否超过10ms,如果是则会调用一次runtime.netpoll;

三、远程调用

rpc

远程过程调用,简称为RPC,是一个计算机通信协议,它允许运行于一台计算机的程序调用另一台计算机的子程序,而无需额外地为这个交互作用编程。

RPC与传统的HTTP对比

优点:

  1. 传输效率高(二进制传输)

  2. 发起调用的一方无需知道RPC的具体实现,如同调用本地函数般调用

缺点:

  1. 通用性不如HTTP好(HTTP是标准协议)

rpc调用过程

在这里插入图片描述

协程

协程到底是怎样的存在?

因为用户程序不能操作内核空间,所以只能给协程分配用户栈,而操作系统对于协程一无所知,所以协程被成为“用户态线程”

在创建协程时,都要指定执行入口
协程的关键思想在于 控制流的 ‘主动让出’和‘ 恢复

每个协程都有自己的执行栈,可以保存自己的执行现场
可以由用户程序,按需创建协程。

协程让出执行权时,都需要保存执行现场,后从中断处恢复,继续执行。

这样实现了灵活、轻量、由用户态调度的多任务模型

线程的缺点

高并发,多线程模型下,内核、用户态两头忙

协程和IO多路复用更配

进程打开文件、创建的socket等 都会记录在文件描述符表,socket所有操作都由操作系统来提供(完成)。返回给应用程序的,只有一个描述符 fd,用于识别不同的socket。
在操作系统创建每个socket时,都会创建一个读缓冲区、写缓冲区,
在这里插入图片描述

  • 阻塞式io, 要处理一个socket就要占用一个线程,等这个socket处理完才能接手下一个,高并发会加剧调度开销。

  • 非阻塞式io(不让出cpu),但是需要频繁的检查socket是否就绪了,忙等待,很难把握轮训时间间隔时间,容易造成空耗cpu,加剧响应延迟。

  • io多路复用 有操作系统提供支持,把需要等待的socket加入到监听集合,这样可以通过一次系统调用,同时监听多个socket,有socket就绪了,就可以逐个处理了。不用为等待某个socket而阻塞或空耗cpu,也不会陷入“忙等待”中,并发能力大幅提升

I/O多路复用,I/O就是指的我们网络I/O,多路指多个TCP连接(或多个Channel),复用指复用一个或少量线程。串起来理解就是很多个网络I/O复用一个或少量的线程来处理这些连接。

每次都只需要传入一个要操作的fd,无需传入所有监听集合,而且只需要注册这一次,无需遍历所有集合。

Linux下的select、poll和epoll就是干这个的。将用户socket对应的fd注册进epoll,然后epoll帮你监听哪些socket上有消息到达,这样就避免了大量的无用操作。此时的socket应该采用非阻塞模式。

这样,整个过程只在调用select、poll、epoll这些调用的时候才会阻塞,收发客户消息是不会阻塞的,整个进程或者线程就被充分利用起来,这就是事件驱动,所谓的reactor模式。

io多路复用的问题

例如,一个socket可读,但是只读半条,我们需要随着事件的等待和就绪, 频繁的保存(并切换下一个就绪的fd)和恢复现场

fd交给协程来负责,需要等待时就注册io事件,然后让出
协程拥有自己的栈,保存和恢复现场都很容易
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

阻塞式I/O、I/O复用 区别

阻塞式I/O和I/O复用,两个阶段都阻塞,那区别在哪里呢?就在于第三节讲述的Selector,虽然第一阶段都是阻塞,但是阻塞式I/O如果要接收更多的连接,就必须创建更多的线程。
I/O复用模式下在第一个阶段大量的连接 统统都可以过来直接注册到Selector复用器上面,同时只要单个或者少量的线程来循环处理这些连接事件就可以了,一旦达到“就绪”的条件,就可以立即执行真正的I/O操作。
这就是I/O复用与传统的阻塞式I/O最大的不同。也正是I/O复用的精髓所在。

那么使用select的优势在于我们可以等到网络事件就绪,那么用少量的线程去轮询Selector上面注册的事件,不就绪的不处理,就绪的拿出来立即执行真正的I/O操作。这个使得我们就可以用极少量的线程去HOLD住大量的连接。

select、poll 、epoll区别

1、支持一个进程所能打开的最大连接数

select:单个进程所能打开的最大连接数有FD_SETSIZE宏定义,其大小是32个整数的大小(在32位的机器上,大小就是3232,同理64位机器上FD_SETSIZE为3264),当然我们可以对进行修改,然后重新编译内核,但是性能可能会受到影响,这需要进一步的测试。

poll:poll本质上和select没有区别,但是它没有最大连接数的限制,原因是它是基于链表来存储的

epoll:虽然连接数有上限,但是很大,1G内存的机器上可以打开10万左右的连接,2G内存的机器可以打开20万左右的连接

2、FD剧增后带来的IO效率问题

select:因为每次调用时都会对连接进行线性遍历,所以随着FD的增加会造成遍历速度慢的“线性下降性能问题”。

poll:同上

epoll: 因为epoll内核中实现是根据每个fd上的callback函数来实现的,只有活跃的socket才会主动调用callback,所以在活跃socket较少的情况下,使用epoll没有前面两者的线性下降的性能问题,但是所有socket都很活跃的情况下,可能会有性能问题。

3、 消息传递方式

select:内核需要将消息传递到用户空间,都需要内核拷贝动作

poll:同上

epoll:epoll通过内核和用户空间共享一块内存来实现的。

(1)select,poll实现需要自己不断轮询所有fd集合,直到设备就绪,期间可能要睡眠和唤醒多次交替。而epoll其实也需要调用epoll_wait不断轮询就绪链表,期间也可能多次睡眠和唤醒交替,但是它是设备就绪时,调用回调函数,把就绪fd放入就绪链表中,并唤醒在epoll_wait中进入睡眠的进程。虽然都要睡眠和交替,但是select和poll在“醒着”的时候要遍历整个fd集合,而epoll在“醒着”的时候只要判断一下就绪链表是否为空就行了,这节省了大量的CPU时间。这就是回调机制带来的性能提升。

(2)select,poll每次调用都要把fd集合从用户态往内核态拷贝一次,并且要把current往设备等待队列中挂一次,而epoll只要一次拷贝,而且把current往等待队列上挂也只挂一次(在epoll_wait的开始,注意这里的等待队列并不是设备等待队列,只是一个epoll内部定义的等待队列)。这也能节省不少的开销。

epoll 较select和poll的优化

当有事件准备就绪之后,会存到第二个参数epoll_event结构体中。通过访问这个结构体就可以得到所有已经准备好事件的套接字描述符(fd)。

这里就不用再像之前select和poll那样,遍历所有的套接字描述符之后才能知道究竟是哪个描述符已经准备就绪了,这样减少了一次O(n)的遍历,大大提高了效率。

适用场景

当服务程序需要承载大量TCP链接的时候,比如我们的消息推送系统,IM通讯,web聊天等等,在我们已经理解Selector原理的情况下,知道使用I/O复用可以用少量的线程处理大量的链接。I/O多路复用技术以事件驱动编程为基础。它运行在单一进程上下文中,因此每个逻辑流都能访问该进程的全部地址空间,这样在流之间共享数据变得很容易。

http状态码

301与302区别

定义如下:

301 Moved Permanently
被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个URI之一。如果可能,拥有链接编辑功能的客户端应当自动把请求的地址修改为从服务器反馈回来的地址。除非额外指定,否则这个响应也是可缓存的。
302 Found
请求的资源现在临时从不同的URI响应请求。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。只有在Cache-Control或Expires中进行了指定的情况下,这个响应才是可缓存的。
字面上的区别就是301是永久重定向,而302是临时重定向。 当然,他们之间也是有共同点的,就是用户都可以看到url替换为了一个新的,然后发出请求。

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
计算机网络习题解答 教材 计算机网络 谢希仁编著 第一章 概述 习题1-01 计算机网络的发展可划分为几个阶段?每个阶段各有何特点? 答: 计算机网络的发展过程大致经历了四个阶段。 第一阶段:(20世纪60年代)以单个计算机为中心的面向终端的计算机网络系统。这种网络系统是以批处理信息为主要目的。它的缺点是:如果计算机的负荷较重,会导致系统响应时间过长;单机系统的可靠性一般较低,一旦计算机发生故障,将导致整个网络系统的瘫痪。 第二阶段:(20世纪70年代)以分组交换网为中心的多主机互连的计算机网络系统。为了克服第一代计算机网络的缺点,提高网络的可靠性和可用性,人们开始研究如何将多台计算机相互连接的方法。人们首先借鉴了电信部门的电路交换的思想。所谓“交换”,从通信资源的分配角度来看,就是由交换设备动态地分配传输线路资源或信道带宽所采用的一种技术。电话交换机采用的交换技术是电路交换(或线路交换),它的主要特点是: 在通话的全部时间内用户独占分配的传输线路或信道带宽,即采用的是静态分配策略;② 通信双方建立的通路中任何一点出现了故障,就会中断通话,必须重新拨号建立连接,方可继续,这对十分紧急而重要的通信是不利的。显然,这种交换技术适应模拟信号的数据传输。然而在计算机网络中还可以传输数字信号。数字信号通信与模拟信号通信的本质区别在于数字信号的离散性和可存储性。这些特性使得它在数据传输过程中不仅可以间断分时发送,而且可以进行再加工、再处理。 ③ 计算机数据的产生往往是“突发式”的,比如当用户用键盘输入数据和编辑文件时,或计算机正在进行处理而未得出结果时,通信线路资源实际上是空闲的,从而造成通信线路资源的极大浪费。据统计,在计算机间的数据通信中,用来传送数据的时间往往不到10%甚至1%。另外,由于各异的计算机和终端的传输数据的速率各不相同,采用电路交换就很难相互通信。为此,必须寻找出一种新的适应计算机通信的交换技术。1964年,巴兰(Baran)在美国兰德(Rand)公司“论分布式通信”的研究报告中提出了存储转发(store and forward)的概念。1962 — 1965年,美国国防部的高级研究计划署(Advanced Research Projects Agency,ARPA)和英国的国家物理实验室(National Physics Laboratory,NPL)都在对新型的计算机通信技术进行研究。英国NPL的戴维德(David)于1966年首次提出了“分组”(Packet)这一概念。1969年12月,美国的分组交换网网络中传送的信息被划分成分组(packet),该网称为分组交换网ARPANET(当时仅有4个交换点投入运行)。ARPANET的成功,标志着计算机网络的发展进入了一个新纪元。现在大家都公认ARPANET为分组交换网之父,并将分组交换网的出现作为现代电信时代的开始。 分组交换网是由若干节点交换机和连接这些交换机的链路组成,每一结点就是一个小型计算机。它的工作机理是:首先将待发的数据报文划分成若干个大小有限的短数据块,在每个数据块前面加上一些控制信息(即首部),包括诸如数据收发的目的地址、源地址,数据块的序号等,形成一个个分组,然后各分组在交换网内采用“存储转发”机制将数据从源端发送到目的端。由于节点交换机暂时存储的是一个个短的分组,而不是整个的长报文,且每一分组都暂存在交换机的内存中并可进行相应的处理,这就使得分组的转发速度非常快。由此可见,通信与计算机的相互结合,不仅为计算机之间的数据传递和交换提供了必要的手段,而且也大大提高了通信网络的各种性能。由此可见,采用存储转发的分组交换技术,实质上是在计算机网络的通信过程中动态分配传输线路或信道带宽的一种策略。值得说明的是,分组交换技术所采用的存储转发原理并不是一个全新的概念,它是借鉴了电报通信中基于存储转发原理的报文交换的思想。它们的关键区别在于通信对象发生了变化。基于分组交换的数据通信是实现计算机与计算机之间或计算机与人之间的通信,其通信过程需要定义严格的协议;而基于报文交换的电信通信则是完成人与人之间的通信,因而双方之间的通信规则不必如此严格定义。所以,分组交换尽管采用了古老的交换思想,但实际上已变成了一种崭新的交换技术。表1-1列出了分组交换网的主要优点。与电路交换相比,分组交换的不足之处是: 每一分组在经过每一交换节点时都会产生一定的传输延时,考虑到节点处理分组的能力和分组排队等候处理的时间,以及每一分组经过的路由可能不等同,使得每一分组的传输延时长短不一。因此,它不适用于一些实时、连续的应用场合,如电话话音、视频图像等数据的传输;② 由于每一分组都额外附加一个头信息,从而降低了携带用户数据的通信容量; ③ 分组交换网中的每一节点需要更多地参与对信息转换
1.1 计算机的产生和发展1.2 计算机的系统及工作原理 1.3 计算机中有关数、编码的基本常识1.4 原码、反码与补码1.5 逻辑运算 1.1 计算机的产生与发展 计算机的产生是20世纪最重要的科学技术大事件之一。世界上的第一台计算机(ENIAC)于1946年诞生在美国宾夕法尼亚大学,到目前为止,计算机的发展大致经历了四代: 第一代电子管计算机,始于1946年,结构上以CPU为中心,使用计算机语言,速度慢,存储量小,主要用于数值计算; ② 第二代晶体管计算机,始于1958年,结构上以存储器为中心,使用高级语言,应用范围扩大到数据处理和工业控制; ③ 第三代中小规模集成电路计算机,始于1964年,结构上仍以存储器为中心,增加了多种外部设备,软件得到了一定的发展,文字图象处理功能加强; ④ 第四代大规模和超大规模集成电路计算机,始于1971年,应用更广泛,很多核心部件可集成在一个或多个芯片上,从而出现了微型计算机。 我国从1956年开始电子计算机的科研和教学工作,1983年研制成功1亿/秒运算速度的“银河”巨型计算机,1992年11月研制成功10亿/秒运算速度的“银河II”巨型计算机,1997年研制了每秒130亿运算速度的“银河III”巨型计算机。 目前计算机的发展向微型化和巨型化、多媒体化和网络化方向发展。计算机的通信产业已经成为新型的高科技产业。计算机网络的出现,改变了人们的工作方式、学习方式、思维方式和生活方式。
谢希仁《计算机网络教程》 习题参考答案 第一章 概述 传播时延=信道长度/电磁波在信道上的传播速度 发送时延=数据块长度/信道带宽 总时延=传播时延+发送时延+排队时延 101 计算机网络的发展可划分为几个阶段?每个阶段各有何特点? 答:计算机网络的发展可分为以下四个阶段。 (1)面向终端的计算机通信网:其特点是计算机是网络的中心和控制者,终端围绕中心 计算机分布在各处,呈分层星型结构,各终端通过通信线路共享主机的硬件和软件资源,计 算机的主要任务还是进行批处理,在20 世纪60 年代出现分时系统后,则具有交互式处理和 成批处理能力。 (2)分组交换网:分组交换网由通信子网和资源子网组成,以通信子网为中心,不仅共 享通信子网的资源,还可共享资源子网的硬件和软件资源。网络的共享采用排队方式,即由 结点的分组交换机负责分组的存储转发和路由选择,给两个进行通信的用户断续(或动态) 分配传输带宽,这样就可以大大提高通信线路的利用率,非常适合突发式的计算机数据。 (3)形成计算机网络体系结构:为了使不同体系结构的计算机网络都能互联,国际标准 化组织ISO 提出了一个能使各种计算机在世界范围内互联成网的标准框架—开放系统互连基 本参考模型OSI.。这样,只要遵循OSI 标准,一个系统就可以和位于世界上任何地方的、也 遵循同一标准的其他任何系统进行通信。 (4)高速计算机网络:其特点是采用高速网络技术,综合业务数字网的实现,多媒体和 智能型网络的兴起。 102 试简述分组交换的要点。 答:分组交换实质上是在“存储——转发”基础上发展起来的。它兼有电路交换和报文交 换的优点。在分组交换网络中,数据按一定长度分割为许多小段的数据——分组。以短的分 组形式传送。分组交换在线路上采用动态复用技术。每个分组标识后,在一条物理线路上采 用动态复用的技术,同时传送多个数据分组。在路径上的每个结点,把来自用户发端的数据 暂存在交换机的存储器内,接着在网内转发。到达接收端,再去掉分组头将各数据字段按顺 序重新装配成完整的报文。分 组交换比电路交换的电路利用率高,比 报文交换的传输时延小, 韶关学院信息工程学院 骆耀祖整理 交互性好。 分组交换网的主要优点是: 高效。在分组传输的过程中动态分配传输带宽,对通信链路是逐段占有。 ② 灵活。每个结点均有智能,为每一个分组独立地选择转发的路由。 ③ 迅速。以分组作为传送单位,通信之前可以不先建立连接就能发送分组;网络使用高 速链路。 ④ 可靠。完善的网络协议;分布式多路由的通信子网。 103 试从多个方面比较电路交换、报文交换和分组交换的主要优缺点。 答:(1)电路交换电路交换就是计算机终端之间通信时,一方发起呼叫,独占一条物理 线路。当交换机完成接续,对方收到发起端的信号,双方即可进行通信。在整个通信过程中 双方一直占用该电路。它的特点是实时性强,时延小,交换设备成本较低。但同时也带来线 路利用率低,电路接续时间长,通信效率低,不同类型终端用户之间不能通信等缺点。电路 交换比较适用于信息量大、长报文,经常使用的固定用户之间的通信。 (2)报文交换将用户的报文存储在交换机的存储器中。当所需要的输出电路空闲时, 再将该报文发向接收交换机或终端,它以“存储——转发”方式在网内传输数据。报文交换的 优点是中继电路利用率高,可以多个用户同时在一条线路上传送,可实现不同速率、不同规 程的终端间互通。但它的缺点也是显而易见的。以报文为单位进行存储转发,网络传输时延 大,且占用大量的交换机内存和外存,不能满足对实时性要求高的用户。报文交换适用于传 输的报文较短、实时性要求较低的网络用户之间的通信,如公用电报网。 (3)分组交换分组交换实质上是在“存储——转发”基础上发展起来的。它兼有电路交 换和报文交换的优点。分组交换在线路上采用动态复用技术传送按一定长度分割为许多小段 的数据——分组。每个分组标识后,在一条物理线路上采用动态复用的技术,同时传送多个 数据分组。把来自用户发端的数据暂存在交换机的存储器内,接着在网内转发。到达接收端, 再去掉分组头将各数据字段按顺序重新装配成完整的报文。分组交换比电路交换的电路利用 率高,比报文交换的传输时延小,交互性好。 104 为什么说因特网是自印刷术以来人类通信方面最大的变革? 105 试讨论在广播式网络中对网络层的处理方法。讨论是否需要这一层? 答:广 播式网络是属于共享广播信道,不 存在路由选择问题,可 以不要网络层,但 从OSI 的观点,网络设备应连接到网络层的服务访问点,因此将服务访问点设置在高层协议与数据 链路层中逻辑链路子层的交界面上,IEEE 802 标准就是这样处理的。 106 计算机网络可从哪几个方面进行分类? 答:从网络的交换功能进行分类:电路交换、报文交换、分组交换和
101 计算机网络的发展可划分为几个阶段?每个阶段各有何特点? 答:计算机网络的发展可分为以下四个阶段。 (1)面向终端的计算机通信网:其特点是计算机是网络的中心和控制者,终端围绕中心 计算机分布在各处,呈分层星型结构,各终端通过通信线路共享主机的硬件和软件资源,计 算机的主要任务还是进行批处理,在20 世纪60 年代出现分时系统后,则具有交互式处理和 成批处理能力。 (2)分组交换网:分组交换网由通信子网和资源子网组成,以通信子网为中心,不仅共 享通信子网的资源,还可共享资源子网的硬件和软件资源。网络的共享采用排队方式,即由 结点的分组交换机负责分组的存储转发和路由选择,给两个进行通信的用户断续(或动态) 分配传输带宽,这样就可以大大提高通信线路的利用率,非常适合突发式的计算机数据。 (3)形成计算机网络体系结构:为了使不同体系结构的计算机网络都能互联,国际标准 化组织ISO 提出了一个能使各种计算机在世界范围内互联成网的标准框架—开放系统互连基 本参考模型OSI.。这样,只要遵循OSI 标准,一个系统就可以和位于世界上任何地方的、也 遵循同一标准的其他任何系统进行通信。 (4)高速计算机网络:其特点是采用高速网络技术,综合业务数字网的实现,多媒体和 智能型网络的兴起。 102 试简述分组交换的要点。 答:分组交换实质上是在“存储——转发”基础上发展起来的。它兼有电路交换和报文交 换的优点。在分组交换网络中,数据按一定长度分割为许多小段的数据——分组。以短的分 组形式传送。分组交换在线路上采用动态复用技术。每个分组标识后,在一条物理线路上采 用动态复用的技术,同时传送多个数据分组。在路径上的每个结点,把来自用户发端的数据 暂存在交换机的存储器内,接着在网内转发。到达接收端,再去掉分组头将各数据字段按顺 序重新装配成完整的报文。分 组交换比电路交换的电路利用率高,比 报文交换的传输时延小, 韶关学院信息工程学院 骆耀祖整理 交互性好。 分组交换网的主要优点是: 高效。在分组传输的过程中动态分配传输带宽,对通信链路是逐段占有。 ② 灵活。每个结点均有智能,为每一个分组独立地选择转发的路由。 ③ 迅速。以分组作为传送单位,通信之前可以不先建立连接就能发送分组;网络使用高 速链路。 ④ 可靠。完善的网络协议;分布式多路由的通信子网。 103 试从多个方面比较电路交换、报文交换和分组交换的主要优缺点。 答:(1)电路交换电路交换就是计算机终端之间通信时,一方发起呼叫,独占一条物理 线路。当交换机完成接续,对方收到发起端的信号,双方即可进行通信。在整个通信过程中 双方一直占用该电路。它的特点是实时性强,时延小,交换设备成本较低。但同时也带来线 路利用率低,电路接续时间长,通信效率低,不同类型终端用户之间不能通信等缺点。电路 交换比较适用于信息量大、长报文,经常使用的固定用户之间的通信。 (2)报文交换将用户的报文存储在交换机的存储器中。当所需要的输出电路空闲时, 再将该报文发向接收交换机或终端,它以“存储——转发”方式在网内传输数据。报文交换的 优点是中继电路利用率高,可以多个用户同时在一条线路上传送,可实现不同速率、不同规 程的终端间互通。但它的缺点也是显而易见的。以报文为单位进行存储转发,网络传输时延 大,且占用大量的交换机内存和外存,不能满足对实时性要求高的用户。报文交换适用于传 输的报文较短、实时性要求较低的网络用户之间的通信,如公用电报网。 (3)分组交换分组交换实质上是在“存储——转发”基础上发展起来的。它兼有电路交 换和报文交换的优点。分组交换在线路上采用动态复用技术传送按一定长度分割为许多小段 的数据——分组。每个分组标识后,在一条物理线路上采用动态复用的技术,同时传送多个 数据分组。把来自用户发端的数据暂存在交换机的存储器内,接着在网内转发。到达接收端, 再去掉分组头将各数据字段按顺序重新装配成完整的报文。分组交换比电路交换的电路利用 率高,比报文交换的传输时延小,交互性好。 104 为什么说因特网是自印刷术以来人类通信方面最大的变革? 105 试讨论在广播式网络中对网络层的处理方法。讨论是否需要这一层? 答:广 播式网络是属于共享广播信道,不 存在路由选择问题,可 以不要网络层,但 从OSI 的观点,网络设备应连接到网络层的服务访问点,因此将服务访问点设置在高层协议与数据 链路层中逻辑链路子层的交界面上,IEEE 802 标准就是这样处理的。 106 计算机网络可从哪几个方面进行分类? 答:从网络的交换功能进行分类:电路交换、报文交换、分组交换和混合交换;从网络 的拓
计算机应用技术 实用手册 Xnllz 2011.7.29 目录 第一章COMS的设置 1 1.STANDARD CMOS SETUP(标准CMOS设定)用来设定日期、时间、软硬盘规格、工作类类型。 3 2.BIOS能功设定 5 3.Advanced Chipset Features(芯片组设定) 6 4.Integrated Peripherals(集成设备设定) 8 5.PNP/PCI Configurations 即插即用与PCI设备设定,一般为默认。 9 6.POwer Management Features(电源管理模式设定) 9 7.Frequency/voltage control 超频控制 11 8.LOAD FAIL——Save defaults 恢复出厂设置 11 第二章 分区软件的应用 12 1.PQ魔术分区:首先用GHOST安装光盘引导起计算机,选择PQ分区进入工作界面。 12 2.DM分区的应用:首先用GHOST安装光盘引导起计算机,选择DM分区进入工作界面。 16 第三章 CMOS密码的清出与系统密码的清出 23 1、跳线短接法 23 2、下电池短接 23 二.系统密码清除,把CMOS第一引导设为光驱引导,用GHOST安装光盘起动,选择系统登录密码破解按回车进入 24 第四章 局域网组建 24 1.常用网络命令: 25 2.网线的制作: 27 3.局域IP地址配置: 27 4.采用TP-LINK路由器连接上网: 27 第五章 系统常用命令及格式转换 30 1.Msconfig 系统的关闭起动项命 30 2.Dxdiag系统信息查看命令 30 3.Gpedit.msc计算机管理命令 31 4.格式之间的转换,使用winavi进行转换 32 5.常用的快捷键,使用快捷可以帮助我节约时间。 33 6.开机常按F8可以进入安全模式或是带DOS命令的安全模式。 33 第六章GHOST的备份与恢复 34 第七章 综合应用 44 一.文件的后缀名, *号任意的文件名 44 二.内存出错或是系统出错引起蓝屏 48 三.本机病毒删除不了,解决方法是把硬盘拆下来换到别台主机上进行杀毒,要求挂上去的主机要采用正版杀毒软件,升过级的才可以 49 四.识别常见病毒,病毒一般是以隐藏形式藏匿在计算机的文件中,要把文件的隐藏属性打开。每一盘都有工具这个选项,如下图所示: 49 五.常用DOS命令 60 第一章COMS的设置 开机画面现在有两种,一种为AMI公司开发的,一种为Phoenix-award两家公司合并共同开发的;下面这张图为Phoenix-award开机自画面: Phoenix-award workstation BIOS V6.00PC,An Energy star Ally copyright(c) 1984-2003,Phoenix Technologies,LTD 这句英语的意思是:Phoenix-award这两家COMS芯片开发公司合并后共同开发第6号BIOS版本,采用美国电工电器省电标准,Phoenix技术有限公司,版权1984-2003 RS482-M 03/16/2006 FOR Tongfang 清华同方电脑公司选用的BIOS芯片代号为RS482-M 日期为2006年3月16号 Main Processor : AMD Athlon™64 x2 dual core Processor 3600+ CPU为AMD3600+ 速龙64位双核酷睿技术 Memory Testing: 524288k ok with 32M shared memory 内存为512兆 32兆的二级缓存 IDE Channel 0 master : None IDE Channel 0 Slave : None IDE Channel 1 master : HL-DT-STDVD-ROM GDR8164B 0L06 IDE Channel 1 Slave : None IDE Channel 2 master : WDC WD800BD-00LRA0 06.01D06 IDE Channel 2 Slave : None IDE 1号接口检测到光驱,IDE 2号接口检测到希捷硬盘为80GB,其它为NONE表示检测没有设备连接到接口上。 Warning!! Now system is in safe mode. Please re-setting CPU frequency in CMOS setup. 警告:现在系统处在安全模式,从新进入CMOS 进行设置。 CMOS checksun error-del anlts loaded 或是CMOS检查出错。 出现上面两种错是CMOS电池没电了.解决方法:打开机箱,把主板上的一节纽扣电池取出,换上一节新的既可,或是CMOS被放电了,从新进入CMOS设置时间保存并退出就可解决此问题。 Press F1 tocontinue ,DEL to enter SETUP 按F1可以继续启动,按DEL进入CMOS 下面这张图为AMI公司开发的BIOS界面: AMI BIOS (C) 2006 American megatrends,INC.ASUS P5B-Delusxe ACPI BIOS Revision 0507 CPU: INTEL(R) CORE(TM)2 CPU 6400 @ 2.13GHz Speed :4.01GHz Count :2 AMI公司2006年开发的BIOS版本信息,华硕主板采用的CMOS并修正了 0507芯片,CPU 为 英特尔 酷睿技术双核 型号为6400 主频为2.13GHz,总共处理速度为4.01GHz Press DEL TO run Setup 按del进入CMOS Press f8 for bbs popup 按F8弹出BBS网页 Press ALT+F2 to boot from system Recovery 按ALT+F2进入根录进行设置 PC2-4300 Dual Channel interleaved 双通道技术 Initializing usb Controllers..done 装载USB控制 2048MB OK 内存为2GB 开启计算机或重新启动计算机后,听见自检通过的声音后,按 “Del”键就可以进入CMOS的设置界面;要注意的是,如果按得太晚,计算机将会启动系统,这时只有重新启动计算机了。大家可在开机后立刻按DEL键直到进入CMOS。进入后,你可以用方向键移动光标选择CMOS设置界面上的选项,然后按Enter进入副选单,用ESC键来返回上一级菜单,用PAGE UP和PAGE DOWN键来选择具体选项,F10键保留并退出BIOS设置。 1.STANDARD CMOS SETUP(标准CMOS设定)用来设定日期、时间、软硬盘规格、工作类类型。 列表中存在PRIMARY MASTER 第一组IDE主设备;PRIMARY SLAVE 第一组IDE从设备;SECONDARY MASTER 第二组IDE主设备;SECONDARY SLAVE 第二组IDE从设备。这里的IDE设备包括了IDE硬盘和IDE光驱,第一、第二组设备是指主板上的第一、第二根IDE数据线,一般来说靠近芯片的是第一组IDE设备,而主设备、从设备是指在一条IDE数据线上接的两个设备,大家知道每根数据线上可以接两个不同的设备,主、从设备可以通过硬盘或者光驱的后部跳线来调整。 后面是IDE设备的类型和硬件参数,TYPE用来说明硬盘设备的类型,我们可以选择AUTO、USER、NONE的工作模式,AUTO是由系统自己检测硬盘类型,在系统中存储了1-45类硬盘参数,在使用该设置值时不必再设置其它参数;如果我们使用的硬盘是预定义以外的,那么就应该设置硬盘类型为USER,然后输入硬盘的实际参数(这些参数一般在硬盘的表面标签上);如果没有安装IDE设备,我们可以选择NONE参数,这样可以加快系统的启动速度,在一些特殊操作中,我们也可以通过这样来屏蔽系统对某些硬盘的自动检查。 图中2部分是DRIVE A和DRIVE B软驱设置,如果没有A或B驱动器,那么就设置NONE驱动器。我们可以在这里选择我们的软驱类型,当然了绝大部分情况中我们不必修改这个设置。 右下方还有系统内存的参数:BASE MEMORY:基本内存;extended 扩展内存;other 其它内存;total MEMORY 全部内存。 2.BIOS能功设定 在用光盘安装系统时就需要对此部分进设置,第一驱动改为光驱引导(First Boot Device),否则光驱不会引导装系统。 Quick Power On Self Test(快速启动选择): 当设定为[Enabled](启动)时,这个项目在系统电源开启之后,可加速POST(Power On Self Test)的程序。BIOS会在POST过程当中缩短或是跳过一些检查项目,从而加速启动等待的时间! Hard Disk Boot Priority(硬盘引导顺序): 此项目可选择硬盘开机的优先级,按下<Enter>的按键,你可以进入它的子选单,它会显示出已侦测到可以让您选择开机顺序的硬盘,以用来启动系统。当然,这个选项要在你安装了两块或者两块以上的系统才能选择! HDD Change Message: 当设定为[Enabled](启动)时,如果你的系统中所安装的硬盘有更动,在POST的开机过程中,屏幕会出现一道提示讯息。 First Boot Device / Second Boot Device / Third Boot Device / Boot Other Device: 在[First Boot Device]、[Second Boot Device]以及[Third Boot Device]的项目当中选择要做为第一、第二以及第三顺序开机的装置。BIOS将会依据你所选择的开机装置,依照顺序来启动操作系统!其中可以选择的设备根据你安装的设备而定! BOOT UP FLOPPY SEEK(开机时是否自动检测软驱); BOOT UP NUMLOCK STATUS(开机时小键盘区情况设定) SECURITY OPTION(检测密码方式)如设定为SETUP,则每次打开机器时屏幕均会提示输入口令(普通用户口令或超级用户口令,普通用户无权修改BIOS设置),不知道口令则无法使用机器;如设定为SYSTEM则只有在用户想进入BIOS设置时才提示用户输入超级用户口令。 3.Advanced Chipset Features(芯片组设定) 芯片组设定也是Bios设置里面的一个重点设置,这里就详细说明一下! DRAM Timing Selectable(内存参数设置选项): 这个项目会视内存模块的不同,为接下来四个项目设定最佳的计时方式。默认值为「By SPD」。这个默认值会读取SPD (Serial Presence Detect) 装置的内容,并且依据SPD内容设定这四个项目。内存模块上的EEPROM (只读存储器) 储存有关模块的重要参数信息,例如内存类型、大小、速度、电压接口及模块储存区域。 CAS Latency Time: 这个项目可控制DRAM读取指令与数据成为真正可用的时间之间的延迟时间。较低的CAS周期能减少内存的潜伏周期以提高内存的工作效率。因此只要能够稳定运行操作系统,我们应当尽量把CAS参数调低,从而提高内存的运行速度。反过来,如果内存运行不稳定,可以将此参数设大,以提高内存稳定性。 Act to Precharge Delay: 这个项目控制了给DRAM参数使用之DRAM频率的数值。同理,数值小性能高,但是对内存的质量也要求严格! DRAM RAS# to CAS# Delay: 这个项目可控制DRAM作用指令与读取/写入指令之间的延迟时间,有2,3,4几种选择。数值越小,性能越好。 DRAM RAS# Precharge: 这个项目是用来控制当预充电(precharge)指令送到DRAM之后,频率等待启动的等待时间。预充电参数越小则内存读写速度就越快。 以上的内存参数设置一般可以不动!让默认的就可以了,但是超频玩者是肯定不会放过任何可以提高性能的东西的,所以如果你想在这里让你的电脑提升一点性能的话,就必须慢慢试验,选择一个适当的参数才能让你的计算机达到性能和稳定的最佳状态! Video BIOS Cacheable(影像快取): 如同系统BIOS的快取功能,启用影像BIOS的快取功能将允许存取影像BIOS自C0000H到C7FFFH具有快取功能,如果快取控制器也被启用。高速缓存的大小愈大,影像效能将会更快速。 Memory Hole At 15M-16M(扩展卡内存分配): 当设定为[Enabled](启动)时,将会有15M-16M的内存空间预留给特别需要此设定的ISA扩充卡。这会使得内存有15 MB以上的空间无法让系统使用,这个项目请使用系统的默认值。 Delay Prior to Thermal(激活延时设置): 此项目可用来选在择温探(Thermal)装置动作之前的延迟时间。 AGP Aperture Size(AGP卡槽内存分配设置): 这个项目可指定让AGP装置来使用的系统内存大小,这取用大小是PCI内存地址范围的一部份,可分配给图形内存的空间。 Init Display First: 这个项目可选择当系统开机时先行对AGP或是PCI插槽来做初始化的动作。 [AGP]:当系统开机时,它将会先对AGP插槽来做初始化的动作。 [PCI Slot]:当系统开机时,它将会先对PCI插槽来做初始化的动作。 AGP Data Transfer Rate(AGP速度设置): 这个项目允许你选择AGP装置的数据传输速率,更高的数据传输速率可对您的系统提供更快以及更佳的图形处理能力。请确认您的显示卡可以支持您所选择的模式,一般用默认的就可以。 4.Integrated Peripherals(集成设备设定) 这个是管理计算机的主板集成设备和端口的选项,具体项目因为主板不同,所以其中的设置会有所不同。 OnChip IDE Device: 主板IDE驱动接口控制 OnChip PCI Device 主板PCI接口控制 OnChip USB Controller: 这个选项开启或关闭USB端口。 USB 2.0 Controller: 这个选项开启或关闭USB 2.端口传输模式。 USB Keyboard Support Via: 此项目允许您去选择 [ENABLED],以让您在DOS环境下可以使用USB键盘,或是选择 [OS] 以在OS环境下使用。在默认情况下是关闭的即:[DISABLED],只有打开在DOS下才可以用。 USB Mouse Support Via: 此项目允许您去选择 [ENABLED],以让您在DOS环境下可以使用USB鼠标,或是选择 [OS] 以在OS环境下使用。在默认情况下是关闭的即:[DISABLED],只有打开在DOS下才可以用。 AC97 Audio 这个选项开启或关闭集成声卡设备。有时候在系统的任务栏你见不到小喇叭有可能在这里被关闭了,即:[DISABLED],遇到这种情况可从新进入COMS把此项打开即可,即:[ENABLED]。 SATA MODE 这个项目是对SATA接口控制,一般为RAID模式,如接上SATA接口的光驱就可改为IDE模式,这样才能正常工作。 VIA ONBOARD LAN主板网卡接口控制,一般为默认即可。 5.PNP/PCI Configurations 即插即用与PCI设备设定,一般为默认。 Resources Controlled By: 这个项目可对所有的开机以及即插即用之兼容装置进行组态的动作。 [Auto]: 系统将会自动地侦测所有的设定。 [Manual]: 在「IRQ Resources」选单中选择特定的IRQ资源。 IRQ Resources: 这个项目可设定各别系统的中断为[PCI Device]或是[Reserved]中之任一者。 PCI/VGA Palette Snoop: 这个项目可决定哪种MPEG ISA/VESA VGA卡可以(或是不能)与PCI/VGA一起运作。 [Enabled]: MPEG ISA/VESA VGA卡可以与PCI/VGA一起运作。 [Disabled]: MPEG ISA/VESA VGA卡不能与PCI/VGA一起运作。 6.POwer Management Features(电源管理模式设定) 选择APM Configuration进入设置界面 选择Hardware monltor进入设置界面 7.Frequency/voltage control 超频控制 超频的前提是主板要支持超频功能,并且CPU的风扇要换散热好的,否则就会烧坏CPU或是主板,此功能要慎用。 CPU HOST CLOCK CONTROL [DISABLED] 一般进入后是关闭的,把DISABLED改为ENABLED就可以改变主频的大小了,即:CPU HOST FREQUENCY(MHZ)[166]把中括号里的数字改变超就可以超频了。频即改变CPU主频的大小。 PCI/AGP Frequency(MHZ)[AUTO] PCI设备与显卡频率的控制。一般为自动。 DRAM COLCK (MHZ)[AUTO] 动态随机读取时钟信号,默认为自动。 CPU OVERVOLTAGE CONTROL [AUTO] CPU的额外工作电压,默认为自动。 AGP OVERVOLTAGE CONTROL [AUTO] 显卡的额外工作电压,默认为自动。 DIMM OVERVOLTAGE CONTROL [AUTO] 双列直插内存模块的额外工作电压,默认为自动。 8.LOAD FAIL——Save defaults 恢复出厂设置 在设置一些项后,又不清楚的情况下可,用此项恢复出厂设置恢复到原来出厂的样子。 9.LOAD Optimized defaults 优化设置。 10.SET superisor password CMOS密码设置 11.SET user password 用户密码设置 12.SAVE&EXIT SETUP 保存并退出 每次出了更改设置后都要保存,这样才起作用。 13.QUIT WITHOUT SAVING(Y/N) 退出不保存。 注意:在从起后,显示器上出现 Floppy drive A : ERROR 为A盘引导出错,要求按F1继续;此时进入CMOS把DRIVE A:改为 NONE 即可。如果出现:disk boot failure,insert system disk and press enter 种这信息为找不到硬盘或是系统坏掉了;解决办法:先从新装一次系统,如果从装系统问题还是一样,把机箱打开把硬盘的接口从接一个看看,看看线是否接好,是否有松动的地方,如果还是出现的话,把硬盘换到另外一台机子上试一试,这样做的目的是查看硬盘是不是好的,如果以上方法都试过后仍然出现错误提示,那么有很大的可能是硬盘坏了,只有换硬盘了。 第二章 分区软件的应用 现在主流的分区软件有三种,分别是PQ魔术分区、DM分区、FDISK分区;在这里我主要讲PQ和DM分区,FDISK分区在教材上有,在这里我就不多说了。 1.PQ魔术分区:首先用GHOST安装光盘引导起计算机,选择PQ分区进入工作界面。 没有分过区的硬盘在第一次分区是灰色的,如上图所示。在未分配上右击鼠标,点击建立,出现下图所,创建主要分区。 如果装2000版本的系统就采用NTFS格式,大小这一栏要根据硬盘的大小按一定比例划分,如是80G的硬盘,主分区也就是我们所常说的C盘最好分10000MB即10GB。 如果装XP版本的系统就采用FAT32格式,大小这一栏要根据硬盘的大小按一定比例划分 主分区建好后,剩下的硬盘空间全部分为逻辑分区,格式这一栏如果装2000版本的系统就采用NTFS格式,如果装XP版本的系统就采用FAT32格式。大小分配好后点确定。 把主分区设为设定为作用,相当于FDISK分区中的激活C盘。如果不把C盘激活,系统就装不上,出错信息为:OS ERROR! 在每个分区上点鼠标右键,先择格式化,最后确定。 从新启动计算机就可以装系统了。 2.DM分区的应用:首先用GHOST安装光盘引导起计算机,选择DM分区进入工作界面。 选择“(A)dvanced Options”进入二级菜单,然后选择“(A)dvanced Disk Installation”进行分区的工作。 此主题相关图片如下: 接着会显示硬盘的列表,直接回车即可 此主题相关图片如下: 如果你有多个硬盘,回车后会让你选择需要对哪个硬盘进行分区的工作。 此主题相关图片如下: 然后是分区格式的选择,一般来说我们选择FAT32的分区格式 此主题相关图片如下: 接下来是一个确认是否使用FAT32的窗口,这要说明的是FAT32跟DOS存在兼容性,也就是说在DOS下无法使用FAT32。 此主题相关图片如下: 这是一个进行分区大小的选择,DM提供了一些自动的分区方式让你选择,如果你需要按照自己的意愿进行分区,请选择“OPTION (C) Define your own”。 此主题相关图片如下: 接着就会让你输入分区的大小: 此主题相关图片如下: 首先输入的主分区的大小,然后输入其它分区的大小。这个工作是不断进行的,直到你硬盘所有的容量都被划分。 此主题相关图片如下: 完成分区数值的设定,会显示最后分区详细的结果。此时你如果对分区不满意,还可以通过下面一些提示的按键进行调整。例如“DEL”键删除分区,“N”键建立新的分区。 此主题相关图片如下: 设定完成后要选择“Save and Continue”保存设置的结果,此时会出现提示窗口,再次确认你的设置,如果确定按“Alt+C”继续,否则按任意键回到主菜单。 此主题相关图片如下: 接下来是提示窗口,询问你是否进行快速格式化,除非你的硬盘有问题,建议选择“(Y)ES”。 此主题相关图片如下: 接着还是一个询问的窗口,询问你分区是否按照默认的簇进行,选择“(Y)ES”。 此主题相关图片如下: 最后出现是最终确认的窗口,选择确认即可开始分区的工作。 此主题相关图片如下: 此时DM就开始分区的工作,速度很快,一会儿就可以完成,当然在这个过程中你要保证系统不要断电。 此主题相关图片如下: 完成分区工作会出现一个提示窗口,不用理会按任意键继续。 此主题相关图片如下: 面就会出现让你重新启动的提示 此主题相关图片如下: 这样就完成了硬盘分区工作.按CTRL+ALT+DEL重新起动,装系统。 第三章 CMOS密码的清出与系统密码的清出 一.在忘记系统密码和计算机不能启动的处理时经常提到的一个操作就是"CMOS放电"。 放电前一定要关闭计算机,并且拔掉机箱电源。 CMOS放电方法一般有2种 1、跳线短接法 主板后备电池的附近一般都有一个在跳线,旁边注有RESET CMOS、CLEAN CMOS、CMOS CLOSE、CMOS RAM RESET、CMOS Reset或Ext. Buttery等字样。 跳线开关一般为3脚,在1、2两脚上一般有一个跳接器,此时将其拔下接到2、3脚上短接数秒即可放电。 放电后,应记着将跳线或开关恢复到正常状态,否者计算机有可能不能启动甚至损坏机器。 在原装品牌机上也有将跳线做成DIP开关的,将CMOS开关拔到ON的位置与短接跳线的作用相同。 另外应该注意,几乎所有的主板都有清除CMOS的跳线和相关设置,但应厂商不能而各有所异,例如有的主板的CMOS清除设备并不是我们长见的跳线,而是很小的焊接锡点,使用金属短接一下同样可以达到目的。 此法关键之处在于找到相应的跳线(如果没有主板说明书,则难度就更大了),跳线一般在电池或CMOS芯片附近。 2、下电池短接 后备电池在主机断电期间是通过二级管向CMOS RAM提供电源的。用导线短接CMOS的VDD和地线形成放电回路进行放电即可清除CMOS中的数据(包括口令)。 在不能确定放电跳线位置时,可以将主板供电锂电池取出,然后用金属物件短接一下电池槽中的两个电极片,使存在电路电容中的残余电荷消失,重新装上锂电池,重新开机设置一下BIOS参数即可。 注意:取出电池后不作电极短接,会需很长时间才能使CMOS电路中残余的电荷放尽,残余电荷不放尽便重新装入电池,BIOS 随机参数便不会消除。 二.系统密码清除,把CMOS第一引导设为光驱引导,用GHOST安装光盘起动,选择系统登录密码破解按回车进入 [1] Choose logical drive 只清除逻辑驱动器的密码 [2] Search for ms sam datahbase(s) on all hard disk and logical drives 清除所有驱动器的密码。 [3] EXIT 退出 Your choice [2] 选择2按回车 继续按回车,接着每个数字都输入一次,每次输入后都按回车,按Y确认清除,再按回车确认。最后一直按键盘上的ESC键退到安装界面,从硬盘起动,密码清除。 第四章 局域网组建 TCP/IP(Transmission Control Protocol/Internet Protocol的简写,中文译名为传输控制协议/互联网络协议)协议是Internet最基本的协议,简单地说,就是由底层的IP协议和TCP协议组成的。 “传输控制协议”(TCP,Transsmission-Control Protocol)和“因特网协议”(IP,Internet Protocol)即TCP/IP协议。 IP地址分为网络地址和主机地址二个部分,A类地址前8位为网络地址,后24位为主机地址,B类地址16位为网络地址,后16位为主机地址,C类地址前24位为网络地址,后8位为主机地址,网络地址范围如下表所示: 种类 网络地址范围 A 1.0.0.0 到126.0.0.0有效 0.0.0.0 和127.0.0.0保留 B 128.1.0.0到191.254.0.0有效 128.0.0.0和191.255.0.0保留 C 192.0.1.0 到223.255.254.0有效 192.0.0.0和223.255.255.0保留 D 224.0.0.0到239.255.255.255用于多点广播 E 240.0.0.0到255.255.255.254保留 255.255.255.255用于广播 使用ADSL需要PC机、ADSL Modem、10M\100M自适应网卡和虚拟拨号软件 ADSL是一种非对称的DSL技术,所谓非对称是指用户线的上行速率与下行速率不同,上行速率低,下行速率高,特别适合传输多媒体信息业务,如视频点播(VOD)、多媒体信息检索和其他交互式业务。ADSL在一对铜线上支持上行速率512Kbps~1Mbps,下行速率1Mbps~8Mbps,有效传输距离在3~5公里范围以内。 ADSL的特点:   1.一条电话线可同时接听,拨打电话并进行数据传输,两者互不影响。   2.虽然使用的还是原来的电话线,但adsl传输的数据并不通过电话交换机。   3.adsl的数据传输速率是根据线路的情况自动调整的,它以“尽力而为”的方式进行数据传输。 1.常用网络命令: 在DOS下运用:Ping命令,例:Ping www.baidu.com / ping 127.0.0.1,这个命主要用于检测网络是否通,查看网络延时。 Ping 百度之后返回的结:IP地址为220.181.6.18 传输为32字节,TIME为时间,TTL为中转路由器个数,TTL=128-54。发送4帧,收到4帧,丢失为0,网络最小延时为88ms , 最大延时为89ms ,平均延时为88ms这样的数据才正常。 Ping 127.0.0.1为环路自检,查看本地网络是否正常。上图显示为正常。 Ipconfig IP地址查看命令,主要用于查看网络IP地址。 Ip address 192.168.1.100 IP地址,Subnet mask 255.255.255.0 子网掩码 default gateway 192.168.1.1网关。 2.网线的制作: 需要做线钳一把,RJ-45水晶头,超5类双绞线(5E),网络测试仪等。做线规则:双机对联线做法:绿白、绿、橙白、蓝、蓝白、橙、棕白、棕;另一头做法:橙白、橙、绿白、蓝、蓝白、绿、棕白、棕 ②直连线做法,两头一样,即:橙白、橙、绿白、蓝、蓝白、绿、棕白、棕。 3.局域IP地址配置: 192.168.x.x, 其中经为1-254之间任意值,要注意的是在同一个段中网段的IP值要一样,主机名不能相同,192.168.x.x,如两台机子联机IP设为: 192.168.1.13 192.168.1.14 不难看出1这个值是网段,要相同;13与14是主机的值,不能相同。 4.采用TP-LINK路由器连接上网: 在地址栏中录入192.168.1.1按回车,如下图所示: 出现如下图所示的界面:点下一步; 选择ADSL虚拟拨号(pppoE),点下一步 输入上网账号和上网口令后点下一步 点完成,这样就完成上网设置。上网正常显示如下图所示: 第五章 系统常用命令及格式转换 1.Msconfig 系统的关闭起动项命 点击开始 运行 录入Msconfig按回车进入工作界面,如下图: 点起“启动” ctfmon 对应任务栏的输入法图标,avp对应的是卡巴斯基杀毒软件的起动图标 2.Dxdiag系统信息查看命令 3.Gpedit.msc计算机管理命令 4.格式之间的转换,使用winavi进行转换 当选择多个文件时,要创建成一个DVD目录,多个标题,即对应的英为:ONE DVDS,Separate titles Create separate DVDs 创建多个DVD目录;Merge into one title所有文件整合成一个目录。 如果Winavi转换不了的文件可配合Total Video Converter 使用,如下图所。 5.常用的快捷键,使用快捷可以帮助我节约时间。 CTRL+A 全选 CTRL+ C复制 CTRL+V粘贴,这两组组合键是选复制后粘贴。 CTRL+S保存 CTRL+O打开 CTRL+Z 撤消上一步操作 CTRL+X剪切 CTRL+N新建 ALT+F4快速关机 ALT+TAB强行跳出正在操作的界面 CTRL+ALT+DEL 重新起动 6.开机常按F8可以进入安全模式或是带DOS命令的安全模式。 有一些病毒我们在系统下是杀不掉的,这时我们可以进入带安全模式的系统下再用杀毒软件去扫描病毒,这样有可能把病毒清除掉。进入带DOS命令的安全模式我们可以用它来起动GHOST文件。 第六章GHOST的备份与恢复 1 重新启动计算机 用光盘引导,选择DOS工具进入DOS操作界面。 2 在电脑启动时 快速 连续 按键盘最上一排的 F8 3 按了后会显示 黑底白字的 系统选项 通常上面有6 个选项 4 此处我们需要了解的是1 正常模式 3 安全模式 6 进入DOS界面 5 ghost通常必须要在dos 运行 因此选取 6 进入dos 界面 按上下选择箭头 选定 6 回车 6 进入后会出现DOS 提示符 如 C:\> 此处意思为 现在显示的是C盘 7 在c:\> 后面输入d:此处的意思为进入D盘 输入后回车 出现d:\> 8 再在d:\>后面输入 g 此处意思为运行 g 程序 此处的g 实际上就是原有的 ghost 程序 9 输入后回车 就会进入GHOST 的操作界面 见 图一 附 DOS 下基本操作命令 每一个命令输入完毕后回车进入下一个操作 1 c : 进入C盘 同样的道理 D :进入D盘 E: F: 进入E盘F盘 2 dir 查看 查看目录下面的文件 如c:\> dir 是指查看 C盘里面的文件 3 cd 文件夹名字 打开文件夹 如cd 123 意思是说 打开123这个文件夹 4 exe 是程序的意思 如这ghost 改名字后为g 在dos下面就叫 g.exe 5 在dos下面 如果要执行程序的话 输入程序名字 回车即可 如 运行g.exe 输入g 回车 6 cd ..进入上一个目录 如此时是c:\>windows 是表示在C盘的windowd 中 如果说此时输入 cd .. 则会进入C盘 屏幕上显示出c:\> 三 打包 制作镜像文件 对于通常用户来说 仅仅只是使用GHOST里的分区备份功能 故此此处只讲解分区备份部分 1 按上所说处理好打包前的工作(系统状况最好 驱动安装好 相关软件安装好 清理垃圾文件 磁盘查错 磁盘碎片整理……) 后 重新启动 快速按F8 进入DOS界面 运行 G.exe 2 注意:若要使用备份分区功能 (如要备份C盘)必须有两个分区(最少要有C D二个分区)以上 而且C盘所用容量必须大于D盘的未用容量(通常C盘用了二GB 则D盘必定要有二GB以上的空间) 保证D盘上有足够的空间储存镜像 3 进入图一所示GHOST 界面后 由于是在DOS下 只能用键盘操作 按回车 进入下一个界面 4 DOS界面下 键盘操作:TAB键进行切换 回车键进行确认 方向键进行选择 如图二 用方向键选择 选择菜单 Local(本机)--Partition(分区)--To Image(到镜像) 通俗一点说就是1-2-2 先选中 1 再选取 弹出选项 2 再选取弹出选项 2  5 选中后回车 将出现如图三 选择硬盘 此处第一次是显示的第一个硬盘的信息 如果有二个硬盘的话 回车后会出现二个硬盘的信息选项 通常我们只一个硬盘 此处操作按回车  6 选中后回车 将出现下一个操作界面 如图四   选择要备份的分区 通常我们是选择C盘 也就是系统盘 此处操作 1 选择分区(可以用方向键上下选择 用TAB选择项目 )通常选择第一个就是C盘 分区 2 选定分区 回车确定 3 按一下TAB 再次确定 回车 就表示已经选定为 备份C盘 如果说您不能确定是不是备份的C盘 建议您在WINDOWS的时候 查看一下您的各个分区的大小 再对照就可以知道的 因此处是借鉴别的人的图 所以需要到您区别一下   7 选中后回车 将出现如图5 此处需要是输入备份文件名字 此处操作 1 按TAB选定到图片下面的输入名字的地方 在空格内输入您确定的名字 回车 2 此处选择的名字为 windows 当然您也可以选择别的名字的 3 后缀名为.gho 8 输入后回车 就会进入如下所示 见 图6 此处是提示您选择压缩模式 上面共有三个选择: No表示不压缩,Fast表示适量压缩,High高压缩 限于适用与速度 通常我们选择适量压缩 Fast 9 输入后回车 就会进入下一操作界面 见 图7 此处是提示您选择是否开始备份 共有二个选择 YES 是 NO 不 我们需要选定YES 此处操作 1 按左右方向键 选定YES 回车 10 输入后回车 就会进入下一个操作界面 见 图8 此处是提示GHOST根据您的指示 开始备份 此处操作 1 此处请不要做任意动作 您的任意动作都会带来不可预见之后果 请1 不要按键盘 2 不要关机 静心等待到进度条走完 11 进度条跑完后会进入到下一个 操作界面 见 图9 此处是提示GHOST根据您的指示 已经备份完毕 回车退出 此处操作 1 回车 备份完毕 重新启动就可以了  备份的文件以GHO后缀名储存在设定的目录中 如上所述 您的这个文件名叫 windows.gho 此文件在windows界面下是不显示什么的 在DOS下运行GHOST显示为黄色 您的这个 windows.gho 保存在D盘目录下 就是和 G.EXE 一个目录下 通常建议您将镜像文件复制一下 放在安全的地方防止误删除  三 解包 还原镜像文件 要提醒您注意的是在使用 GHSOT 软件恢复系统时,请勿中途中止!如果您在恢复过程中重新启动了计算机那么您的计算机将无法启动!必定要接双硬盘或用光盘系统启动才可恢复 在您的系统遇到以下的情况之一 怀疑或确定您的系统中了病毒或木马 系统运行了半个月以上 或出现无故死机 变慢 及相关类别 您需要还原您的系统镜像文件 以保证到系统的安全与良好运行 1 重新启动 快速按F8 进入DOS界面 运行G.exe 进入GHOST界面 回车 2 回车后 就会进入GHOST 的操作界面 见 图10 此处操作 选择菜单到 Local(本机)--Partition(分区)--From Image 通俗一点说就是1-2-3 先选中 1 再选弹出选项 2 再选项弹出选项 3 3 选定后回车 就会进入下一个操作界面 见 图11 此处是提示您 选择 需要还原的镜像文件 如上所述 我们打的包是 windows.gho 所以我们这里选择windows.gho 1 按上下方向键 选择好windows.gho 回车 4 输入后回车 就会进入下一个操作界面 见 图12 此处显示硬盘信息 不需要处理 直接回车 5 输入后回车 就会进入下一个操作界面 见 图13 此处显示硬盘信息 不需要处理 直接回车 6 输入后回车 就会进入下一个操作界面 见 图14 此处显示分区信息 提示您是需要还原到哪珍上分区 默认是还原第一个分区 也就是C盘系统盘 如果您是要还原到此分区 不需要处理 直接回车 此处操作按 回车 7 输入后回车 就会进入下一个操作界面 见 图15 此处显示信息 此处是为了防止误操作 再次提醒您是不是一定要还原镜像文件 您到了这一步 如果说没有十分的把握 这是最后一次机会 默认是NO 按下可以退出到起始界面 如果选择YES 将进行还原操作 此操作到了此处已经不可逆转 此处需要的是用左右方向键 选择YES 回车 8 输入后回车 就会进入GHOST 的操作界面 见 图16 此处是提示GHST根据您的指示 开始还原镜像文件 此时千万不要进行操作 1 此处请不要做任意动作 您的任意动作都会带来不可预见之后果 包括系统不能启动 请 1 不要按键盘 2 不要关机 静心等待到进度条走完 9 输入后回车 就会进入下一个操作界面 见 图17 此处是提示GHST根据您的指示 已经备份完毕 给出的二个选择 一 默认为重新启动 二 以后再重新启动 此处需要的是重新启动 至此 您已经成功的还原了您的系统镜像 您的系统又和原来最最良好的时候是一样的了 恭喜您的电脑有了百毒不侵 之身 有了可以防止误操作的万事无忧之方法 有了以上的说明 在通常的情况下 您可以随时随地将您的系统还原到最良好运行之境地 第七章 综合应用 一.文件的后缀名, *号任意的文件名 1. *.bmp格式是微软制定的图形标准,最大的优点就是在pc上兼容度一流,就算不装任何看图软件,用windows的画图程序一样可以看。储存为bmp格式的图形不会失真,但容量会很大。 2. *.jpg格式是目前网络上最流行的图形格式,它可以把文件容量压缩到最小的格式。用Photoshop图形处理软件处理jpg格式的图像,它支持不同程度的压缩比,您可以视情况调整压缩倍率,压缩比越大,品质就越低;相反地,压缩比越小,品质就越好。不过要注意的一点是,这种压缩法属于失真型压缩,文件的压缩会使得图形品质下降。 3. *.doc为Word文档,一般看见后缀名为doc的文件就要用Word应用程序才能打开。 4.*.xls为Excel文档,一般看见后缀名为xls的文件就要用Excel应用程序才能打开。 5. *.ppt为Powerpoint文档也就是幻灯片文档,一般看见后缀名为ppt的文件就要用Powerpoint应用程序才能打开。 6.*.txt为文本文档,一般看见后缀名为txt的文件就要用记事本应用程序才能打开。 7.*.pdf便携文档格式 (PDF) 由 Adobe 发明,已成为全世界各种标准组织用来进行更加安全可靠的电子文档分发和交换的出版规范。如今,PDF日益成为一种流行的格式,许多政府及官方媒体的文档,都以 Adobe PDF 作为标准格式。Adobe Reader 8.0 可以浏览 PDF, 但不能创建 PDF! 8. *.mp3 MP3全称是动态影像专家压缩标准音频层面3(Moving Picture Experts Group Audio Layer III)。是当今较流行的一种数字音频编码和有损压缩格式,它设计用来大幅度地降低音频数据量,而对于大多数用户来说重放的音质与最初的不压缩音频相比没有明显的下降。它是在1991年由位于德国埃尔朗根的研究组织Fraunhofer-Gesellschaft的一组工程师发明和标准化的。 简单的说,MP3就是一种音频压缩技术,由于这种压缩方式的全称叫MPEG Audio Layer3,所以人们把它简称为MP3。 9.*.ini 文件是windows的系统配置文件,统管windows的各项配置,一般用户就用windows提供的各项图形化管理界面就可实现相同的配置了;在Windows系统中,INI文件是很多,最重要的就是“System.ini”、“System32.ini”和“Win.ini”。该文件主要存放用户所做的选择以及系统的各种参数。一般ini为后缀名的文件不能删除哟! 10.*.bat是批处理文件,是windows32底下的应用程序,可以同时按条件处理一批文件。 这里有个例子: 在电脑屏幕的左下角按“开始→程序→附件→记事本”,把下面的文字复制进去,点“另存为”,路径选“桌面”,保存类型为“所有文件”,文件名为“清除系统yjh.bat”,就完成了。记住后缀名一定要是.bat,ok!你的垃圾清除器就这样制作成功了! 双击它就能很快地清理垃圾文件,大约一分钟不到。 @echo off echo 正在清除系统垃圾文件,请稍等...... del /f /s /q %systemdrive%\*.tmp del /f /s /q %systemdrive%\*._mp del /f /s /q %systemdrive%\*.log del /f /s /q %systemdrive%\*.gid del /f /s /q %systemdrive%\*.chk del /f /s /q %systemdrive%\*.old del /f /s /q %systemdrive%\recycled\*.* del /f /s /q %windir%\*.bak del /f /s /q %windir%\prefetch\*.* rd /s /q %windir%\temp & md %windir%\temp del /f /q %userprofile%\cookies\*.* del /f /q %userprofile%\recent\*.* del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*" del /f /s /q "%userprofile%\Local Settings\Temp\*.*" del /f /s /q "%userprofile%\recent\*.*" echo 清除系统LJ完成! echo. & pause 以后只要双击运行该文件,当屏幕提示“清除系统LJ完成!就还你一个“苗条”的系统了!!到时候再看看你的电脑,是不是急速如飞呢? 11.*.RMVB主要用于网络视频格,即电影格式,其特点是比AVI格式小,图像清析,便于网络传输;所谓RMVB格式,是在流媒体的RM影片格式上升级延伸而来。VB即VBR,是Variable Bit Rate(可改变之比特率)的英文缩写。我们在播放以往常见的RM格式电影时,可以在播放器左下角看到225Kbps字样,这就是比特率。影片的静止画面和运动画面对压缩采样率的要求是不同的,如果始终保持固定的比特率,会对影片质量造成浪费。   而RMVB则打破了原先RM格式那种平均压缩采样的方式,在保证平均压缩比的基础上,设定了一般为平均采样率两倍的最大采样率值。将较高的比特率用于复杂的动态画面(歌舞、飞车、战争等),而在静态画面中则灵活地转为较低的采样率,合理地利用了比特率资源,使RMVB在牺牲少部分你察觉不到的影片质量情况下最大限度地压缩了影片的大小,最终拥有了近乎完美的接近于DVD品质的视听效果。可谓体积与清晰度“鱼与熊掌兼得”,其发展前景不容小觑。 12.*.AVI——Audio Video Interleave,即音频视频交叉存取格式。最早由Microsoft公司于1992年推出。在AVI文件中,运动图像和伴音数据是以交织的方式存储,并独立于硬件设备。构成一个AVI文件的主要参数包括视像参数、伴音参数和压缩参数等。而且由于AVI本身的开放性,获得了众多编码技术研发商的支持,不同的编码使得AVI不断被完善。而随着MPEG的崛起,当前流行的AVI格式一般采用DviX5以及Xvid的MPEG4编码器压制,视频的画质和体积都得到了很好的控制。举个例子,一部高品质的DVD电影的容量一般为4-5GB,但经过DivX或XviD编码后的大小只有650-700MB,仅仅为原DVD容量的八分之一,图像品质却与DVD相当使得AVI格式成为电影发烧友的首选格式之一。 13.*.FLV流媒体格式是一种新的视频格式,全称为Flash Video,Macromedia为了尽早用FLV格式来垄断Web Video应用,短短两三年的时间,FLV就成为了目前最主流的在线视频播放格式,随着被新一代的视频播客网站YouTube、土豆等网站的广泛采用,以及Google、百度、新浪、腾讯、猫扑、Maxthon、雅虎等国际国内著名互联网公司的相继投入与看好,还有国际资本大量进入视频播客领域,FLV格式被极大的推广。 14.*.3gp与*.mp4这两种格的文件主要是在手机上应用的比较广泛,其特点是图像小,但在压缩的过程中有损耗,图像不清析,只是适用像手机这样的小屏幕。 15.*.EXE为可执行文件,如果没有可执行文件哪么应用程就运行不了。一般全名为:setup.exe 16. *.gho 为GHSOT生成的镜像文件,主要是系统的备份文件。 17.*.dll为系统的动态库连接文件,静态连接所需要做的工作是多少(假设按windwos来说他有上千个这样的函数,一共有100多个程序来使用,那静态连接需要100000次的更新,动态连接只需要1000次),从而也节省了内存的空间。动态连接库不一定是DLL扩展名的,也可以是ocx、vbx、exe、drv 等等 二.内存出错或是系统出错引起蓝屏 电脑开机就出现的蓝色屏幕内容如下: “ A problem has been detected and windows has been shut down to prevent damage to your computer. If this is the first time you've seen this stop error screen,restart your computer. If this screen appears again, follow these steps: 1.Check to make sure you have adeguate disk space , if a driver is identified in the stop message ,disable the driver or check with the waufacturer for driver updates try changing video adapters . 2.Check with your hardware vendor for any bios updates ,disable bios memoryor options such as caching or shadowing 。 if you need to use safe mode to remove or disable computers,restart your computer 3.Press F8 to select;advanced star up options,and the select safe mode。 Technical information: *** stop:0x0000007E(0x0000005,0xF7711EC5,0xF78A21A4,0xF78A1EA0) ***partMgr.SYS, Adress F7711ECS base at F770F000, Date stamp 480253b0 大致意思是:出现蓝问题是WINDOWS系统自动关闭,阻止计算机被毁坏;如果是第一次出,从新启动计算机,从启后还是一样出现的话,照着下面的步骤: 1.检查硬盘空间,看是否足够装系统; 2.检查内存,看内存是否有问题; 3.按F8进安全模式看看是否能进带安全模式的系统。 出现这种问题般解决办是从装系统,如是不能,把内存拿下来用湿毛巾擦下再用干毛巾擦干,再卡回主机,看问题能否解决;都有能解决哪么把内存拿到其它正常的主机上看看内存是不是好的。如果是内存坏了,哪就要换内存了。 三.本机病毒删除不了,解决方法是把硬盘拆下来换到别台主机上进行杀毒,要求挂上去的主机要采用正版杀毒软件,升过级的才可以 如果是要从新装系统哪么要求这样做:先格式化C盘,如果要装GHOST版本的系统,D盘也要格式化掉,因为GHOST版本的系统有些文件要装到D盘上去,这样是避免系统感染上病毒,系统装好后用光盘装杀毒软件,或是用U盘拷贝过来装,前提是保正U盘和所拷贝的杀毒软件没得病毒哟。注:除了格式化过的盘可以点击,其它盘一律不能点哟,不然的话就白辛苦了。装好杀毒软件并升过级,全盘扫苗过后才能点其它盘。 四.识别常见病毒,病毒一般是以隐藏形式藏匿在计算机的文件中,要把文件的隐藏属性打开。每一盘都有工具这个选项,如下图所示: 1、什么是计算机病毒: 计算机病毒,是指编制或者在计算机程序中插入的破坏计算机功能或者毁坏数据,影响计算机使用,并能自我复制的一组计算机指令或者程序代码。 2、常见病毒的特征及防治方法 如果双击文件图标打不开,哪么就是感染病毒了。 新欢乐时光 病毒现象:当您选择“文件夹选项”,并且选择“显示所有文件”的时候,您可以在很多目录中看到原先是隐藏的folder.htt和desktop.ini文件,而且当你打开原先没有这两个文件的文件夹时会自动在这个文件夹里生成这两个文件,这时你的电脑就很可能是被新欢乐时光(Vb.Script)感染了。被病毒感染后系统运行速度明显下降,偶尔弹出错误消息框,严重的可能导致死机甚至无法进入系统。 防治方法:不要随便在其他微机上使用u盘及软盘,在必须的情况下应在自己的电脑中先对其进行查毒再使用。如果系统已经感染了此病毒,则可以在瑞星及江民的网站上下载专杀工具vb.kj可以有效的杀除此种病毒。 ②冲击波、震荡波。 病毒现象:此类病毒常见于windows2000较早的版本,病毒运行时会利用RPC缓冲区漏洞攻击该系统,导致电脑运行变慢,不断死机或开机后立即倒数一分钟重启。 防治方法:发现感染此病毒后,应首先断开与局域网的连接,进入安全模式,使用瑞星的专杀工具进行杀毒(Rs_blaster),然后将系统打上rpc漏洞补丁,可以彻底清除此种病毒。 ③QQ类病毒。 病毒现象:QQ类病毒多数为木马型及蠕虫型混合病毒,目的是窃取你计算机上的密码,有些破坏力强大的病毒可能造成很大的威胁,可能导致OFFICE软件、任务管理器、注册表编辑器等程序无法使用,该病毒还会破坏资源管理器,只要用户打开四层以上的目录,病毒就会自动关闭“资源管理器”。该病毒还会干掉含有“杀毒”字样的窗口,因此会造成一些反病毒软件及病毒专杀工具无法使用、一些反病毒公司的主页无法登陆等现象。另外该病毒还会修改用户电脑的系统配置,导致用户重启系统时无法进入“我的电脑”。 防治方法:不要随便接收别人从QQ上传递的文件,尤其是可执行文件(.exe文件),接收的文件要先查毒再打开。如果感染此类病毒可以进入安全模式进行查杀。 ④灰鸽子木马。 灰鸽子是一种功能极为强大的木马病毒,可以完全控制监控,甚至在你的电脑上安装软件盗取密码,而且除了具有语音监听、语音发送,还有远程视频监控功能,只有远程计算机有摄像头,且正常打开没有被占用,那么你可以看到,远程摄像头捕获的图片!还可以把远程摄像头捕获的画面存为Mpeg-1格式.远程语音也可以录制成Wav声音文件。你的电脑没有任何隐私了,可以从你电脑上下载软件,把坏东西复制上去,可以从新安装非病毒类远程控制,这样你就无法摆脱。电脑感染这种木马后没有什么特别的症状,只有通过杀毒软件才能发现自己已经中毒了。 防治方法:1、打开注册表编辑器(点击“开始”→“运行”,输入“Regedit.exe”,确定),打开 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services注册表项。 2、点击菜单“编辑”→ “查找”,“查找目标”输入“game.exe”,点击确定,我们就可以找到灰鸽子的服务项(此例为Game_Server)。 3、删除整个Game_Server项。 灰鸽子的变种很多,所以不仅限于以上的病毒名称。防止感染灰鸽子要注意不要浏览不安全的网站,经常杀毒,并养成良好上网习惯。 常用专杀工具下载链接 1.新欢乐时光专杀工具vbs.kj http://www8.pconline.com.cn/download/swdetail.phtml?id=7910 2.震荡波(Worm.Sasser)”病毒专杀工具. http://it.rising.com.cn/service/technology/RS_sasser.htm 3.“冲击波(Worm.Blaster)”病毒专杀工具 http://it.rising.com.cn/service/technology/RS_blaster.htm 4. “QQ病毒”专杀工具 http://it.rising.com.cn/service/technology/RS_QQMsender.htm 5. “MSN病毒(Worm.msn.funny)”专杀工具 http://it.rising.com.cn/service/technology/RS_MSN.htm 6“Zotob蠕虫(Worm.Zotob)”病毒专杀工具 http://it.rising.com.cn/service/technology/rav_Zotob.htm 有些深点的蠕虫病毒用瑞星、卡巴斯基、超级兔子等杀毒软件都是杀不出来的,有些即使你杀出来了也删除不了,删除了过下子又来了,或电脑重启又出现了。对于这种病毒,首先你必须要知道哪些东东被中了,哪些东东被感染了,比如IE上的主页被改了,IE有时会自动关闭,电脑“进程”里运行了很多不是系统相关的东东(如.dll的库文件和.exe的可执行文件。)这时候必须重启电脑,一直按f8进入安全模式(如电脑设有多个账号的,要用管理员账号登录,也就是Adminstrator),找到可凝的文件一个一个进行手动删除,并在注册表里找到与此病毒相关的文件进行删除(一般电脑中了这种毒,注册表项里就会恶意被修改,并增加很多新的注册项。),电脑硬盘里带毒的文件必须一一彻底删,还有注册表里的一样必须一一彻底清除或更正。深的蠕虫病毒还会感染每个硬盘及一些相关的文件和软件。 注册表进入命令:regedit 查看电脑启动项命令:msconfig 在电脑的“开始”---“运行”,打开运行对话框输入以上命令。 电脑C盘(系统盘)最容易也最常隐藏病毒的文件夹有下: C:\Documents and Settings\qsk\Local Settings\Temp (这个目录是常常隐藏病毒的地方) 上面的“qsk”是我电脑登录的账号名,如果你登录电脑时的账号名是“abc”那么文件夹路径就是: C:\Documents and Settings\abc\Local Settings\Temp C:\Program Files\Common Files 这个文件夹下常常会隐藏产新生成写病毒文件及病毒文件夹。 C:\Program Files\Internet Explorer(这个也常会隐藏病毒文件,主要病毒文件都跟IE有关。) 病毒文件如:C:\Program Files\Internet Explorer\1.exe C:\WINDOWS (这个目录下常常会藏中毒文件,甚至会新建些中毒文件及相关文件夹) 如:新建一个“down”的文件夹,形成C:\WINDOWS\down 并会在该文件夹(down)下隐世藏一个rundll32.exe 可执行文件。(rundll32.exe是系统文件,真正的rundll32.exe是在C:\WINDOWS\system32 目录下。) C:\WINDOWS\system32 (这个目录也是常常隐病毒的地方) 一般IE中了老弹出窗口,如色情类的网站IE窗口,娱乐类的网站IE窗口病毒都会在此目录下隐藏病毒。会新生成一些如.com 、.exe 、 .dll的病毒文件。.com的文件在查看是否是病毒时,请按照此文件的属性的时间进行查看,假如你电脑系统安装的时间是2006年1月1日,而当前时间是2006年12月15日,如果.com文件的属性时间是2006年12月15日或者14日或更前几天的,那么这种大部份都是病毒文件,可进入安全模式手动删除。系统.com的文件如:edit.com,format.com等.com系统文件一般属性时间显示的都是:创建时间:2005年7月20日, 0:00:00 修改时间:2005年7月20日, 0:00:00(系统的.com文件属性显示的时间都是比你安装系统时的时间更早的。而.com病毒文件属性显示的时间都是在电脑安装系统时间后面的。 电脑常见病毒(这是我电脑上经常中的一些病毒): 病毒名:rundll32.exe 症状:此病毒会调用其它模块病毒文件 路径:C:\WINDOWS\down\rundll32.exe 注:C:\WINDOWS\system32rundll32.exe 不可删,这是正确的系统文件。 病毒名:1.exe 症状:打开IE时老弹出窗口 路径:C:\Program Files\Internet Explorer\1.exe 病毒名:logo 1.exe (此病毒是蠕虫病毒) 症状:占用CPU资源,使电脑运行速度慢,并生成很多可执行文件,在电脑上进行感染、网络感染、下载网络木马或其它病毒的复合型病毒,病毒运行后将自身伪装成系统正常文件。 路径: c:\windows\Logo1_.exe 主要生成病毒文件有下: c:\windows\rundl132.exe(注意:注意,此病毒文件名是rundl132.exe与系统system32目录下的系统文件rundll32.exe 相差一个字,病毒文件是132.exe 而系统文件是l32.exe,凡电脑上出现的rundl132.exe 的文件都是病毒。) c:\windows\0Sy.exe c:\windows\vDll.dll c:\windows\1Sy.exe c:\windows\2Sy.exe c:\windows\rundll32.exe (注意:此目下的此rundll32.exe也是病毒文件,正确的是在system32目录下。) c:\windows\3Sy.exe c:\windows\5Sy.exe c:\windows\1.com c:\window*\**erouter.exe c:\window*\**P10RER.com c:\windows\finders.com c:\windows\Shell.sys c:\windows\sms*.**e c:\windows\kill.exe c:\windows\sws.dll c:\windows\sws32.dll 病毒名:service.exe 路径:C:\WINNT\SYSTEM32\Service.exe(注意:该目录下的services.exe不可删,是系统文件) “特洛依木马”病毒   何谓特洛依木马?特洛依木马其实是一种骗子程序,提供某些功能作为诱饵引诱你,确在背地里摧毁你的计算机系统。记得希腊神话中关于特洛依木马的故事吗?典故就是从那儿来的。中了木马时有什么反应?很难说,因为它们发作时的情况多种多样。   病毒诊断   但是如果你的计算机有以下表现时,就很可能染上特洛依木马这种病毒了。   计算器有时死机,有时又重新激活;在没有执行什么操作的时候,却在拼命读写硬盘;系统莫明其妙地对软驱进行搜索;没有运行大的程序,而系统的速度越来越慢,系统资源占用很多;用Ctrl+Alt+Del调出任务表,发现有多个名字相同的程序在运行,而且可能会随时间的增加而增多(可是,有一些程序是不会出现在这个列表里的。懂得编程的朋友应该知道这不难做到,借助PVIEW95就可以看到)。特别是在连入Internet网或是局域网后,如果你的机器有这些现象,就应小心了,当然也有可能是一些其它的病毒在作怪。   病毒防治   一般中了木马程序最简单的解决办法就是用杀毒软件清除,如金山毒霸、瑞星等。如果对系统熟悉也可以手动清除,首先应该按照Win9x下程序自激活的方法中所述的情况检查一下是否有可疑程序(最好的情况是你熟悉你的系统正常时的这些项,用系统自带的regedit程序查看 /修改注册表)。发现可疑程序将其连同该注册表项一起删除即可,重启系统则木马就已经被清除了。不过这里要提醒大家一点,在做删除操作和注册表修改操作前一定要先备份。   “泡沫小子”病毒   泡沫小子是一种通过Outlook广泛传播的蠕虫病毒。它是第一个不需要从电子邮件打开附件就能被激活的蠕虫病毒。   病毒诊断   一般泡沫小子发送一封主题为“BubblleBoy is back!”(泡沫小子来了!)的HTML电子邮件。如果你的IE5.0的安全保护设置级别置为中、低级,则该HTML页隐含着(植入)VBS程序代码,在未提示用户的情况下就会被执行。   病毒防治   这种病毒在你眼前,要采取哪些简便的方法防范它呢?   首先要做到1.不要开启匿名邮件附件,只打开已知附件,以及可信资源建立链接关系。2.关闭自动打开附件功能。3.执行*.EXE、*.HTA、*.VBS和其它可执行附件时要谨慎。4.打开*.DOC、*.XLS、*.PPT文件时要小心。5.不要在本地邮件列表中保存别名为“ALL-Company”的邮件。6.将Internet Explorer4.x或以上版本的安全级别设定成“高级”;终止Active X和Active Scripting。7.Outlook Express:终止打开和/或预览窗口,在对话框下面,不要选中预览窗口。8.Netscape:终止JavaScript在菜单栏中选取编辑/参数,在对话框左边,点击高级,在对话框右边,不要启用邮件和新闻的JavaScript,停止JavaScript浏览最高安全级别。9.其它邮件用户:终止Visual Basic Scripting或JavaScript。   尼姆达(概念)病毒   尼姆达(概念)病毒,是近日来被发现的一种恶性邮件病毒。该病毒利用微软IE浏览器解释Outlook邮件MIME头的漏洞感染和传播,其速度之快,不可等闲视之。   病毒诊断   尼姆达(概念)感染特征和发现方法其实很简单,当感染“概念”病毒之后,它会在执行时将自身复制到临时目录下,再运行在临时目录中的副本。病毒复制到临时目录下的副本(有两个文件,文件名为???????.tmp.exe),在系统下次启动时,病毒会将他们删除(修改 wininit.ini文件)。同时该病毒还会在Windows的system目录中生成load.exe文件,修改system.ini中的shell,把shell=explorer.exe改为explorer.exe load.exe –dontrunold,从而使病毒在下次系统启动时仍能被激活。另外,在system目录下,该病毒还会生成一个副本:riched20.dll。riched20.dll目录在Windows系统中就存在,它就会把它覆盖掉了。   为了通过邮件将自己传播出去,该病毒使用了MAPI函数读取用户的E-mail并从中读取SMTP地址和E-mail地址。病毒还在Windows的临时目录下生成一个eml 格式的临时文件,大小为79225字节,该文件已经用BASE64编码将病毒包含进去。然后,病毒就用取得的地址将带毒邮件发送出去。   病毒防治   由于尼姆达(概念)病毒借助的是IE浏览器的漏洞来传播的,所以堵住漏洞可以说是防护的第一步。以下的方法都可以有效的弥补这个IE的漏洞:   1.添加微软官方的补丁   SP2微软官方已经就Windows 2000系统目前发现的漏洞做了个“十全大补”的补丁,可以弥补绝大部分的Windows 2000漏洞。 SP2共100M左右,可以到以下网址下载: http://www.microsoft.com/windows2000/downloads/critical/q269862/default.asp   2.利用漏洞检测与修复系统   如果大家嫌SP2太大、太麻烦,可以用天网防火墙个人版自带的漏洞检测与修复系统可以检查出Windows中严重的系统漏洞,并自动修复它。目前的天网个人版(测试版)中所带的漏洞检测与修复系统已经可以检查和修复“概念”病毒赖以传染和传播的 IE浏览器漏洞,所以对于防护“概念”病毒而言,是一个不可多得的顺手工具。经过了漏洞检测与修复系统修复之后,“概念”病毒就无法直接在用户的机器上自动运行了。   该防火墙可以到以下网站下载,网址为:http://www.sky.net.cn/在修补完浏览器的漏洞之后,即使是收邮件的时候遇见携带有“概念”病毒的邮件,它也不能顺利的潜入用户的计算机。这时它会出现一个下载提示框。切记不要按“确定”,只要取消它就行了。或者按“确定”之后,你可以得到一个“概念”病毒的本体程序 Readme.exe。另一种防护方法是:不要用Outlook 收邮件,找其它的邮件客户端软件吧。   3.利用杀毒软件清除   如果在成功免疫前,你的计算机中了这个病毒,可以下载最近的防病毒软件进行清除,如金山毒霸、Norton等防病毒软件都已经推出了能够清除“概念”的最新病毒包。但是如果你需要根治这个漏洞,还是得按照以上的方法进行“免疫”。 解决U盘常见病毒的方法! 最近发现u盘病毒的传播方式发现已经不是当初简单了,在U盘根目录下会生成一个autorun.inf的引导文件那么简单了。如果是单纯地利用aoturun.inf传播,那么切记:打开U盘时要通过点击鼠标右键=》资源管理器的方式打开,千万不要双击,否则病毒立即会执行!然后把资源管理器的不隐藏系统文件的勾打开,再双击打开autorun.inf查看病毒路径,然后一并删除即可。但最新的U盘病毒变种已经不采取这种简单的方式了,其方式有三种:第一种是把U盘下所有文件夹隐藏,并把自己复制成与原文件夹名称相同的具有文件夹图标的文件,当你点击时病毒会执行并且该病毒会打开该名称的文件夹。当然按照上述的方式把隐藏属性去掉你可以看到这种景象。第二种是在U盘的所有可执行文件里插入病毒本身,这种情况比较恶劣。一般你必须用杀毒软件或其他分离软件才能把你能用的那部分提取出来。第三种是直接在每一个文件夹下面生成一个与该文件夹同名的exe文件,跟第一种相似,但更具有混淆性。所以大家一般时候不要什么东西都往U盘里放,轻者被插入病毒,重者资料被更改或破坏导致重要信息无法恢复;如果要在U盘里放东西事先一定要在电脑里做备份哦!另外大家买U盘时一定要买那种有写保护的,如果在别人电脑上使用,但只是读取信息,就把写保护打开,如果他电脑有病毒,或许你会发现有弹出提示的信息,就说明他电脑有病毒了。目前已经发现的有固定名称的病毒如下: autorun.inf AdobeR.exe bittorrent.exe copy.exe desktop.exe desktop2.exe folder.exe host.exe msinfmgr.exe msvcr71.dll RavMonE.exe RavMonLog RECYCLER\*.* RECYCLER SHE.exe sxs.exe SYSTEM.VER toy.exe setup.pif 如果大家发现U盘下面有这些文件,那么基本上可以确定是病毒了。 当然目前给大家的简单的解决方法如下:把下面的东东保存为*.bat文件,放在桌面上,当你感觉U盘有病毒时就双击一下,或许能帮你解决一部分负担。 ----------------------------从下面开始----------------------------------- @echo off attrib -r -h -s -a j:\*.*\ del /f/s/q/a j:\autorun.inf del /f/s/q/a j:\AdobeR.exe del /f/s/q/a j:\bittorrent.exe del /f/s/q/a j:\copy.exe del /f/s/q/a j:\desktop.exe del /f/s/q/a j:\desktop2.exe del /f/s/q/a j:\folder.exe del /f/s/q/a j:\host.exe del /f/s/q/a j:\msinfmgr.exe del /f/s/q/a j:\msvcr71.dll del /f/s/q/a j:\RavMonE.exe del /f/s/q/a j:\RavMonLog del /f/s/q/a j:\RECYCLER\*.* del /f/s/q/a j:\RECYCLER del /f/s/q/a j:\SHE.exe del /f/s/q/a j:\sxs.exe del /f/s/q/a j:\SYSTEM.VER del /f/s/q/a j:\toy.exe del /f/s/q/a j:\setup.pif taskkill /F /im explorer.exe explorer.exe j:\ ----------------------------到这里结束----------------------------------- 五.常用DOS命令 1.Format 命令,用于格式化硬盘;例如:Format C: 2.MD 创建文件夹命令 例如: MD空格+文件夹名 3.DIR 查看文件夹命令,比较常用哟。例如:DIR空格+文件夹名 4.CD..回到上一级目录 5.FDISK 硬盘分区命令 例如:FDISK 6.DELETE 删除文件命令 例如:DELETE *.TXT 7.CD进入文件夹命令 例如: CD空格+文件夹名 附录:
习题1-01 计算机网络的发展可划分为几个阶段?每个阶段各有何特点? 答: 计算机网络的发展过程大致经历了四个阶段。 第一阶段:(20世纪60年代)以单个计算机为中心的面向终端的计算机网络系统。这种网络系统是以批处理信息为主要目的。它的缺点是:如果计算机的负荷较重,会导致系统响应时间过长;单机系统的可靠性一般较低,一旦计算机发生故障,将导致整个网络系统的瘫痪。 第二阶段:(20世纪70年代)以分组交换网为中心的多主机互连的计算机网络系统。为了克服第一代计算机网络的缺点,提高网络的可靠性和可用性,人们开始研究如何将多台计算机相互连接的方法。人们首先借鉴了电信部门的电路交换的思想。所谓“交换”,从通信资源的分配角度来看,就是由交换设备动态地分配传输线路资源或信道带宽所采用的一种技术。电话交换机采用的交换技术是电路交换(或线路交换),它的主要特点是: 在通话的全部时间内用户独占分配的传输线路或信道带宽,即采用的是静态分配策略;② 通信双方建立的通路中任何一点出现了故障,就会中断通话,必须重新拨号建立连接,方可继续,这对十分紧急而重要的通信是不利的。显然,这种交换技术适应模拟信号的数据传输。然而在计算机网络中还可以传输数字信号。数字信号通信与模拟信号通信的本质区别在于数字信号的离散性和可存储性。这些特性使得它在数据传输过程中不仅可以间断分时发送,而且可以进行再加工、再处理。③ 计算机数据的产生往往是“突发式”的,比如当用户用键盘输入数据和编辑文件时,或计算机正在进行处理而未得出结果时,通信线路资源实际上是空闲的,从而造成通信线路资源的极大浪费。据统计,在计算机间的数据通信中,用来传送数据的时间往往不到10%甚至1%。另外,由于各异的计算机和终端的传输数据的速率各不相同,采用电路交换就很难相互通信。为此,必须寻找出一种新的适应计算机通信的交换技术。1964年,巴兰(Baran)在美国兰德(Rand)公司“论分布式通信”的研究报告中提出了存储转发(store and forward)的概念。1962 — 1965年,美国国防部的高级研究计划署(Advanced Research Projects Agency,ARPA)和英国的国家物理实验室(National Physics Laboratory,NPL)都在对新型的计算机通信技术进行研究。英国NPL的戴维德(David)于1966年首次提出了“分组”(Packet)这一概念。1969年12月,美国的分组交换网网络中传送的信息被划分成分组(packet),该网称为分组交换网ARPANET(当时仅有4个交换点投入运行)。ARPANET的成功,标志着计算机网络的发展进入了一个新纪元。现在大家都公认ARPANET为分组交换网之父,并将分组交换网的出现作为现代电信时代的开始。 分组交换网是由若干节点交换机和连接这些交换机的链路组成,每一结点就是一个小型计算机。它的工作机理是:首先将待发的数据报文划分成若干个大小有限的短数据块,在每个数据块前面加上一些控制信息(即首部),包括诸如数据收发的目的地址、源地址,数据块的序号等,形成一个个分组,然后各分组在交换网内采用“存储转发”机制将数据从源端发送到目的端。由于节点交换机暂时存储的是一个个短的分组,而不是整个的长报文,且每一分组都暂存在交换机的内存中并可进行相应的处理,这就使得分组的转发速度非常快。由此可见,通信与计算机的相互结合,不仅为计算机之间的数据传递和交换提供了必要的手段,而且也大大提高了通信网络的各种性能。由此可见,采用存储转发的分组交换技术,实质上是在计算机网络的通信过程中动态分配传输线路或信道带宽的一种策略。值得说明的是,分组交换技术所采用的存储转发原理并不是一个全新的概念,它是借鉴了电报通信中基于存储转发原理的报文交换的思想。它们的关键区别在于通信对象发生了变化。基于分组交换的数据通信是实现计算机与计算机之间或计算机与人之间的通信,其通信过程需要定义严格的协 1 议;而基于报文交换的电信通信则是完成人与人之间的通信,因而双方之间的通信规则不必如此严格定义。所以,分组交换尽管采用了古老的交换思想,但实际上已变成了一种崭新的交换技术。表1-1列出了分组交换网的主要优点。与电路交换相比,分组交换的不足之处是: 每一分组在经过每一交换节点时都会产生一定的传输延时,考虑到节点处理分组的能力和分组排队等候处理的时间,以及每一分组经过的路由可能不等同,使得每一分组的传输延时长短不一。因此,它不适用于一些实时、连续的应用场合,如电话话音、视频图像等数据的传输;② 由于每一分组都额外附加一个头信息,从而降低了携带用户数据的通信容量;③ 分组交换网中的每一节点需要更多地参与对信息转换的处理,如在发送端需要将长报文划分为若干段分组,在接收端必须按序将每个分组组装起来,恢复出原报文数据等,从而降低了数据传输的效率。尽管如此,分组交换技术的出现,不仅大大推动了当时的计算机网络技术的发展,而且也是现代计算机网络技术发展的重要基础。 第三阶段:(20世纪80年代)具有统一的网络体系结构,遵循国际标准化协议的计算机网络。局域网络系统日渐成熟。随着计算机网络的普及和应用推广,越来越多的用户都希望将自己的计算机连网。然而实现不同系列、不同品牌的计算机互连,显然并不是一件容易的事情。因为相互通信的计算机必须高度协调工作,而这种协调是相当复杂的。为了降低网络设计的复杂性,早在当初设计ARPANET时,就有专家提出了层次模型。分层设计的基本思想就是将庞大而复杂的问题转换为若干个较小的子问题进行分析和研究。随着ARPANET的建立,各个国家甚至大公司都建立了自己的网络体系结构,如IBM公司研制的分层网络体系结构SNA(System Network Architecture),DEC公司开发的网络体系结构DNS(Digital Network Architecture)。这些网络体系结构的出现,使得一个公司生产的各种类型的计算机和网络设备可以非常方便地进行互连。但是,由于各个网络体系结构都不相同,协议也不一致,使得不同系列、不同公司的计算机网络难以实现互联。这为全球网络的互连、互通带来了困难。 20世纪80年代开始,人们着手寻找统一的网络体系结构和协议的途径。国际标准化组织ISO(International Standard Organization)于1977年成立了专门机构研究该问题,并于1984年正式颁布了开放系统互连参考模型OSI-RM(Open Systems Interconnection Reference Model,简称OSI)。所谓“开放”,就是指只要遵循OSI标准模型的任何系统,不论位于何地,都可以进行互连、互通。这一点非常像世界范围的电话和邮政系统。这里的“开放系统”,是指在实际网络系统中与互连有关的各个部分。它也是对当时各个封闭的网络系统而言的。 在计算机网络发展的进程中,另一个重要的里程碑就是出现了局域网络。局域网可使得一个单位或一个校园的微型计算机互连在一起,互相交换信息和共享资源。由于局域网的距离范围有限、连网的拓扑结构规范、协议简单,使得局域网连网容易,传输速率高,使用方便,价格也便宜。所以很受广大用户的青睐。因此,局域网在20世纪80年代得到了很大的发展,尤其是1980年2月份美国电气和电子工程师学会组织颁布的IEEE802系列的标准,对局域网的发展和普及起到了巨大的推动作用。 第四阶段:(20世纪90年代)网络互连与高速网络。自OSI参考模型推出后,计算机网络一直沿着标准化的方向在发展,而网络标准化的最大体现是Internet的飞速发展。Internet是计算机网络最辉煌的成就,它已成为世界上最大的国际性计算机互联网,并已影响着人们生活的各个方面。由于Internet也使用分层次的体系结构,即TCP/IP网络体系结构,使得凡遵循TCP/IP的各种计算机网络都能相互通信。进入20世纪90年代后,网络进一步向着开放、高速、高性能方向发展。由于Internet还存在着技术和功能上的不足,加上用户数量猛增,使得现有的Internet不堪重负。1993年美国政府提出了“NGII(Next Generation Internet Initiative)行动计划”,该计划的目标是:开发规模更大、速度更快的下一代网络结构,使之端到端的数据传输速率超过100 Mb/s甚至10 Gb/s;提供更为先进、实时性更高的网络应用 2 服务,如远程教育、远程医疗、高性能的全球通信、环境监测和预报等,NGII计划将使用超高速全光网络,能实现更快速的交换和路径选择;保证网络信息的可靠性和安全性。 习题1-02 试简述分组交换的要点。 答:采用存储转发的分组交换技术,实质上是在计算机网络的通信过程中动态分配传输线路或信道带宽的一种策略。 它的工作机理是:首先将待发的数据报文划分成若干个大小有限的短数据块,在每个数据块前面加上一些控制信息(即首部),包括诸如数据收发的目的地址、源地址,数据块的序号等,形成一个个分组,然后各分组在交换网内采用“存储转发”机制将数据从源端发送到目的端。由于节点交换机暂时存储的是一个个短的分组,而不是整个的长报文,且每一分组都暂存在交换机的内存中并可进行相应的处理,这就使得分组的转发速度非常快。 分组交换网是由若干节点交换机和连接这些交换机的链路组成,每一结点就是一个小型计算机。 基于分组交换的数据通信是实现计算机与计算机之间或计算机与人之间的通信,其通信过程需要定义严格的协议; 分组交换网的主要优点: 1、高效。在分组传输的过程中动态分配传输带宽。2、灵活。每个结点均有智能,可根据情况决定路由和对数据做必要的处理。3、迅速。以分组作为传送单位,在每个结点存储转发,网络使用高速链路。4、可靠。完善的网络协议;分布式多路由的通信子网。 电路交换相比,分组交换的不足之处是: 每一分组在经过每一交换节点时都会产生一定的传输延时,考虑到节点处理分组的能力和分组排队等候处理的时间,以及每一分组经过的路由可能不等同,使得每一分组的传输延时长短不一。因此,它不适用于一些实时、连续的应用场合,如电话话音、视频图像等数据的传输;② 由于每一分组都额外附加一个头信息,从而降低了携带用户数据的通信容量; ③ 分组交换网中的每一节点需要更多地参与对信息转换的处理,如在发送端需要将长报文划分为若干段分组,在接收端必须按序将每个分组组装起来,恢复出原报文数据等,从而降低了数据传输的效率。 习题1-03 试从多个方面比较电路交换、报文交换和分组交换的主要优缺点。 答:电路交换,它的主要特点是: 在通话的全部时间内用户独占分配的传输线路或信道带宽,即采用的是静态分配策略;② 通信双方建立的通路中任何一点出现了故障,就会中断通话,必须重新拨号建立连接,方可继续,这对十分紧急而重要的通信是不利的。显然,这种交换技术适应模拟信号的数据传输。然而在计算机网络中还可以传输数字信号。数字信号通信与模拟信号通信的本质区别在于数字信号的离散性和可存储性。这些特性使得它在数据传输过程中不仅可以间断分时发送,而且可以进行再加工、再处理。③ 计算机数据的产生往往是“突发式”的,比如当用户用键盘输入数据和编辑文件时,或计算机正在进行处理而未得出结果时,通信线路资源实际上是空闲的,从而造成通信线路资源的极大浪费。据统计,在计算机间的数据通信中,用来传送数据的时间往往不到10%甚至1%。另外,由于各异的计算机和终端的传输数据的速率各不相同,采用电路交换就很难相互通信。 分组交换具有高效、灵活、可靠等优点。但传输时延较电路交换要大,不适用于实时数据业务的传输。 报文交换传输时延最大。 习题1-07 计算机网络可从哪几个方面进行分类? 答:1、按交换方式:有电路交换、报文交换、分组交换、帧中继交换、信元交换等。2、按拓扑结构:有集中式网络、分散式网络、分布式网络。其中,集中式网络的特点是网络信息流必须经过中央处理机或网络交换节点(如星形拓扑结构);分布式网络的特点是任何一个节点都至少和其他两个节点直接相连(如网状形拓扑结构),是主干网常采用的一种结 3 构;分散式网络实际上是星形网和网状形网的混合网。3、按作用范围:有广域网(WAN)、局域网(LAN)、城域网(MAN)。其中,广域网的作用范围为几十至几千公里,又称为远程网;局域网的作用范围常限制在一个单位或一个校园(1 km)内,但数据传输速率高(10 Mb/s以上);城域网常介于广域网和局域网之间,局限在一个城市(5~50 km)内。4按使用范围:有公用网和专用网。其中,公用网都是由国家的电信部门建造和控制管理的;专用网是某个单位或部门为本系统的特定业务需要而建造的,不对单位或部门以外的人员开放。 习题1-09 计算机网络由哪几部分组成? 答:一个计算机网络应当有三个主要的组成部分: (1) 若干个主机,它们向各用户提供服务; (2) 一个通信子网,它由一些专用的结点交换机和连接这些结点的通信链路所组成; (3) 一系列的协议。这些协议是为在主机之间或主机和子网之间的通信而用的。 习题1-10 试在下列条件下比较电路交换和分组交换。要传送的报文共x(bit)。从源站到目的站共经过k段链路,每段链路的传播时延为d(s),数据率为b(b/s)。在电路交换时电路的建立时间为s(s)。在分组交换时分组长度为p(bit),且各结点的排队等待时间可忽略不计。问在怎样的条件下,分组交换的时延比电路交换的要小? 解:采用电路交换:端到端时延:kdbxstc++= 采用分组交换:端到端时延:kdbxbpktp++.=)1(, 这里假定px>>,即不考虑报文分割成分组后的零头。 欲使,必须满足cptt<sbpk<.)1( 习题1-11在上题的分组交换网中,设报文长度和分组长度分别为x和(p+h)(bit),其中p为分组的数据部分的长度,而h为每个分组所带的控制信息固定长度,与p的大小无关。通信的两端共经过k段链路。链路的数据率为b(bit/s),但传播时延和结点的排队时间均可忽略不计。若打算使总的时延为最小,问分组的数据部分长度p应取为多大? 答:分组个数x/p, 传输的总比特数:(p+h)x/p 源发送时延:(p+h)x/pb 最后一个分组经过k-1个分组交换机的转发,中间发送时延:(k-1)(p+h)/b 总发送时延D=源发送时延+中间发送时延 D=(p+h)x/pb+(k-1)(p+h)/b 令其对p的导数等于0,求极值 p=√hx/(k-1)
计算机网络习题答案(谢希仁) 示例: 习题1-01 计算机网络的发展可划分为几个阶段?每个阶段各有何特点? 答: 计算机网络的发展过程大致经历了四个阶段。 第一阶段:(20世纪60年代)以单个计算机为中心的面向终端的计算机网络系统。这种网络系统是以批处理信息为主要目的。它的缺点是:如果计算机的负荷较重,会导致系统响应时间过长;单机系统的可靠性一般较低,一旦计算机发生故障,将导致整个网络系统的瘫痪。 第二阶段:(20世纪70年代)以分组交换网为中心的多主机互连的计算机网络系统。为了克服第一代计算机网络的缺点,提高网络的可靠性和可用性,人们开始研究如何将多台计算机相互连接的方法。人们首先借鉴了电信部门的电路交换的思想。所谓“交换”,从通信资源的分配角度来看,就是由交换设备动态地分配传输线路资源或信道带宽所采用的一种技术。电话交换机采用的交换技术是电路交换(或线路交换),它的主要特点是: 在通话的全部时间内用户独占分配的传输线路或信道带宽,即采用的是静态分配策略;② 通信双方建立的通路中任何一点出现了故障,就会中断通话,必须重新拨号建立连接,方可继续,这对十分紧急而重要的通信是不利的。显然,这种交换技术适应模拟信号的数据传输。然而在计算机网络中还可以传输数字信号。数字信号通信与模拟信号通信的本质区别在于数字信号的离散性和可存储性。这些特性使得它在数据传输过程中不仅可以间断分时发送,而且可以进行再加工、再处理。 ③ 计算机数据的产生往往是“突发式”的,比如当用户用键盘输入数据和编辑文件时,或计算机正在进行处理而未得出结果时,通信线路资源实际上是空闲的,从而造成通信线路资源的极大浪费。据统计,在计算机间的数据通信中,用来传送数据的时间往往不到10%甚至1%。另外,由于各异的计算机和终端的传输数据的速率各不相同,采用电路交换就很难相互通信。为此,必须寻找出一种新的适应计算机通信的交换技术。1964年,巴兰(Baran)在美国兰德(Rand)公司“论分布式通信”的研究报告中提出了存储转发(store and forward)的概念。1962 — 1965年,美国国防部的高级研究计划署(Advanced Research Projects Agency,ARPA)和英国的国家物理实验室(National Physics Laboratory,NPL)都在对新型的计算机通信技术进行研究。英国NPL的戴维德(David)于1966年首次提出了“分组”(Packet)这一概念。1969年12月,美国的分组交换网网络中传送的信息被划分成分组(packet),该网称为分组交换网ARPANET(当时仅有4个交换点投入运行)。ARPANET的成功,标志着计算机网络的发展进入了一个新纪元。现在大家都公认ARPANET为分组交换网之父,并将分组交换网的出现作为现代电信时代的开始。 分组交换网是由若干节点交换机和连接这些交换机的链路组成,每一结点就是一个小型计算机。它的工作机理是:首先将待发的数据报文划分成若干个大小有限的短数据块,在每个数据块前面加上一些控制信息(即首部),包括诸如数据收发的目的地址、源地址,数据块的序号等,形成一个个分组,然后各分组在交换网内采用“存储转发”机制将数据从源端发送到目的端。由于节点交换机暂时存储的是一个个短的分组,而不是整个的长报文,且每一分组都暂存在交换机的内存中并可进行相应的处理,这就使得分组的转发速度非常快。由此可见,通信与计算机的相互结合,不仅为计算机之间的数据传递和交换提供了必要的手段,而且也大大提高了通信网络的各种性能。由此可见,采用存储转发的分组交换技术,实质上是在计算机网络的通信过程中动态分配传输线路或信道带宽的一种策略。值得说明的是,分组交换技术所采用的存储转发原理并不是一个全新的概念,它是借鉴了电报通信中基于存储转发原理的报文交换的思想。它们的关键区别在于通信对象发生了变化。基于分组交换的数据通信是实现计算机与计算机之间或计算机与人之间的通信,其通信过程需要定义严格的协议;而基于报文交换的电信通信则是完成人与人之间的通信,因而双方之间的通信规则不必如此严格定义。所以,分组交换尽管采用了古老的交换思想,但实际上已变成了一种崭新的交换技术。表1-1列出了分组交换网的主要优点。与电路交换相比,分组交换的不足之处是: 每一分组在经过每一交换节点时都会产生一定的传输延时,考虑到节点处理分组的能力和分组排队等候处理的时间,以及每一分组经过的路由可能不等同,使得每一分组的传输延时长短不一。因此,它不适用于一些实时、连续的应用场合,如电话话音、视频图像等数据的传输;② 由于每一分组都额外附加一个头信息,从而降低了携带用户数据的通信容量; ③ 分组交换网中的每一节点需要更多地参与对信息转换的处理,如在发送端需要将长报文划分为若干段分组,在接收端必须按序将每个分组组装起来,恢复出原报文数据等,从而降低了数据传输的效率。尽管如此,分组交换技术的出现,不仅大大推动了当时的计算机网络技术的发展,而且也是现代计算机网络技术发展的重要基础。 第三阶段:(20世纪80年代)具有统一的网络体系结构,遵循国际标准化协议的计算机网络。局域网络系统日渐成熟。随着计算机网络的普及和应用推广,越来越多的用户都希望将自己的计算机连网。然而实现不同系列、不同品牌的计算机互连,显然并不是一件容易的事情。因为相互通信的计算机必须高度协调工作,而这种协调是相当复杂的。为了降低网络设计的复杂性,早在当初设计ARPANET时,就有专家提出了层次模型。分层设计的基本思想就是将庞大而复杂的问题转换为若干个较小的子问题进行分析和研究。随着ARPANET的建立,各个国家甚至大公司都建立了自己的网络体系结构,如IBM公司研制的分层网络体系结构SNA(System Network Architecture),DEC公司开发的网络体系结构DNS(Digital Network Architecture)。这些网络体系结构的出现,使得一个公司生产的各种类型的计算机和网络设备可以非常方便地进行互连。但是,由于各个网络体系结构都不相同,协议也不一致,使得不同系列、不同公司的计算机网络难以实现互联。这为全球网络的互连、互通带来了困难。 20世纪80年代开始,人们着手寻找统一的网络体系结构和协议的途径。国际标准化组织ISO(International Standard Organization)于1977年成立了专门机构研究该问题,并于1984年正式颁布了开放系统互连参考模型OSI-RM(Open Systems Interconnection Reference Model,简称OSI)。所谓“开放”,就是指只要遵循OSI标准模型的任何系统,不论位于何地,都可以进行互连、互通。这一点非常像世界范围的电话和邮政系统。这里的“开放系统”,是指在实际网络系统中与互连有关的各个部分。它也是对当时各个封闭的网络系统而言的。 在计算机网络发展的进程中,另一个重要的里程碑就是出现了局域网络。局域网可使得一个单位或一个校园的微型计算机互连在一起,互相交换信息和共享资源。由于局域网的距离范围有限、连网的拓扑结构规范、协议简单,使得局域网连网容易,传输速率高,使用方便,价格也便宜。所以很受广大用户的青睐。因此,局域网在20世纪80年代得到了很大的发展,尤其是1980年2月份美国电气和电子工程师学会组织颁布的IEEE802系列的标准,对局域网的发展和普及起到了巨大的推动作用。 第四阶段:(20世纪90年代)网络互连与高速网络。自OSI参考模型推出后,计算机网络一直沿着标准化的方向在发展,而网络标准化的最大体现是Internet的飞速发展。Internet是计算机网络最辉煌的成就,它已成为世界上最大的国际性计算机互联网,并已影响着人们生活的各个方面。由于Internet也使用分层次的体系结构,即TCP/IP网络体系结构,使得凡遵循TCP/IP的各种计算机网络都能相互通信。进入20世纪90年代后,网络进一步向着开放、高速、高性能方向发展。由于Internet还存在着技术和功能上的不足,加上用户数量猛增,使得现有的Internet不堪重负。1993年美国政府提出了“NGII(Next Generation Internet Initiative)行动计划”,该计划的目标是:开发规模更大、速度更快的下一代网络结构,使之端到端的数据传输速率超过100 Mb/s甚至10 Gb/s;提供更为先进、实时性更高的网络应用服务,如远程教育、远程医疗、高性能的全球通信、环境监测和预报等,NGII计划将使用超高速全光网络,能实现更快速的交换和路径选择;保证网络信息的可靠性和安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值