690 likes | 1.01k Views
网络教程 —— OSI 模型. 黄斌 莆田电大. OSI 参考模型. OSI , TCP/IP 和 Novell NetWare 网络协议体系结构 面向连接的协议,非面向连接的协议,流量控制 OSI 数据链路层功能 OSI 第三层功能 实例分析. OSI , TCP/IP 和 Novell NetWare 网络协议体系结构. OSI :起源和发展 OSI 层 层的原理和益处 层之间的交互 TCP/IP 和 Novell NetWare 网络协议. OSI :起源和发展.
E N D
网络教程——OSI模型 黄斌 莆田电大 Yu Guanghui <ygh@debian.org>
OSI参考模型 • OSI,TCP/IP和Novell NetWare网络协议体系结构 • 面向连接的协议,非面向连接的协议,流量控制 • OSI数据链路层功能 • OSI第三层功能 • 实例分析 Yu Guanghui <ygh@debian.org>
OSI,TCP/IP和Novell NetWare 网络协议体系结构 • OSI:起源和发展 • OSI层 • 层的原理和益处 • 层之间的交互 • TCP/IP和Novell NetWare网络协议 Yu Guanghui <ygh@debian.org>
OSI:起源和发展 • OSI——It is the Open Systems Interconnection model for communication. • 从来没有被真正在网络中应用。 • 今天主要作为讨论各种协议的参考。 Yu Guanghui <ygh@debian.org>
OSI层 • 应用层 • 表示层 • 对话层 • 传输层 • 网络层 • 数据链路层 • 物理层 Yu Guanghui <ygh@debian.org>
OSI层——应用层 Yu Guanghui <ygh@debian.org>
例子 • 例如一个没有通讯功能的字处理程序当然不会去编写通讯代码,程序员也不必关心OSI第七层。然而,如果增加一个传输文件的选项,程序员就不得不实现OSI第七层(或者其他协议中等价的层)——文件传输服务。 Yu Guanghui <ygh@debian.org>
OSI层——表示层 Yu Guanghui <ygh@debian.org>
例子 • FTP允许你选择binary和ASCII两种传输方式。如果是binary方式,发送端就不会改变文件的内容。如果是ASCII方式,发送端就会先把内容从发送端的字符集转换成标准的ASCII码再发送。接受端再从ASCII码转换为本地的字符集。 Yu Guanghui <ygh@debian.org>
OSI层——对话层 Yu Guanghui <ygh@debian.org>
例子 • 从ATM提款机提款时,需要插卡、输入密码、输入提款金额、提取现金。每一步都需要上一步确认。 Yu Guanghui <ygh@debian.org>
OSI层——传输层 Yu Guanghui <ygh@debian.org>
例子 • TCP提供了一个4200字节的数据段给IP进行投递。如果某种媒体不能传输4200个字节的包,那么IP将对数据进行分片。这样,接收端的TCP也许就会接收到3个不同的1400字节的段。并且,接收段可能按照和发送不同的顺序接收,所以它需要记录接收的段,并将它们重组为4200字节的段。然后将数据送给上一层。 Yu Guanghui <ygh@debian.org>
OSI层——网络层 Yu Guanghui <ygh@debian.org>
例子 • 对于一个运行IP的Cisco路由器来说,它会检查包的目的IP,将这个IP同路由表进行比较,如果输出界面需要一个比较小的包的话,还需要对包进行分片,然后将包送入队列等待发送。 Yu Guanghui <ygh@debian.org>
OSI层——数据链路层 Yu Guanghui <ygh@debian.org>
OSI层——物理层 Yu Guanghui <ygh@debian.org>
例子 • RJ45定义了连接器的形状和电缆芯/针的数量。Ethernet和802.3定义了1,2,3,6芯/针的使用。所以一根给Ethernet使用的带有RJ45连接器的5类电缆,同时应用了Ethernet和802.3物理层规范。 Yu Guanghui <ygh@debian.org>
OSI层 • 某些协议可能同时定义了多层的细节。例如,TCP/IP应用层等价于OSI 5到7层,所以NFS实现同时适合这三层。类似的,802.3,802.5和以太网同时定义了数据链路层和物理层的细节。 Yu Guanghui <ygh@debian.org>
分层的益处 • 便于讨论和学习协议规范的细节。 • 标准化层之间的界面,使得不同的产品可以在相同的层相同的功能。 • 建立更好的互操作性。 • 降低了复杂性。 • 易于排错。每一层都在用户数据周围加上头和尾,排错失可以察看这些信息。 • 每一层都给其上一层提供服务。所以,可以清晰的区分每一层的功能。 Yu Guanghui <ygh@debian.org>
层之间的交互 • 每一层向其上一层提供服务。 • 每一层其他计算机相同层的软件或者硬件使用相同的信息通信,特别是同终点计算机。 Yu Guanghui <ygh@debian.org>
L2H L2H L3 L3 L4 L4 L5 L5 L6 L6 L7 L7 Data Data L2T L2T L3 L3 L4 L4 L4 L4 L5 L5 L5 L5 L5 L5 L6 L6 L6 L6 L6 L6 L6 L6 L7 L7 L7 L7 L7 L7 L7 L7 L7 L7 Data Data Data Data Data Data Data Data Data Data L2T L2T L2T L2T L2T L2T L2T L2T L2T L2T 层之间的交互——相同计算机相邻层的通讯 应用层 应用层 表示层 表示层 对话层 对话层 1 4 传输层 传输层 网络层 网络层 数据 链路层 数据 链路层 物理层 物理层 L# - Layer # L#H - Layer # Header L#T - Layer # Trailer 3 2 Yu Guanghui <ygh@debian.org>
应用层 应用层 表示层 表示层 对话层 对话层 传输层 传输层 网络层 网络层 网络层 数据链路层 数据链路层 数据链路层 物理层 物理层 物理层 层之间的交互——不同计算机相同层之间的通讯 HOST A HOST B Router 1 Yu Guanghui <ygh@debian.org>
层之间的交互——数据封装 • 创建数据 • 将数据打包,准备传输。就是说,传输层创建传输层的头,将数据放到其后。 • 向数据加入目标网络层地址。就是说,网络层创建网络层的头,将数据放到其后。 • 向数据加入目标数据链路层地址。同样的,数路链路层创建数据链路层的头,将数据放到其后。 • 传输这些比特。物理层进行编码,在媒体上用来传输帧的信号。 Yu Guanghui <ygh@debian.org>
Data IP TCP Data LT IP TCP TCP Data Data 层之间的交互——TCP/IP Headers and Trailers 1. Application 2. Transport 3. Internet 4. Network Interface 5. Yu Guanghui <ygh@debian.org>
IP Data LH IP Data LT 层之间的交互——帧,包和段 Segment Data Packet Frame Yu Guanghui <ygh@debian.org>
Application Application SAP,NCP Presentation Session Transport TCP UDP SPX Network IP,ARP,ICMP IPX Data link Network Interface MAC Protocols Physical TCP/IP和NetWare协议 OSI TCP/IP NetWare Yu Guanghui <ygh@debian.org>
面向连接的协议,非面向连接的协议,流量控制面向连接的协议,非面向连接的协议,流量控制 • 面向连接的协议 VS 非面向连接的协议 • 如何进行出错处理 • 流量控制 Yu Guanghui <ygh@debian.org>
面向连接的协议 VS 非面向连接的协议 Yu Guanghui <ygh@debian.org>
如何进行出错处理——Forward Acknowledgment Fred Barney 10,000 Bytes Of Date Network S=1 S=2 Got 1 st 3, Give me #4 next S=3 R=4 Yu Guanghui <ygh@debian.org>
如何进行出错处理——恢复例子 Fred Barney 10,000 Bytes Of Date Network S=1 S=2 Got #1 Give me #2 next S=3 R=2 S=2 Yu Guanghui <ygh@debian.org>
如何进行出错处理 Yu Guanghui <ygh@debian.org>
流量控制 • 流量控制指的是控制另外一台计算机发送数据的速率。 Yu Guanghui <ygh@debian.org>
1 2 3 4 5 Stop go 流量控制——Congestion Avoidance Flow Control Sender Receiver Yu Guanghui <ygh@debian.org>
1 2 3 4 5 6 ACK=2 ACK=4 流量控制——Windowing Flow Control Win=3 Yu Guanghui <ygh@debian.org>
流量控制——小结 Yu Guanghui <ygh@debian.org>
OSI数据链路层功能 • 仲裁,什么时候可以使用媒体传输。 • 地址,能让正确的接收者接收和处理被发送的数据。 • 错误检测,能够知道数据是否在媒体中正确传输。 • Notification,能够确定数据链路头后面的头类型。 Yu Guanghui <ygh@debian.org>
数据链路层功能:仲裁 • 仲裁仅在当发送者想知道什么时刻适合在媒体上发送数据,什么时候不适合发送数据才需要。 Yu Guanghui <ygh@debian.org>
仲裁:以太网 • 以太网使用载波监听/冲突监测(CSMA/CD)算法来进行仲裁。 • 监听媒体上是否有帧正在传输。 • 如果没有帧传输,发送! • 如果有真正在传输,等待,再监听。 • 当传输中发生碰撞,停止,等待,再监听。 Yu Guanghui <ygh@debian.org>
仲裁——令牌环 • 令牌环采用另外一种完全不同的方式。 • 监听经过的令牌。 • 如果令牌忙,等待下一次令牌经过。 • 如果令牌空闲,标记令牌为忙,在其后附加数据,然后将数据发送到环上。 • 当标记为忙的令牌环绕环一周回到发送者时,发送者去掉令牌后的数据。 • 发送者可以发送另外一个忙令牌和更多的数据,或者发送一个空闲令牌帧。 Yu Guanghui <ygh@debian.org>
仲裁——HDLC,Frame Relay • 不需要仲裁: • HDLC——HDLC是点到点的连接,通常是全双工电路。就是说,任何一段可以在任何时候发送。 • Frame Relay——使用专线连接路由器和帧中继交换机。通常也是全双工的连接,所以也不需要仲裁。 Yu Guanghui <ygh@debian.org>
HDLC Data HDLC 802.3 802.3 802.2 802.2 Data Data 802.3 802.5 F.R. Data F.R. 仲裁——常见的帧格式 Yu Guanghui <ygh@debian.org>
数据链路层功能——局域网地址 • 对以太网和令牌环来说,地址是非常相似的。他们都是使用媒体访问控制地址(MAC)——6个字节,用十六进制表示。 Yu Guanghui <ygh@debian.org>
局域网 MAC地址术语和特征 Yu Guanghui <ygh@debian.org>
局域网 MAC地址术语和特征 Yu Guanghui <ygh@debian.org>
数据链路层功能——局域网地址 • HDLC包含一个没有意义的地址字段,因为HDLC只再点到点专线使用。如果一个设备发送出一个帧,另外一个设备是唯一可能的接收者。 Yu Guanghui <ygh@debian.org>
数据链路层功能——局域网地址 Frame Relay Network Timbuktu S kalamazoo S S East Egypt Yu Guanghui <ygh@debian.org>
数据链路层功能——局域网地址 • 对帧中继来说,一个物理电路通常包含了许多叫做虚电路(VCs)的逻辑电路。帧中继中的地址子段定义为data-link connection identifer(DLCI),用来区分每个虚电路。 Yu Guanghui <ygh@debian.org>
数据链路层功能——错误检测 • 错误检测是对帧传输过程中是否发生位的错误进行一个简单的检测。通常是在帧里包含一个frame check sequence (FCS)或者Cyclical redundancy check (CRC)的域。 Yu Guanghui <ygh@debian.org>
数据链路层功能——错误检测 • 错误检测并不进行错误恢复。大多数的数据链路层协议,包括802.5令牌环和802.3以太网,都不提供错误恢复。然而在上面两种情况中,在802.2协议中有一个选项,叫做LLC type 2,提供了错误恢复。SNA和NetBIOS是典型需要LLC2服务的高层协议。 Yu Guanghui <ygh@debian.org>