测量周期测量时,为什么扫描时间的可变控制旋钮必须置于CAL位置

始于1999年出于修订并加强POSIX标准和SUS規范的目的,IEEE、Open集团以及ISO/ IEC联合技术委员会共同成立了奥斯丁公共标准修订工作组(CSRG )。(该工作组的首次会议于1998年9月在德州奥斯丁召开这也是奥斯丁工作组名称的由来。)2001年12月该工作组正式批准了POSIX /IPv6.htm 处找到。

IPv4和IPv6的存在引出了一个问题“IPv5呢”事实上从来就没有IPv5这种东西。每个IP数据报头都包含一个4位的版本号字段(即IPv4数据报的这个字段值总是数字4)而版本号5则被指派给了一个试验协议因特网流协议Internet Stream Protocol。(RFC 1819描述了这个协议的第二版简写为ST-II。)在20世纪70年代最初构想的时候这个面向连接的协议就被设计成支持音频和视频传输以及分布式仿真。由于IP数据报版本号5已经被指派过了因此IPv4的升级版就使用了版本号6。

图58-2给出了一个裸socket(SOCK_RAW)它允许应用程序直接与IP层进行通信。这里不會对裸socket的使用进行描述因为大多数应用程序会使用基于其中一种传输层协议(TCP或UDP)之上的socket。[Stevens et al., 2004]的第28章对裸socket进行了描述有关裸socket的使用方面嘚一个富有教育意义的例子是sendip程序( ),它是一个命令行驱动的工具允许使用任意内容来构建和传输IP数据报(包括构建UDP数据报和TCP段的选項)。

IP以数据报(包)的形式来传输数据在两个主机之间发送的每一个数据报都是在网络上独立传输的,它们经过的路径可能会不同一个IP数据报包含一个头,其大小范围为20字节到60字节这个头中包含了目标主机的地址,这样就可以在网络上将这个数据报路由箌目标地址了此外,它还包含了包的源地址这样接收主机就知道数据报的源头。

发送主机可以伪造一个包的源地址这也是SYN洪泛这种TCP拒绝服务攻击的基础。[Lemon, 2002]描述了这种攻击的细节以及现代TCP实现为解决这个问题所采取的措施

一个IP实现可能会给它所支持的数据报的大小设萣一个上限。所有IP实现都必须做到数据报的大小上限至少与规定的IP最小重组缓冲区大小(minimum reassembly buffer size)一样大在IPv4中,这个限制值是576字节;在IPv6中这個限制值是1500字节。

IP是无连接和不可靠的

IP是一种无连接协议因为它并没有在相互连接的两个主机之间提供一个虚拟电蕗。IP也是一种不可靠的协议:它尽最大可能将数据报从发送者传输给接收者但并不保证包到达的顺序会与它们被传输的顺序一致,也不保证包是否重复甚至都不保证包是否会达到接收者。IP也没有提供错误恢复(头信息错误的包会被静默地丢弃)可靠性是通过使用一个鈳靠的传输层协议(如TCP)或应用程序本身来保证的。

IPv4为IP头提供了一个校验和这样就能够检测出头中的错误,但并没有为包中所传输的数據提供任何错误检测机制IPv6并没有为IP头提供检验和,它依赖高层协议来完成错误检测和可靠性(UDP校验和在IPv4是可选的,但一般来讲都是启鼡的;UDP校验和在IPv6是强制的TCP校验和在IPv4和IPv6中都是强制的。)

IP数据报的重复是可能发生的因为一些数据链路层采用了一些技术来确保可靠性鉯及IP数据报可能会以隧道形式穿越一些采用了重传机制的非TCP/IP网络。

IP可能会对数据报进行分段

IPv4数据报的最大大小为65 535芓节在默认情况下,IPv6允许一个数据报的最大大小为65 575字节(40字节用于存放头信息65 535字节用于存放数据),并且为更大的数据报(所谓的jumbograms)提供了一个选项

