计算机网络&Linux基础 | 青训营笔记

164 阅读5分钟

计算机网络

网络组成部分

  • 主机:客户端服务端
  • 路由器
  • 网络协议

小结:

  • 网络组成部分:有主机、路由器、交换机等组成
  • 网络结构:网络的网络
  • 信心交换方式 : 电路交换和分组交换
  • 网络分层:各层职责,物理层、链路层、网络层、运输层和应用层
  • 网络协议:标头和载荷

Web应用

HTTP

HTTP1

有队头堵塞(Head of Line Blocking),无法多路复用的问题。

HTTP2

用帧的形式传输数据,带来以下好处:

  • 调整响应传输的优先级
  • 头部压缩
  • Server Push

还是会有队头堵塞的问题。

HTTP 3:QUIC
  • Quick UDP Internet Connection
  • 现存网络设备对TCP和UDP支持已经僵化
  • UDP不靠谱但是QUIC靠谱
  • QUIC可以为除HTTP协议以外的应用层协议提供支持

CDN:DNS劫持

  • 域名解析一般由网站自己处理
  • 要加速的域名则重定向到CDN厂商的域名解析服务处理
  • CDN厂商根据来源最近的CDN服务器的IP
  • 用户直接访问最近的CDN服务器

WebSocket

  • 有状态的持久连接
  • 服务端可以主动推送消息
  • 用WebSocket发送消息延迟比HTTP低

网络安全:如何实现身份验证

  • 签名:用于鉴别身份和防止伪造
  • 非对称加密性质:加密、解密使用不同的密钥(公钥和私钥),而且公钥加密只能用私钥解密、私钥解密只能用公钥解密。
  • 数字签名:对明文内容的哈希值使用私钥加密,验证者使用公钥验证

HTTPS:

把HTTP的明文换成密文,再验证身份,即HTTPS。

HTTPS = HTTP + TLS

TLS = 身份验证 + 加解密

身份验证靠PKI

服务端身份验证靠PKI,客户端身份验证靠HTTP协议。

小结:

  • 网络安全三要素:机密性完整性身份验证
  • 没有提前交换秘密信息的前提下,无法在不安全的信道交换秘密信息
  • PKI保证了普通用户不需要“面对面”和根证书机构交换根证书
  • HTTP使用PKI完成了出客户端身份验证以外的特性,客户端身份验证靠HTTP协议实现

Linux基础

  • Linux是现代化应用程序交付的首选平台,无论是部署在裸机、虚拟化还是容器化环境
  • 公司内部服务(TCE,FaaS,SCM)统一使用Debian Linux系统
  • 熟悉Linux基础指令,熟练运维前端常用服务(Nginx,Node.js)
  • 加深对操作系统概念和实现的理解,夯实基础知识

查看Linux系统内核版本

uname -a
cat /proc/version
cat etc/os-release #查看发行版本

四个部分

  • 内核
  • shell (命令解释器)
  • 文件系统
  • 应用程序

Linux体系结构

  • 内核是硬件和软件之间的中间层
  • 内核是一个资源管理程序
  • 内核提供一组面向系统的命令

进程管理(树形结构)

  • 进程是正在执行的一个程序或命令
  • 进程有自己的地址空间,占用一定的系统资源
  • 一个CPU核同一时间只能运行一个进程
  • 进程由它的**进程ID(PID)和它父进程的进程ID(PPID)**唯一标识

查看进程信息

#查看启动的nginx进程
ps -ef | grep nginx
#查看某个进程
top -p 93824
#关闭指定的进程
kill 93824
#全部进程动态实时视图
top

进程调度

进程调度是指操作系统按照某种策略或规则选择进程占用CPU进行运行的过程。

进程调度原则:

  • 一个CPU核同一时间只能运行一个进程
  • 每个进程有近乎相等的执行时间
  • 对于逻辑CPU而言进程调度使用轮询的方式执行,当轮询完成则回到第一个进程反复
  • 进程执行消耗时间和进程量成正比

内核空间(Kernal Space):系统内核运行的空间

用户空间(User Space):应用程序运行的空间

文件系统

文件系统是操作系统中负责管理持久数据的子系统,负责把用户的文件存到磁盘硬件中,持久化的保存文件。

Linux文件系统时采用树状的目录结构,最上层是/(根)目录

虚拟文件系统

  • 应用层提供一个标准的文件操作接口
  • 文件系统提供一个标准的文件介入接口
#df命令报告文件系统磁盘空间利用率
df -T
#mount命令是挂载文件系统用的,不带任何参数运行,会打印包含文件系统类型在内的磁盘分区的信息
mount

文件读取流程

#查看当前登录用户信息
w
#查看当前用户所属的组
groups
#查看用户的uid信息
id xxxx

文件权限关于用户有三个概念:

所有者:文件的所有者

所在组:文件的所有者所在的组

其他人:除文件所有者所在组外的其他人

Linux软件包管理

  • 软件包
    • 通常只的是一个应用程序,可以是一个GUI应用程序、命令行工具或(其他软件程序需要的)软件库
  • 软件包管理
    • 底层工具:主要用来处理安装和删除软件包文件等任务,DPKG,RPM
    • 上层工具:主要用于数据的搜索任务和依赖解析任务,APT,YUM,DNF

总结

今天学习了计算机网络和Linux基础,学习了日常网页传输的原理和安全传输的条件,了解了日常服务器的环境和开发实用环境——Linux,为日后开发打下基础。