摘要: 内存是软件系统必不可少的物理资源,精湛的内存管理技术是确保内存使用效率的关键,也是进阶高级研发的必备技巧。为提高内存分配效率,Python 内部做了很多殚心竭虑的优化,从中我们可以获得一些启发。 阅读全文
posted @ 2020-11-20 08:26 fasionchan 阅读(4510) 评论(2) 推荐(9) 编辑
摘要: 小菜(化名)在某互联网公司担任运维工程师,负责公司后台业务的运维保障工作。由于自己编程经验不多,平时有不少工作需要开发协助。 听说 Python 很火,能快速开发一些运维脚本,小菜也加入 Python 大军学起来。 Python 语言确实简单,小菜很快就上手了,觉得自己应对运维开发工作已经绰绰有余, 阅读全文
posted @ 2020-06-11 09:17 fasionchan 阅读(1594) 评论(1) 推荐(13) 编辑
摘要: Python 是一门 面向对象 语言,实现了一个完整的面向对象体系,简洁而优雅。与其他面向对象编程语言相比, Python 有自己独特的一面。 这让很多开发人员在学习 Python 时,多少有些无所适从。 那么,Python 对象模型都有哪些特色呢? 阅读全文
posted @ 2020-06-05 11:20 fasionchan 阅读(1208) 评论(0) 推荐(2) 编辑
摘要: 一直以来,编码问题像幽灵一般,不少开发人员都受过它的困扰。 试想你请求一个数据,却得到一堆乱码,丈二和尚摸不着头脑。有同事质疑你的数据是乱码,虽然你很确定传了 UTF 8 ,却也无法自证清白,更别说帮同事 debug 了。 有时,靠着百度和一手瞎调的手艺,乱码也能解决。尽管如此,还是很羡慕那些骨灰级 阅读全文
posted @ 2020-03-13 11:24 fasionchan 阅读(1849) 评论(7) 推荐(14) 编辑
摘要: 不同的以太网接入设备,一帧能传输的数据量是有差异的。 普通的以太网卡,一帧最多能够传输 1500 字节的数据;而某些虚拟设备,传输能力要打些折扣。此外,链路层除了以太网还有其他协议,这些协议中数据帧传输能力也有差异。 最大传输单元 如果待发送的数据超过帧的最大承载能力,就需要先对数据进行分片,然后再 阅读全文
posted @ 2021-03-03 12:37 fasionchan 阅读(842) 评论(0) 推荐(0) 编辑
摘要: 集线器和交换机是两种典型的网络设备,集线器 位于 物理层,而 交换机 位于于 数据链路层 ,行为明显不同。本节准备了两个简单实验,旨在通过实践加深对理论知识的理解,逐步掌握 Linux 主机网络操作。 实验一:观察以太网集线器 本实验将 3 台 Linux 主机连到一个集线器上,以此观察集线器的工作 阅读全文
posted @ 2021-02-25 12:53 fasionchan 阅读(693) 评论(0) 推荐(1) 编辑
摘要: 为了解决集线器工作效率低下的尴尬,我们需要设计一种更高级的网络设备。新设备根据以太网帧的目的 MAC 地址,将它精准地转发到正确端。 阅读全文
posted @ 2021-01-21 08:36 fasionchan 阅读(1982) 评论(0) 推荐(1) 编辑
摘要: 采用以太网进行通信的主机,需要通过网线之类的介质连接到一起。那么,如何将多根网线连接在一起呢?最简单的方式是将所有网线接到一个 集线器 ( hub )上。 阅读全文
posted @ 2021-01-18 08:45 fasionchan 阅读(1355) 评论(0) 推荐(0) 编辑
摘要: 上一小节介绍了以太网帧的结构,以及帧中各个字段的作用。参与以太网通讯的实体,由以太网地址唯一标识。以太网地址也叫做 MAC 地址,我们对它仍知之甚少。 以太网地址在不同场景,称谓也不一样,常用叫法包括这些: 以太网地址 MAC 地址 硬件地址 物理地址 网卡地址 网卡 在以太网中,每台主机都需要安装 阅读全文
posted @ 2021-01-12 08:43 fasionchan 阅读(2576) 评论(0) 推荐(3) 编辑
摘要: 上一小节,我们通过一个虚构的协议,初步认识了数据链路层的工作原理。数据链路层主要解决由若干主机组成的本地网络的通讯问题,寻址 和 复用分用 思想在其中发挥着关键作用。 数据链路层有一个非常重要的协议—— 以太网协议 。接下来,我们一起来揭开它的神秘面纱! 使用以太网协议进行通信的主机间,必须通过某种 阅读全文
posted @ 2020-12-15 08:20 fasionchan 阅读(2728) 评论(1) 推荐(1) 编辑
摘要: 上一小节,我们以两台主机为例,讨论了一个理想化的物理层模型。 现在,我们将问题进一步延伸:多台主机如何实现两两通讯呢?我们以三台主机为例进行讨论: 如上图,有 3 台主机,名字分别是: ant 、 bee 以及 cicada 。 为了实现主机间通讯,我们将三者连接到一根共用导线。每台主机都可以改变导 阅读全文
posted @ 2020-12-11 12:32 fasionchan 阅读(512) 评论(0) 推荐(1) 编辑
摘要: 通讯模型 假设,计算机网络现在还没有被发明出来,作为计算机科学家的你,想在两台主机间传输数据,该怎么办? 这时,你可能会想到,用一根电缆将两台主机连接起来: 物理课大家都学过,电压可以分为 低电平 和 高电平 。因此,我们可以通过控制电平高低,来达到传输信息的目的: 主机①控制电缆电平的高低, 主机 阅读全文
posted @ 2020-12-10 20:46 fasionchan 阅读(363) 评论(0) 推荐(1) 编辑