1、协议与层次的划分
在计算机网络中要做到有条不紊的交换数据,得遵守一些事先约定好的规则。这些规则明确规定了交换的数据格式以及相关同步问题这些规则被称为网络协议。
网络协议主要由三个要素组成:
- 语法:即数据与控制信息的结构或格式;
- 语义:即需要发出何种控制信息;
- 同步:及事件实现顺序的详细说明。
对于非常复杂的计算机网络协议,其结构应该是层次式的。分层可以带来不少好处:
- 各层之间独立;
- 灵活性好;
- 结构上可分隔开;
- 易于实现和维护;
- 促进标准化工作。
分层时每层功能必须非常明确。通常各层所要完成的功能主要如下:
- 差错控制:使和网络对等端的相应层次的通信更加可靠。
- 流量控制:使发送短发送速率不要太快,接收端来得及接收。
- 分段和重装:发送端将要发送的数据块划分成更小单位,在接收端将其还原。
- 复用和分用:发送端几个高层会话复用一条低层的连接,在接收端再进行分用。
- 连接建立和释放:交换数据前先建立一条逻辑连接,数据传送结束后释放连接。
计算机网络的各层及其协议的集合,称为网络的体系结构
2、具有五层协议的体系结构
OSI的七层协议体系结构过于复杂且不实用,TCP/IP则使用广泛,但是底部的网络接口层并没有具体内容。因此在学习计算机网络原理通常采取折中方式,一种五层协议的体系结构。
- 应用层:直接为用户的应用进程提供服务。这里的进程是指正在运行的程序。应用层协议有很多,如支持万维网应用的http协议,支持邮件的smtp协议,支持文件传送的ftp协议等。
运输层:负责为两个主机中进程间的通信提供服务。一个主机可同时运行多个进程,因此运输层有复用和分用功能。复用就是多个应用层进程可同时使用以下的运输层服务,分用是指运输层把收到的信息分别交付给上面应用层中相应的进程。
运输层主要由两种协议:- 传送控制协议TCP(Transmission Control Protocol):面向连接的,数据 传输单位是报文段,能提供可靠的交付。
- 用户数据报协议UDP(User Datagram Protocol):无连接的,数据传送单位是用户数据报,不保证可靠交付,只提供“尽最大努力交付”。
网络层:负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送。在TPC/IP体系中,用于网络层使用IP协议,因此分组也叫IP数据报,或者简称数据报。
- 数据链路层(data link layer):简称链路层。两个主机间的数据传送,总是在一段一段的链路上传送的,即两个相邻结点(主机与路由器之间或路由器与路由器之间)传送数据是直接传送的,这就需要专门的链路层协议。在两个相邻结点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧,两个相邻结点的链路透明地传送。(这里的透明是指对数据来说,并不存在链路层。)每一帧包含数据和必要的控制信息(如同步信息,地址信息,差错控制等)。典型的帧长是几百字节到一千多字节。在接收数据时,控制信息可知道一个帧从哪个比特开始到哪个比特结束,所以,数据链路层可以从中提取出数据部分,上交给网络层。
控制信息还使接收端能够检测到所收到的帧是否有插座,有的话则丢弃这个帧,如果需要改正错误,就由运输层的TCP协议来完成。 - 物理层(physical layer):在这个层面上,所传数据的单位是比特,物理层的任务就是透明地传送比特流。(这里的透明是指发送方传的是1,接收方收到的也是1。)
在各种协议中,最著名的是就是TCP和IP两个协议。现在经常提到的TCP/IP并不是单指TCP和IP两个具体协议,而是指因特网所使用的整个TCP/IP协议族(protocol suite)。
3、实体、协议、服务和服务访问点
实体:表示任何可发送或接收信息的硬件或软件进程。在许多情况下,就是一个特定的软件模块。
协议:是控制两个对等实体(或多个实体)进行通信的规则的集合。在协议的控制下,两个对等实体的通信使得本层能够向上一层提供服务。要实现本层协议,还需要使用下面一层所提供的服务。
服务:服务和协议是不一样的,协议是水平的,及控制对等实体间通信的规则。而服务是垂直的,及下层向上层通过层间接口提供的。并且,只有能够被高一层实体“看得见”的功能才叫服务。
服务访问点:在同一个系统中相邻两层实体进行交互的地方,成为服务访问点SAP(Service Access Point)。层与层直接交换的数据的单位称为服务数据单元。
4、TCP/IP的体系结构
TCP/IP有四层,有两种方法表示。
第一种方法表示很清晰,需要注意的是路由器最高只用到了网络层,没有运输层和应用层。
这种方式表示的TCP/IP协议族,在应用层和网络层都有很多协议,而IP层很小,上层协议都向下汇聚到一个IP协议中。这样也表明了,TCP/IP协议可以为各式各样的应用提供服务,同时也允许IP协议在各式各样的网络构成的互联网上运行。