0%

TFTP简单文本传输协议的介绍

随着互联网发展,文件传输效率越来越快,相应的传输协议也越来越复杂。早年有很多文件传输协议如今已经很少再用,所谓老兵不死,只是慢慢凋零。这些协议尽管现在使用不多,但它们的设计思想依然值得我们好好研究和掌握。

例如 FTP 以及它的 UDP 版本 TFTP,它们实现文件传输的协议设计思想依然非常值得研究,它对我们设计新协议依然很有启发性。本节开始,我们研究 TFTP 协议的原理以及相关代码实现。

TFTP 原名叫Trivial File Transport Protocol.对互联网早期存有记忆的同学对 FTP 协议一定非常了解,当时局域网乃至整个网络上很多大文件,例如电影的传输依靠的就是该协议。FTP 协议运行在 TCP 协议之上,它的内容很复杂,除了文件传输外,它还支持很多文件相关操作,例如远程实现文件建立,删除等。TFTP 是 FTP 协议的简化版,它运行在 UDP 协议上,同时简化了很多 FTP 操作,只支持文件的传输功能。

阅读全文 »

DNS(域名解析协议)基本原理介绍

我们这章开始研究和实现一个体系较为复杂的协议,也就是域名解析协议,简写为DNS。该协议几乎也是我们”日用而不知”的幕后英雄,没有它肯定就没有现在的互联网繁荣。

当我们在浏览器上输入网址,例如www.baidu.com时,浏览器先通过DNS协议找到与该网址对应的IP地址,然后再使用IP去向服务器获取网页信息。也就是说互联网上的设备其实有两种辨认方法,一种是IP,一种是域名。就如同人的身份证,人有名字,同时也有几十位数字组成的身份证号。

人与人相互识别时,使用的都是名字,几乎没有人使用身份证号来识别他人的,即使身份证号相对于名字而言更加唯一和准确。说到底是因为人对数字识别很费劲,而记住名字很容易。

阅读全文 »

实验内容介绍

Linux 操作系统在服务器领域具有广泛的应用。Web 服务是服务器领域中应用最广泛的服务,常见 Web 服务有 WAMP(Windows+Apache+MySQL+PHP)LAMP(Linux+Apache+MySQL+PHP)架构,其中 Apache 是全世界最流行的 Web 服务软件,此外,Web 服务软件 nginx,因其具有优秀的性能也受到越来越多的用户欢迎。本实验中,演示在 Linux 环境下搭建支持 PHP 等网页的 Web 服务平台,即LAMP。
Linux 环境下搭建 Web 服务器有三种方式,一是在安装操作系统时勾选相应服务组件;二是从网上下载或从 ISO 系统镜像包中拷贝安装包手动安装;三是在在连接网络的的情况下在线安装。
本实验演示以 kali 64 位操作系统为例。因 kali 系统已经自带 Apache、MySQL 和 PHP,为了解安装流程,请先卸载系统自带软件。

阅读全文 »

三、GC算法和收集器

本文参考:
Oracle Java JVM Standard Options:https://docs.oracle.com/javase/8/docs/technotes/tools/windows/java.html
HotSpot Glossary of Terms:http://openjdk.java.net/groups/hotspot/docs/HotSpotGlossary.html
周志明《深入理解Java虚拟机》第二版

如何判断对象可以被回收

堆中几乎放着所有的对象实例,对堆垃圾回收前的第一步就是要判断哪些对象已经死亡(即不能再被任何途径使用的对象)

引用计数法

给对象添加一个引用计数器,每当有一个地方引用,计数器就加1。当引用失效,计数器就减1。任何时候计数器为0的对象就是不可能再被使用的。
这个方法实现简单,效率高,但是目前主流的虚拟机中没有选择这个算法来管理内存,最主要的原因是它很难解决对象之前相互循环引用的问题。所谓对象之间的相互引用问题,通过下面代码所示:除了对象a和b相互引用着对方之外,这两个对象之间再无任何引用。但是它们因为互相引用对方,导致它们的引用计数器都不为0,于是引用计数器法无法通知GC回收器回收它们。

Java虚拟机介绍

Java虚拟机(Java Virtual Machine,JVM),一种能够运行Java字节码的虚拟机。作为一种编程语言的虚拟机,实际上
不只是专用于Java语言,只要生成的编译文件匹配JVM对加载编译文件格式要求,任何语言都可以由JVM编译运行。

阅读全文 »

一、DHCP介绍

1. 简要介绍

DHCP 协议在我们日常生活中应该是最常见而又经常被忽略的一种协议了。当你走进一间屋子,手机自动连上了 WiFi,当你离开了屋子,又自动断开了 WiFi…… 这一系列的幕后都是DHCP协议在默默工作。

DHCP 协议(Dynamic Host Configuration Protocol)是一个基于UDP协议的局域网的网络协议。指的是由服务器控制一段 IP 地址范围,客户机登录服务器时就可以自动获得服务器分配的 IP 地址和子网掩码。

该协议的最大作用是动态的为加入网络的设备分配 IP 地址,在该协议出现前,IP 地址的分配基于静态模式,你把设备的 mac 地址手动在路由器设置,然后路由器自动生成一个 IP 与你的 mac 地址绑定起来。这种应用在有线网络时代可以适用,但在无线时代,每时每刻可能有不同的设备加入或离开网络,因此原有静态匹配 IP 的做法不再适合。

DHCP 协议的诞生就是为了迎合在无线情况下,网络内部连接设备不断变化的情况。它包含两部分,一是分配 IP 地址,二是支持客户端请求,服务器应答,使得两者之间有效交换配置信息。

DHCP 最重要功能显然是动态分配 IP 地址,当我们的设备连接上网络之后里面获得一个可用的 IP 地址,就得感谢该协议的执行,现在我们大多数设备都依靠 DHCP 来从路由器动态获得 IP

阅读全文 »

BAT批处理(二):批量删除指定文件以及相关简单的语法结构(if,for),系统变量errorlevel,变量延迟等

前两天在使用 VSCode 的时候,看到之前那么多 cpp 编译产生的 exe 可执行文件,于是心生一个念头,我要把它们全部删掉,但是又不想一个个地删,便想到了利用 bat 脚本批量删除 exe 文件。于是在搜集了大量资料后,开始了编写。

阅读全文 »

维吉尼亚密码的破解

一、引言

上一章我们介绍了维吉尼亚密码的原理,是通过移位替换的加密方法进行加密,但是因为概率论的出现这种简单的移位或替换就容易破解了,其原理很简单,英文中字母出现的频率是不一样的。比如字母 e 是出现频率最高的,占12.7%;其次是t9.1%;然后是aoin等,最少的是z,只占**0.1%**。

阅读全文 »