之前曾经提过大多数数据链路层会为数据帧的大小设定一个上限(MTU)。如在常见的以太网架构中这个上限值是1500字节(比┅个IP数据报的最大大小要小得多)IP还定义了路径MTU的概念,它是源主机到目的主机之间路由上的所有数据链路层的最小MTU(在实践中,以呔网MTU通常是路径中最小的MTU)

当一个IP数据报的大小大于MTU时,IP会将数据报分段(分解)成一个个大小适合在网络上传输的单元这些分段在達到最终目的地之后会被重组成原始的数据报。(每个IP分段本身就是包含了一个偏移量字段的IP数据报该字段给出了一个该分段在原始数據报中的位置。)

IP分段的发生对于高层协议层是透明的并且一般来讲也并不希望发生这种事情([Kent & Mogul, 1987])。这里的问题在于由于IP并不进行重传並且只有在所有分段都达到目的地之后才能对数据报进行组装因此如果其中一些分段丢失或包含传输错误的话就会导致整个数据报不可鼡。在一些情况下这会导致极高的数据丢失率(适用于不进行重传的高层协议,如UDP)或降低传输速率(适用于进行重传的高层协议如TCP)。现代TCP实现采用了一些算法(路径MTU发现)来确定主机之间的一条路径的MTU并根据该值对传递给IP的数据进行分解,这样IP就不会碰到需要传輸大小超过MTU的数据报的情况了UDP并没有提供这种机制。

一个IP地址包含两个部分:一个是网络ID它指定了主机所属的网络;另一个是主機ID,它标识出了位于该网络中的主机

一个IPv4地址包含32位。当以人类可读的形式来表示时这些地址通常的书写通常采用点分十进制标記法,即将地址的4个字节写成一个十进制数字中间以点号隔开,如204.152.189.116
当一个组织为其主机申请一组IPv4地址时,它会收到一个32位的网络地址鉯及一个对应的32位的网络掩码在二进制形式中,这个掩码最左边的位由1构成掩码中剩余的位用0填充。这些1表示地址中哪些部分包含了所分配到的网络ID而这些0则表示地址中哪些部分可供组织用来为网络中的主机分配唯一的ID。掩码中网络ID部分的大小会在分配地址时确定甴于网络ID部分总是占据着掩码最左边的部分,因此可以通过下面的标记法来指定分配的地址范围

204.152.189.0/24 这里的/24表示分配的地址的网络ID由最左边嘚24位构成,剩余的8位用于指定主机ID或者在这种情况下也可以说网络掩码的点分十进制标记是255.255.255.0。

拥有这个地址的组织可以将254个唯一的因特網地址分配给其计算机——204.152.189.1到204.152.189.254有两个地址是无法分配给计算机的,其中一个地址的主机ID的位都是0它用来标识网络本身,另一个地址的主机ID的位都是1——在本例中是204.152.189.255——它是子网广播地址

一些IPv4地址拥有特殊的含义。特殊地址127.0.0.1一般被定义为回环地址它通常会被分配给主機名localhost。(网络127.0.0.0/8中的所有地址都可以被指定为IPv4回环地址但通常会选择127.0.0.1。)发送到这个地址的数据报实际上不会到达网络它会自动回环变荿发送主机的输入。使用这个地址可以便捷地在同一主机上测试客户端和服务器程序在C程序中定义了整数常量INADDR_LOOPBACK来表示这个程序。

socket绑定到哆宿主机上的应用程序来讲是比较有用的如果位于一台多宿主机上的应用程序只将socket绑定到其中一个主机IP地址上,那么该socket就只能接收发送箌该IP地址上的UDP数据报和TCP连接请求但一般来讲都希望位于一台多宿主机上的应用程序能够接收指定任意一个主机IP地址的数据报和连接请求,而将socket绑定到通配IP地址上使之成为了可能SUSv3并没有为INADDR_ANY规定一个特定的值,但大多数实现将其定义成了0.0.0.0(全是0)

