人人范文网 范文大全

计算机网络(肖明版)读书笔记

发布时间:2020-03-02 05:08:46 来源:范文大全 收藏本文 下载本文 手机版

第 1 章 概述——计算机网络(肖明版)读书笔记

计算机网络在信息时代的作用:

21 世纪的一些重要特征就是数字化、网络化和信息化,它是一个以网络为核心的信息时代。网络现已成为信息社会的命脉和发展知识经济的重要基础。

网络是指“三网”,即电信网络、有线电视网络和计算机网络。

发展最快的并起到核心作用的是计算机网络。

新型网络的基本特点:

网络用于计算机之间的数据传送,而不是为了打电话。

网络能够连接不同类型的计算机,不局限于单一类型的计算机。

所有的网络结点都同等重要,因而大大提高网络的生存性。

计算机在进行通信时,必须有冗余的路由。

网络的结构应当尽可能地简单,同时还能够非常可靠地传送数据。

电路交换的特点:

电路交换必定是面向连接的。

电路交换的三个阶段:建立连接、通信、释放连接

电路交换传送计算机数据效率低:计算机数据具有突发性,这导致通信线路的利用率很低。分组交换的原理:

一、在发送端,先把较长的报文划分成较短的、固定长度的数据段。

二、每一个数据段前面添加上首部构成分组。

三、分组交换网以“分组”作为数据传输单元。

依次把各分组发送到接收端。

分组首部的重要性:

每一个分组的首部都含有地址等控制信息。

分组交换网中的结点交换机根据收到的分组的首部中的地址信息,把分组转发到下一个结点交换机。用这样的存储转发方式,分组就能传送到最终目的地。

四、接收端收到分组后剥去首部还原成报文。

五、最后,在接收端把收到的数据恢复成为原来的报文。

这里我们假定分组在传输过程中没有出现差错,在转发时也没有被丢弃。

结点交换机

在结点交换机中的输入和输出端口之间没有直接连线。

结点交换机处理分组的过程是:

把收到的分组先放入缓存(暂时存储);

查找转发表,找出到某个目的地址应从哪个端口转发;

把分组送到适当的端口转发出去。

主机和结点交换机的作用不同:

主机是为用户进行信息处理的,并向网络发送分组,从网络接收分组。

结点交换机对分组进行存储转发,最后把分组交付给目的主机。

分组交换的优点:

高效动态分配传输带宽,对通信链路是逐段占用。

灵活以分组为传送单位和查找路由。

迅速不必先建立连接就能向其他主机发送分组;充分使用链路的带宽。

可靠完善的网络协议;自适应的路由选择协议使网络有很好的生存性。

分组交换带来的问题:

分组在各结点存储转发时需要排队,这就会造成一定的时延。

分组必须携带的首部(里面有必不可少的控制信息)也造成了一定的开销。

因特网时代:

因特网的基础结构大体上经历了三个阶段的演进。

但这三个阶段在时间划分上并非截然分开而是有部分重叠的,这是因为网络的演进是逐渐的而不是突然的。

因特网发展的第一阶段:

第一个分组交换网 ARPANET 最初只是一个单个的分组交换网。

ARPA 研究多种网络互连的技术。

1983 年 TCP/IP 协议成为标准协议。

同年,ARPANET分解成两个网络:

ARPANET——进行实验研究用的科研网

MILNET——军用计算机网络

1983~1984 年,形成了因特网 Internet。

1990 年 ARPANET 正式宣布关闭。

因特网发展的第二阶段:

1986 年,NSF 建立了国家科学基金网。 NSFNET。它是一个三级计算机网络:

主干网

地区网

校园网

1991 年,美国政府决定将因特网的主干网转交给私人公司来经营,并开始对接入因特网的单位收费。1993 年因特网主干网的速率提高到 45 Mb/s(T3 速率)。

因特网发展的第三阶段:

从1993年开始,由美国政府资助的 NSFNET逐渐被若干个商用的 ISP 网络所代替。

1994 年开始创建了 4 个网络接入点 NAP (Network Acce Point),分别由 4 个电信公司经营。 NAP 就是用来交换因特网上流量的结点。在NAP 中安装有性能很好的交换设施。到本世纪初,美国的 NAP 的数量已达到十几个。

从 1994 年到现在,因特网逐渐演变成多级结构网络。

计算机网络的不同定义

最简单的定义:计算机网络是一些互相连接的、自治的计算机的集合。

因特网(Internet)是“网络的网络”。

计算机网络的分类——几种不同的分类方法:

一、从网络的交换功能分类

电路交换

报文交换

分组交换

混合交换

