Chinaunix首页 | 论坛 | 博客
  • 博客访问: 35752
  • 博文数量: 6
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 15
  • 用 户 组: 普通用户
  • 注册时间: 2014-12-11 13:59
文章分类
文章存档

2017年(1)

2015年(5)

我的朋友

分类: LINUX

2015-09-29 10:54:08

OSI七层模型与 TCP/IP五层模型 TCP/UDP的区别

OSI七层模型
OSI 中的层            功能                                                        TCP/IP协议族 
应 用层                 文件传输,电子邮件,文件服务,虚拟终 端         TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 
表示层                 数据格式化,代码转换,数据加密                                    没有协议 
会话 层                 解除或建立与别的接点的联系                                          没有协议 
传输层                 提供端对端的接口                                                        TCP,UDP 
网 络层                 为数据包选择路由                                                        IP,ICMP,RIP,OSPF,BGP,IGMP 
数据链路层           传输有地址的帧以及错误检测功能                            SLIP,CSLIP,PPP,ARP,RARP,MTU
物 理层                 以二进制数据形式在物理媒体上传输数据                             ISO2110,IEEE802,IEEE802.2

***************************************************************************************************************

TCP/IP五层模型的协议

应用层 
传输层:四层交换机、也有工作在四层的路由器

网络层:路由器、三层交换机

数据链路层:网桥(现已很少使用)、以太网交换机(二层交换机)、网卡(其实网卡是一半工作在物理层、一半工作在数据链路层)

物理层:中继器、集线器、还有我们通常说的双绞线也工作在物理层

**************************************************************

除了层的数量之外,开放式系统互联(OSI)模型与TCP/IP协议有什么区别? 

开放式 系统互联模型是一个参考标准,解释协议相互之间应该如何相互作用。TCP/IP协议是美国国防部发明的,是让互联网成为了目前这个样子的标准之
一。 开放式系统互联模型中没有清楚地描绘TCP/IP协议,但是在解释TCP/IP协议时很容易想到开放式系统互联模型。两者的主要区别如下: 
·TCP/IP协议中的应用层处理开放式系统互联模型中的第五层、第六层和第七层的功能。 
·TCP/IP协议中的传输层并不能总是保证在传 输层可靠地传输数据包,而开放式系统互联模型可以做到。TCP/IP协议还提供一项名为UDP(用户数据报协议)的选择。UDP不能保证可靠的数据包传 输。
TCP/UDP协议 
TCP
(Transmission Control Protocol)和UDP(User Datagram
Protocol)协议属于传输层协议。其中TCP提供IP环境下的数据可靠传输,它提 供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复
用。通过面向连接、端到端和可靠的数据包发送。通俗说,它是事先为所发送的数据开 辟出连接好的通道,然后再进行数据发送;而UDP则不为IP提供可靠性、
流控或差错恢复功能。一般来说,TCP对应的是可靠性要求高的应用,而 UDP对应的则是可靠性要求低、传输经济的应用。TCP支持的应用协议主要
有:Telnet、FTP、SMTP等;UDP支持的应用层协议主要 有:NFS(网络文件系统)、SNMP(简单网络管理协议)、DNS(主域名称系
统)、TFTP(通用文件传输协议)等. 
TCP/IP 协议与低层的数据链路层和物理层无关,这也是TCP/IP的重要特点

*********************************************************

OSI是 Open System Interconnect的缩写,意为开放式系统互联。
OSI七层参考模型的各个层次的划分遵循下列原 则:
1、同一层中的各网络节点都有相同的层次结构,具有同样的功能。
2、同一节点内相邻层之间通过接口(可以是逻辑接 口)进行通信。
3、七层结构中的每一层使用下一层提供的服务,并且向其上层提供服务。
4、不同节点的同等层按照协议实现对等层之间的通 信。

