一.协议层次以及服务模型(掌握)
1.协议分层的体系结构
因特网是一个极其复杂的系统,包括了大量的协议、各种类型的端系统(能够互相通信的设备)、分组交换机和各种类型的链路媒体(双绞线、光纤、无线信道)。
人类在处理一个复杂的系统时,都习惯地将其分层化、模块化,这是人类的认知规律。一旦利用分层的体系结构去讨论、研究一个定义良好的、复杂的系统,可以使得由每一层提供的服务易于改变,而不影响其它层,并且可以激励年轻的后辈们去探索,如果不分层的话,这个系统太庞大了,年轻的后辈们可能会望而却步了。
所以在面对如此复杂的计算机网络系统时,计算机的先驱们以分层
的方式组织协议以及实现这些协议的网络设备和软件,计算机网络中的每个协议都属于这些层次之一,或者之间(ARP、ICMP等等)。
从协议层次的角度来看,每一个低层协议都为上一层协议提供某种服务,这种服务就是该层的服务模型。比如传输层TCP协议
向应用层HTTP
提供了可靠传输服务,而链路层MAC协议
为网络层IP协议
提供了成帧、接入链路服务。
终上所述: 协议分层具有概念化和结构化的优点,分层提供了一种结构化的方式讨论系统组件,这对于深入研究一个复杂系统是很有帮助的。
1.1 协议栈
各层的所有协议被称为协议栈。因特网的协议栈由五个层次组成: 应用层、传输层、网络层、链路层、物理层。
1.2 应用层
每一个网路应用层程序都会对应一个应用层协议。
因特网的应用层包含很多应用层协议: HTTP(它提供了Web文档的请求和传送)、SMTP(它提供了电子邮件的传输)、FTP(它提供了两个端系统之间的文件传送)
应用层协议分布在多个主机上,一个主机上的应用程序使用应用层协议向另一台主机上的应用程序交换信息分组,这个分组在应用层叫做报文(message)
。
1.3 传输层
因特网的传输层为应用程序传输应用层报文。在因特网中,有两个传输协议: TCP
和UDP
。
TCP向应用层提供了面向连接的、可靠的字节流服务。可靠的传输服务是依赖TCP的重传、滑动窗口、拥塞控制和流量控制等等实现的。
UDP向它的应用程序提供了无连接服务。这是一种不提供不必要的服务。没有可靠性、没有流量控制、没有拥塞控制。
应用层的分组,经过传输层,其实就是加上了运输层协议的首部,就变成了报文段(segment)
1.4 网络层(核心层)
传输层报文段+IP首部就变成了网络层数据报(fragment)
因特网的网络层将数据报
从一台主机移动到另一台主机,这就需要IP协议了。
IP协议规定了数据报的格式、IP的编址、数据报的分片、路由选择选择等待。
毫不夸张的说IP协议是因特网的粘合剂。
1.5 链路层
网络层数据报+链路层首部就变成了链路层帧(frame)
链路层将网络层的数据报从一个结点移动到下一结点,注意,此时分组已经离开主机,在传输媒体上了,也叫做链路(link)
1.6 物理层
2. 封装
注意:协议的最终目的是为了通信,为了传输信息的,这个可不能忘了。通信的主体是位于不同地点的主机上的应用程序,通信的内容就是信息,这个信息从应用层依次通过各层的封装,最终变成一串比特流在各种媒体上传输。
这就引出了很重要的一个概念: 封装
。信息在每一层经过封装之后的叫法都不一样,这很重要,请务必记住上面涉及到的术语。