1. 网络拓扑结构(Network Topology)
1. 公共总线拓扑结构( Common Bus Top ology):它们通过一根单总线(一束并行线)进行通信。每个设备通过相应的接口侦听总线,检查数据传输。如果接口判断出数据时送往它所服务的设备的,它就从总线上读取数据并传给设备。当一个设备有数据需要传送时,其接口电路检测总线是否空闲,如果是就立刻发送数据。当两个设备同时检测到总线空闲并传输数据时会产生一个冲突信号,设备传输时继续监听总线,因此能检测到冲突信号,并停止传输,等待一段随机事件后重试。这一过程称为带冲突检测的载波侦听多路访问。优点:不采用中央控制,加入一个 新设备就非常简单,因为设备间不相互影响。另外,在总线网络中,一个设备发生故障或被卸去,不会导致网络崩溃。以太网是公共总线网络,以太网最主要的优点在于为网络添加新的设备非常容易。
![](https://i-blog.csdnimg.cn/blog_migrate/d3156f76fe11e170340c452dc67c2230.png)
2. 星形拓扑结构(Star Topology):它使用一台中心计算机与网络中的其他设备通信,采用集中控制的方式。一个需要通信的设备把数据传输给中心计算甲,然后计算机再把数据送往目标节点。优点:中央控制的方式使责任明确。缺点:中心计算机故障将直接导致整个系统的崩溃。
![](https://i-blog.csdnimg.cn/blog_migrate/2e2660135ff86c250c8b2aac9a0990ed.png)
3. 在环形拓扑结构(Ring Topology):设备被连接成环,每台设备只能和它的一个或两个相邻节点直接通信,要与其他节点通信,信息必须依次经过两者之间的每个设备。环形网络可以使单向(传输都是同方向)的,也可以是双向(数据能在两个方向上进行传输)的。缺点:当一个节点要往另一个节点发送数据时,它们之间的所有节点都得参与传输,只要一个节点发生故障,就会使环中的所有节点无法正常通信。
![](https://i-blog.csdnimg.cn/blog_migrate/d72b40cd669891a5265c2c8f888f4e16.png)
4. 全连接拓扑结构(Fully Connected Topology):每一对设备间都有直接的连接。由于不再需要竞争公用线路,通信变得非常简单。缺点:费用增加,很多连接得不到充分利用。
![](https://i-blog.csdnimg.cn/blog_migrate/6025be5ef4be302450e8731a4706dd4f.png)
5. 组合拓扑结构:组合使用各种拓扑结构。一个折衷的方案是把网络划分为几个连接PC和其他设备的环形、星形或是总线拓扑的局域网。同一局域网内的设备遵照各自拓扑结构的通信标准进行通信。如果是跨网传输,必须通过连接两网的网桥。
![](https://i-blog.csdnimg.cn/blog_migrate/ec9fcbf025ab4d2caf78f7ee8914c667.png)
2. OSI模型
OSI模型是一个7层模型。每一层实现特定的功能,并且只与上下两层直接通信。高层协议偏重于处理用户服务和各种应用请求。低层协议偏重 于处理实际的信息传输。
![](https://i-blog.csdnimg.cn/blog_migrate/634c5e476f6113fc92d00483ce5d27ed.png)
OSI各层功能总结
层次 功能
7. 应用层 提供电子邮件、文件传输等用户服务
6. 表示层 转换数据格式,数据加密和解密
5. 会话层 通信同步,错误恢复和事务操作
4. 运输层 网络决策,实现分组和重新组装
3. 网络层 路由选择,计费信息管理
2. 数据链路层 错误检测和校正,组帧
1. 物理层 数据的物理传输
1. 物理层(Physical Layer)
物理层由两个主要部分组成:传输媒体和连接策略。
传输媒体决定了信号是如何传送的。
共有三种连接策略:电路交换、报文交换、分组交换。
电路交换 (Circuit Switching):两节点间的线路将一直保持到其中一方终止通信。也就是说,该线路只用于这两个节点间的通信。已经分配的信道不能给别的通信使用。电路交换要求在开始传输信息前完成路由选择并实现连接。而且,网络将维持这一线路,一直到某一方终止通信。当两个节点需要持续通信时,这种连接方式最有用。
报文交换(Message Switching):当有报文(单位信息)需要传送时,网络使用报文交换来建立路由。由于报文被每个经
过的节点存储起来,所以使用这一方法的网络也称为存储转发网络(Store-and-Forward Network)。在报文交换中,报文被每个节点暂时存储。不同的报文可能经过不同的路由,不同的报文可以分时共享同一公共线路。
分组交换(Packet switching):把由于在报文交换中传输长报文而导致的问题的影响最小化。长报文可能超过了节点的缓冲器容量,也可能使相邻节点间的线路被长时间占用。一个线路故障可能导致整个报文丢失。
在分组交换网络中,有数据报和虚电路两种常用的路由方式。采用数据报方式,每个分组被独立地传输,也就是说网络协议将每个分组当作单独的一个报文,对它进行路由选择。这种方式允许路由策略考虑网络环境的实际变化,如果某条路径发生阻塞,它可以变更路由。缺点:当报文包含很多分组时,独立的路由选择将导致巨额的费用;分组可能无法按照发送的顺序到达目标节点。
采用虚电路方式,网络协议在发送分组前,首先建立一条线路(虚电路)。所有分组通过同一条路径传输,以确保正确地按次序到达目标节点。线路不是专用的,不同的虚电路可以共享一条公共网络线路。
连接策略的比较
策略 优点 缺点
电路交换 快速。适用于不允许传输延迟的情况 由于网络线路是专用的,所以其他路由不
能使用。和电话通话一样,通信双方必须
同时参与
报文交换 路由是非专用的,完成一个报文传 通常报文需要用更长的时间,才能到达目
输后,可以立刻被重新使用。接收方 的地。由于中间节点必须存储报文,所以报
方无须立即接受报文 文过长,也会产生问题。报文尾部仍沿用原
先设定的路由,而不管网络状况是否已经 改变
分组交换 当发生阻塞时,分组交换网络的数 由于每个分组被单独传送,费用将相应增
据报方式会为报文的不同分组选择不 加。必须为每个分组选择路由。在数据报方
同的路由,因此能更好地利用网络 式中,分组可能不按次序到达
2. 数据链路层(Data Link Layer)
当物理层发送和接收数据时,数据链路层负责确保它正确地运作。
当两个以上节点同时要在同一媒体上进行传输时,就会发生竞争。
解决竞争的方法:带冲突检测的载波侦听多路访问,设备通过侦听总线来避免冲突。总线忙,设备就暂时不传输,如果两台设备都检测到总线空闲,并同时开始传送数据,就会发生冲突,通常会稍后再试着传输。并不能防止多个节点同时在一条公共总线上传输,而是对冲突做出反应;
令牌传递,是一种防止冲突的竞争机制,把一串循环通过所有网络节点的特定比特流称为令牌。节点必须获得令牌才能进行传输,并把令牌附加到发送的报文末端,并改变令牌的控制位以指示该令牌已被占用。接着报文被送到目标节点使其获得令牌,根据不同的协议选择传输或者把令牌传给下一节点。令牌传递方式并不仅仅适用于环形 网,它也可以应用于其他任何网络拓扑
结构中。只要将节点编号,就可以让令 牌按号码顺序循环传递。
接收方的数据链路层进行错误检测(Error Detection)来判断是否发生错误,发生错误则 它通常会要求重新传送信息。奇偶校验位是最简单的一种检测手段,但它无法检测所有错误。同时数据链路层还进行错误校正(Error Correction), 以纠正被破坏的数据位。
3. 网络层(Network Layer)
网络层为运输层提供建立端对端通信的功能。
网络层包含在两点间寻找最佳路径的算法。路由选择算法在为某个特定节点寻找最快捷便宜的路径时,必须考虑线路费用和线路有效性等诸多因素。网络节点上的网络层协议共同进行路由选择。选择路由时的问题:新的站点和节点会有规律的加入到网络中来,并对现有的路由及其费用产生影响。算法必 须具备应付变化的条件的能力;路由上的计算机由于超负荷工作而导致的阻塞经常使某些通信被丢弃,,网络层协议必须有能 力在部分报文丢失时通知发送方;当由于网络环境改变而出现新的最佳路径时,经其他路径传输 的信息将被改道。
网络层控制着通信子网(Communications Subnet)。所谓通信子网就是实现路由和数据传 输所必需的传输媒体和交换组件的集合。网络层是针对子网的最高层次。这一层也可能包含计费软件其费用取决于传输数据的数量,也可能跟使用网络的时段有关。网络层记录这些信息,并负责计费。
4. 运输层(Transport Layer)
运输层是一个过渡性的层次。
运输层的功能之一是提供可靠有效的网络连接。它允许上面的三个层次不受实际网络结构 约束地执行各自的任务。同时,它依靠下面的三个层次控制实际的网络操作。运输层最主要的职责在于为会话层提供可靠有效的传输线路。
运输层能够在网络中建立多重连接 (即多路复用, Multiplexing)。运输层对数据进行划分后,将其各个部分分别传送到不同的网 络节点,这一过程称为向下多路复用(Downward Multiplexing)。几个传输用户共享一个单一节点,这一过程称为向上多路复用( Upward Multiplexing)。
运输层还负责在网络节点上的缓冲任务。在源节点和目标节点都可能需要进行缓冲。当发送方的运输层收到来自会话层的传输数据时,它把数据分割成运输协议数据单元(Transport Protocol Data Unit,TPDU),然后再传送给接收方的运输层(通过低层协议)。运输层协议要求对每个接收到的TPDU回送一个已经正确接收的确认。假设运输用户A要传送 几个TPDU给用户B。在某些情况下,这些TPDU在源节点被缓存起来,并排队等待低层协议进 行传输。每发送完一个TPDU,运输层并不把它从队列中移走,而是等待一个已正确接收的确认。如果协议要求每一个T P D U都必须有一个确认,那么发送方的运输层就必须等待。如果经 过一段时间后还没有收到确认,它就重发这个TPDU,这时该TPDU应该还在缓冲队列中,没有被移走。当接收方的运输层收到一个TPDU时,它必须保存该TPDU直到会话层取走它。记住:会话层不一定会立刻取走TPDU。如果接收方知道发送方缓存所有的TPDU,它可以只留一个缓冲位置来接收T P D U。这样做的缺点是:在缓存的T P D U没有被会话层取走之前,接收方将没有空间接受后来的TPDU。在这种情况下,接收方将忽略这些TPDU,并拒绝为它们发回确认。于是发送方收不到确认,最终只能重新进行发送。如果网络是可靠的(也就是说,很少发生错误),TPDU也可以在目标节点被缓存。若能够 确认接收方将缓存数据,发送方就无需再这样做。
连接管理(Connection Management)是运输层在两个节点间建立和释放连接所必须遵循的协 议。Tomlinson开发的三次握手(Three-way Handshake) 协议。其工作进程是这样的:
1)用户A传送一个请求一次连接 的TPDU。它的序列号是x。
2)用户B回送一个确认该请求及其序列号的TPDU。它的序列号为y。
3 )用户A 通过在第一个数据TPDU中包含序列号x和y,对用户B的确认帧发回一个确认。
5. 会话层(Session Layer)
会话层包括在两个端用户间建立和保持一个连接或会话所必需的协议。
如果运输连接由于一个网络故障而中断,会话层将请求另一个运输连接,从而使会话不至于被中断。
有三种操作方式能够有效地提高通信质量,并允许会话层定义信息的逻辑单元,它们是会话管理、同步点、事务。
会话管理(Dialog Management):大多数通信都是全双工(Full Duplex)的;即数据可以 同时在两个方向上进行传输。在半双工(Half -Duplex)通信中,数据可以双向传输,但必须轮流进行。会话层也能管理半双工通信。通过交换一个数据令牌,它就可以协调会话, 从而保证每次只有一个用户能够传输数据。
同步点(Synchronization Point):会话层用户能够通过在数据流中定义同 步点来避免大的损失。这些点把数据分割成明显的会话单元。同时还定义 恢复点以防发生错误。有两种同步点:主同步点和次同步点。在每个主同步点(Major Synchronization Point),接收方的会话层必须作出确认:该会话单元已被预定的用户成功接收,从而让发送方知道会话单元已经到达了原定的目的地。如果在确认前发生错误,发送方可以进行再同步,或从最近的同步点开始重新传送数据。保留会话单元的备份是发送方的责任。但是一旦会话单元被确认,发送方就可以删去备份,释放缓存空间。次同步点(Minor Synchronization Point)类似于主同步点。发送方可以在会话单元中插入次同步点。用户可以在当前的会话单元中根据次同步点进行再同步。次同步点不需要确认,以减轻网络负载。另一方面,发送方就不能释放用于缓存会话单元的空间。
![](https://i-blog.csdnimg.cn/blog_migrate/93a77880046b54f3c0e09d6b81c726c5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ebfe48c3e01a221022063ed43b15e19e.png)
事务(Activity):用户还可以在数据中插入另一种结构,定义工作的单位—事务。和会话单元一样,事务定义后彼此分离,相互独立。
发送方的会话层使用特定的命令标识一个事务的开始和结束。当接收方的会话层检测到一 个事务的开始标志时,就把所有的输入命令放进缓冲区,直到发现事务的结束标志。只有到了那时,它才会把这些命令传送给高层协议,让它们执行必要的任务。
![](https://i-blog.csdnimg.cn/blog_migrate/d5a590f9bd6db235b42226dc9cd2ab35.png)
6. 表示层(Presentation Layer)
首先我们要区分信息与数据之间的区别,简单地说,计算机存储的不是信息,而是数据。信息室人为地赋予数据的含义。从根本上说,数据是比特位、字节和其他无法表达的东西的分类。信息则是一种人为的解释。表示层必须了解自己服务的系统,同时还得知道它从其他系统接收来的数据的格式。它必须确保信息在网络上正确地传输。
表示层的另一个功能是数据压缩(Data Compression)。它能在保持原意的基础上减少信 息的比特数。在发送前改变(或加密)比特位的另一个原因是安全。如果有人未经许可中途截取传输的 信息,由于经过加密,信息将是不可读的。要了解信息的含义,数据必须经过解密。
7. 应用层(Aplication Layer)
负责与用户和应用程序进行通信。之所以称它为应用层, 是因为它包含网络应用。典型的网络应用包括万维网应用、电子邮件、文件传输、虚拟终端协议和分布式系统等。
模型的低层 协议提供表示信息的手段,并负责把信息传送到目的地。而位于应用层的电子邮件协议(Email Protocol)负责定义电子邮件系统的体系结构。它把邮件存储在一个信箱(实际上是一个文件)里。这样,用户就可以加以组织、阅读信息,并作出回答。
文件传送协议(File Transfer Protocol)同样允许用户交换信息,但它采用不同的方式。它 通常允许用户连接一个远程系统,检索上面的目录和文件,并把它们拷贝到用户的系统上。
虚拟终端协议(Virtual Terminal Protocol)允许终端用户跨过网络连接一个远程计算机。一旦 接通,用户就可以象在实际的终端上一样进行交互操作。
分布式系统(Distributed System)是计算机网络领域中另一项蓬勃发展的应用技术。它允许很多设备运行同一个软件,并访问公共资源。典型的资源包括工作站、文件服务器、主机和打印机等。