TCP/IP的起源

TCP/IP协议起源于60年代末美国政府资助的一个分组交换网络研究项目,到 90 年代已发展为计算机之间最常用的组网形式。它成为被称作Internet的基础,该广域网(WAN)已经包含超过100万台遍布世界各地的计算机。

TCP/IP名称的由来

TCP是一种运输层协议,IP是一种网络层协议。TCP/IP协议族是一组不同的协议组合在一起构成的协议族。所以尽管我们叫该协议族为TCP/IP,但其实TCP和IP只是其中的两种协议而已。该协议族还有另一个名字叫互联网协议族(Internet Protocol Suite)。

TCP/IP的分层

概念

TCP/IP协议族分为四个层次:应用层、运输层、网络层和链路层。每一层都分别负责不同的通信功能。

Image.png

以下详细介绍每一层的功能:

  1. 链路层

    通常包括操作系统的设备驱动程序和计算机的网卡。主要负责处理与电缆(或者其他传输媒介)的物理接口细节。

  2. 网络层

    负责处理分组在网络中的活动,例如分组的选路。网络层协议包括IP协议(网际协议)、ICMP协议(互联网控制报文协议)、IGMP协议(互联网组管理协议)。

    网络层IP提供的是一种不可靠的服务,它只是尽可能快地把分组从源节点送到目的节点。

  3. 运输层

    主要为两台主机上的应用程序提供端到端的通信。在TCP/IP中有两个不同的传输协议:TCP(传输控制协议)和UDP(用户数据报协议)。

    其中TCP为两台主机提供高可靠性的通信。它会把应用程序交给它的数据分成合适的小块并交给网络层,确认接收到的分组设置发送最后确认分组的超时时钟等等。

    UDP则为应用层提供简单的服务。它只负责把数据报的分组从一台主机发送到另一台主机,但不保证数据会到达另一端。由应用层来保证可靠性。

  4. 应用层

    负责处理特定的应用程序细节。,例如Telnet远程登录、FTP文件传输协议、SMTP简单邮件传送协议和SNMP简单网络管理协议。

举例说明

现在用实际的例子来解释TCP/IP中的分层概念。

  1. 局域网中的两台主机通信。

    假设在一个局域网中有两台都运行着FTP协议的主机,分别运行着FTP客户程序和FTP服务器程序,如图:

Image.png

在这个例子中,客户需要去访问服务器主机上的文件。从这个图中可以发现此通信过程有以下几个特点:

①在同一层上,双方都有对应的一个或多个协议进行通信。

②应用层通常是一个用户进程,而下三层(运输层、网络层与链路层)则一般在操作系统内核中执行。

③应用层关心应用程序的细节,下三层(运输层、网络层与链路层)对应用程序一无所知,需要处理所有的通信细节。

  1. 两个网络之间的通信。

    多个网络之间一般使用路由器(一种硬件盒)进行连接,好处是路由器可以为不同类型的网络提供连接。

Image.png

上图是一个包含两个网络的互联网:一个以太网和一个令牌环网,这两个网络之间通过路由器进行连接。换句话说,以太网中的任何主机都可以通过路由器与令牌环网中的任何主机进行通信。

另外,在图中可以划分出端系统(通信的两台主机)和中间系统(中间的路由器)这两种角色。在应用层和运输层使用端到端(End-to-end)协议,只有端系统需要用到这两层协议,路由器不需要。在网络层则需要使用到逐跳(Hop-by-hop)协议,两个端系统和每个中间系统都要使用它。

互联网的目的之一是在应用程序中隐藏所有的物理细节,从本图中也可以看出,应用层不需要也不能关心通信的那台主机到底在以太网上还是在令牌环网上,不管增加多少台主机,增加什么样的主机,应用层都是一样的。

连接网络的另一个方式是使用网桥。网桥在链路层上对网络进行互连,而路由器是在网络层上对网络进行互连。网桥可以把多个局域网组合在一起形成一个大的局域网。

总结

本文介绍了TCP/IP协议族的四个分层,从上到下分别是应用层、运输层、网络层和链路层。其中每一层的常用协议如图所示:

Image.png

其中TCP和UDP是最著名的两种运输层协议,二者都使用IP作为网络层协议。

ICMP是IP协议的附属协议,主要被IP用来与其他主机或者路由器交换错误报文和其他重要信息。

IGMP是互联网组管理协议,它负责把一个UDP数据报多播到多个主机。

ARP和RARP是某些网络接口使用的特殊协议,用来转换IP层和网络接口层使用的地址。

本文的相关概念会在后面的学习文章里更深入地介绍,本文就到这里。