连接:网络概念介绍:以太网、LAN和互联网互联网的重要特征是可以由使用完全不同和不兼容技术的各种LAN和WAN组成。

如何让某台源主机跨过所有这些不兼容的网络发送数据到另一台目标主机呢 ?

解决办法是一层运行在每台主机和路由器上的协议软件,这个软件实现一种协议,这种协议控制主机和路由器协同工作来实现数据传输,从而消除不同网络之间的差异。这种协议必须提供两种基本能力:

  • 命名机制。不同局域网技术有不同和不兼容的方式来为主机分配地址,互联网络协议通过定义一种一致的主机地址格式消除了这些差异,每台主机会被分配至少一个这种互联网络地址(Internet address),这个地址唯一标识了这台主机。
  • 传送机制。在电缆上编码位和将这些位封装成帧方面,不同的联网技术有不同的和不兼容的方式,互联网络协议通过定义一种把数据位捆扎成不连续的片(包)的统一方式,消除了这些差异。一个包由包头和有效载荷组成,其中包头包括包的大小以及源主机和目标主机的地址,有效载荷包括从源主机发出的数据位。

上图展示了主机和路由器如何使用互联网络协议在不兼容的局域网间传送数据的一个示例。这个互联网络示例由两个局域网通过一台路由器连接而成,一个客户端运行在主机A上,主机A与LAN1相连,它发送一串数据字节到运行在主机B上的服务器端,主机B连接在LAN2上。这个过程有8个基本步骤:

  1. 运行在主机A上的客户端进行一个系统调用,从客户端的虚拟地址空间复制数据到内核缓冲区中;
  2. 主机A上的协议软件通过在数据前附加互联网络包头和LAN1帧头,创建了一个LAN1的帧。互联网络包头寻址到互联网络主机B,LAN1帧头寻址到路由器,然后它传送此帧到适配器。注意LAN1帧的有效载荷是一个互联网络包,而互联网络包的有效载荷是实际的用户数据,这种封装是基本的网络互连方法之一;
  3. LAN1适配器复制该帧到网络上;
  4. 当此帧到达路由器时,路由器的LAN1适配器从电缆上读取它,并把它传送到协议软件;
  5. 路由器从互联网络包头中提取出目标互联网络地址,并用它作为路由表的索引,确定向哪里转发这个包,本例中是LAN2。路由器剥落旧的LAN1的帧头,加上寻址到主机B的新的LAN2帧头,并把得到的帧传送到适配器;
  6. 路由器的LAN2适配器复制该帧到网络上;
  7. 此帧到达主机B时,它的适配器从电缆上读到此帧,并将它传送到协议软件;
  8. 最后主机B上的协议软件剥落包头和帧头。当服务器进行一个读取这些数据的系统调用时,协议软件最终将得到的数据复制到服务器的虚拟地址空间。

全球IP因特网

全球IP因特网是最著名和最成功的互联网络实现。从1969年开始出现,因特网内部体系结构不断发展变化。但从20世纪80年代早期开始,客户端-服务器应用的组织就一直保持着相当的稳定。

每台因特网主机都运行实现TCP/IP协议(Transmission Control Protocol / Internet Protocol,传输控制协议/互联网络协议)的软件,几乎每个现代计算机系统都支持这个协议。

TCP/IP实际是一个协议族,每一个都提供不同的功能。如IP协议提供基本的命名方法和递送机制,这种递送机制能够从一台因特网主机往其他主机发送包,也叫做数据报(datagram)。IP机制从某种意义上而言是不可靠的,因为数据报在网络中丢失或重复,它并不会试图恢复。UDP(unreliable datagram Protocol,不可靠数据报协议)稍微扩展了IP协议,这样一来,包可以在进程间而不是在主机间传送。TCP是一个构建在IP之上的复杂协议,提供了进程间可靠的全双工连接。

从程序员的角度,可以把因特网看做一个世界范围的主机集合,满足以下特性:

  • 主机集合被映射为一组32位的IP地址;
  • 这组IP地址被映射为一组称为因特网域名(Internet domain name)的标识符;
  • 因特网主机上的进程能够通过连接(connection)和任何其他因特网主机上的进程通信。

扩展阅读

网络编程模型:客户端-服务器

TCP的3次握手,4次挥手

计算机系统的硬件组织:总线、IO、主存、CPU

相关推荐