1 .计算机网络的体系结构
计算机网络是一个非常复杂的系统,将整个网络的传输功能进行分层设计的网络结构层次模型及各层协议的集合称为计算机网络的体系结构。为了解决异构互联及通信问题, 20 世纪 70 年代后期国际标准化组织( ISO )制定了 OSI ( Open System Interconnect )开放式系统互联参考模型。该模型采用了三级抽象,即体系结构、服务定义和协议规格说明,是一种标准化的理论参考模型。
开放式互联网( Internet )发展的第一阶段是从单个网络 ARPANET 向互联网发展的过程,以 1983 年 TCP/IP 协议成为 ARPANET 上的标准协议为里程碑。 TCP/IP 是事实上的国际标准。
2 . TCP/IP 参考模型
TCP/IP ,全称为 Transfer Controln Protocol/Internet Protocol ,即传输控制 / 网际协议,它并不单只 TCP 和 IP 这两个协议,而是用于计算机通信的一组协议,我们通常称之为 TCP/IP 协议族。
TCP/IP 是四层的体系结构:应用层、运输层、网际层和网络接口层。但最下面的网络接口层并没有具体内容。因此往往采取折中的办法,即综合 OSI 和 TCP/IP 的优点,采用一种只有五层协议的体系结构,如图 1 所示。
图 1 OSI 体系结构与 TCP/IP 体系结构的关系
2.1 .物理层( Physical Layer )
物理层把比特流传送到物理媒体。电气信号(或光信号)在物理媒体中传播,比特流从发送端物理层传送到接收端物理层。物理层接收到比特流,上交给数据链路层。主机的网卡、 RJ45 以太网接口、网线等硬件设备均属于物理层范畴。
2.2 .数据链路层( Data Link Layer )
数据链路层也称为网络接口层,它的功能是将网络层提交的数据报( IP Datagram )封装成(以太网)帧后提交给物理层,或从物理链路上接收到的数据帧中萃取数据报提交给网络层。
对于一个给定的(物理)连接来说,链路层协议主要实现在网络适配器中,即我们常说的网卡( NIC , Network Interface Card )。传输节点的网络层把 IP 数据报传递到适配器,由适配器将此数据报封装到链路层的帧中,然后把这个帧传输到物理层通信链路。
现在一般都是以太网卡,上面跑的是以太网驱动。 DSL 通信中的 PPPoE 即 Point to Point Protocol over Ethernet ,其层级同网络层。
2.3 .网络层( Network Layer )
Internet 的网络层通过一系列的路由器在源地址和目的地址之间传输数据包,它依赖于底层链路层的服务。由于该层的主要协议是 IP 协议,因而也可简称为 IP 层。它是 TCP/IP 协议栈中最重要的一层,主要功能是可以把源主机上的分片( Fragment )发送到互联网中的任何一台目标主机上。
网络层包含了子网操作,它是懂得网络拓扑结构(网络中机器的物理配置,带宽的限制等)的最高层,也是内网通信的最高层。涉及到 ARP 协议, ICMP 协议, RIP 、 OSPF 、 BGP 等路由协议和路由器设备。
2.4 .传输层( Transport Layer )
我们通常所说的两台主机之间的通信其实是两台主机上对应应用程序之间的通信,传输层提供的就是应用程序之间的通信,也叫端到端( host-to-host end-to-end )的通信。在 TCP/IP 协议族中传输层包含点对点( Peer to Peer )的传输协议:一个是 TCP (传输控制协议);另一个是 UDP (用户数据报协议)。
TCP 是一个可靠的面向连接的协议,它允许源于一个机器的字节流( byte stream )被无错误地传输到 Internet 上的任何机器。 UDP 是一个不可靠无连接的协议,它是为那些不需要 TCP 的序列号管理和流控制而想自己提供这些功能的应用程序设计的。
2.5 .应用层( Application Layer )
应用层是指建立在传输层之上,直接面向用户,向用户提供特定的、常用的应用程序。如远程登录服务( tcp/telnet )、超文本传输协议( tcp/http )、文件传输协议( tcp/ftp )、实时流媒体协议( tcp/rtsp );动态主机设置协议( udp/dhcp )、简单文件传输协议( udp/tftp )、实时传输协议( udp/rtp )等。
鉴于 TCP 和 UDP 协议各自的特性,有些应用综合使用两种协议。例如 DNS 在某些情况下使用 TCP (发送和接收域名数据库),但使用 UDP 传送有关单个主机的信息; RTSP/RTP/RTCP 使用 TCP 实现流点播控制,使用 UDP 实现数据传输及控制。
3 . TCP/IP 协议模块
TCP/IP 协议模块关系如图 2 所示。
图 2 TCP/IP 协议模块关系
TCP/IP 协议分为四层结构,这四层结构中有两个重要的边界:一个是将操作系统与应用程序分开的边界,另一个是将高层互联网地址与低层物理网卡地址分开的边界,如图 2-3 所示。
图 3 TCP/IP 协议模型的两个边界
3.1 .操作系统边界
操作系统边界的上面是应用层,应用层处理的是用户应用程序(用户进程)的细节问题,提供面向用户的服务。
3.2 .地址边界
地址边界的上层为网络层,网络层用于对不同的网络进行互联,连接在一起的所有网络为了能互相寻址,要使用统一的互联网地址( IP 地址)。
4 .基于 TCP/IP 架构的网络通信模型
如图 4 所示的 TCP/IP 协议通信模型,这个模型尽管是由分析主机 A 和主机 B 通信而来的,但该模型是一个一般的模型,也适合于网络中其他主机之间的通信描述。
该模型中,主机 A 和主机 1 组成了端到端( Endpoint to Endpoint )的系统。
图 4 TCP/IP 协议的通信模型