TCP/IP四层模型与OSI参考模型

TCP/IP四层模型:

1.链路层(数据链路层/网络接口层):包括操做系统中的设备驱动程序、计算机中对应的网络接口卡html

2.网络层(互联网层):处理分组在网络中的活动,好比分组的选路。linux

3.运输层:主要为两台主机上的应用提供端到端的通讯。android

4.应用层:负责处理特定的应用程序细节。web

 


 

假设在一个局域网(LAN)如以太网中有两台主机,两者运行FTP协议:算法

网络层与运输层的区别:shell

  在TCP/TP协议族中,数据库

  网络层IP提供的是一种不可靠的服务。它只是尽量快地把分组从源节点送到目的节点,但不提供任何可靠性的保证。安全

  Tcp在不可靠的ip层上,提供了一个可靠的运输层,为了提供这种可靠的服务,TCP采用了超时重传、发送和接受端到端的确认分组等机制。网络


 

TCP/IP协议族的分层:编码


OSI参考模型:(Open System Interconnect 开放系统互连参考模型)

 

一、物理层

  主要功能:利用传输介质为数据链路层提供屋里链接,实现比特流的透明传输。

  做用:实现相邻计算机节点之间比特流的透明传输,尽量屏蔽掉具体传输介质与物理设备的差别。使其上面的数据链路层没必要考虑网络的具体传输介质是什么。

  透明传输的意义就是:无论传的是什么,所采用的设备只是起一个通道做用,把要传输的内容无缺的传到对方!

 

二、数据链路层:负责创建和管理节点间的链路。

  主要功能:经过各类控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。

  具体工做:接受来自物理层的位流形式的数据,并封装成帧,传送到上一层;一样,也未来自上一层的数据帧,拆装为位流形式的数据转发到物理层;而且还负责处理接受端发回的确认帧的信息,以便提供可靠的数据传输。

  该层一般又被分为 介质访问控制(MAC)逻辑链路控制(LLC)两个子层:
    MAC子层的主要任务是解决共享型网络中多用户对信道竞争的问题,完成网络介质的访问控制
    LLC子层的主要任务是创建和维护网络链接,执行差错校验、流量控制和链路控制

 

三、网络层:是OSI参考模型中最复杂的一层,也是通讯子网最高的一层,它在下两层的基础上向资源子网提供服务。

  主要任务:经过路由算法,为报文或分组经过通讯子网选择最适当的路径。该层控制数据链路层与物理层之间的信息转发,创建、维持与终止网络的链接。具体的说,数据链路层的数据在这一层被转换为数据包,而后经过路径选择、分段组合、顺序、进/出路由等控制,将信息从一个网络设备传送到另外一个网络设备。

  通常的,数据链路层是解决统一网络内节点之间的通讯,而网络层主要解决不一样子网之间的通讯。例如路由选择问题。

  在实现网络层功能时,须要解决的主要问题以下:
    寻址:数据链路层中使用的物理地址(如MAC地址)仅解决网络内部的寻址问题。在不一样子网之间通讯时,为了识别和找到网络中的设备,每一子网中的设备都会被分配一 个惟一的地址。因为各个子网使用的物理技术可能不一样,所以这个地址应当是逻辑地址(如IP地址)
    交换:规定不一样的交换方式。常见的交换技术有:线路交换技术和存储转发技术,后者包括报文转发技术和分组转发技术。
    路由算法:当源节点和路由节点之间存在多条路径时,本层能够根据路由算法,经过网络为数据分组选择最佳路径,并将信息从最合适的路径,由发送端传送的接受端。
    链接服务:与数据链路层的流量控制不一样的是,前者控制的是网络相邻节点间的流量,后者控制的是从源节点到目的节点间的流量。其目的在于防止阻塞,并进行差错检测

 

四、传输层

  OSI的下三层的主要任务是数据传输,上三层的主要任务是数据处理。而传输层是第四层,所以该层是通讯子网和资源子网的接口和桥梁,起到承上启下的做用。

  主要任务:向用户提供可靠的、端到端的差错和流量控制,保证报文的正确传输。

  主要做用:向高层屏蔽下层数据通讯的具体细节,即向用户透明的传送报文。

  传输层提供会话层和网络层之间的传输服务,这种服务从会话层得到数据,并在必要时,对数据进行分割,而后,传输层将数据传送到网络层,并确保数据能准确无误的传送到网络层。所以,传输层负责提供两节点之间数据的可靠传送,当两节点的联系肯定以后,传输层负责监督工做。综上,传输层的主要功能以下:                        传输链接管理:提供创建、链接和拆除传输链接的功能。传输层在网络层的基础上,提供“面向链接”和“面向无链接”两种服务                             处理传输差错:提供可靠的“面向链接”和不可靠的“面向无链接”的数据传输服务、差错控制和流量控制。在提供“面向链接”服务时,经过这一层传输的数据将由目标设备确认,  若是在指定的时间内未收到确认信息,数据将被从新发送。                                                             监控服务质量

 

