8/31 深入理解计算机系统 第十一章 网络编程
第十一章网络编程
11.1 客户端-服务器编程模型
包含一个服务器进程和多个客户端进程。
服务器管理某种资源,并通过操作这种资源给客户端提供某种服务。
基本操作是:事务
一个客户端-服务器事务由以下四步组成:
- 当一个客户端需要服务时,他向服务器发送一个请求,发起一个事务
- 服务器收到请求,就解释它,并以适当的方式操作它的资源
- 服务器给客户端发送一个响应,并等待下一个请求。
- 客户端收到响应并处理它。
11.2 网络
一个以太网段包括一些电缆和集线器。区域较小。每根光缆带宽相同,集线器把收到的所有端口的每个数据复制到所有端口上,因此每个主机都能收到每个位。
一台主机可以发送帧(frame)到这个网段内的任何主机。
电缆通过网桥,使得多个以太网段得以链接成较大的局域网,称为桥接以太网。
网桥自动学习主机通过哪个端口可达,有选择的发送帧。节省了带宽。
如果主机A发送一个帧到一个不同网段的主机C,那么网桥X只会把此帧复制到和网桥Y相连的端口上,网桥Y把此帧复制到主机C的网段链接的端口。
多个不兼容的局域网可以通过路由器连起来。组成一个互联网络。
每台路由器对于它所链接到的每个网络都有一个适配器。
通过协议软件,消除了不同网络的差异。协议控制主机和路由器如何协同工作来实现数据传输。
协议的基本能力:
- 命名机制:每台主机被分配一个互联网地址,这个地址唯一的标识了这台主机
- 传送机制:互联网协议把数据为组合成不连续的片
图中LAN1的主机A到LAN2的主机B需要的步骤:
- 运行在主机A的客户端进行一个系统调用,从客户端的虚拟地址空间复制数据到内核缓冲区中
- 主机A上协议软件通过数据附加在互联网络包头和LAN1帧头,创建了一个LAN1帧。(互联网络包头寻址到网络主机B,LAN1帧头寻址到路由器),然后它传送此帧到适配器,LAN1帧的有效载荷是互联网络包,互联网络包的有效载荷是实际的用户数据
- LAN1适配器复制此帧到互联网上
- 传送到路由器时,路由器读取后传送到协议软件。
- 路由器读取出互联网地址,并把它作为路由表索引,确定向哪里发送这个包。然后路由器剥离旧的LAN1的帧头,加上寻址到主机B的帧头,并把帧传送到适配器。
- 路由器的LAN2适配器复制该帧到网络上
- 帧到达主机B时,它的适配器从电缆上读到此帧,并传送到协议软件
- 最后主机B上的协议软件剥离包头和帧头,当服务器进行一个读取这些数据的系统调用时,协议软件把得到的数据复制到服务器的虚拟空间。
标签:
深入理解计算机系统_学习笔记
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现