xuchengpeng

Valar Morghulis. Valar Dohaeris.


  • 首页

  • 归档

  • 分类

  • 标签

  • 留言

  • 关于

  • 搜索

TCP/IP 详解(卷一) RARP:逆地址解析协议

发表于 2018-05-03 | 分类于 Study , TCP/IP | 评论数: | 阅读次数:
本文字数: 1k | 阅读时长 ≈ 2 分钟

具有本地磁盘的系统引导时,一般是从磁盘上的配置文件中读取IP地址。但是无盘机,如X终端或无盘工作站,则需要采用其他方法来获得IP地址。

网络上的每个系统都具有唯一的硬件地址,它是由网络接口生产厂家配置的。无盘系统的RARP实现过程是从接口卡上读取唯一的硬件地址,然后发送一份RARP请求(一帧在网络上广播的数据),请求某个主机响应该无盘系统的IP地址(在RARP应答中)。

RARP 的分组格式

RARP分组的格式与ARP分组基本一致。它们之间主要的差别是RARP请求或应答的帧类型代码为0x8035,而且RARP请求的操作代码为3,应答操作代码为4。

对应于ARP,RARP请求以广播方式传送,而RARP应答一般是单播(unicast)传送的。

阅读全文 »

TCP/IP 详解(卷一) ARP:地址解析协议

发表于 2018-05-02 | 分类于 Study , TCP/IP | 评论数: | 阅读次数:
本文字数: 2.8k | 阅读时长 ≈ 5 分钟

数据链路如以太网或令牌环网都有自己的寻址机制(常常为48 bit地址),这是使用数据链路的任何网络层都必须遵从的。

当一台主机把以太网数据帧发送到位于同一局域网上的另一台主机时,是根据48 bit的以太网地址来确定目的接口的。设备驱动程序从不检查IP数据报中的目的IP地址。

地址解析为这两种不同的地址形式提供映射:32 bit的IP地址和数据链路层使用的任何类型的地址。

ARP为IP地址到对应的硬件地址之间提供动态映射。

ARP 高速缓存

ARP高效运行的关键是由于每个主机上都有一个ARP高速缓存。这个高速缓存存放了最近Internet地址到硬件地址之间的映射记录。高速缓存中每一项的生存时间一般为20分钟,起始时间从被创建时开始算起。
使用 arp -a 命令来检查 ARP 高速缓存。

阅读全文 »

Windows 10 Version 1803 is out

发表于 2018-05-02 | 分类于 News | 评论数: | 阅读次数:
本文字数: 1.4k | 阅读时长 ≈ 2 分钟

简体中文零售版

家庭版、专业版、教育版、家庭单语言版、专业工作站版、专业教育版

架构: x64
文件: cn_windows_10_consumer_editions_version_1803_updated_march_2018_x64_dvd_12063766.iso
SHA-1: 82091D67FFF5B49726FFC22D35D9C1CBE81DC443
文件大小: 4.38 GB
释出时间: 2018-04-30
下载地址:
ed2k://|file|cn_windows_10_consumer_editions_version_1803_updated_march_2018_x64_dvd_12063766.iso|4714162176|FB8C05DE594CD7E58D88993652DD2102|/

架构: x86
文件: cn_windows_10_consumer_editions_version_1803_updated_march_2018_x86_dvd_12063452.iso
SHA-1: D5E89FB54169F5A2E610C75813CE833A4CB9A4E4
文件大小: 3.24 GB
释出时间: 2018-04-30
下载地址:
ed2k://|file|cn_windows_10_consumer_editions_version_1803_updated_march_2018_x86_dvd_12063452.iso|3480692736|0EC3C40EF13D772798209981F18B6A5D|/

阅读全文 »

Emacs add yasnippet to company backends

发表于 2018-04-27 | 分类于 Software , emacs | 评论数: | 阅读次数:
本文字数: 444 | 阅读时长 ≈ 1 分钟
1
2
3
4
5
6
7
8
9
10
(defvar company-mode/enable-yas t
"Enable yasnippet for all backends.")

