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

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

时间:2022-08-31 22:00:32浏览次数:58  
标签:第十一章 31 编程 LAN1 主机 服务器 路由器 适配器 客户端

第十一章网络编程

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上的协议软件剥离包头和帧头,当服务器进行一个读取这些数据的系统调用时,协议软件把得到的数据复制到服务器的虚拟空间。

标签:第十一章,31,编程,LAN1,主机,服务器,路由器,适配器,客户端
From: https://www.cnblogs.com/hy227/p/16644661.html

相关文章

  • 2022-08-31 第四组 王佳齐 学习笔记
    <c:forEach begin="1" end="10" step="2" var="i" varStatus="stat">        \({i} ----- \){stat.first}     </c:forEach>刘夜壶  21:41:27JS......
  • 2022-08-31 第二组刘禹彤 学习笔记
    打卡42天  ###学习内容JSP简介JSP脚本片段---<%%>-------用于在JSP页面写JAVA代码注意JSP脚本片段中只能出现java代码,不能出现html元素,在访问JSP时,JSP引擎翻......
  • 2022-8-31第一组孙乃宇JSP
    JSPJSP概念:JavaServerPages,Java服务端页面 一种动态的网页技术,其中既可以定义HTML、JS、CSS等静态内容,还可以定义Java代码的动态内容·JSP=HTML+Java JSP的......
  • Python极客项目编程 中文PDF完整版入门到精通
     《Python极客项目编程》中文PDF完整版免费下载地址内容简介  · · · · · · Python是一种强大的编程语言,容易学习而且充满乐趣。但掌握了基本知识后,......
  • 【2022-08-31】Django框架(二)
    Django框架(二)静态文件及相关配置1.静态文件 html页面上使用的不经常改变的资源1.第三方框架文件,如Bootstrap框架2.css样式文件3.网站js文......
  • 2022-08-31 第五组 赖哲栋 学习笔记
    JSPJSP脚本片段:用于在JSP页面写java代码<%%><%intnum=0;num++;System.out.println(num);//向页面打印输出out.print(num);%>注意事项......
  • ak日记 831 dxm
    importsysfrommathimportinfline=sys.stdin.readline().strip()vs=list(map(int,line.split()))n,k=vs[0],vs[1]line=sys.stdin.readline().strip()......
  • 2022-08-31 第二小组 张晟源(javaweb,el,jstl,分页查询)
    JavaWeb一,JSPJSP(全称JavaServerPages),运行在服务端的语言<%//java代码%>1.JSP脚本只能有java代码,在访问JSP时,JSP引擎翻译JSP页面中的脚本2.J......
  • 2022-8-31 第一组 (≥▽≤) 学习笔记
    目录1.JSPJSP表达式JSP声明片段JSP的指令标识JSP标签内置标签JSTL标签自定义标签JSP的作用域2.EL表达式EL表达式的内置作用域对象EL表达式的缺陷面试题1.JSPJSP脚本片段:......
  • 2022-08-31
    1、因为.trimmed()方法不能去除字节之间的空格,而只能去除整个数据包的前后空格,所以为了方便起见而又不脱离方便人阅读的情况下,需要在写入txt时不能使用.toHex(‘’),也就是......