【TCP/IP 模型】
ARPA 在研究 ARPAnet
时提出了 TCP/IP
模型,其由于得到广泛应用而成为事实上的国际标准
TCP/IP
模型从低到高依次为:网络接口层、网际层、传输层、应用层
其层次结构与各层主要协议如下图
网络接口层的任务是从结点接收 IP 分组并将其发送到指定的物理网络上,指出了主机必须使用某种协议与网络连接,以便能在其上传递 IP 分组,具体的物理网络 TCP/IP
则没有真正描述,可以是各种类型的局域网,其类似于 OSI
的物理层与链路层
网际层是 TCP/IP
的关键,其能够将分组发往任何网络并独立地选择路由,但其不保证各分组有序的到达,各个分组的有序交付由高层负责,同时,其定义了标准的分组格式与协议(IP 协议),其类似于 OSI
的网络层
传输层的功能同样与 OSI
的传输层类似,其能够使发送端与目的端主机上的对等实体可以进行会话,主要使用以下两种协议:
- 传输控制协议 TCP:数据传输单位是报文段,面向连接,提供可靠交付
- 用户数据报协议 UDP:数据传输单位是用户数据报,无连接,不提供可靠交付,只提供尽最大可能的交付
应用层包含了所有的高层协议,其类似于 OSI
的会话层、表示层、应用层
【TCP/IP 与 OSI 的对比】
TCP/IP
与 OSI
均采用分层的体系结构,而且分层的功能大体相似,同时,两者均采用独立协议栈的概念,此外,均可以解决异构网络的互联,实现世界上不同厂家的计算机间的通信
两者的层次对应关系如下图
TCP/IP
与 OSI
之间还存在诸多不同:
OSI
精确定义了服务、协议、接口这三个概念,符合现代的面向对象程序设计思想;TCP/IP
对这三个概念没有明确区分OSI
产生在协议发明前,未偏向任何协议,通用性好;TCP/IP
首先出现的是协议,模型实际上是对已有协议的描述,不会出现协议不能匹配模型的情况OSI
最初只考虑用一种标准公用数据网将各种不同的系统互联,后来才认识到网际协议 IP 的重要性,在网络层中单独划分一个子层来完成异构网络互联;TCP/IP
设计之初就考虑到异构网络互联问题,将网际协议 IP 作为一个单独的层次OSI
在网络层支持无连接和面向连接的通信,但在传输层仅有面向连接的通信;TCP/IP
认为可靠性是端到端的问题,因此在网际层仅有一种无连接的通信模式,但在传输层支持无连接和面向连接两种方式
【五层体系结构模型】
五层体系结构
无论是 OSI
还是 TCP/IP
,两者都是不完美的,存在诸多讨论与批评
在学习计算机网络时,往往采用折中的方法,综合 OSI
与 TCP/IP
的优点,采用如下图所示的五层体系结构
通信协议栈
每个协议栈的最顶端都是一个面向用户的接口,下面各层是为通信服务的协议
当用户要传输一个数据报时,通常给出用户能够理解的自然语言,然后通过应用层,自然语言会转化为用于通信的通信数据
通信数据到达传输层,作为传输层的数据部分 SDU
,再加上传输层的控制信息 PCI
,组成传输层的 PDU
,交付给网络层
传输层的 PDU
交付给网络层后,就成为了网络层的 SDU
,然后再加上网络层的 PCI
,组成网络层的 PDU
,交付给数据链路层
网络层的 PDU
交付给数据链路层后,就成为了数据链路层的 SDU
,然后再加上数据链路层的 PCI
,组成数据链路层的 PDU
,交付给物理层
物理层的数据通过通信线路传输,到达接收方结点协议栈,接收方再逆向一层层的将数据拆解,将最终拆解完毕的数据提交给用户