(defun company-mode/backend-with-yas (backend)
(if (or (not company-mode/enable-yas) (and (listp backend) (member 'company-yasnippet backend)))
backend
(append (if (consp backend) backend (list backend))
'(:with company-yasnippet))))

(setq company-backends (mapcar #'company-mode/backend-with-yas company-backends))
阅读全文 »

Ubuntu 18.04 LTS is out

发表于 2018-04-27 | 分类于 News | 评论数: | 阅读次数:
本文字数: 1.9k | 阅读时长 ≈ 3 分钟

What’s new in 18.04 LTS

  • Supported by Canonical until 2023
  • Runs on all major architectures – x86, x86-64, ARM v7, ARM64, POWER8 and IBM s390x (LinuxONE)
  • New ubuntu-minimal images that are smaller and boot faster
  • Fast and accurate time synchronization with chrony
  • A new, default server installer ISO with a new interface and faster install
  • Supports ZFS, the next-generation volume management/ file system ideal for servers and containers
  • LXD 3.0 - Linux containers including clustering, Qos, and resource controls (CPU, memory, block I/O/ graphics, and storage quota)
  • Updates to LXD (v3.0), DPDK (v17.11.1), Postgresql (v10.3), Libvirt (v4.0), NGINX (v1.13), Qemu (v2.11.1), Docker (v17.03), Puppet (v4.10), MySQL (v5.7), PHP (v7.2), and more
  • Install snaps for simple application installation and release management
  • Linux 4.15 kernel
  • Certification as a guest on AWS, Microsoft Azure, Joyent, IBM, Google Cloud Platform and Rackspace
  • Easily configure networking through netplan.io
    阅读全文 »

传输对象模式

发表于 2018-04-26 | 分类于 Study , Design Pattern | 评论数: | 阅读次数:
本文字数: 3.1k | 阅读时长 ≈ 6 分钟

传输对象模式(Transfer Object Pattern)用于从客户端向服务器一次性传递带有多个属性的数据。传输对象也被称为数值对象。传输对象是一个具有 getter/setter 方法的简单的 POJO 类,它是可序列化的,所以它可以通过网络传输。它没有任何的行为。服务器端的业务类通常从数据库读取数据,然后填充 POJO,并把它发送到客户端或按值传递它。对于客户端,传输对象是只读的。客户端可以创建自己的传输对象,并把它传递给服务器,以便一次性更新数据库中的数值。以下是这种设计模式的实体。

业务对象(Business Object) - 为传输对象填充数据的业务服务。
传输对象(Transfer Object) - 简单的 POJO,只有设置/获取属性的方法。
客户端(Client) - 客户端可以发送请求或者发送传输对象到业务对象。

实现

我们将创建一个作为业务对象的 StudentBO 和作为传输对象的 StudentVO,它们都代表了我们的实体。
TransferObjectPatternDemo,我们的演示类在这里是作为一个客户端,将使用 StudentBO 和 Student 来演示传输对象设计模式。


阅读全文 »

服务定位器模式

发表于 2018-04-26 | 分类于 Study , Design Pattern | 评论数: | 阅读次数:
本文字数: 4k | 阅读时长 ≈ 7 分钟

服务定位器模式(Service Locator Pattern)用在我们想使用 JNDI 查询定位各种服务的时候。考虑到为某个服务查找 JNDI 的代价很高,服务定位器模式充分利用了缓存技术。在首次请求某个服务时,服务定位器在 JNDI 中查找服务,并缓存该服务对象。当再次请求相同的服务时,服务定位器会在它的缓存中查找,这样可以在很大程度上提高应用程序的性能。以下是这种设计模式的实体。

服务(Service) - 实际处理请求的服务。对这种服务的引用可以在 JNDI 服务器中查找到。
Context / 初始的 Context - JNDI Context 带有对要查找的服务的引用。
服务定位器(Service Locator) - 服务定位器是通过 JNDI 查找和缓存服务来获取服务的单点接触。
缓存(Cache) - 缓存存储服务的引用,以便复用它们。
客户端(Client) - Client 是通过 ServiceLocator 调用服务的对象。

实现

我们将创建 ServiceLocator、InitialContext、Cache、Service 作为表示实体的各种对象。Service1 和 Service2 表示实体服务。
ServiceLocatorPatternDemo,我们的演示类在这里是作为一个客户端,将使用 ServiceLocator 来演示服务定位器设计模式。


阅读全文 »

拦截过滤器模式

发表于 2018-04-26 | 分类于 Study , Design Pattern | 评论数: | 阅读次数:
本文字数: 3.1k | 阅读时长 ≈ 6 分钟

拦截过滤器模式(Intercepting Filter Pattern)用于对应用程序的请求或响应做一些预处理/后处理。定义过滤器,并在把请求传给实际目标应用程序之前应用在请求上。过滤器可以做认证/授权/记录日志,或者跟踪请求,然后把请求传给相应的处理程序。以下是这种设计模式的实体。

过滤器(Filter) - 过滤器在请求处理程序执行请求之前或之后,执行某些任务。
过滤器链(Filter Chain) - 过滤器链带有多个过滤器,并在 Target 上按照定义的顺序执行这些过滤器。
Target - Target 对象是请求处理程序。
过滤管理器(Filter Manager) - 过滤管理器管理过滤器和过滤器链。
客户端(Client) - Client 是向 Target 对象发送请求的对象。

实现

我们将创建 FilterChain、FilterManager、Target、Client 作为表示实体的各种对象。AuthenticationFilter 和 DebugFilter 表示实体过滤器。
InterceptingFilterDemo,我们的演示类使用 Client 来演示拦截过滤器设计模式。


阅读全文 »

前端控制器模式

发表于 2018-04-26 | 分类于 Study , Design Pattern | 评论数: | 阅读次数:
本文字数: 2.4k | 阅读时长 ≈ 4 分钟

前端控制器模式(Front Controller Pattern)是用来提供一个集中的请求处理机制,所有的请求都将由一个单一的处理程序处理。该处理程序可以做认证/授权/记录日志,或者跟踪请求,然后把请求传给相应的处理程序。以下是这种设计模式的实体。

前端控制器(Front Controller) - 处理应用程序所有类型请求的单个处理程序,应用程序可以是基于 web 的应用程序,也可以是基于桌面的应用程序。
调度器(Dispatcher) - 前端控制器可能使用一个调度器对象来调度请求到相应的具体处理程序。
视图(View) - 视图是为请求而创建的对象。

实现

我们将创建 FrontController、Dispatcher 分别当作前端控制器和调度器。HomeView 和 StudentView 表示各种为前端控制器接收到的请求而创建的视图。
FrontControllerPatternDemo,我们的演示类使用 FrontController 来演示前端控制器设计模式。


阅读全文 »

数据访问对象模式

发表于 2018-04-26 | 分类于 Study , Design Pattern | 评论数: | 阅读次数:
本文字数: 3.4k | 阅读时长 ≈ 6 分钟

数据访问对象模式(Data Access Object Pattern)或 DAO 模式用于把低级的数据访问 API 或操作从高级的业务服务中分离出来。以下是数据访问对象模式的参与者。

数据访问对象接口(Data Access Object Interface) - 该接口定义了在一个模型对象上要执行的标准操作。
数据访问对象实体类(Data Access Object concrete class) - 该类实现了上述的接口。该类负责从数据源获取数据,数据源可以是数据库,也可以是 xml,或者是其他的存储机制。
模型对象/数值对象(Model Object/Value Object) - 该对象是简单的 POJO,包含了 get/set 方法来存储通过使用 DAO 类检索到的数据。

实现

我们将创建一个作为模型对象或数值对象的 Student 对象。StudentDao 是数据访问对象接口。StudentDaoImpl 是实现了数据访问对象接口的实体类。DaoPatternDemo,我们的演示类使用 StudentDao 来演示数据访问对象模式的用法。


阅读全文 »

1…345…12
xuchengpeng

xuchengpeng

Valar Morghulis. Valar Dohaeris.

111 日志
19 分类
86 标签
RSS
Wuhan, China E-Mail GitHub Bitbucket
Creative Commons
友情链接
  • Chuck's Emacs Configuration
  • HarmonyHu
  • linode
  • shadowsocks
  • LeanCloud
  • Travis CI
  • NexT
© 2019 xuchengpeng | 站点总字数: 338k | 站点阅读时长 ≈ 10:14
0%