五、会话层:是OSI参考模型的第五层,是用户应用程序和网络之间的接口

  主要任务:向两个实体的表示层提供创建和使用链接的方法。将不一样实体之间的表示层的链接称为会话。所以会话层的任务就是组织和协调两个会话进程之间的通讯,并对数据交换进行管理。

  用户能够按照半双工、单工和全工的方式创建会话。当创建会话时,用户必须提供他们想要链接的远程地址。而这些地址与MAC(介质访问控制子层)地址或网络层的逻辑地址不一样,他们是为用户专门设计的,更便于用户记忆。域名(DN)就是网络上使用的远程地址。会话层的具体功能以下:                                  会话管理:容许用户在两个实体设备之间创建、维持和终止会话,并支持它们之间的数据交换。例如提供单方向会话或双向同时会话,并管理会话中的发送顺序,以及会话所占用时间的长短。                                                                              会话流量控制:提供流量控制和交叉会话功能。                                                              寻址:使用远程地址创建会话链接。                                                                   出错控制:从逻辑上讲,会话层主要负责数据交换的创建、保持和终止,但实际的工做倒是接收来自传输层的数据,并负责纠错。会话控制和远程过程调用均属于这一层的功能。但应注意,此层检查的错误不是通讯介质的错误,而是磁盘空间、打印机缺纸等高级类的错误。

 

六、表示层

  表示层是OSI模型的第六层,它对来自应用层的命令和数据进行解释,对各类语法赋予相应的含义,并按照必定的格式传送给会话层
  其主要功能是“处理用户信息的表示问题,如编码、数据格式转换和加密解密”等。
  表示层的具体功能以下:
    数据格式处理:协商和创建数据交换的格式,解决各应用程序之间在数据格式表示上的差别。
    数据的编码:处理字符集和数字的转换。例如因为用户程序中的数据类型(整型或实型、有符号或无符号等)、用户标识等均可以有不一样的表示方式,所以,在设备之间须要具备在不一样字符集或格式之间转换的功能。
    压缩和解压缩:为了减小数据的传输量,这一层还负责数据的压缩与恢复。
    数据的加密和解密:能够提升网络的安全性。

 

七、应用层

  应用层是OSI参考模型的最高层,它是计算机用户,以及各类应用程序和网络之间的接口

  主要功能:直接向用户提供服务,完成用户但愿在网络上完成的各类工做。它在其余6层工做的基础上,负责完成网络中应用程序与网络操做系统之间的联系,创建与结束使用者之间的联系,并完成网络用户提出的各类网络服务及应用所需的监督、管理和服务等各类协议。此外,该层还负责协调各个应用程序间的工做。
  应用层为用户提供的服务和协议有:文件服务、目录服务、文件传输服务(FTP)、远程登陆服务(Telnet)、电子邮件服务(E-mail)、打印服务、安全服务、网络管理服务、数据库服务等。上述的各类网络服务由该层的不一样应用协议和程序完成,不一样的网络操做系统之间在功能、界面、实现技术、对硬件的支持、安全可靠性以及具备的各类应用程序接口等各个方面的差别是很大的。应用层的主要功能以下:
    用户接口:应用层是用户与网络,以及应用程序与网络间的直接接口,使得用户可以与网络进行交互式联系。
    实现各类服务:该层具备的各类应用程序能够完成和实现用户请求的各类服务。

 