一般来讲,IPv4地址是划分子網的划分子网将一个IPv4地址的主机ID部分分成两个部分:一个子网ID和一个主机ID。(如何划分主机ID的位完全是由网络管理员来决定的)子网劃分的原理在于一个组织通常不会将其所有主机接到单个网络中。相反组织可能会开启一组子网(一个“内部互联网络”),每个子网使用网络ID和子网ID组合起来标识这种组合通常被称为扩展网络ID。在一个子网中子网掩码所扮演的角色与之前描述的网络掩码的角色是一樣的,并且可以使用类似的标记法来表示分配给一个特定子网的地址范围

例如假设分配到的网络ID是204.152.189.0/24,这样可以通过将主机ID的8位中的4位划汾成子网ID并将剩余的4位划分成主机ID来对这个地址范围划分子网在这种情况下,子网掩码将由28个前导1后面跟着4个0构成ID为1的子网将会被表礻为204.152.189.16/28。

IPv6地址的原理与IPv4地址是类似的它们之间关键的差别在于IPv6地址由128位构成,其中地址中的前面一些位是一个格式前缀表示地址类型。(这里不会深入介绍这些地址类型的细节细节信息可参考[Stevens et al., 2004]的附录A和RFC 3513。)

IPv6地址通常被书写成一系列用冒号隔开的16位的十六进制数字洳下所示。

F000:0:0:0:0:0:A:1 IPv6地址通常包含一个0序列并且为了标记方便,可以使用两个分号(::)来表示这种序列因此上面的地址可以被重写成:

F000:A:1 在IPv6地址Φ只能出现一个双冒号标记,出现多次的话会造成混淆

IPv6也像IPv4地址那样提供了环回地址(127个0后面跟着一个1,即::1)和通配地址(所有都为0鈳以书写成0::0或::)。

为允许IPv6应用程序与只支持IPv4的主机进行通信IPv6提供了所谓的IPv4映射的IPv6地址。

在TCP/IP套件中使用广泛的两个传输层协议如下

  • 用户数据报协议(UDP)是数据报socket所使用的协议。
  • 传输控制协议(TCP)是流socket所使用的协议

传输层协议的任务是向位于不同主机(或有時候位于同一主机)上的应用程序提供端到端的通信服务。为完成这个任务传输层需要采用一种方法来区分一个主机上的应用程序。在TCP囷UDP中这种区分工作是通过一个16位的端口号来完成的。

众所周知的、注册的以及特权端口
有些众所周知的端口号已经被永久地分配给特定嘚应用程序了(也称为服务)例如ssh(安全的shell)daemon使用众所周知的端口22,HTTP(Web服务器和浏览器之间通信时所采用的协议)使用众所周知的端口80众所周知的端口的端口号位于0~1023之间,它是由中央授权机构互联网号码分配局(IANA, )来分配的一个众所周知的端口号的分配是由一个被核准的网络规范(通常以RFC的形式)来规定的。

IANA还记录着注册端口将这些端口分配给应用程序开发人员的过程就不那么严格了(这也意味著一个实现无需保证这些端口是否真正用于它们注册时申请的用途)。IANA注册的端口范围为1024~41951(不是所有位于这个范围内的端口都被注册叻。)

在大多数TCP/IP实现(包括Linux)中范围在0到1023间的端口号也是特权端口,这意味着只有特权(CAP_NET_BIND_SERVICE)进程可以绑定到这些端口上从而防止了普通用户通过实现恶意程序(如伪造ssh)来获取密码。(有些时候特权端口也被称为保留端口。)

尽管端口号相同的TCP和UDP端口是不同的实体泹同一个众所周知的端口号通常会同时被分配给基于TCP和UDP的服务,即使该服务通常只提供了其中一种协议服务这种惯例避免了端口号在两個协议中产生混淆的情况。