二、从网络的作用范围进行分类

广域网 WAN (Wide Area Network)

局域网 LAN (Local Area Network)

城域网 MAN (Metropolitan Area Network)

接入网 AN (Acce Network)

三、从网络的使用者进行分类

公用网 (public network)

专用网 (private network)

带宽

“带宽”(bandwidth)本来是指信号具有的频带宽度,单位是赫(或千赫、兆赫、吉赫等)。

现在“带宽”是数字信道所能传送的“最高数据率”的同义语,单位是“比特每秒”,或 b/s (bit/s)。

更常用的带宽单位是

千比每秒,即 kb/s (103 b/s)

兆比每秒,即 Mb/s(106 b/s)

吉比每秒,即 Gb/s(109 b/s)

太比每秒,即 Tb/s(1012 b/s)

请注意:在计算机界,K = 210 = 1024

M = 220, G = 230, T = 240。

数字信号流随时间的变化

在时间轴上信号的宽度随带宽的增大而变窄。

时延(delay 或 latency)

发送时延(传输时延 )发送数据时,数据块从结点进入到传输媒体所需要的时间。

信道带宽数据在信道上的发送速率。常称为数据在信道上的传输速率。

发送时延=数据块长度(比特)/信道带宽(比特/秒)

传播时延电磁波在信道中需要传播一定的距离而花费的时间。

信号传输速率(即发送速率)和信号在信道上的传播速率是完全不同的概念。

传播时延=信道长度(米)/信号在信道上的传播速率(米/秒)

处理时延交换结点为存储转发而进行一些必要的处理所花费的时间。

结点缓存队列中分组排队所经历的时延是处理时延中的重要组成部分。

处理时延的长短往往取决于网络中当时的通信量。

有时可用排队时延作为处理时延。

数据经历的总时延就是发送时延、传播时延和处理时延之和:

总时延 = 发送时延 + 传播时延 + 处理时延

容易产生的错误概念

对于高速网络链路,我们提高的仅仅是数据的发送速率而不是比特在链路上的传播速率。

提高链路带宽减小了数据的发送时延。

计算机网络体系结构的形成

相互通信的两个计算机系统必须高度协调工作才行,而这种“协调”是相当复杂的。

“分层”可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。

关于开放系统互连参考模型 OSI/RM

只要遵循 OSI 标准,一个系统就可以和位于世界上任何地方的、也遵循这同一标准的其他任何系统进行通信。

在市场化方面 OSI 却失败了。

OSI 的专家们在完成 OSI 标准时没有商业驱动力;

OSI 的协议实现起来过分复杂,且运行效率很低;

OSI 标准的制定周期太长,因而使得按 OSI 标准生产的设备无法及时进入市场;

OSI 的层次划分并也不太合理,有些功能在多个层次中重复出现。

两种国际标准

法律上的(be jure)国际标准 OSI 并没有得到市场的认可。

是非国际标准 TCP/IP 现在获得了最广泛的应用。

TCP/IP 常被称为事实上的(be facto) 国际标准。

划分层次的必要性

计算机网络中的数据交换必须遵守事先约定好的规则。

这些规则明确规定了所交换的数据的格式以及有关的同步问题(同步含有时序的意思)。

为进行网络中的数据交换而建立的规则、标准或约定即网络协议(network protocol),简称为协议。b]网络协议的组成要素 :

语法数据与控制信息的结构或格式 。

语义需要发出何种控制信息,完成何种动作以及做出何种响应。

同步事件实现顺序的详细说明。

分层的好处 :

各层之间是独立的。

灵活性好。

结构上可分割开。

易于实现和维护。

能促进标准化工作。

层数多少要适当

若层数太少,就会使每一层的协议太复杂。

层数太多又会在描述和综合各层功能的系统工程任务时遇到较多的困难。

计算机网络的体系结构

计算机网络的体系结构(architecture)是计算机网络的各层及其协议的集合。

体系结构就是这个计算机网络及其部件所应完成的功能的精确定义。

实现(implementation)是遵循这种体系结构的前提下用何种硬件或软件完成这些功能的问题。体系结构是抽象的,而实现则是具体的,是真正在运行的计算机硬件和软件。

具有层协议的体系结构

TCP/IP 是四层的体系结构:应用层、运输层、网际层和网络接口层。

最下面的网络接口层并没有具体内容。

因此往往采取折中的办法,即综合 OSI 和 TCP/IP 的优点,采用一种只有五层协议的体系结构 。五层协议的体系结构:

应用层(application layer)

运输层(transport layer)

网络层(network layer)

数据链路层(data link layer)

