一、OSI模型与TCP/IP
1、OSI模型
OSI/RM(Open System Interconnection,开放系统互联参考模型)是由ISO(国际标准组织)创建的一个有助于开放和理解计算机的通信模型,OSI七层参考模型作为一套规范的标准,在网络世界得到广泛的应用,它把网络结构分为7个层次:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,如图所示。
在OSI模型中,每一层具有独立的功能,上下层之间能够完成网络信息的交互,每一层主要功能如下表所示:
表 OSI模型7个层的主要功能
|-------------|----------------|
| OSI模型各个层的名称 | 主要功能 |
| 物理层 | 比特流传输 |
| 数据链路层 | 提供介质访问、链路管理等 |
| 网络层 | 路由选路和转发 |
| 传输层 | 建立主机端到端连接和数据传输 |
| 会话层 | 建立、维护和管理会话 |
| 表示层 | 处理数据格式、数据加密等 |
| 应用层 | 提供应用程序接口 |
2、TCP/IP简介
TCP/IP(Transmission Control Protocol/Internet Protocol)协议由美国国防部高级研究计划局研究创立的,它由两个主要的协议TCP和IP而得名。TCP/IP协议是一种工业标准协议组,也称为协议栈,Linux和其他网络操作系统均将它作为标准的协议组。TCP/IP是为在大型的、由异构系统组成的网络通信而设计的一种开放的协议组。在一个基于TCP/IP的网络通讯中,可以根据任务和功能将TCP/IP协议组中的协议分为四个层次。
TCP/IP组中的每个协议都具备各自的功能和完成各自任务。在一次完整的通讯过程中,许多应用程序可能同时发生通讯行为。TCP/IP能够将它区分开来。TCP/IP通过各个协议协同工作完成网络中的两台或多台计算机进程间的通讯。
二.TCP/IP协议组
OSI模型是一种通用的、标准的、理论模型,有人称为"网络世界的法律"。但网络世界中没有一个流行的网络协议完全遵守OSI模型,TCP/IP也不例外,TCP/IP协议组有自己的模型,被称为TCP/IP协议族,在TCP/IP协议中,网络体系结构被分为4层,即:
- 应用层
- 传输层
- 互联网层
- 网络接口层
尽管TCP/IP协议开发工作甚至比OSI模型标准的制定还要早,但与OSI模型体系结构存在着一定的对应关系,其中网络接口层并没有具体的内容实现,TCP/IP协议遵从数据链路层和物理层已有的标准,具体的对应关系如图5.3所示。
1、应用层
定义了TCP/IP应用协议以及处理应用程序的具体细节,应用层是应用程序进入网络的通道。在应用层有许多TCP/IP工具和服务,如:FTP、Telnet、SNMP、DNS等等。
2、传输层
提供主机之间的通讯会话管理,并且定义了传输数据时的服务级别和连接状态。工作在这一层的传输协议在计算机之间提供会话连接的建立,并负责将应用层的数据向IP层传递或IP层的数据向应用层传递。传输层具有两个核心协议,用于提供数据传输的方法:
(1)TCP传输控制协议
传输控制协议(TCP:Transport Control Protocol)是指提供可靠的、面向连接的数据报传递服务。传输控制协议可以确保IP数据报的成功传递,对程序发送的大块数据进行分段和重组,可以确保正确排序以及按顺序传递分段的数据。
通过计算校验和,进行传输数据的完整性检查。为必须使用可靠的基于会话的数据传输的程序,如客户/服务器数据库和电子邮件程序,提供首选方法。
(2)UDP用户数据包协议
UDP是TCP/IP协议栈中传输层次中的另一个传输协议,UDP提供快速的、无连接的、无确认的数据包传输服务。不同于TCP,UDP提供"尽最大努力传递"的无连接数据报服务,不要求确认信息的返回,不保证数据包的有序性以及不提供出错包的重传机制。如果需要可靠的通信,则必须使用TCP协议或通过应用程序本身的纠错机制。UDP常用于网络上的广播和多播通讯。同样,UDP也用于传输少量不重要的数据,例如,广播一组计算机的名字。UDP消息在IP数据报中封装和发送。
3、互联网层
互联网层将上层传下来的数据装入IP数据报,包括用于在主机间以及经过在网络转发数据报时所需用到的源和目标的地址信息,以实现IP数据报的路由。这一层包含四个核心协议:
(1)IP协议(网际协议)
IP是一种无连接的、不可靠的协议,主要用于编址数据包并负责路由数据包。可以将IP看作是TCP/IP协议组中的邮局,从事数据包的存储和转发工作。来自传输层的TCP或UDP数据包以及来自下层(网络接口层)的数据包在IP层中进行地址的标识和路由,最终送往目的地。
每个数据包中都封装有源IP地址和目标IP地址。如果源IP地址和目标IP地址在相同的网段,那么就直接从源发送到目标。如果不是,那么IP就使用一个适当的路由进行发送。IP还将定义数据包的TTL值(生命值),TTL值决定了数据包在网络上的最长传输时间,超时将被丢弃。
提示: IP从事数据包的发送,但对于数据包传输过程中发生的丢失、乱序、重复、破损,IP不会对此做出差错处理,因为差错的处理是高层协议的责任, 如TCP。
(2)ARP(地址解析协议)
地址解析协议把IP地址解析成MAC地址。当一个基于TCP/IP的应用程序需要从一台主机发送数据给另一台主机时,ARP在获得目标主机的IP地址后,然后寻找IP地址到实际MAC地址的映射。当ARP找到了MAC地址后,它就把这个信息传给IP,由IP把包发送出去。ARP在解析MAC地址时,首先查看ARP缓存,如果缓存中有相应的映射存在,则直接使用,反之ARP使用广播来解析MAC地址。
知识: 什么是MAC地址?
计算机中的网卡都要一个48位的物理地址,该地址通常称为MAC地址。网路世界中每个网卡的MAC地址是唯一的,MAC地址只对数据链路层有意义,网络上数据帧的交换依赖于MAC地址。
(3)ICMP(INERNET控制信息协议)
对数据报的传输提供诊断功能以及错误报告,基于IP通信的计算机或路由器通过ICMP就能够检测到错误并交换控制和状态信息。例如ping就是使用ICMP协议来检测是否能够到达目标计算机。
(4)IGMP(INTERNET组管理协议)
IGMP用于管理TCP/IP网络上的IP多播地址,网络接口层模型的最底层是网络接口层,指定如何通过网络物理地址发送或接收数据。例如,直接与网络媒体(如同轴电缆、光纤或双绞铜线)连接的硬件设备如何将比特流转换成电信。