第一层:物理层(PhysicalLayer),规定通信设备的机械的、电气的、功能的和过程 的特性,用以建立、维护和拆除物理链路连接。具体地讲,机械特
性规定了网络连接时所需接插件的规格尺寸、引脚数量和排列情况等;电气特性规定了在 物理连接上传输bit流时线路上信号电平的大小、阻抗匹配、传输速率距
离限制等;功能特性是指对各个信号先分配确切的信号含义,即定义了DTE和 DCE之间各个线路的功能;规程特性定义了利用信号线进行bit流传输的一组操
作规程,是指在物理连接的建立、维护、交换信息是,DTE和DCE 双放在各电路上的动作系列。
在这一层,数据的单位称为比特(bit)。
属于物理层定义的典型规范代表包括:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45等。
第二层:数据链路层 (DataLinkLayer):在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路,通过差错控制提供数据帧(Frame)在信道上无差错的 传输,并进行各电路上的动作系列。  
数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数 据的检错、重发等。
在这一层,数据的单位称为帧(frame)。
数据链路层协议的代表包括:SDLC、HDLC、PPP、STP、帧中继 等。 
第三层:网络层
在计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要 经过很多通信子网。网络层的任务就是选择合适的网间路由和交换结点,
确保数据及时传送。网络层将数据链路层提供的帧组成数据包,包中封装有网络层 包头,其中含有逻辑地址信息- -源站点和目的站点地址的网络地址。 
如果你在谈论一个IP地址,那么你是在处理第3层的问题,这是“数据包”问 题,而不是第2层的“帧”。IP是第3层问题的一部分,此外还有一些路由协议和地
址解析协议(ARP)。有关路由的一切事情都在第3层处理。地址 解析和路由是3层的重要目的。网络层还可以实现拥塞控制、网际互连等功能。
在这一层,数据的单位称为数据包(packet)。
网络层协议 的代表包括:IP、IPX、RIP、OSPF等。
第四层:处理信息的传输层。第4层的数据单元也称作数据包 (packets)。但是,当你谈论TCP等具体的协议时又有特殊的叫法,TCP的数据单元称为段
(segments)而UDP协议的数据单元称 为“数据报(datagrams)”。这个层负责获取全部信息,因此,它必须跟踪数据单元碎片、乱序到达的
数据包和其它在传输过程中可能发生的危 险。第4层为上层提供端到端(最终用户到最终用户)的透明的、可靠的数据传输服务。所为透明的传输是指在通信过程中
传输层对上层屏蔽了通信传输系 统的具体细节。 
传输层协议的代表包括:TCP、UDP、SPX等。
第五层:会话层。这一层也可以称 为会晤层或对话层,在会话层及以上的高层次中,数据传送的单位不再另外命名,统称为报文。会话层不参与具体的传输,它提供包括访问验证和会话管理在内的建 立和维护应用之间通信的机制。如服务器验证用户登录便是由会话层完成的。 
第六层:表示层。这一层主要解决拥 护信息的语法表示问题。它将欲交换的数据从适合于某一用户的抽象语法,转换为适合于OSI系统内部使用的传送语法。即提供格式化的表示和转换数据服务。数 据的压缩和解压缩, 加密和解密等工作都由表示层负责。
第七层:应用层。应用层为操作系统或网络应用程序提供 访问网络服务的接口。
应用层协议的代表包括:Telnet、FTP、HTTP、SNMP等。
通过 OSI 层,信息可以从一台计算机的软件应用程序传输到另一台的应用程序上。例如,计算机 A 上的应用程序要将信息发送到计算机B的应用程序,则计算机 A
中 的应用程序需要将信息先发送到其应用层(第七层),然后此层将信息发送到表示层(第六层),表示层将数据转送到会话层(第五层),如此继续,直至物理层 (第一层)。在物理层,数据被放置在物理网络媒介中并被发送至计算机 B 。计算机 B的物理层接收来自物理媒介的数据,然后将信息向上发送至数据链路层(第二层),数据链路层再转送给网络层,依次继续直到信息到达计算机 B的应用层。最后,计算机 B 的应用层再将信息传送给应用程序接收端,从而完成通信过程

  OSI 的七层运用各种各样的控制信息来和其他计算机系统的对应层进行通信。这些控制信息包含特殊的请求和说明,它们在对应的 OSI 层间进行交换。每一层数据的头和尾是两个携带控制信息的基本形式。
对于从上一层传送下来的数据,附加在前面的控制信息称为头,附加在后面的控 制信息称为尾。然而,在对来自上一层数据增加协议头和协议尾,对一个 OSI 层来说并不是必需的。 当数据在各层间传送时,每一层都可以在数据上增加头和尾,而这些数据已经包含了上一层增加的头和尾。协议头包含了有关层与层间的通信信息。头、尾以及数据 是相关联的概念,它们取决于分析信息单元的协议层。例如,传输层头包含了只有传输层可以看到的信息,传输层下面的其他层只将此头作为数据的一部分传递。对 于网络层,一个信息单元由第三层的头和数据组成。对于数据链路层,经网络层向下传递的所有信息即第三层头和数据都被看作是数据。换句话说,在给定的某一 OSI 层,信息单元的数据部分包含来自于所有上层的头和尾以及数据,这称之为封装。 
例如,如果计算机 A
要将应用程序中的某数据 发送至计算机 B ,数据首先传送至应用层。 计算机 A 的应用层通过在数据上添加协议头来和计算机 B
的应用层通信。所形成的信息单元包含协 议头、数据、可能还有协议尾,被发送至表示层,表示层再添加为计算机 B
的表示层所理解的控制信息的协议头。信息单元的大小随着每一层协议头和协 议尾的添加而增加,这些协议头和协议尾包含了计算机 B
的对应层要使用的控制信息。在物理层,整个信息单元通过网络介质传输。
计算机 B
中的物理层收到信息单元并将其传送至数据链路层;然后 B 中的数据链路层读取计算机 A
的数据链路层添加的协议头中的控制信息;然 后去除协议头和协议尾,剩余部分被传送至网络层。每一层执行相同的动作:从对应层读取协议头和协议尾,并去除,
再将剩余信息发送至上一层。应用层 执行完这些动作后,数据就被传送至计算机 B 中的应用程序,这些数据和计算机 A 的应用程序所发送的完全相同 。
一个 OSI 层与另一层之间的通信是利用第二层提供的服务完成的。相邻层提供的服务帮助一 OSI 层与另一计算机系统的对应层进行通信。一个
OSI 模型的特定层通常是与另外三个 OSI 层联系:与之直接相邻的上一层和下一层,还有目标联网计算机系统的对应层。例如,计算机 A
的数据链路层 应与其网络层,物理层以及计算机 B 的数据链路层进行通信。