物理层(physical layer)

实体、协议、服务 和服务访问点

实体(entity) 表示任何可发送或接收信息的硬件或软件进程。

协议是控制两个对等实体进行通信的规则的集合。

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

要实现本层协议,还需要使用下层所提供的服务。

本层的服务用户只能看见服务而无法看见下面的协议。

下面的协议对上面的服务用户是透明的。

协议是“水平的”,即协议是控制对等实体之间通信的规则。

服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。

同一系统相邻两层的实体进行交互的地方,称为服务访问点 SAP (Service Acce Point)。协议很复杂

协议必须将各种不利的条件事先都估计到,而不能假定一切情况都是很理想和很顺利的。

必须非常仔细地检查所设计协议能否应付所有的不利情况。

应当注意:事实上难免有极个别的不利情况在设计协议时并没有预计到。在出现这种情况时,协议就会失败。因此实际上协议往往只能应付绝大多数的不利情况。

面向连接服务与 无连接服务

面向连接服务(connection-oriented)

面向连接服务具有连接建立、数据传输和连接释放这三个阶段。

无连接服务(connectionle)

两个实体之间的通信不需要先建立好连接。

是一种不可靠的服务。这种服务常被描述为“尽最大努力交付”(best effort delivery)或“尽力而为”。应用层的客户-服务器方式

在 TCP/IP 的应用层协议使用的是

客户-服务器方式

计算机的进程(proce)就是运行着的计算机程序。

为解决具体应用问题而彼此通信的进程称为“应用进程”。

应用层的具体内容就是规定应用进程在通信时所遵循的协议。

客户和服务器

客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。

客户-服务器方式所描述的是进程之间服务和被服务的关系。

客户是服务请求方,服务器是服务提供方。

客户软件的特点:

在进行通信时临时成为客户,但它也可在本地进行其他的计算。

被用户调用并在用户计算机上运行,在打算通信时主动向远地服务器发起通信。

可与多个服务器进行通信。

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

服务器软件的特点:

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

在共享计算机上运行。当系统启动时即自动调用并一直不断地运行着。

被动等待并接受来自多个客户的通信请求。

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

第7章网络互连

一、TCP/IP体系中的运输层

UDP在传送数据之前不需要先建立连接。远地主机的运输层在收到UDP报文后,不需要给出任何确认。 TCP则提供面向连接的服务。在传送数据之前必须先建立连接,数据传送结束后要释放连接。TCP不提供广播或多播服务。

强调两点:

(1)运输层的UDP用户数据报和网际层的IP数据报有很大的区别。IP数据报要经过互连网中许多路由器的存储转发,但UDP用户数据报是在运输层的端到端抽象的逻辑信道中传送的,但运输层的这个逻辑信道并不经过路由器(运输层看不见路由器)。IP数据报虽然经过路由器进行转发,但用户数据报只是IP数据报中的数据,因此路由器看不见有用户数据报经过它。

(2)TCP是运输层的连接,TCP报文段是在运输层抽象的的端到瑞逻辑信道中传送,这种信道是可靠的全双工信道。但这样的信道却不知道究竞经过了哪些路由器,而这些路山器也根本不知道上面的运输层是否建立了TCP连接。当IP数据报的传输路径中增加或减少了路由器时,上层的TCP连接都不会发生变化,出为上层的TCP根本不知道下层所发生的事情。

端口:

UDP和TCP都使用了与应用层接口处的端口(port)与上层的应用进程进行通信。端口的作用就是让应用层的各种应用进程都能将其数据通过端口向下交付给运输层,以及让运输层知道应当将其报文段中的数据向上通过端口交付给应用层相应的进程。从这个意义上讲,端口是用来标志应用层的进程。

端口用一个16bit端口号进行标志。对于不同的计算机,端口的具体实现方法可能有很大的差别,因为这取决于计算机的操作系统。

端口号分为两类:一类熟知端口(well-known port), TCP/IP体系确定并公布的。一种新的应用程序出现时,必须为它指派一个熟知端口,否则其他的应用进程就无法和它进行交互。在应用层中的各种不同的服务器进程不断地检测分配给它们的熟知端口,以便发现是否有某个客户进程要和它通信。另一类则是一般端口,用来随时分配给请求通信的客户进程。

TCP连接的端点称为插口(socket),或套接字、套接口。

关于socket的几个意思:

(1)允许应用程序访问连网协议的应用编程接口API,也就是在运输层和应用层之间的一种接口,称为socket API,并简称为socket。

(2)在socket API中使用的一个函数名也叫作socket。

(3)调用socket函数的端点称为socket,如“创建一个数据报socket”。

