计算机网络、操作系统等知识点查漏补缺
计算机网络、操作系统等知识点查漏补缺
冲冲冲冲冲冲!!!
互联网行业的农民工,已润去ic了
展开
-
Linux指令入门(一)目录结构和文件管理指令
什么是 Shell在我们学习 Linux 指令之前,先来说一下什么是 Shell?Shell 把我们输入的指令,传递给操作系统去执行,所以 Shell 是一个命令行的用户界面。早期程序员没有图形界面用,就用 Shell。而且图形界面制作成本较高,不能实现所有功能,因此今天的程序员依然在用 Shell。你平时还经常会看到一个词叫作bash(Bourne Again Shell),它是用 Shell 组成的程序。这里的 Bourne 是一个人名,Steve Bourne 是 bash 的发明者。我们今天原创 2022-06-08 13:24:39 · 380 阅读 · 0 评论 -
http协议状态码
原创 2021-12-04 13:05:15 · 294 阅读 · 0 评论 -
IDEA中空文件夹的展开和合并
勾选即为合并,去掉则为展开原创 2021-07-22 12:39:27 · 1291 阅读 · 0 评论 -
计算机网络系列(十)dns域名解析系统
当你在浏览器中输入一个 URL,或者用curl请求一个网址……域名系统(Domain Name System)就开始工作了。作为互联网的一个重要成员,域名系统是将互联网资源和地址关联起来的一个分布式数据库。DNS 和统一资源你定位符(URL)域名系统本质是定位资源。互联网中有各种各样的资源,比如视频、图片、文件、网页……为了准确地定位资源,人们发明了统一资源定位符(URL,Uniform Resource Locator),这样我们就可以通过字符串定位一个互联网的资源。下图是一个 URL 的示例:原创 2021-06-19 14:28:23 · 838 阅读 · 0 评论 -
计算机网络系列(九)详解socket编程
待更新原创 2021-06-19 14:07:41 · 439 阅读 · 0 评论 -
计算机网络系列(八)http真的只能够使用tcp协议吗?
待更新转载 2021-06-19 13:50:56 · 768 阅读 · 0 评论 -
计算机网络系列(七)UDP协议和TCP协议比较
待更新原创 2021-06-15 19:13:17 · 567 阅读 · 1 评论 -
对称加密和非对称加密的性能差距
import com.github.javafaker.Faker;import org.junit.Test;import javax.crypto.*;import javax.crypto.spec.IvParameterSpec;import java.security.*;import java.security.spec.InvalidKeySpecException;import java.security.spec.PKCS8EncodedKeySpec;public clas原创 2021-06-14 13:42:04 · 624 阅读 · 0 评论 -
计算机网络系列(六)详解各种网络攻击
拒绝服务攻击(DoS)拒绝服务攻击(Denial-of-Service Attack,DoS) 是一种常见的攻击手段。虽然目前互联网越来越趋向于正规化,但是对于黑产还有利用 DoS 攻击黑吃黑的现象。比较常见的就是热血传奇这款游戏的私服,搭建一个私服可以获得大额非法收入,但是因为是黑产也会经常受到黑客的攻击。黑客攻击后,再发邮件到管理员邮箱索取金钱,威胁用户不尽快打款就会一直攻击。在过去,黑产间的攻阀,DoS 就可以作为一种常见武器。DoS 的原理就是利用大量的流量迅速向一个网站发送出去。这种流量可能是原创 2021-06-11 19:28:18 · 1340 阅读 · 6 评论 -
如何抵御 SYN 拒绝攻击?
【解析】SYN 攻击是 DDoS 攻击的一种形式。这种形式攻击者伪装成终端不停地向服务器发起 SYN 请求。通常攻击者的肉鸡,发送了 SYN 之后,不等给服务端 ACK,就下线了。 这样攻击者不断发送 SYN ,然后下线,而服务端会等待一段时间(通常会在 3s 以上),等待 ACK。这样就导致了大量的连接对象在服务端被积累。针对这个特点可以实现一个 TCP 代理(防火墙),发现有发送 SYN 但是不给 ACK 的行为就对目标 IP 地址禁用一段时间。这个策略平时可以配置成开关,等到被攻击的时候打开。另一方原创 2021-06-11 19:18:44 · 212 阅读 · 0 评论 -
什么是中间件?
IDC表述的:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。IDC对中间件的定义表明,中间件是一类软件,而非一种软件;中间件不仅仅实现互连,还要实现应用之间的互操作;中间件是基于分布式处理的软件,最突出的特点是其网络通信功能。我国学术界一般认可的定义是“中间件是指网络环境下处于操作系统、数据库等系统软件和应用软件之间的一种起连接作用的分布式软件,主要解决异构网络环境下分布式应用软件的互连与互操作原创 2021-06-10 20:26:21 · 225 阅读 · 3 评论 -
计算机网络系列(五)从 HTTPS 协议的信用角度去看互联网的整个信用体系
大家在打开某些网页的时候,是否会遇到弹窗:有些小伙伴可能会有疑问:安全证书是啥来的?为什么会存在过期问题?访问这个网页是否如它所说的存在危险?其实,背后是https的信任问题以及互联网的整个信用体系。解决信用,仅仅有加密和解密是不够的。加密解密解决的只是传输链路的安全问题,相当于两个人说话不被窃听。可以类比成你现在生活的世界——货币的信用,是由政府在背后支撑的;购房贷款的信用,是由银行在背后支撑的我想要强调的是,归根结底,信用源于我们的世界,信用的背后不是数学和算法,而是人,以及围绕人形成的组织、原创 2021-06-10 13:56:00 · 658 阅读 · 3 评论 -
为什么可以相信一个 HTTPS 网站?
当用户用浏览器打开一个 HTTPS 网站时,会到目标网站下载目标网站的证书。接下来,浏览器会去验证证书上的签名,一直验证到根证书。如果根证书被预装,那么就会信任这个网站。也就是说,网站的信用是由操作系统的提供商、根证书机构、中间证书机构一起在担保。...原创 2021-06-10 13:22:21 · 110 阅读 · 0 评论 -
计算机网络系列(四)网络安全:详解对称加密算法与非对称加密算法
前言: 在学(bei)习(ba)计(gu)网(wen)课时,我们经常会看到一句话,http协议和https协议的本质区别是,http协议中数据的传输运用的是明文传输,https则是加密传输。现在,我们就详细探讨下加密传输中所用到的算法。目前有两种主流的加密方式——对称加密和非对称加密对称加密最简单的加密算法在实际的操作中我们会使用更简单直接的方式计算加密,比如交换和取补操作就是很不错的选择。假设你要加密数字 1234,假设 x 的补是 10-x,那么取补就是得到 9876。单单看这个操作太容易被原创 2021-06-08 21:47:36 · 1494 阅读 · 2 评论 -
对称、非对称加密的区别是?
对称加密和解密可以用同一套密钥。非对称加密利用数学的方法生成公私钥对,公钥加密的数据私钥可以解密,私钥加密的数据公钥可以解密。但是公钥不能解密公钥加密的数据,私钥也不能解密私钥加密的数据。...原创 2021-06-08 21:30:01 · 83 阅读 · 0 评论 -
写一张网页,用 WebRTC 实现点到点通信。
在 WebRTC 的网络世界中,视频传输可以走点到点服务。客户端被称作 Peer,Peer 的数据直接传送给另一个 Peer,我们也称作P2P 网络。在P2P 网络中,要解决 NAT 穿墙问题,WebRTC 设计了一个网络的抽象框架被称作交互式网络建立连接(Interactive Connectivity Establishment, ICE),图中的 STUN 是 ICE 的一个实现。对于一个 P2P 网络中的 Peer,它每次要接入这个 P2P 网络会获得一个身份,这个身份就包括它的 IP 地址、端口原创 2021-06-05 16:57:45 · 799 阅读 · 4 评论 -
用最熟悉的语言写一段程序,模拟成浏览器访问百度的首页获取首页数据。
我这里推荐用 selenium+py 解决这个问题。Selenium 是一个用于自动化测试框架。我这里会用到 Selenium 的 WebDriver,这个 WebDriver 支持多款浏览器,比如 Chrome、Safari 等。具体来说,可以用下面的程序引入 selenium 和选择要使用的 WebDriver:from selenium import webdriverdriver = webdriver.Chrome()我这里选择了 Chrome,然后我们就可以模拟浏览器发送请求了:d原创 2021-06-05 16:53:31 · 150 阅读 · 0 评论 -
如果你的应用需要智能 DNS 服务,你将如何实现?
首先你可以在你的域名解析系统中增加两条(或以上)ns 记录。比如说你的域名是 example.com,那么你可以增加 ns1.exmaple.com, ns2.example.com。当然,指定这两个域名的 IP 还需要配置两个 A 记录。然后你需要两台机器(也可以是容器或者虚拟机),对应 ns1 和 ns2。最好用不在同一个物理机上的两个容器,这样可以避免一台物理机故障导致服务瘫痪。然后在每个容器(虚拟机)上安装一个 Named 服务。Named 是一个专门用来提供 DNS 服务的工具,在虚拟机上安装完原创 2021-06-05 16:50:53 · 154 阅读 · 1 评论 -
并行和并发哪个好?并行和并发的概念和区别
摘要:并发与并行是两个既相似而又不相同的概念:并发性,又称共行性,是指能处理多个同时性活动的能力;并行是指同时发生的两个并发事件,具有并发的含义,而并发则不一定并行,也亦是说并发事件之间不一定要同一时刻发生。并行介绍并行在操作系统中是指,一组程序按独立异步的速度执行,不等于时间上的重叠(同一个时刻发生)。并发介绍并发是指:在同一个时间段内,两个或多个程序执行,有时间上的重叠(宏观上是同时,微观上仍是顺序执行)。并发的实质是一个物理CPU(也可以多个物理CPU) 在若干道程序之间多路复用,并发性是对原创 2021-06-02 19:03:39 · 637 阅读 · 0 评论 -
I/O 多路复用用协程和用线程的区别?
线程是执行程序的最小单位。I/O 多路复用时,会用单个线程处理大量的 I/O。还有一种执行程序的模型,叫协作程,协程是轻量级的线程。操作系统将执行资源分配给了线程,然后再调度线程运行。如果要实现协程,就要利用分配给线程的执行资源,在这之上再创建更小的执行单位。协程不归操作系统调度,协程共享线程的执行资源。而 I/O 多路复用的意义,是减少线程间的切换成本。因此从设计上,只要是用单个线程处理大量 I/O 工作,线程和协程是一样的,并无区别。如果是单线程处理大量 I/O,使用协程也是依托协程对应线程执行能力。原创 2021-05-27 12:25:33 · 316 阅读 · 0 评论 -
在缓冲区的设计时有一个 rewind 操作,这个操作的用处?
【问题】 在缓冲区的设计当中,还通常有一个 rewind 操作,这个操作是用来做什么的呢?【解析】 之前我们讨论了如果一个缓冲区是用来写入的,接下来要切换到读取状态可以使用 flip 操作。如果一个缓冲区进行了一次写和读,接下来要用它来处理另一批数据,可以使用 clear 操作来清空缓冲区。在实战当中,有时候一个缓冲区读取过了,需要再读取一次,此时就可以用 rewind 操作来重置缓冲区的 position 指针。上面过程中 flip 和 rewind 都重置了 position 指针,那么它们的区别是原创 2021-05-27 12:23:15 · 278 阅读 · 0 评论 -
DNS 域名解析系统:CNAME 记录的作用是?
CNAME 是一种 DNS 记录,它的作用是将一个域名映射到另一个域名。域名解析的时候,如果看到 CNAME 记录,则会从映射目标重新开始查询。原创 2021-05-26 23:39:28 · 1093 阅读 · 1 评论 -
内容分发网络:请简述 CDN 回源如何工作?
CDN 回源就是 CDN 节点到源站请求资源,重新设置缓存。通常服务提供方在使用 CDN 的时候,会在自己的某个域名发布静态资源,然后将这个域名交给 CDN。比如源站在 s.example.com 中发布静态资源,然后在 CDN 管理后台配置了这个源站。在使用 CDN 时,服务提供方会使用另一个域名,比如说 b.example.com。然后配置将 b.example.com 用 CNAME 记录指向 CDN 的智能 DNS。这个时候,如果用户下载b.example.com/a.jpg,CDN 的智能 DN原创 2021-05-26 23:40:32 · 326 阅读 · 0 评论 -
BIO、NIO 和 AIO 有什么区别?
这三者是三个 I/O 的编程模型。BIO 接口设计会直接导致当前线程阻塞。NIO 的设计不会触发当前线程的阻塞。AIO 为 I/O 提供了异步能力,也就是将 I/O 的响应程序放到一个独立的时间线上去执行。但是通常 AIO 的提供者还会提供异步编程模型,就是实现一种对异步计算封装的数据结构,并且提供将异步计算同步回主线的能力。通常情况下,这 3 种 API 都会伴随 I/O 多路复用。如果底层用红黑树管理注册的文件描述符和事件,可以在很小的开销内由内核将 I/O 消息发送给指定的线程。另外,还可以用原创 2021-05-18 17:23:45 · 115 阅读 · 0 评论 -
缓冲区的 flip 操作是怎么回事?
flip 操作意味翻转,是切换缓冲区的读写状态,在 flip 操作中,通常将 position 指针置 0,limit 指针不变。原创 2021-05-15 12:51:31 · 195 阅读 · 0 评论 -
epoll 为什么用红黑树?
为什么用红黑树?第一个核心诉求,是让线程可以注册自己关心的消息类型。 比如线程对文件描述符 =123 的 Socket 文件读写都感兴趣,会去中间观察者处注册。当 FD=123 的 Socket 发生读写时,中间观察者负责通知线程,这是一个响应式的模型。第二个核心诉求,是当 FD=123 的 Socket 发生变化(读写等)时,能够快速地判断是哪个线程需要知道这个消息。所以,中间观察者需要一个快速能插入(注册过程)、查询(通知过程)一个整数的数据结构,这个整数就是 Socket 的文件描述符。综合来看原创 2021-05-15 12:50:42 · 5107 阅读 · 0 评论 -
IPv6 协议还需要 NAT 吗?
IPv6 解决了 IP 耗尽的问题,为机构、组织、公司、家庭等网络提供了充足的 IP 资源,从这个角度看是不是就不需要 NAT 协议了呢?在没有 IPv6 之前,NAT 是 IP 资源耗尽的主流解决方案。在一个内网中的全部设备通过 NAT 协议共享一个外网的 IPv4 地址,是目前内外网对接的主要方式。IPv6 地址资源充足,可以给全球每个设备一个独立的地址。从这个角度看 IPv6 的确不需要 NAT 协议。但是目前的情况,是 IPv6 网络还没有完全普及。尽管很多公司已经支持自己的互联网产品可以使用原创 2021-05-10 15:43:54 · 6577 阅读 · 0 评论 -
IPv6 和 IPv4 究竟有哪些区别
IPv6 和 IPv4 最核心的区别是地址空间大小不同。IPv6 用 128 位地址,解决了 IP 地址耗尽问题。因为地址空间大小不同,它们对地址的定义,对路由寻址策略都有显著的差异。在路由寻址策略上, IPv6 消除了设备间地址冲突的问题,改变了划分子网的方式。在 IPv4 网络中,一个局域网往往会共享一个公网 IP,因此需要 NAT 协议和外网连接。在划分子网的时候, IPv4 地址少,需要子网掩码来处理划分子网。IPv6 有充足的地址,因此不需要局域网共享外网 IP。也正因为 IPv6 地址多,可原创 2021-05-10 15:42:10 · 1281 阅读 · 0 评论 -
127.0.0.1, localhost, 0.0.0.0 有什么不同
127.0.0.1是本地回环地址(loopback),发送到 loopback 的数据会被转发到本地应用。localhost 指代的是本地计算机,用于访问绑定在 loopback 上的服务。localhost 是一个主机名,不仅仅可以指向 IPv4 的本地回环地址,也可以指向 IPv6 的本地回环地址 [::1]。0.0.0.0是一个特殊目的 IP 地址,称作不可路由 IP 地址,它的用途会被特殊规定。通常情况下,当我们把一个服务绑定到0.0.0.0,相当于把服务绑定到任意的 IP 地址。比如一台服务器原创 2021-05-10 15:39:35 · 221 阅读 · 0 评论 -
计算机网络知识点总结(三)-----详谈TCP协议的三次握手与四次挥手
文章目录原创 2021-05-09 15:27:20 · 243 阅读 · 4 评论 -
NAT是如何工作的?
网络地址解析协议(NAT)解决的是内外网通信的问题。NAT 通常发生在内网和外网衔接的路由器中,由路由器中的 NAT 模块提供网络地址转换能力。从设计上看,NAT 最核心的能力,就是能够将内网中某个 IP 地址映射到外网 IP,然后再把数据发送给外网的服务器。当服务器返回数据的时候,NAT 又能够准确地判断外网服务器的数据返回给哪个内网 IP。NAT 需要作为一个中间层替换 IP 地址。 发送的时候,NAT 替换源 IP 地址(也就是将内网 IP 替换为出口 IP);接收的时候,NAT 替换目标 IP原创 2021-05-07 21:49:18 · 760 阅读 · 0 评论 -
Tunnel 技术是什么?
Tunnel 就是隧道,这和现实中的隧道是很相似的。隧道不是只有一辆车通过,而是每天都有大量的车辆来来往往。两个网络,用隧道连接,位于两个网络中的设备通信,都可以使用这个隧道。隧道是两个网络间用程序定义的一种通道。具体来说,如果两个 IPv6 网络被 IPv4 分隔开,那么两个 IPv6 网络的出口处(和 IPv4 网络的网关处)就可以用程序(或硬件)实现一个隧道,方便两个网络中设备的通信。...原创 2021-05-04 14:46:50 · 2127 阅读 · 0 评论 -
操作系统知识框架
操作系统最核心的部分是进程,因为操作系统自己不能提供服务,它要想实现价值,就必须通过安装在系统中的应用程序。而安装好的应用程序,启动后就成了进程,所以说进程处在操作系统知识体系的核心。进程往往要同时做很多事情,比如浏览器同时要处理网络、又要处理鼠标、还要展示内容,因此有了多线程的概念。进程需要执行用的存储空间,比如需要存程序指令、需要堆栈存执行数据,因此需要内存。进程需要将一部分数据持久的存储下来,因此需要文件系统。进程需要和外界通信,其中一种途径就是网络。开发过程中我们希望进原创 2021-05-01 17:30:07 · 109 阅读 · 0 评论 -
路由和寻址的区别是什么?
址(Addressing)就是通过地址找设备。和现实生活中的寻址是一样的,比如根据地址找到一个公寓。在 IPv4 协议中,寻址找到的是一个设备所在的位置。**路由(Routing)本质是路径的选择。**就好像知道地址,但是到了每个十字路口,还需要选择具体的路径。所以,要做路由,就必须能够理解地址,也就是需要借助寻址的能力。要通过寻址找到最终的设备,又要借助路由在每个节点选择数据传输的线路。因此,路由和寻址,是相辅相成的关系。...原创 2021-04-30 19:56:09 · 1926 阅读 · 1 评论 -
一台内存在 8G 左右的服务器,可以同时维护多少个连接?
TCP连接代码示例:public class Server { public static void main(String[] argv) throws IOException { var serverSocket = new ServerSocket(); var addr = new InetSocketAddress(3001); serverSocket.bind(addr); var list = new Linked原创 2021-04-28 18:16:21 · 699 阅读 · 0 评论 -
计算机网络知识点总结(二)-----关于TCP 的稳定性:滑动窗口和流速控制
文章目录原创 2021-04-26 15:41:31 · 275 阅读 · 2 评论 -
TCP 协议和 UDP 协议的优势和劣势?
TCP 最核心的价值就是提供封装好的一套解决可靠性的优秀方案。 TCP 帮助我们在确保吞吐量、延迟、丢包率的基础上,保证可靠性。历史上 TCP 也是靠可靠性起家的,有一次著名的实验,TCP 协议的设计者做了一次演示——利用 TCP 协议将数据在卫星和地面之间传播了很多次,没有发生任何数据损坏。从那个时候开始,研发人员开始大量选择 TCP 协议。然后随着生态的发展,逐渐提供了流控等能力。TCP 的成功在于它给人们提供了很多现成、好用的能力。UDP 则不同,UDP 提供了最小版的实现,只支持 Checksu原创 2021-04-26 14:24:05 · 234 阅读 · 0 评论 -
TCP 协议是如何恢复数据的顺序的,TCP 拆包和粘包的作用是什么?
TCP 拆包的作用是将任务拆分处理,降低整体任务出错的概率,以及减小底层网络处理的压力。拆包过程需要保证数据经过网络的传输,又能恢复到原始的顺序。这中间,需要数学提供保证顺序的理论依据。TCP 利用(发送字节数、接收字节数)的唯一性来确定封包之间的顺序关系。...原创 2021-04-26 00:04:16 · 224 阅读 · 0 评论 -
TCP 为什么是 3 次握手,4 次挥手?
TCP 是一个双工协议,为了让双方都保证,建立连接的时候,连接双方都需要向对方发送 SYC(同步请求)和 ACK(响应)。握手阶段双方都没有烦琐的工作,因此一方向另一方发起同步(SYN)之后,另一方可以将自己的 ACK 和 SYN 打包作为一条消息回复,因此是 3 次握手——需要 3 次数据传输。到了挥手阶段,双方都可能有未完成的工作。收到挥手请求的一方,必须马上响应(ACK),表示接收到了挥手请求。类比现实世界中,你收到一个 Offer,出于礼貌你先回复考虑一下,然后思考一段时间再回复 HR 最后的结原创 2021-04-26 00:03:51 · 72 阅读 · 0 评论 -
计算机网络知识点总结(一)-----蜂窝移动网络
文章目录蜂窝移动网络TCP三次握手四次挥手TCP粘包和拆包滑动窗口和流速控制TCP协议与UDP协议蜂窝移动网络TCP三次握手四次挥手TCP粘包和拆包滑动窗口和流速控制TCP协议与UDP协议原创 2021-04-25 18:17:31 · 1439 阅读 · 0 评论