如果一个应用程序没有选择一个特定的端口(即在socket术语中它没有调用bind()将其socket绑定到一个特定的端口上),那么TCP囷UDP会为该socket分配一个唯一的临时端口(即存活时间较短)在这种情况下,应用程序——通常是一个客户端——并不关心它所使用的端口号但分配一个端口对于传输层协议标识通信端点来讲是有必要的。这种做法的另一个结果是位于通信信道另一端的对等应用程序就知道如哬与这个应用程序通信了TCP和UDP在将socket绑定到端口0上时也会分配一个临时端口号。

IANA将位于49152到65535之间的端口称为动态或私有端口这表示这些端口鈳供本地应用程序使用或作为临时端口分配。然后不同的实现可能会在不同的范围内分配临时端口在Linux上,这个范围是由包含在文件/proc/sys/net/ipv4/ip_local_port_range中的兩个数字来定义的(可通过修改这两个数字来修改范围)

用户数据报协议(UDP)

UDP仅仅在IP之上添加了两个特性:端口号囷一个进行检测传输数据错误的数据校验和。

与IP一样UDP也是无连接的。由于它并没有在IP之上增加可靠性因此UDP是不可靠的。如果一个基于UDP嘚应用程序需要确保可靠性那么这项功能就必须要在应用程序中予以实现。如果剔除不可靠这个特点的话在有些时候可能倾向于使用UDP洏不是TCP。

UDP和TCP使用的校验和的长度只有16位并且只是简单的“总结性”校验和因此无法检测出特定的错误,其结果是无法提供较强的错误检測机制繁忙的互联网服务器通常只能每隔几天看一下未检测出的传输错误的平均情况([Stone & Partridge, 2000])。需要更多确保数据完整性的应用程序可以使鼡安全Sockets层(Secure Sockets LayerSSL),它不仅仅提供了安全的通信而且还提供更加严格的错误检测过程。或者应用程序也可以实现自己的错误控制机制

选擇一个UDP数据报大小以避免IP分段
IP分段机制并指出过通常应该尽可能地避免IP分段。TCP提供了避免IP分段的机制但UDP并没有提供相应的机制。使用UDP时洳果传输的数据报的大小超过了本地数据链接的MTU那么很容易就会导致IP分段。

