码迷,mamicode.com
首页 > 其他好文 > 详细

TCP/IP 基础入门 ( 一 )

时间:2017-10-27 15:54:26      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:计算机   sci   市场   依赖   idt   line   play   自己的   nbsp   

Introduction

          T C P / I P起源于 6 0年代末美国政府资助的一个分组交换网络研究项目,那时候的网络与计算解决方案一起是一个享有很高专利权的互联解决方案,这个方案几乎是一个完整的专利。个人计算机出现前,如果某个公司想使他们的数据处理和记帐功能自动化,就必须用他们的监管系统与某个厂家联系,而且只能与单一厂家联系。单一厂家应用软件只执行在由单个操作系统支持的平台上,操作系统也只能安全地执行在相同厂家的硬件产品,甚至用户的终端设备和与计算机进行连接的设备都必须是同一厂家产品。就如今天的手机充电线一样,Apple只能用Apple的充电线,安卓也有好几类。所有我们就会想要是所有手机的充电线都一样就方便许多了。很多不同的厂家生产各种型号的计算机,它们运行完全不同的操作系统,但 T C P / I P协议族允许它们互相进行通信。

 

通信处理层次化

          开放式通信的关键在于理解所有对两端系统相互之间通信和共享数据所必需的功能。这些必需的功能以及建立它们必须发生的先后顺序是开放式通信的基础,只有两端系统对如何通信达成一致,它们才可能通信。也就是说,它们必须在从应用取得数据和为通过网络传输将数据打包这些动作上遵守相同的过程。其中,不管是多么细节、细小的问题都不能忽略,必须做到完全一致。幸运的是,一个通信会话中所必需的事件在逻辑上存在一定的顺序。按完全的最小分割,这些事件包括如下任务:

  • 数据必须从它的应用向下传给一个通信进程 (称为一个协议(protocol) )。
  • 通信协议必须为通过许多类型网络的传输准备应用数据。这通常意味着数据必须被分为更多可管理的块。
  • 分段的数据必须包装在一个数据结构中,以便于通过网络传送到某个指定设备。这意味着数据必须被包装成某种形式,而这种形式所包含的信息应该可以使得任何网络上的计算机设备可以识别出数据包来自何方,到哪里去。该结构可能是一个帧、一个数据包或者一个单元,这与使用何种协议有关。
  • 为传输需要,这些帧和数据包必须被转换成物理位流。这些位流可以被转换成光纤网(如FDDI)上的光脉冲或者通过电子网络传输的电子信号状态 (如以太网,或其他任何以电信号通过金属导线传输的网络 )。到达目的地或接收端机器后,这个过程被翻过来。另外,在通信会话过程中,还需要其他功能,这些功能使得源端和目的端的计算机通过协同努力可以保证数据完全到达,这些功能包括:

                  1, 将传输数据流规范化,以保证接收机器和网络不会拥塞。

                  2, 利用某种算法检查接收到的数据,以保证数据在传输过程中没有损坏。

                  3, 对没有到达的数据包或者到达时损坏的数据包进行协调重发。

  • 最后,数据的接收方必须将各段数据重新组合成接收端应用程序认识的格式。从接收端应用的角度来看,接收到的数据应与发送方应用发出的数据完全一样。换句话说,两个应用所表现出的应该是在两者之间直接通信,这就是所谓的逻辑链接(logical adjacency)。或许用于解释通信分层模型 (包括逻辑链接)的最好工具就是 OSI参考模型。

 

OSI(Open System Interconnect Reference Model)

          国际标准化组织 (ISO)开发了开放式系统互联 (OSI)参考模型,以促进计算机系统的开放互联。开放式互联就是可在多个厂家的环境中支持互联。该模型为计算机间开放式通信所需要定义的功能层次建立了全球标准。今天,开放式通信是必需的, OSI参考模型为示范网络的功能结构提供了可行的机制。OSI模型将通信会话需要的各种进程划分成 7个相对独立的功能层次,这些层次的组织是以在一个通信会话中事件发生的自然顺序为基础的。1~3层提供了网络访问, 4~7层用于支持端端通信。(与TCP/IP四层对比)

技术分享

 


1. 物理层
 

最底层称为物理层 (Physical Layer),这一层负责传送比特流,它从第二层数据链路层 (DDL)接收数据帧,并将帧的结构和内容串行发送即每次发送一个比特,然后这些数据流被传输给DLL重新组合成数据帧。从字面上看,物理层只能看见 0和1,它没有一种机制用于确定自己所传输和发送比特流的含义,而只与电信号技术结构和内容串行发送即每次发送一个比特,然后这些数据流被传输给DLL重新组合成数据帧。和光信号技术的物理特征相关。这些特征包括用于传输信号电流的电压、介质类型以及阻抗特征,甚至包括用于终止介质的连接器的物理形状。对OSI第一层,人们常常有这样的误解:就是认为 OSI第一层应该包括所有产生或发送通信数据信号的机制。其实并非如此, OSI第一层只是一个功能模型,物理层只是一种处理过程和机制,这种过程和机制用于将信号放到传输介质上以及从介质上收到信号。它较低层的边界连向传输介质的物理连接器,但并不包含传输介质。

          传输介质包含真正用于传输由 OSI第一层机制所产生信号的任何方法。一些传输介质是同轴电缆、光纤、双绞线等。人们之所以感到迷惑,主要是因为物理层对介质的性能没有提出任何规范。介质的性能特征对于物理层定义的过程和机制是需要并假定存在的。因此,传输介质处于物理层之外,有时被称为 OSI 参考模型的第0层。

2. 数据链路层 (DLL)

          OSI 参考模型的第二层称为数据链路层 ( DLL )。与所有其他层一样,它肩负两个责任:发

