Java教程

8/31 深入理解计算机系统 第十一章 网络编程

本文主要是介绍8/31 深入理解计算机系统 第十一章 网络编程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

第十一章网络编程

11.1 客户端-服务器编程模型

包含一个服务器进程和多个客户端进程。

服务器管理某种资源,并通过操作这种资源给客户端提供某种服务。
基本操作是:事务

一个客户端-服务器事务由以下四步组成:

  1. 当一个客户端需要服务时,他向服务器发送一个请求,发起一个事务
  2. 服务器收到请求,就解释它,并以适当的方式操作它的资源
  3. 服务器给客户端发送一个响应,并等待下一个请求。
  4. 客户端收到响应并处理它。

11.2 网络

一个以太网段包括一些电缆和集线器。区域较小。每根光缆带宽相同,集线器把收到的所有端口的每个数据复制到所有端口上,因此每个主机都能收到每个位。
一台主机可以发送帧(frame)到这个网段内的任何主机。

电缆通过网桥,使得多个以太网段得以链接成较大的局域网,称为桥接以太网
网桥自动学习主机通过哪个端口可达,有选择的发送帧。节省了带宽。
如果主机A发送一个帧到一个不同网段的主机C,那么网桥X只会把此帧复制到和网桥Y相连的端口上,网桥Y把此帧复制到主机C的网段链接的端口。

多个不兼容的局域网可以通过路由器连起来。组成一个互联网络。
每台路由器对于它所链接到的每个网络都有一个适配器。

通过协议软件,消除了不同网络的差异。协议控制主机和路由器如何协同工作来实现数据传输。
协议的基本能力:

  1. 命名机制:每台主机被分配一个互联网地址,这个地址唯一的标识了这台主机
  2. 传送机制:互联网协议把数据为组合成不连续的片

image

图中LAN1的主机A到LAN2的主机B需要的步骤:

  1. 运行在主机A的客户端进行一个系统调用,从客户端的虚拟地址空间复制数据到内核缓冲区中
  2. 主机A上协议软件通过数据附加在互联网络包头和LAN1帧头,创建了一个LAN1帧。(互联网络包头寻址到网络主机B,LAN1帧头寻址到路由器),然后它传送此帧到适配器,LAN1帧的有效载荷是互联网络包,互联网络包的有效载荷是实际的用户数据
  3. LAN1适配器复制此帧到互联网上
  4. 传送到路由器时,路由器读取后传送到协议软件。
  5. 路由器读取出互联网地址,并把它作为路由表索引,确定向哪里发送这个包。然后路由器剥离旧的LAN1的帧头,加上寻址到主机B的帧头,并把帧传送到适配器。
  6. 路由器的LAN2适配器复制该帧到网络上
  7. 帧到达主机B时,它的适配器从电缆上读到此帧,并传送到协议软件
  8. 最后主机B上的协议软件剥离包头和帧头,当服务器进行一个读取这些数据的系统调用时,协议软件把得到的数据复制到服务器的虚拟空间。
这篇关于8/31 深入理解计算机系统 第十一章 网络编程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!