(4)调用socket函数时其返回值称为socket描述符,可简称为socket。

(5)在操作系统内核中连网协议的Berkely实现,称为socket实现。

上面的这些socket的意思都和TCP连接的端点(指IP地址和端口号的组合)不同。

二、用户数据报协议UDP

用户数据报协议由于没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的。很多的实时应用(如IP电话、实时视频会议等)要求源主机以恒定的速率发送数据,并且允许在网络发生拥塞时丢失一些数据,但却不允许数据有太大的时延。

UDP与应用层之间的端口都是用报文队列来实现的。当出队列发生溢出时,操作系统就通知客户进程暂停发送;入队列发生溢出时,UDP就丢弃收到的报文,但不通知对方。在服务端,

UDP用户数据报的首部格式:

用户数据报UDP有两个字段:数据字段和首部字段。首部字段由4个字段组成,每个字段都是两个字节。各字段意义如下:

(1)源端口源端口号。

(2)目的端口目的端口号。

(3)长度UDP用户数据报的长度。

(4)检验和防止UDP用户数据报在传输中出错。

三、传输控制协议TCP

TCP报文段首部的前20个字节是固定的,后面有4N字节是根据需要而增加的选项(N必须是整数)。因此TCP首部的最小长度是20字节。

首部固定部分各字段的意义如下:

(

1、2)源端口和目的端口各占2个字节。

(3)序号占4字节。TCP把在一个TCP连接中传送的数据流中的每一个字节都编上一个序号,整个数据的起始序号在连接建立时设置。首部中的序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。例如,—报文段的序号字段的值是301,而携带的数据共有100字节。这就表明:本报文段的数据的最后—个字节的序号应当是400。下一个报文段的数据序号应当从40l开姑,因而下一个报文段的序号字段值应为401。

(4)确认号占4字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。例如,A正确收到了B发送过来的一个报文段,其序号字段的值是50l,而数据长度是200字节,因此,A期望收到

B的下一个报文段的首部中的序号字段值为701。

(5)数据偏移占4bit,它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。这实际就是TCP报文段首部的长度。注意,“数据偏移”的单位不是字节而是32bit字(即以4字节长的字为计算单位)。由于4bit能够表示的最大十进制数字是15,因此数据偏移的最大值是60字节,这也是TCP首部的最大长度。

(6)保留占6bit。

(7)紧急比特URG当URG=1时,表明紧急指针字段有效,相当于高优先级。例如,已经发送了很长的一个程序要在远地的主机上运行。但后来发现了问题要取消,因此用户发出中断命令。如果不使用紧急数据,那将浪费很多时间。

(8)确认比特ACK只有当ACK=l时确认号字段才有效。当ACK=0时,确认号无效。

(9)推送比特PSH(PUSH) 相当于高优先级的一个玩意。

(10)复位比特RST

(11)同步比特SYN

(12)终止比特FIN

(13)窗口占2字节。窗口字段用来控制对方发送的数据量,单位为字节。即用接收端的接收能力的大小来控制发送端的数据发送量。

(14)检验和占2字节。

(15)选项长度可变。TCP只规定了一种选项,即最大报文段长度MSS。MSS告诉对方TCP:“我的缓存所能接收的报文段的数据字段的最大长度是MSS个字节”。当没有使用选项时,TCP首部长度是20字节。

TCP传输的可靠是由于使用了序号和确认。当TCP发送—报文段时,它同时也在自己的重传队列中存放一个副本。若收到确认,则删除此副本。若在计时器时间到之前没有收到确认,则重传此报文段的副本。TCP的确认并不保证数据己由应用层交付给了端用户,而只是表明在接收端的TCP收到了对方所发送的报文段。

TCP有三种基本机制来控制报文段的发送。第一种机制是TCP维持一个变量,它等于最大报文段长度MSS。只要发送缓存从发送进程得到的数据达到MSS字节时,就组装成一个TCP报文段。第二种机制是发送端的应用进程指明要求发送报文段,即TCP支持的推送(push)操作。第三种机制是发送端的一个计时器时间到了,这时就把当前已有的缓存数据装入报文段发送出去。

慢开始和拥塞避免

对于每一个TCP连接,需要有以下两个状态变量:

(1)接收端窗口rwnd这是接收端根据其目前的接收缓存大小所许诺的最新的窗口值,是来自接收端的流量控制。

(2)拥塞窗口cwnd这是发送端根据自己估计的网络拥塞程度而设置的窃口值,是来自发送端的流量控制。