送和接收。它还要提供数据有效传输的端端 (端到端)连接。在发送方, DLL需负责将指令、数据等包装到帧中,帧 (frame)是DLL层生成的结构,它包含足够的信息,确保数据可以安全地通过本地局域网到达目的地。成功发送意味着数据帧要完整无缺地到达目的地。也就是说,帧中必须包含一种机制用于保证在传送过程中内容的完整性。为确保数据传送完整安全到达,必须做到两点:  

             1.在每个帧完整无缺地被目标节点收到时,源节点必须收到一个响应。

           2.在目标节点发出收到帧的响应之前,必须验证帧内容的完整性。


有很多情况可以导致帧的发送不能到达目标或者在传输过程中被破坏或不能使用。DLL有责任检测并修正所有这些错误。DLL的另一个职责是重新组织从物理层收到的数据比特流。不过,如果帧的结构和内容都被发出, DLL并不重建一个帧。相反,它缓存到达的比特流直到这些比特流构成一个完整的帧。不论哪种类型的通信都要求有第一层和第二层的参与,不管是局域网 (LAN)还是广域网(WAN)都是如此。

3. 网络层

          网络层负责在源机器和目标机器之间建立它们所使用的路由。这一层本身没有任何错误检测和修正机制,因此,网络层必须依赖于端端之间的由 DLL提供的可靠传输服务。网络层用于本地 LAN网段之上的计算机系统建立通信,它之所以可以这样做,是因为它有自己的路由地址结构,这种结构与第二层机器地址是分开的、独立的。这种协议称为路由或可路由协议。路由协议包括 IP、Novell公司的IPX以及AppleTalk协议。网络层是可选的,它只用于当两个计算机系统处于不同的由路由器分割开的网段这种情况,或者当通信应用要求某种网络层或传输层提供的服务、特性或者能力时。例如,当两台主机处于同一个 LAN网段的直接相连这种情况,它们之间的通信只使用 LAN的通信机制就可以了(即OSI 参考模型的一二层 )。

4. 传输层

          传输层提供类似于DLL所提供的服务,传输层的职责也是保证数据在端端之间完整传输,不过与DLL不同,传输层的功能是在本地 LAN网段之上提供这种功能,它可以检测到路由器丢弃的包,然后自动产生一个重新传输请求。传输层的另一项重要功能就是将乱序收到的数据包重新排序,数据包乱序有很多原因。例如,这些包可能通过网络的路径不同,或者有些在传输过程中被破坏。不管是什么情况,传输层应该可以识别出最初的包顺序,并且在将这些包的内容传递给会话层之前要将它们恢复成发送时的顺序。

5. 会话层

          OSI的第五层是会话层,相对而言,这一层没有太大用处,很多协议都将这一层的功能与

传输层捆绑在一起。OSI会话层的功能主要是用于管理两个计算机系统连接间的通信流。通信流称为会话,它决定了通信是单工还是双工。它也保证了接受一个新请求一定在另一请求完成之后。

6. 表示层

           表示层负责管理数据编码方式,不是所有计算机系统都使用相同的数据编码方式,表示层的职责就是在可能不兼容的数据编码方式,例如在 ASCII和EBCDIC之间,提供翻译。表示层可以用在浮点格式间的调整转换并提供加密解密服务。

7. 应用层

          OSI 参考模型的最顶层是应用层,尽管它称为应用层,但它并不包含任何用户应用。相反,它只在那些应用和网络服务间提供接口。这一层可以看成是初始化通信会话的起因。例如,邮件客户可能会产生一个从邮件服务器检索新消息的请求,客户端应用自动向与之相关的第七层协议发出请求,并产生通信会话,以获取所需要的文件。

 

TCP/IP参考模型

          与OSI参考模型不同, TCP/IP模型更侧重于互联设备间的数据传送,而不是严格的功能层次划分。它通过解释功能层次分布的重要性来做到这一点,但它仍为设计者具体实现协议留下很大的余地。因此, OSI参考模型在解释互联网络通信机制上比较适合,但 TCP/IP成为了互联网络协议的市场标准。由于它更强调功能分布而不是严格的功能层次的划分,因此它比OSI模型更灵活。

 

          网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能。一个协议族,比如 TCP/IP,是一组不同层次上的多个协议的组合。 TCP/IP通常被认为是一个四层协议系统

每一层负责不同的功能:

(1)链路层,有时也称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。

(2)网络层,有时也称作互联网层,处理分组在网络中的活动,例如分组的选路。在TCP/IP协议族中,网络层协议包括 IP协议(网际协议),ICMP协议(Internet互联网控制报文协议),以及IGMP协议(Internet组管理协议)。

(3)运输层主要为两台主机上的应用程序提供端到端的通信。在 T C P / I P协议族中,有两个互不相同的传输协议: TCP(传输控制协议)和UDP(用户数据报协议)。TCP为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。由于运输层提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些细节。而另一方面, UDP则为应用层提供一种非常简单的服务。它只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证该数据报能到达另一端。任何必需的可靠性必须由应用层来提供。

(4)应用层负责处理特定的应用程序细节。几乎各种不同的 TCP/IP实现都会提供通用的应用程序如:Telnet 远程登录;FTP 文件传输协议;SMTP 简单邮件传送协议;SNMP 简单网络管理协议。

技术分享

         UDP为应用程序发送和接收数据报。一个数据报是指从发送方传输到接收方的一个信息单元(例如,发送方指定的一定字节数的信息)。但是与 TCP不同的是, UDP是不可靠的,它不能保证数据报能安全无误地到达最终目的。

TCP/IP 基础入门 ( 一 )

标签:计算机   sci   市场   依赖   idt   line   play   自己的   nbsp   

原文地址:http://www.cnblogs.com/canqiangxu/p/7742575.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!