OSI 7层模型的小结
因为OSI是一个理想的模型,所以通常网络系统只涉及其中的几层,不多有系统可以具备全部的7层,并彻底遵循它的规定。
在7层模型中,每一层都提供一个特殊的网络功能。从网络功能的角度观察:下面4层(物理层、数据链路层、网络层和传输层主要提供数据传输和交换功能,即以节点到节点之间的通讯为主;第4层做为上下两部分的桥梁,是整个网络体系结构中最关键的部分;而上3层(会话层、表示层和应用层)则以提供用户与应用程序之间的信息和数据处理功能为主。简言之,下4层主要完成通讯子网的功能,上3层主要完成资源子网的功能。

 

一个很容易理解OSI 七层模型的例子:

OSI七层模式简单通俗理解

这个模型推出的最开始,是由于美国人有两台机器之间进行通讯的需求。

需求1
科学家要解决的第一个问题是,两个硬件之间怎么通讯。具体就是一台发些比特流,而后另外一台能收到。
因而,科学家发明了物理层
主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各类传输介质的传输速率等。它的主要做用是传输比特流(就是由一、0转化为电流强弱来进行传输,到达目的地后在转化为一、0,也就是咱们常说的数模转换与模数转换)。这一层的数据叫作比特。

需求2
如今经过电线我能发数据流了,可是,我还但愿经过无线电波,经过其它介质来传输。而后我还要保证传输过去的比特流是正确的,要有纠错功能。
因而,发明了数据链路层
经过各类控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。

需求3:

如今我能够在两台计算机之间发送数据了,那么若是我要在多台计算机之间发送数据呢?怎么找到我要发的那台?或者,A要给F发信息,中间要通过B,C,D,E,可是中间还有好多节点如K.J.Z.Y。我怎么选择最佳路径?这就是路由要作的事。
因而,发明了网络层。                                                                     经过路由算法,为报文或分组经过通讯子网选择最适当的路径。该层控制数据链路层与物理层之间的信息转发,创建、维持与终止网络的链接。具体的说,数据链路层的数据在这一层被转换为数据包,而后经过路径选择、分段组合、顺序、进/出路由等控制,将信息从一个网络设备传送到另外一个网络设备。通常的,数据链路层是解决统一网络内节点之间的通讯,而网络层主要解决不一样子网之间的通讯。例如路由选择问题。

需求4:                                                                           如今我能发正确的发比特流数据到另外一台计算机了,可是当我发大量数据时候,可能须要好长时间,例如一个视频格式的,网络会中断好屡次(事实上,即便有了物理层和数据链路层,网络仍是常常中断,只是中断的时间是毫秒级别的)。那么,我还需要保证传输大量文件时的准确性。因而,我要对发出去的数据进行封装。就像发快递同样,一个个地发。
因而,先发明了传输层。
向用户提供可靠的、端到端的差错和流量控制,保证报文的正确传输。提供创建、链接和拆除传输链接的功能。传输层在网络层基础上,提供“面向链接”和“面向无链接”两种服务。例如TCP,是用于发大量数据的,我发了1万个包出去,另外一台电脑就要告诉我是否接受到了1万个包,若是缺了3个包,就告诉我是第1001,234,8888个包丢了,那我再发一次。这样,就能保证对方把这个视频完整接收了。
例如UDP,是用于发送少许数据的。我发20个包出去,通常不会丢包,因此,我无论你收到多少个。在多人互动游戏,也常常用UDP协议,由于通常都是简单的信息,并且有广播的需求。若是用TCP,效率就很低,由于它会不停地告诉主机我收到了20个包,或者我收到了18个包,再发我两个!若是同时有1万台计算机都这样作,那么用TCP反而会下降效率,还不如用UDP,主机发出去就算了,丢几个包你就卡一下,算了,下次再发包你再更新。

需求5:
如今咱们已经保证给正确的计算机,发送正确的封装事后的信息了。可是用户级别的体验好很差?难道我每次都要调用TCP去打包,而后调用IP协议去找路由,本身去发?固然不行,因此咱们要创建一个自动收发包,自动寻址的功能。
因而,发明了会话层。                                                                     会话层的做用就是创建和管理应用程序之间的通讯。容许用户在两个实体设备之间创建、维持和终止会话,并支持它们之间的数据交换。例如提供单方向会话或双向同时会话,并管理会话中的发送顺序,以及会话所占用时间的长短。

需求6:
如今我能保证应用程序自动收发包和寻址了。可是我要用Linux给window发包,两个系统语法不一致,就像安装包同样,exe是不能在linux下用的,shell在window下也是不能直接运行的。因而须要表示层,帮咱们解决不一样系统之间的通讯语法问题。

需求7:
OK,如今全部必要条件都准备好了,咱们能够写个android程序,web程序去实现需求把。


 

TCP/IP四层模型与OSI七层模型的对应关系

TCP/IP与OSI最大的不一样在于OSI是一个理论上的网络通讯模型,而TCP/IP则是实际运行的网络协议。

 


 

  文章引用与参考:http://blog.csdn.net/yaopeng_2005/article/details/7064869

http://zhidao.baidu.com/link?url=Wmc5Gg1YqJbpMojYIQ78EAVCB2BYv1zWsVj0cUFoypybzrzknQhTI5H_E5Hpzy9n3SZ2aROrp4Wi41g36xSR1XspHWOPy-PWD41XIYNp6nC

http://www.2cto.com/net/201309/247111.html