基于UDP的应用程序通常不会知道源主机和目的主机之间的路径嘚MTU一般来讲,基于UDP的应用程序会采用保守的方法来避免IP分段即确保传输的IP数据报的大小小于IPv4的组装缓冲区大小的最小值576字节。(这个徝很有可能是小于路径MTU的)在这576字节中,有8个字节是用于存放UDP头的另外最少需要使用20个字节来存放IP头,剩下的548字节用于存放UDP数据报本身在实践中,很多基于UDP的应用程序会选择使用一个更小的值512字节来存放数据报([Stevens,

传输控制协议(TCP)

TCP在两个端点(即应鼡程序)之间提供了可靠的、面向连接的、双向字节流通信信道为提供这些特性,TCP必须要执行本节中描述的任务(有关所有这些特性嘚详细描述可以在[Stevens, 1994]中找到。)

这里使用术语TCP端点来表示TCP连接一端的内核所维护的信息(通常会进一步对这个术语进行缩写,如仅书写“┅个TCP”来表示“一个TCP端点”或“客户端TCP”来表示“客户端应用程序维护的TCP端点”)这部分信息包括连接这一端的发送和接收缓冲区以及維护的用来同步两个已连接的端点的操作的状态信息。在本书余下的部分中将使用术语接收TCP和发送TCP来表示一个用来在特定方向上传输数据嘚流socket连接两端的接收和发送应用程序

在开始通信之前,TCP需要在两个端点之间建立一个通信信道在连接建立期间,发送者和接收者需要茭换选项来协商通信的参数

数据会被分解成段,每一个段都包含一个校验和从而能够检测出端到端的传输错误。每一个段使用单个IP数據报来传输

当一个TCP段无错地达到目的地时,接收TCP会向发送者发送一个确认通知它数据发送递送成功了。如果一个段在到达时是存在错誤的那么这个段就会被丢弃,确认信息也不会被发送为处理段永远不到达或被丢弃的情况,发送者在发送每一个段时会开启一个定时器如果在定时器超时之前没有收到确认,那么就会重传这个段

由于所使用的网络以及当前的流量负载会影响传输一个段和接收其确认所需的时间,因此TCP采用了一个算法来动态地调整重传超时时间(RTO)的大小

接收TCP可能不会立即发送确认,而是会等待几毫秒来观察一下是否可以将确认塞进接收者返回给发送者的响应中(每个TCP段都包含一个确认字段,这样就能将确认塞进TCP段中了)这项被称为延迟ACK的技术嘚目的是能少发送一个TCP段,从而降低网络中包的数量以及降低发送和接收主机的负载

在TCP连接上传输的每一个字节都会分配到一个逻辑序號。这个数字指出了该字节在这个连接的数据流中所处的位置(这个连接中的两个流各自都有自己的序号计数系统。)当传输一个TCP分段時会在其中一个字段中包含这个段的第一个字节的序号

在每一个段中加上一个序号有几个作用。

  • 这个序号使得TCP分段能够以正确的顺序在目的地进行组装然后以字节流的形式传递给应用层。(在任意一个时刻在发送者和接收者之间可能存在多个正在传输的TCP分段,这些分段的到达顺序可能与被发送的顺序可能是不同的)
  • 由接收者返回给发送者的确认消息可以使用序号来标识出收到了哪个TCP分段。
  • 接收者可鉯使用序号来移除重复的分段发生重复的原因可能是因为IP数据段重复,也可能是因为TCP自己的重传算法会在一个段的确认丢失或没有按时收到时重传一个成功递送出去的段

一个流的初始序号(ISN)不是从0开始的,相反它是通过一个算法来生成的,该算法会递增分配给后续TCP連接的ISN(为防止出现前一个连接中的分段与这个连接中的分段混淆的情况)这个算法也使得猜测ISN变得困难起来。序号是一个32位的值当箌达最大取值时会回到0。

流量控制防止一个快速的发送者将一个慢速的接收者压垮要实现流量控制,接收TCP就必须要为进入的数据维护一個缓冲区(每个TCP在连接建立阶段会通告其缓冲区的大小。)当从发送TCP端收到数据时会将数据累积在这个缓冲区中当应用程序读取数据時会从缓冲区中删除数据。在每个确认中接收者会通知发送者其进入数据缓冲区的可用空间(即发送者可以发送多少字节)。TCP流量控制算法采用了所谓的滑动窗口算法它允许包含总共N字节(提供的窗口大小)的未确认段同时在发送者和接收者之间传输。如果接收TCP的进入數据缓冲区完全被充满了那么窗口就会关闭,发送TCP就会停止传输数据

接收者可以使用SO_RCVBUF socket选项来覆盖进入数据缓冲区的默认大小(参见socket(7)手冊)。

拥塞控制:慢启动和拥塞避免算法
TCP的拥塞控制算法被设计用来防止快速的发送者压垮整个网络如果一个发送TCP发送包的速度要快于┅个中间路由器转发的速度,那么该路由器就会开始丢弃包这将会导致较高的包丢失率,其结果是如果TCP保持以相同的速度发送这些被丢棄的分段的话就会极大地降低性能TCP的拥塞控制算法在下列两个场景中是比较重要的。

  • 在连接建立之后:此时(或当传输在一个已经空闲叻一段时间的连接上恢复时)发送者可以立即向网络中注入尽可能多的分段,只要接收者公告的窗口大小允许即可(事实上,这就是早期的TCP实现的做法)这里的问题在于如果网络无法处理这种分段洪泛,那么发送者会存在立即压垮整个网络的风险
  • 当拥塞被检测到时:如果发送TCP检测到发生了拥塞,那么它就必须要降低其传输速率TCP是根据分段丢失来检测是否发生了拥塞,因为传输错误率是非常低的即如果一个包丢失了,那么就认为发生了拥塞

TCP的拥塞控制策略组合采用了两种算法:慢启动和拥塞避免。

慢启动算法会使发送TCP在一开始嘚时候以低速传输分段但同时允许它以指数级的速度提高其速率,只要这些分段都得到接收TCP的确认慢启动能够防止一个快速的TCP发送者壓垮整个网络。但如果不加限制的话慢启动在传输速率上的指数级增长意味着发送者在短时间内就会压垮整个网络。TCP的拥塞避免算法用來防止这种情况的发生它为速率的增长安排了一个管理实体。

有了拥塞避免之后在连接刚建立时,发送TCP会使用一个较小的拥塞窗口咜会限制所能传输的未确认的数据数量。当发送者从对等TCP处接收到确认时拥塞窗口在一开始时会呈现指数级增长。但一旦拥塞窗口增长箌一个被认为是接近网络传输容量的阈值时其增长速度就会变成线性,而不是指数级的(对网络容量的估算是根据检测到拥塞时的传輸速率来计算得出的或者在一开始建立连接时设定为一个固定值。)在任何时刻发送TCP传输的数据数量还会受到接收TCP的通告窗口和本地的TCP發送缓冲器的大小的限制。

慢启动和拥塞避免算法组合起来使得发送者可以快速地将传输速度提升至网络的可用容量并且不会超出该容量。这些算法的作用是允许数据传输快速地到达一个平衡状态即发送者传输包的速率与它从接收者处接收确认的速率一致。

Internet domain流socket是基于TCP之仩的它们提供了可靠的双向字节流通信信道。

  • UNIX domain数据报socket是可靠的但UDP socket则是不可靠的——数据报可能会丢失、重复或到达的顺序与它们被发送的顺序不同。
  • 在一个UNIX domain数据报socket上发送数据会在接收socket的数据队列为满时阻塞与之不同的是,使用UDP时如果进入的数据报会使接收者的队列溢絀那么数据报就会静默地被丢弃。

IP地址和端口号是整数值在将这些值在网络中传递时碰到的一个问题是不同的硬件结构会鉯不同的顺序来存储一个多字节整数的字节。从图59-1中可以看出存储整数时先存储(即在最小内存地址处)最高有效位的被称为大端,那些先存储最低有效位的被称为小端(这两个术语出自Jonathan Swift在1726年发表的讽刺小说《格列佛游记》,在那篇小说中这两个术语指在另一端打开煮雞蛋的敌对政治派别)小端架构中最值

这个服务器所做的全部工作是在流式连接上发送字符串 “Hello, World!\n”。

在一台机器上运行该程序:

然后在另外一机器上登陆:

注意! 如果没有telnet可以如下命令安装:

这个程序的所有工作是通过 3490 端口连接到命令行中指定嘚主机,然后得到服务器发送的字符串

在A电脑上运行服务器:

在B电脑上运行客户端:

历史上,用户接入一个UNIX系统都是通过串行线(RS-232连接)连接到一个终端上的终端由阴极射线管(CRT)组成,能够显示出字符而且在某些情况下可以显示出基本图形。一般来说CRT能提供单色24荇80列的显示效果。按照当今的标准这些CRT体积很小且昂贵。甚至在更早的时期终端有时候还是硬拷贝电传设备。串行线也可以用来连接其他的设备比如打印机和用来在计算机之间互连的调制解调器。
在早期的UNIX系统上连接到系统上的终端由字符型设备来表示,名称以/dev/ttyn的形式给出(在Linux上,/dev/ttyn设备是系统上的虚拟控制台)我们常会看到tty(源自teletype)作为终端的缩写形式。

尤其是在UNIX的早期时代终端设备并没有統一的标准。这意味着不同的字符序列需要执行类似移动光标到一行的开头或者移动光标到屏幕中央这样的操作。(终于有些设备商实現了这样的转义序列——例如Digitals的VT-100成为了事实上的标准,最终成为了ANSI标准但是,依然还存在着各种各样的终端类型)由于缺乏统一的標准,这就意味着很难编写可移植的程序来利用终端的特性vi编辑器是早期有着这种可移植性需求的例子。termcap和terminfo数据库(在[Strang et al., 1988]中有描述)中的淛表操作应该如何针对多种类型的终端执行各式各样的屏幕控制操作呢curses库([Strang, 1986])正是为了应对这种缺失的标准应运而生。

如今传统型终端巳经不常见了现代UNIX系统的常用接口是高性能位映射图形显示器上的 X Window 窗口管理器。(老式的终端所提供的功能大致上等同于一个单独的终端窗口——xterm终端或其他类似的产品——运行在X Window系统之上这种终端的用户只有一个单独的面向系统的“窗口”,这一事实是由开发作业控淛设施所驱动的)同样的,如今许多直接连接到计算机上的设备(例如打印机)都是带有网络连接的智能型设备

以上所述都是在说如紟面向终端设备的编程已经不像以前那么频繁了。因此本章把重点放在终端编程上,尤其是与软件终端模拟器相关的方面(例如xterm及类似嘚模拟器)

传统型终端和终端模拟器都需要同终端驱动程序相关联,由驱动程序负责处理设备上的输入和输出

当执行输入时,驱动程序可以工作在以下两种模式下

  • 规范模式:在这种模式下,终端的输入是按行来处理的而且可进行行编辑操作。每一行都由换荇符来结束当用户按下回车键时可产生换行符。在终端上执行的read()调用只会在一行输入完成之后才会返回且最多只会返回一行。(如果read()請求的字节数少于当前行中的可用字节那么剩下的字节在下次 read()调用时可用。)这是默认的输入模式
  • 非规范模式:终端输入不会被装配荿行。像 vi、more 和 less 这样的程序会将终端置于非规范模式这样不需要用户按下回车键它们就能读取到单个的字符了。

据魔方格专家权威分析试题“(4分)用欧姆表测电阻时,将选择开关置于合适的挡位后必须先将两..”主要考查你对  实验:伏安法测电阻实验:练习使用示波器实驗:测绘小灯泡的伏安特性曲线实验:探究影响导体电阻的因素  等考点的理解关于这些考点的“档案”如下:

现在没空?点击收藏鉯后再看。

实验:伏安法测电阻实验:练习使用示波器实验:测绘小灯泡的伏安特性曲线实验:探究影响导体电阻的因素

以上内容为魔方格学习社区()原创内容未经允许不得转载!

点击文档标签更多精品内容等伱发现~


VIP专享文档是百度文库认证用户/机构上传的专业性文档,文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特權免费下载VIP专享文档只要带有以下“VIP专享文档”标识的文档便是该类文档。

VIP免费文档是特定的一类共享文档会员用户可以免费随意获取,非会员用户需要消耗下载券/积分获取只要带有以下“VIP免费文档”标识的文档便是该类文档。

VIP专享8折文档是特定的一类付费文档会員用户可以通过设定价的8折获取,非会员用户需要原价获取只要带有以下“VIP专享8折优惠”标识的文档便是该类文档。

付费文档是百度文庫认证用户/机构上传的专业性文档需要文库用户支付人民币获取,具体价格由上传人自由设定只要带有以下“付费文档”标识的文档便是该类文档。

共享文档是百度文库用户免费上传的可与其他用户免费共享的文档具体共享方式由上传人自由设定。只要带有以下“共享文档”标识的文档便是该类文档

还剩29页未读, 继续阅读

我要回帖

更多关于 周期测量 的文章

 

随机推荐