TCP/IP (二) ----TCP/IP模型

  TCP/IP是一个协议系统或协议簇,而每个协议都是由规则与过程组成的系统。在大多数情况下,通信计算机的硬件和软件实现TCP/IP通信的规则,用户不必关心其中的细节。但是,如果想对TCP/IP网络进行配置或故障排错,就有必要掌握TCP/IP知识了。
像TCP/IP这样的协议系统必须负责完成以下任务。
1、把消息分解为可管理的数据块,并且这些数据块能够有效地通过传输介质。
2、与网络适配器硬件连接。
3、寻址,即发送端计算机必须能够定位到接收数据的计算机,接收计算机必须能够识别自己要接收的数据。
4、将数据路由到目的计算机所在的子网,即使源子网和目的子网分处不同的物理网络。
5、执行错误控制、流量控制和确认:对可靠的通信而言,发送和接收计算机必须能够发现并纠正传输错误,并控制数据流。
6、从应用程序接收数据并传输到网络。
7、从网络接收数据并传输到应用程序。
  为了实现上述功能,TCP/IP的创建者使用了模块化的设计。TCP/IP协议系统被分为不同的组件,这些组件从理论上来说能够相互独立地实现自己的功能。每个组件分别负责通信过程中的一个步骤。这种模块化设计的好处在于让厂商方便地根据特定硬件和操作系统对协议软件进行修改。

TCP/IP四层模型

  四层模型是描述TCP/IP网络的常见模型,但并不是唯一的模型。比如RFC871中描述的ARPAnet模型有3层:网络接口层、主机到主机层和处理/应用层。其他的一些TCP/IP模型包含5层:用物理层和数据链路层代替了网络访问层(与OSI相匹配)。还有些模型可能不包含网络访问层或应用层,因为这些层的定义并不是非常一致,而且比中间层更难以明确定义。而且每一层的名字也不相同。ARPAnet各层的名字仍然可以在TCP/IP的一些讨论中见到,而网际层有时则称为网间层或网络层。

应用层
传输层
网际层
网络访问层

网络访问层:提供了与物理网络连接的接口。针对传输介质设置数据的格式,根据硬件的物理地址实现数据的寻址,对数据在物理网络中的传递提供错误控制。
网际层:提供独立于硬件的逻辑寻址,从而让数据能够在具有不同物理结构的子网之间传递。提供路由功能来降低流量,支持网间的数据传递(术语“网间”(internetwork)指的是多个局域网互相连接而形成的较大的网络,比如大公司里的网络或Internet)。实现物理地址(网络访问层使用的地址)与逻辑地址的转换。
传输层:为网络提供了流量控制、错误控制和确认服务。充当网络应用程序的接口。
应用层:为网络排错、文件传输、远程控制和Internet操作提供了应用程序,还支持应用编程接口(API),从而使得针对特定操作系统编写的程序能够访问网络。
当TCP/IP协议软件准备通过网络传递数据时,发送端计算机上的每一层协议都在数据上添加层信息,对应于接收端计算机上相应的层。例如,发送端计算机的网际层会向数据添加报头信息,这些信息对于接收端计算机的网际层是十分重要的。这个过程有时也被称为封装。在接收端,当数据在协议栈里传递时,这些报头信息被逐步去除。

OSI七层模型
TCP/IP四层模型OSI七层模型
应用层应用层
表示层
会话层
传输层传输层
网际层网络层
网络传输层数据链路层
物理层

  OSI模型把应用层的功能划分到3个层:应用层、表示层和会话层。OSI还把网络访问层的功能划分到数据链路层和物理层。这种新增的细分带来了一定的复杂性,但是通过让协议层具有更明确的服务,也为开发人员提供了灵活性。
  OSI模型的7层分别如下所示。
  物理层:把数据转换为传输介质上的电子流或模拟脉冲,并且监视数据的传输。
  数据链路层:提供与网络适配器相连的接口,维护子网的逻辑链接。
  网络层:支持逻辑寻址与路由选择。
  传输层:为网络提供错误控制和数据流控制。
  会话层:在计算机的通信应用程序之间建立会话。
  表示层:把数据转换为标准格式,管理数据加密与压缩。
  应用层:为应用程序提供网络接口,支持文件传输、通信等功能的网络应用。
  需要注意的是,TCP/IP模型与OSI模型都是标准,而不是实现。
  关于TCP/IP协议栈需要强调的是,其中每一层都在整个通信过程中都扮演一定的角色,并调用必要的服务来完成相应的功能。在数据发送过程中,其流程是从堆栈的上到下,每一层都把相关的信息(被称为“报头”)捆绑到实际的数据上。包含报头信息和数据的数据包就作为下一层的数据,再次被添加报头信息和重新打包。当数据到达目的计算机时,接收过程恰恰是相反的,在数据从下到上经过协议栈的过程中,每一层都解开相应的报头并且使用其中的信息。
  数据包在每一层具有不同的形式和名称。下面是数据包在每一层的名称。
  在应用层生成的数据包被称为消息。
  在传输层生成的数据包封装了应用层的消息,如果它来自于传输层的TCP协议,就被称为分段;如果来自于传输层的UDP协议,就被称为数据报。
  在网际层的数据包封装了传输层的片段,被称为数据报。
  在网络访问层的数据包封装了数据报(而且可能对其进行再分解),被称为帧。帧被访问层里的最低子层转化为比特流。

  关于协议系统分层的介绍到处可见。这种分层方式的确可以让我们深入理解协议系统,而且如果不介绍分层体系也就不可能描述TCP/IP,但是只关注各个协议层也有一定的局限性。
  首先,讨论协议层而不是协议会使本来就非常抽象的概念更加抽象。其次,详细列出协议层里的各种协议会使人误认为它们是同等重要的。实际上,虽然TCP/IP协议簇里每个协议都有自己的作用,但TCP/IP协议簇的主要功能是可以通过几个最重要的协议来完成的。这是基本的TCP/IP协议连网系统。当然,在完整的数据包里还包含其他的协议和服务,基本场景如下。
  1.数据从工作于应用层的协议、网络服务或应用编程接口(API)通过TCP或UDP端口传递到两个传输层协议(TCP或UDP)中的一个。程序可以根据需要通过TCP或UDP访问网络。
TCP是面向连接的协议。与无连接的协议相比,面向连接的协议提供更复杂的流量控制和错误控制。TCP能够确保数据的发送质量,比UDP更可靠,但由于需要进行额外的错误检测和流量控制,因此比UDP的速度慢。
UDP是个无连接的协议,比TCP快,但是不可靠,它把错误控制的责任推给了应用。
  2.数据分段传递到网际层,IP协议在此提供逻辑寻址信息,并且把数据封装为数据报。
  3.IP数据报进入网络访问层,传递到与物理网络相连接的软件组件。网络访问层创建一个或多个数据帧,从而进入到物理网络。在像以太网这样的局域网系统中,帧可能包含从表格里获得的物理地址信息,而这些表格是由网际层的ARP维护的(ARP是地址解析协议,把IP地址转换为物理地址)。
  4.数据帧被转化为比特流,通过网络介质进行传输。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值