首页 > 技术文章 > 协议栈CheckList

richered 2018-03-03 13:55 原文

协议?何谓协议?协议是用来干什么的?

与人类活动进行对比即可理解协议,因为我们无时无刻不在执行协议!

举一个典型交互过程:

  人类协议(至少说是好的行为方式)要求一方首先进行问候(张三对李四“你好”),以开始与另一个人的通信。对“你好”的典型响应是返回一个“你好”的报文。李四用一个热情的“你好”进行响应,隐藏着一种指示,表明张三能够继续向李四进行询问了。对最初的“你好”的不同响应(例如“不要烦我”“我不会说中文”或一些不合时宜的回答)也许表明了一个勉强的或者不能继续进行的通信。在此情况下,按照人类协议,张三也许不能继续向李四发送报文了。(注意在我们人类协议中,有我们发送的特定报文,也有我们根据接收到的应答报文或其他时间采取的动作,例如在某个时间内没有回答)。显然,这些报文的发送和接收或其他事件的出现时所采取的动作,这些在一个人类协议中起到了核心作用。如果人类适用不同的协议(例如,如果一个人讲礼貌,而另一个人不讲礼貌,或另一个人明白时间概念,而另一个人不知道),该协议就不能互动通信,因而不能完成部分工作。而在网络中这个道理是成立的。即为了完成一项工作,要求两个(或多个)通信实体运行相同的协议。

  而定义一个协议的关键元素是:一个协议定义了两个或者多个通信实体之间交换的报文格式和次序,以及报文发送和/或接受一条报文或其他时间所采取的动作。

如今,各类协议在网络中被执行,因此,做一个CheckList,先上大纲:

                    五层因特网协议栈

 应用层:

   应用层是网络应用程序及他们的应用层协议存留的地方。因特网的应用层包括许多协议,例如HTTP(它提供了Web文档的请求和传送),SMTP(它提供了电子邮件报文的传送)。

   应用层协议分布在多个端系统上,一个端系统中的应用程序使用协议与另一个端系统中的应用程序交换信息的分组。我们将这种位于应用层的信息分组称之为报文。

传输层:

  因特网的传输层在应用程序端点之间传送应用层报文。在因特网中,有两个传输层协议,即TCP、UDP,利用其中的任一个都能传输应用层报文。TCP向它的应用程序提供了面向连接的服务(长连接)。这种服务包括了应用层报文向目的地的确保传递和流量控制(即发送方和接收方速率匹配)。TCP也将长报文划分为短报文,并提供拥塞控制机制,因此当网络拥塞时,源抑制其传输速率。UDP协议向它的应用程序提供无连接服务。这是一种不提供不必要服务,没有可靠性,没有流量控制,也没有拥塞机制。

网络层:

   因特网的网络层负责将称为数据报的网络层分组从一台主机移动到另一台主机。在一台源主机中的因特网运输层协议(TCP或UDP)想网络层递交运输层报文段和目的地址,就像通过邮政服务寄信件时提供一个目的地址一样。

  因特网的网络层包括著名的IP协议,该协议定义了在数据报中的各个字段以及端系统和路由器如何作用于这些字段。仅有一个IP协议,所有具有网络层的因特网组件必须运行IP协议。因特网的网络层也决定路由的路由选择协议。它使得数据报根据该路由从源传输到目的地。因特网具有许多路由选择协议。因特网是一个网络的网络,在一个网络中,其网络管理者能够运行所希望的任何路由选择协议。尽管网络层包括了IP协议和一些路由选择协议,但通常把它简单地成为IP层,这反映了IP是将因特网连接在一起的粘合剂这样的事实。

链路层:

  因特网的网络层通过源和目的地之间的一些类路由器路由数据报。为了将分组从一个节点(主机或路由器)移动到路径上的下一个节点,网络层必须依靠该链路层的服务。特别是在每个节点,网络层将数据报下传给链路层,链路层沿着路径将数据报传送给下一个节点,在下个节点,链路层数据将数据报上传给网络层。

  由链路层提供的服务取决于应用于该链路的特定链路层协议。例如,某些协议基于链路提供可靠传递,从传输节点跨域一条链路到接收节点。值得注意的是,这种可靠的传递服务不同于TCP的靠靠传递服务,TCP提供从一个端系统到另一个端系统的可靠交付。链路层的例子包括以太网,WIFI和电缆接入网的DOCSIS协议。因为数据报从源到目的地传送通常需要经过几条链路,一个数据报可能被沿途不同链路上的不同链路层协议处理。例如,一个数据报可能被一段链路上的以太网和下一段链路上的PPP所处理。网络层将受到来自每个不同的链路层协议的不同服务。

物理层:

  虽然链路层的任务是将整个帧(链路层分组称为帧)从一个网络元素移动到临近的 网络元素,而物理层的任务是将该帧中的一个一个比特从一个节点移动到下一个节点。在这层中的协议仍然是链路相关的,并且进一步与该链路(如双绞铜线,单模光纤)的实际传输媒体相关。例如,以太网具有许多物理层协议:一个是关于双绞铜线的,另一个是关于同轴电缆的,还有一个是关于光纤的等等。在每种场合中,跨越这些链路移动一个比特是以不同的方式进行的。

 

                        OSI模型

  与因特网协议栈五层协议多出了表示层和会话层。(具体历史原因不计)

表示层:

  使通信的应用程序能够解释交换数据的含义。这些服务包含数据压缩,数据描述以及数据加密等。

会话层:

  提供了数据交换定界和同步功能,包括了建立检查点和恢复方案的方法。

 

 

                协议栈封装“信息”过程

 

            流行的因特网应用以及其下的运输层协议

 

推荐阅读