*****************************************************************

OSI
七层模型的每一层都具有清晰的特征。基本来说,第七至第四层处理数据源和数据目的地之间的端到端 通信,而第三至第一层处理网络设备间的通信。另外,OSI
模型的七层也可以划分为两组:上层(层7、层6和层5)和下层(层4、层3、层2和层 1)。OSI
模型的上层处理应用程序问题,并且通常只应用在软件上。最高层,即应用层是与终端用户最接近的。OSI
模型的下层是处理数据 传输的。物理层和数据链路层应用在硬件和软件上。最底层,即物理层是与物理网络媒介(比如说,电线)最接近的,并且负责在媒介上发送
数据。

各 层的具体描述如下:
第七层:应用层

  • 定义了用于在网络中进行通信和数据传输的接口 - 用户程式;
  • 提供标准服务,比如虚拟终端、文件以及任务的传输和处 理;


第六层:表示层

  • 掩盖不同系统间的数据格式的不同性;
  • 指定独立结构的数据传输格式;
  • 数据的编码和解码;加密和解密; 压缩和解压缩


第五层:会话层

  • 管理用户会话和对话;
  • 控制用户间逻辑连接的建立和挂断;
  • 报告上一层发生的错误


第四层:传输层

  • 管理网络中端到端的信息传送;
  • 通过错误纠正和流控制机制提供可靠且有序的数据包传送;
  • 提供面向无连 接的数据包的传送;


第三层:网络层

  • 定义网络设备间如何传输数据;
  • 根据唯一的网络设备地址路由数据包;
  • 提供流和拥塞控制以防止网络资源 的损耗


第二层:数据链路层

  • 定义操作通信连接的程序;
  • 封装数据包为数据帧;
  • 监测和纠正数据包传输错误


第一层:物理层

  • 定义通过网络设备发送数据的物理方式;
  • 作为网络媒介和设备间的接口;
  • 定义光学、电气以及机械特性。

面向连接的TCP



“面向连接”就是在正式通信前必须要与对方建立起连接。比如你给别人打电话,必须等线路接通了、对方拿起话筒才能相互通话。







图1



TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能 建立起来,其中的过程非常复杂,我们这里只做简单、形象的介绍,你只要做到能够理解这个过程即可。我们来看看这三次对话的简单过程:主机A向主机B发出连 接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工 作)的数据包:“可以,你什么时候发?”,这是第二次对话;主机A再发出一个数据包确认主机B的要求同步:“我现在就发,你接着吧!”,这是第三次对话。 三次“对话”的目的是使数据包的发送和接收同步,经过三次“对话”之后,主机A才向主机B正式发送数据。

TCP协议能为应用程序提供可靠的通信连接,使一台计算机发出的字节流无差错地发往网络上的其他计算机,对可靠性要求高的数据通信系统往往使用TCP协议 传输数据。


图2



我们来做一个实验,用计算机A(安装Windows 2000 Server操作系统)从“网上邻居”上的一台计算机B拷贝大小为8,644,608字节的文件,通过状态栏右下角网卡的发送和接收指标就会发现:虽然是 数据流是由计算机B流向计算机A,但是计算机A仍发送了3,456个数据包,如图2所示。这些数据包是怎样产生的呢?因为文件传输时使用了TCP/IP协 议,更确切地说是使用了面向连接的TCP协议,计算机A接收数据包的时候,要向计算机B回发数据包,所以也产生了一些通信量。


图3



如果事先用网络监视器监视网络流量,就会发现由此产生的数据流量是9,478,819字节,比文件大小多出10.96%(如图3所示),原因不仅在于 数据包和帧本身占用了一些空间,而且也在于TCP协议面向连接的特性导致了一些额外的通信量的产生。


面向非连接的UDP协议


“面向非连接”就是在正式通信前不必与对方先建立连接,不管对方状态就直接发送。这与现在风行的手机短信非常相似:你在发短信的时候,只需要输入对方 手机号就OK了。

UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!


图4



UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境。比如,我们经常使用“ping”命令来测试两台主机之间TCP/IP通信是否正常,其 实“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包,如果数据包是否到达的消息及时反馈回来,那么网络就是通的。例 如,在默认状态下,一次“ping”操作发送4个数据包(如图2所示)。大家可以看到,发送的数据包数量是4包,收到的也是4包(因为对方主机收到后会发 回一个确认收到的数据包)。这充分说明了UDP协议是面向非连接的协议,没有建立连接的过程。正因为UDP协议没有连接的过程,所以它的通信效果高;但也 正因为如此,它的可靠性不如TCP协议高。QQ就使用UDP发消息,因此有时会出现收不到消息的情况。

附表:tcp协议和udp协议的差别



TCP协议和UDP协议各有所长、各有所短,适用于不同要求的通信环境。TCP协议和UDP协议之间的差别如附表所示。

阅读(1463) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~