慢开始算法的原理是这样的。当主机开始发送数据时,如果立即将较大的发送窗口中的全部数据字节都注入到网络,那么由于这时还不清楚网络的状况,因而就有可能引起网络拥塞。经验证明,较好的方法是试探一下,即由小到大逐渐增大发送端的拥塞窗口数值。通常在刚刚开始发送报文段时可先将拥塞窗口cwnd设置为一个最大报文段MSS的数值。而在每收到一个对新的报文段的确认后,将拥塞窗口增加至多一个MSS的数值。用这样的方法逐步增大发送端的拥塞窗口cwnd,可以使分组注入到网络的速率更加合理。

例如,在一开始.发送端先设置cwnd=1,发送第一个报文段Mo,收到确认后将cwnd从1增大到2,于是发送端可以接着发送M1和M2两个报文段。再收到确认后cwnd又从2增大到4,并可发送M3到M6共4个报文段。

为了防止拥塞窗口cwnd的增长引起网络拥塞,还需要另一个状态变量慢开始门限thresh。用法如下: 当cwnd

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

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

具体的做法是:

拥塞避免算法使发送端的拥塞窗口cwnd每经过—个往返时延RTT就增加一个MSS的大小(而不管在时间RTT内收到了几个ACK)。这样,拥塞窗口cwnd按线性规律缓慢增长,比慢开始算法的拥塞窗口增长速率缓慢得多。

快重传和快恢复

快重传的工作原理:即使不能收到某个ACK,也先传后面的报文段,等到收到3个重复的ACK才认为分组丢失(不必等待超时)。

快恢复算法:当不使用快恢复算法时,发送端若发现网络拥塞就将拥塞窗口降低为1,然后执行慢开始算法。但这样做的缺点是网络不能很快地到正常工作状态。快恢复算法可以较好地解决这一问题,其具体步骤如下:

(1)当发送端收到连续三个重复的ACK时,就开始慢开始算法。

(2)与慢开始不向之处是拥塞窗口cwnd不是设置为l,而是设置为thresh+3*MSS。理由是:发送端收到三个重复的ACK表明有三个分组已经离开了网络,它们不会再消耗网络的资源。这三个分组是停留在接收端的缓存中的。可见现在网络中并不是堆积了分组而是减少了三个分组。因此,将拥塞窗口扩大些并不会加剧网络的拥塞。

(3)若收到的重复的ACK为n个(n>3),则将cwnd设置为thresh+n*MSS。

(4)若发送窗口值还容许发送报文段.就按拥塞避免算法继续发送报文段。

(5)若收到了确认新的报文段的ACK,就将cwnd缩小到thresh。

在采用快恢复算法时,慢开始算法只是在TCP连接建立时才使用。

TCP的重传机制

将各个报文段的往返时延样本加权平均,就得出报文段的平均往返时延RTT。每测量到一个新的往返时延样本,就按下式重新计算一次RTT:

RTT=a×(旧的RTT)+(1-a)×(新的往返时延样本)(7—2)

0

显然,计时器设置的超时重传时间RTO应略大于RTT,即:RTO=p×RTT

这里p是个大于1的系数。实际上,系数p是很难确定的。例如:发送出一个TCP报文段l,设定的重传时间到了,还没有收到确认,于是重传此报文段,即报文段2,经过了一段时间后,收到了确认报文段ACK。问题是:无法判定此确认报文段是对原来的报文段1的确认,还是对重传的报文段2的确认。 根据以上所述,Karn提出了一个算法:在计算平均往返时延RTT时,只要报文段重传了,就不采用其往返时延样本。这样得出的RTT就和重传时间就较准确。

但是,这又引起新的问题。设想出现这样的情况:报文段的时延突然增大了很多。因此在原来得出的重传时间内,不会收到确认报文段。于是就重传报文段。但根据Karn算法,不考虑重传的报文段的往返时延样本。这样,重传时间就无法更新。

对Karn算法进行修正:报文段每重传—次,就将重传时间增大一些:

新的重传时间=Y×(旧的重传时间)

系数Y的典型值是2。当不再发生报文段的重传时,才根据报文段的往返时延更新平均往返时延RTT和重传时间的数值。

采用随机早期丢弃RED进行拥塞控制

上面的TCP拥塞控制并没有和网络层采取的策略联系起来。

学习肖明

计算机网络设计读书笔记

计算机网络(谢希仁版)读书笔记[全文]

肖长明总结

肖明同志先进事迹

日月明教案肖

家访心得体会(肖祥明)

肖明军个人工作总结

读书笔记杨尚明

计算机网络复习提纲终版

计算机网络(肖明版)读书笔记
《计算机网络(肖明版)读书笔记.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档