Skip to content

Latest commit

 

History

History
816 lines (777 loc) · 54.9 KB

TP3-93-计网-KomptlReto.md

File metadata and controls

816 lines (777 loc) · 54.9 KB

ComputerNetwork | 计算机网络

CLC: TP393

Dewey 004.6

计算机网络与通讯

вычислительная сеть, δίκτυο υπολογιστών, コンピュータネットワーク, 컴퓨터 네트워크, mạng máy tính (網𢵯省), เครือข่ายคอมพิวเตอร์, computer network, Rechnernetz, red de computadoras, கணினி வலையமைப்பு

课程:Stanford CS144,MIT 6.829

1 计算机网络概述

  • 1.1 互联网概述
    • 概述
      • 互联网
      • 计算机网络
      • 互连网(小写 internet or internetwork):网络通过路由器互连
    • 重要特点
      • 连通性
      • 共享
    • 互联网服务提供者 ISP (Internet service provider)
      • 主干ISP、地区ISP、本地ISP
    • 互联网交换点 IXP (Internet exchange point)
  • 1.2 互联网基本原理
    • 从工作方式分两块
      • 边缘部分か资源子网
      • 核心部分か通信子网
        • 互联网最复杂部分
        • 起重要作用时路由器,实现分组交换的关键设备
    • 交换:按某种方式动态分配传输线路的资源
      • 电路交换
        • 使用交换机
        • 面向连接
        • 阶段:建立连接、通信、释放连接
        • 缺点:突发性导致通信线路利用率低
      • 分组交换
        • 主要过程:发送端分报文为较短、固定长数据段,前面加首部为分组(packet),以之为传输单元依次发到接收端,接收端剥去首部还原为报文
        • 优点:高效、灵活、迅速、可靠
          • 可靠——网络的生存性:部分节点或链路摧毁时仍可畅通
        • 带来的问题:排队带来时延和丢弃,首部造成开销
        • IP不提供可靠服务
      • 报文交换:时延长,已不用,也是存储转发原理
  • 1.3 计算机网络概述
    • 定义
      • 要点:资源共享、独立功能、网络协议
    • 从交换功能分类:电路交换、报文交换、分组交换、混合交换
    • 从网络传输技术分类:点对点式网络(线路连结一对)、广播式网络(公共信道)
    • 从网络的作用范围分类:个人局域网(PAN, personal area network)、局域网(LAN, local)、城域网(MAN, metropolitan)、广域网(WAN, wide)
    • 网络的基本功能:资源共享、数据通信、增加可靠性、提高处理能力
    • 网络的拓扑结构
      • 拓扑结构:所有链路和设备相互关系的几何表示
      • 基本网络拓扑:总线、星型、环型、网状
    • 网络的性能指标:速率、带宽、吞吐率、时延、时延带宽积(以比特为单位的链路长度)、往返时间(RTT)、利用率
      • 时延(delay or latency):两端间传时间
        • 组成:发送时延、传播时延、处理时延、排队时延
  • 1.4 计算机网络体系结构
    • 要高度协调。分层把庞大复杂问题转化为较小局部
    • 计算机网络体系结构是计网各层及其协议的集合,是其功能的精确定义
    • OSI/RM模型 开放系统互连基本参考模型(open sys interconnection reference model),简称OSI模型,也称七层模型
    • 分层的优缺点
      • 优点:各层独立、灵活性好、结构可分隔开、易于实现和维护、能促进标准化工作
      • 缺点:降低效率;有些功能在不同层次重复出现带来额外开销
    • 网络协议(network protocol):为进行网络中的数据交换建立的规则、标准或约定
      • 三个组成要素:语法、语义、同步
    • OSI模型
      • 物理层
      • 数据链路层
      • 网络层
      • 传输层
      • 会话层
      • 表示层
      • 应用层
      • 各层功能概要
    • TCP/IP模型(transmission control protocol/internetworking protocol),目前Internet所用
      • 实际上是一个协议族,每一层许多协议,TCP和IP是主要俩
      • 各层功能
    • 五层协议的体系结构
      • 模型
      • 模型数据流与首部

2 物理层

  • 功能:通信介质的规范、信号的编码与调制、接口标准、线路复用、电路交换等
  • 2.1 数据通信的基础知识
    • 数据通信系统包括的部分:源系统(か发送端、发送方)、传输系统(か传输网络)、目的系统(か接收端、接收方)
    • 实际的信道:带宽受限、有噪声、干扰和失真
    • 通信相关基本概念
      • 信道:某方向传输信息的媒体
      • 单向通信(单工通信)
      • 双向交替通信(半双工通信)
      • 双向同时通信(全双工通信)
      • 频率:信号每秒震荡周期数。介质能容纳信号频率有范围
      • 带宽(bandwidth):介质能传送的最高低频率差,物理特性也
      • 基带信号(基本频带信号):信源からの。往往有很多低频甚至直流成分,许多信道不能传输,故调制(modulation):
        • 基带调制か编码(coding):仅变换基带信号の波形,适应信道,完了仍是基带信号
        • 带通调制:用载波(carrier)把频率搬到较高频段,转模拟信号???,适应信道
      • 信噪比:信号平均功率比噪声均功率,取分贝
        • xzb(dB) = 10log_10 (S/N)
        • (几个十倍,再乘十)
    • 通信相关定理
      • Nyquist:无噪声,介质传输最大频率f,则接受王只要2f频率采样可完整重现
      • Shannon:带宽受限且有高斯白噪声干扰的信道的极限、无差错信息传输速率(香农公式)
        • C=W×log_2 (1+S/N) bps
        • W 为信道带宽(Hz)
  • 2.2 传输介质
    • 分类
      • 按介质特性:金属导体(双绞线、同轴电缆)、透明玻璃或塑料绳(光导纤维)、空气
      • 按某:有线介质、无线介质
    • 2.2.1 双绞线(twisted-pair cable)
      • 概述:两根相互绝缘铜线,螺旋状绞一起抵消噪声
      • 分类,按是否屏蔽
        • 屏蔽双绞线(STP, shielded twisted-pair):几对双绞线外用铜编织网或金属箔包上,有的每对双绞线外有金属箔
        • 非屏蔽双绞线(UTP, unshielded twisted-pair)
          • 优点:便宜、使用简
      • 分级或分类,按电气特性
        • (各种带宽)
        • (几对几芯,比如2对4芯、4对8芯,就是对数和根数吧)
      • UTP的连接头
        • 各线的功能。8针脚,一半不使用。
        • 作り方
    • 2.2.2 同轴电缆(coaxial cable)
      • 概述:内导体铜质芯线、绝缘层、网状编制的外导体屏蔽层、(再来个绝缘层、)保护塑料外层。屏蔽网故抗干扰能力好
    • 2.2.3 光纤
      • 概述:网络传输介质中性能最好、前途最广。用光脉冲形成的数字信号,带宽大,不受电磁干扰。
      • 结构:透明石英玻璃拉细丝作纤芯,&包层(低折射率)、吸收外壳、防护层。
        • 其中传输方式是不断全反射。从纤芯射到纤芯表面的入射角大于一定值便可全反射。
      • 分类
        • 多模光纤:多条不同入射角度光线
        • 单模光纤:直径减小到只有几个光波长,就像波导使一直向前不多次反射(脉冲也不变形)
      • 连接头
      • 优点
        • 容量大;损耗小中继距离长;抗电磁干扰;无串音干扰,保密性好;小轻
    • 2.2.4 无线传输介质
      • 电磁波频谱
      • 无线通信波段
      • 电磁波传播方法:地面传播(描地)、天空传播(反射)、视线传播(直线)
      • 微波传输:几乎直线,可用蝶形天线集中到一小束
        • 方式:地面微波接力通信、卫星通信(中继站在卫星)
  • 2.3 数字传输和模拟传输
    • 转换
      • 数字👉数字:编码
      • 模拟👉数字:数字化
      • 数字👉模拟:调制
    • 数字信号常用的编码方式:不归零制、归零制、曼彻斯特(01中间皆跳)、差分曼彻斯特(0跳1顺)
    • 模拟信号的数字化——数字传输
      • 数字信号易于减少噪声
      • 有限个离散值に转
      • 脉冲编码调制(PCM, pulse code modulation)为常用。
        • 四个过程:脉冲振幅调制(PAM, pulse amplitude modulation)(时间离散)、量化(振幅离散)、二进制编码、数字-数字编码
        • 规定采样频率、每个采样几个比特位
    • 数字信号の调制——模拟传输
      • 数字信号的方波频谱宽、低频部分多,故抵偿本远距离通信要调制。用基波承载
      • 调制机制,四种:
        • 振幅键控(ASK, amplitude shift keying):每波特振幅有别
        • 频移键控(FSK, frequency shift keying):每波特频率有别
        • 相移键控(PSK, phase shift keying):每波特相位有别
          • 4-PSK:波特4种,故每波特2位
        • 正交调幅(QAM, quadrature amplitude modulation):现在多用。同时改幅相。每信号(波特)8(8-QAM)、12、15(ADSL所用)比特
  • 2.4 复用技术(multiplexing):允许一条线路传输多个信号
    • 频分复用(FDM, frequency-division multiplexing)
      • 模拟信号用
      • 所有用户,同样时间,不同的频段资源
      • 调制器(modulator。载波频率不同)👉相加👉传播👉带通滤波器👉解调器(demodulator,也那个载波频率)👉基带信号
    • 时分复用(TDM):不同时间相同频带宽度。保持信号物理上的独立性,逻辑上结合
      • 分类
        • 同步TDM:每用户固定时间窗
        • 异步TDM,か统计TDM:每一帧的每一个位置谁都可以用,写自己的名字
    • 波分复用:就是光的频分复用,一根光纤多个光载波信号
    • 码分复用
  • 2.5 宽带接入技术
    • 米联邦通信委FCC认为双向速率之和超200kbps即宽带
    • 目前常用的有限宽带上网方式:
      • 电话线:xDSL
      • 有线电视:有线通(cable modem)
      • 光纤:FTTx
      • 电力线:PLC
    • 2.5.1 xDSL 技术:利用数字技术对现有模拟电话用户线进行改造,使可承接宽带
      • DSLは数字用户线(digital subscriber line)。x表示不同前缀表示DSL上实现的不同宽带方案
      • xDSL 进来的线路连接到不同于电话的交换机,没有滤波器因而发挥本地回路全部承载能力
      • ADSL调制技术:采用DMT(discrete multiTone,离散多音调频)调制解调技术,频带分为256子信道
      • ADSL数据率:不保证固定的数据率,看用户线具体条件,会自适应使尽可能高
      • ADSL组成、接入方式(低通来通话,高通宽带数据)
    • 2.5.2 光纤同轴混合网 HFC(Hybrid Fiber Coaxial):基于目前覆盖面很广的有线电视网CATVな居民宽带接入网
      • 除可传送CATV还提供电话、数据和其他宽带交互型业务
      • 现有的CATV是树形拓扑ナ同轴电缆网络,用模拟技术的频分复用,单向传输电视节目
      • HFC将CATV的同缆换为光纤,使用模拟光纤技术(采用光的振幅调制AM,比数字光纤更经济)
      • 结点体系结构:主干光纤,末端有的经光电转换转同轴电缆,再小区へ
      • 有线电视电缆频率分配
      • cable modem か 线缆modem,是为HFC网使用的调制解调器
    • 2.5.3 FTTx 技术(Fiber To The x,光纤到x)
      • 光纤到哪
        • 光纤到家FTTH (home):一直铺设到用户家庭,终极方案
        • 光纤到大楼FTTB (building):进大楼转换为电信号,然后电缆或双绞线
        • 光纤到路边FTTC (curb):路边到各用户可用星型结构双绞线
      • 无源光网络PON:局端(有光线路终端OLT)👉光配线网(ODN。有光分路器)👉用户端(有光网络单元ONU)
    • 2.5.4 PLC 技术:电力线通信(power line communication),利用输电和供电的电力线进行高速数据传输
      • 设备
        • 局端:负责与内部PLC调制解调器的通信和与外部网络的连接
        • 调制解调器
      • 优点:成本低;范围广;较高速率;永远在线(即插即用,接入电源就等于接入网络);便捷(有电源插座的地方就能上网)
      • 缺点:噪声大、安全性低;是一种共享宽带技术,速度决定于当时用户数

3 数据链路层(data link layer)

  • 数链层使用的信道
    • 点对点信道:一对一
    • 广播信道:一对多,必须用专用的共享信道协议(多路访问协议)协调数据发送
  • 3.1 数据链路和帧
    • 链路(link):点到点物理线路段,没有交换结点。是通路的组成部分
    • 数据链路(data link):除了物理线路,还有通信协议控制数据传输,实现它的软硬件
      • 最常是用适配器(网卡)实现这些协议的软硬件
      • 一般适配器都包括物链两层功能
    • 帧:链层传的是帧
      • 帧管理构成叻链层工作的核心
      • IP数据报装入/取出自帧
      • 封装成帧(framing):数据前后分别加首部尾部,构成帧,确定帧的界限
      • 首部尾部一个重要功能は帧定界
      • 用控制字符进行帧定界:最前SOH(start of header),最后EOT(end of transmission)
        • 透明传输:转义字符ESC,用于原始数据恰好含SOH, EOT, ESC时放它前面
      • 差错检测
        • 检错:检测出信息的改变,多数情况丢弃并通知重发
        • 纠错:检测到错误可以纠正而不用重发的能力
        • 检错采用冗余技术,即信息加上附加比特,通讯中的冗余技术有
          • 奇偶校验(parity checking):校验位使1的总数是偶数(或奇数),只要改变的总比特数是奇数就能检
          • 循环冗余校验(CRC, cyclr redundancy check):基于二进制除法,数据单元末尾附加一串冗余比特(CRC码)
            • 链层传送的帧广泛采用
            • 原数据单元,后n位是0;用n+1除数除,余数是CRC;接收方把数据再除应得到余数是0
            • 检错能力:所有影响奇数位的,所有长度小于等于CRC多项式阶数的,一定概率检测出长度r+1的错误,一定概率检测出大于r+1
          • 校验和(checksum):高层协议使用的通常为校验和
            • 正确接受结果是0
        • 注意:仅采用CRC只能做到无差错接收(接受的都可以认为是无差错),但可靠传输(发什么就收什么)还需要确认和重传机制
  • 3.2 点对点协议 PPP:点对点线路中最广泛
    • 首部:标志字段F、地址字段A(实际没用)、控制字段C、协议字段(表示IP数据报、网络控制数据、PPP链路控制数据、鉴别数据)
    • 尾部:FCS、F
    • 透明传输:同步传输时用硬件完成比特填充,异步用字符填充法
      • 字符填充:都是用0x7D开头的二字节序列,替换信息中出现F、0x7D、ASCII码控制字符
      • 零比特填充(用在SONET/SDH链路时,使用同步传输,即一连串比特连续传送,用此):连续5个1则立即填0,接收端每有连续5个1删后接的0(6个1会被认为是标志字段F)
    • 特点:简单的点对点;不可靠没有差错控制(帧检验序列FCS保证无差错接受;因为IP也不保证可靠传输所以PPP没必要差错控制)
  • 3.3 多路访问协议
    • 广播信道也叫多路访问信道
    • LAN中,发送方数量多且多变,流量是突发性,所以FDM, TDM不适用
    • 多路访问协议分类
      • 随机访问协议:ALOHA, CSMA, CSMA/CD, CSMA/CA
      • 受控访问协议:reservation, polling, token passing
      • 通道化协议:FDMA, TDMA, CDMA
    • ALOHA
      • 有数据要发送就发送,碰撞/冲突就等待随机时间后重试
      • 多个无协调关系竞争单个共享信道的系统适用
      • 中枢收到了就用一个不同频率(不干扰进入信号)发确认,站点没收到确认就等重发
      • 优点:简单性,传输量不多时很好
    • CSMA协议(载波侦听多路访问,carrier sense multiple access)
      • 载波侦听:站点监听是否有载波(即有传输),检测到空闲才发送
    • CSMA/CD 协议(带冲突检测的载波侦听多路访问,carrier sense multiple access with collision detection)
      • 整个传输过程继续监听,检测到冲突就放弃并等待随机时间
    • CSMA/CA(CSMA with collision avoidance, 冲突避免):无线产品的适配器不易检测信道的冲突,所以一个无线访问接入点(AP, access point)控制对介质的所有访问,保证只有一个发
    • 令牌传递:每个站点只有在轮到自己才发,每次也有时限
  • 3.4 以太网(ethernet)
    • DIX Ethernet V2 与IEEE802.3支持的LAN标准差别很小,802.3局域网可以简称为以太网
    • 3.4.1 以太网的工作原理
      • 802委员会把链层拆成媒体接入控制子层(MAC)と逻辑链路控制子层(LLC),分别与传输媒体有关、无关
      • TCP/IP一般用DIX Ethernet V2而不是802.3,所以802制定的LLC作用不大,很多适配器只有MAC协议
      • 网卡か通信适配器(adapter)か网络接口卡(NIC, network interface card)
        • 功能:串行并行切换(I/O总线出来并行的);缓存数据;实现以太网协议
      • 差错帧直接丢弃,别的等高层。尽最大努力的交付。
      • CSMA/CD 协议
        • 的以太网不能实现全双工,只能半双工。发送后一段时间有碰撞可能额(检测最久要端到端传播时延的两倍)
        • 要点
          • 准备发送
          • 检测信道。96比特保持空闲(保证了帧间最小间隔)就发送
          • 检查碰撞:争用期内检测到碰撞,立即停止,按规定发送认为干扰信号,适配器执行指数退避算法,r倍512比特时间等待;重传16次不成功则停止重传,报错
    • 3.4.2 传统以太网的连接方法
      • 可使用的传输媒体:铜缆(粗缆或细缆)、铜线(双绞线)、光缆
      • 10 BASE 5: 10 Mbps, Baseband(digital), 500m (2-185m, T-双绞线, F-光纤)
      • 10 BASE T 双绞线以太网的出现是局域网发展史的里程碑
        • 通信距离稍短
        • 对应星型网出现,降低成本,提高可靠
      • 集线器:使用电子器件模拟实际的电缆线的工作,因此整个系统仍然像一个传统的以太网一样运行
      • 集线器像多端口转发器,工作在物理层
      • 使用集线器的以太网,逻辑上仍是一个总线网,各工作站还是CSMA/CD协议
    • 3.4.3 以太网的 MAC 帧格式
      • 首部:目的地址、源地址、类型(标志上一层协议)
      • 尾部:FCS
      • 另外,物理层插入8字节前同步码、帧开始定界符
      • MAC层硬件地址
        • 局域网中,硬件地址か物理地址かMAC地址,48bit
        • 路由器同时连接两个网络,因此两个适配器、两个硬件地址
        • 适配器从网络收MAC帧,先硬件检查MAC地址,本站的才收下否则丢弃
          • 发往本站的包括:单播、广播、多播
      • 无效的MAC帧
        • 表现为
        • 丢弃
      • 帧间最小间隔:对传统10Mbps以太网为9.6μs即96bit的发送时间,检测到总线空闲后这么久才能发,是为了让刚接受的缓存来得及清理,做好接收准备
    • 3.4.4 100BASE-T 以太网
      • 高速以太网:达到或超过100Mbps者
      • 特点:可在全双工方式工作而无冲突,此时不用CSMA/CD;帧间间隔时间更小
      • 物理层标准
    • 3.4.5 千兆以太网
      • 允许在1Gbps写全双工或半双工,全双工方式通过交换机进行点到点传输,半双工CSMA/CD协议
      • 向后兼容
      • 物理层
    • 3.4.6 10G比特以太网
      • 只使用管线
      • 只工作在全双工
      • 更快的以太网:10GE, 40GE/100GE
    • 3.4.7 以太网宽带接入
      • 特点:端到端以太网传输不需要帧格式转换;不支持鉴别用户身份
      • PPPoE(在以太网上运行PPP,PPP over Ethernet)
        • FTTx都是用PPPoE接入,光猫到ISP之间PPPoE协议通信
        • ADSL,用户电脑到ADSL Modem之间是以太网,ADSL Modem到ISP端Modem用PPPoE
  • 3.5 扩展局域网
    • 局域网互联设备有中继器、集线器、网桥、交换机,不同层次
    • 中继器(repeater)か再生器,重新产生信号,来扩展局域网覆盖区域
    • 集线器(HUB),有集线与中继功能,简单转发至其他端口,同一时刻只能一个用户,只能连接速率相通的端口
    • 网桥(bridge),在数据链路层,根据MAC帧目的地址转发收到的帧,有过滤功能,
      • 不改MAC地址
      • 优点:过滤通信量;扩大物理范围;提高可靠性;可互联不同物理层、不同MAC子层、不同速率局域网
      • 缺点:存储转发增加时延;不同MAC子网的网段桥接在一起时延更大;无法隔离广播风暴
      • 乄集线器:集线器转发不需要检测传输媒体,网桥转发前先CSMA/CD算法
      • 桥接不同网络,的一些问题:帧格式;速率不同;最大帧长度不同;安全问题;服务质量
        • 帧首部在标准间转换
    • 交换机(switch):实质上是多端口的网桥
      • 特点:端口直接连主机,一般全双工;并行性,同时多对端口;通信皆独占媒体,无碰撞传输;缓存;即插即用,帧交换表是自学习建立;硬件转发很快
      • 交换机自学习和转发帧
        • 自学习:交换表中有无匹配,没有接增加,有就更新(进入口、有效时间)
        • 转发真:交换表有无匹配,无向所有其他
    • 虚拟局域网(VLAN, Virtual LAN)
      • 一些局域网网段构成,与物理位置无关的逻辑组
      • 限制了接收广播信息的工作站数,使网络不会因传播过多广播信息恶化
      • 划分
        • 静态VLAN:基于端口
        • 动态VLAN:基于MAC地址、子网、用户
      • 帧格式:以太网帧格式里插入4字节标识符,即VLAN标记,标识哪一个VLAN

4 网络层(network layer)

  • 4.1 IP 协议
    • TCP/IP体系中两个最主要的协议
    • 与IP配套还有四个协议:地址解析协议ARP(address resolution protocol)、逆地址解析协议RARP(reverse address resolution prot.)、因特网控制报文协议ICMP(Internet control message prot.)、因特网组管理协议IGMP(Internet group management prot.)
    • IP协议使性能各异的网络从用户看是统一网络
    • 4.1.1 分类的 IP 地址
      • IP地址:整个互联网单一抽象,IP地址是每个连接在互联网的主机或路由器的世界唯一32bit标识符
        • 点分十进制记法提高可读性
      • IP地址编址方法
        • 分类的IP地址:最基本
        • 划分子网:对最基本方法改进
        • 构成超网:比较新的无分类编址方法
      • IP地址分类方法
        • A类,0始,三字节主机号
        • B,10始,2字节主机号
        • C,110始,1字节
        • D,1110始,后面multicast address
        • E, 1111始,后面reserved for future use
      • 特殊IP地址
        • 网络号任,主机号全0,标识一个网络,主机号全1直接广播;网络号127本机回送地址
      • IP地址一些重要特点
        • 分网络、主机两个等级,分配方便,路由器仅根据网络号转发
        • 一台主机或路由器连接两个网络要两个IP地址,网络号不同
        • HUB或网桥连起来的局域网还是一个网络
    • 4.1.2 IP 地址与硬件地址
      • 链路层及以下用硬件地址,网络层及以上用IP
    • 4.1.3 地址解析协议 ARP:从网络层IP地址解析硬件地址
      • 主机有ARP高速缓存(ARP cache),有所在局域网各主机和路由器IP到硬件映射,和地址映射有效时间
      • 广播ARP请求分组
        • 收到请求分组就把里面IP、硬件映射写到自己ARPcache
    • 4.1.4 IP 数据报的格式
      • 首部+数据。
      • 首部:固定长度+可选字段
        • 固定部分:版本、首部长度、服务类型、总长度、标识、标志(3位,后两位MF(more fragment,还有分片,0表示最后个), DF(Don't fragment,不允许分片))、片偏移、生存时间(TTL, time to live,网络中可通过路由器数最大值)、协议、首部校验和、源地址、目的地址
      • 首部与分片有关的字段:总长度、标识、MF、DF、片偏移
    • 4.1.5 IP 层转发分组的流程
      • 查找路由表
        • 根据目的网络地址能确定下一跳路由器;特定主机路由
      • 默认路由(default route)较少路由表空间、搜索时间
      • 分组转发算法:提取目的地址,与路由器直接相连则给,否则路由表下一跳,否则默认
  • 4.2 划分子网和构造超网
    • 网络早期,IP地址设计问题:地址空间利用率;每个物理网络一个网络号太大;两级IP不够灵活
    • 划分子网(subnetting):子网号字段,使变成三级IP地址
    • 子网掩码(subnet mask),方便找出IP地址的子网部分,32位,一位=1表示IP中对应位网络号和子网号,=0则对应位主机号
      • IP地址 AND 子网掩码 = 网络地址
      • ABC类默认子网掩码
      • 是网络的重要属性:路由器交换信息要说;路由表每个项目都要给子网掩码;
      • 子网划分方法:固定长度子网、变长子网
      • 子网下路由器转发分组的算法:提取目的IP,子网掩码与相AND得网络地址,有就直送,否则;特定主机路由;网络;默认路由
    • CIDR 无分类编址(无分类域间路由选择, classless inter-domain routing)
      • 可变长的网络前缀
      • 斜线记法,后面是掩码1的个数
      • 全追相通的连续IP地址组成「CIDR地址块」
      • 路由聚合:CIDR地址块可以很多地址
        • 利于减少路由选择信息交换
        • 也叫构成超网(supernetting)
      • 最长前缀匹配(长则地址块小则路由具体)
  • 4.3 ICMP 协议(网际控制报文协议,Internet control message protocol)
    • 允许主机或路由器报告差错情况和提供有关异常情况的报告
    • ICMP报文种类
      • ICMP差错报告报文
      • ICMP询问报文
      • IP数据报装进ICMP
      • 不应发送差错报告几种情况:差错の差错;多播;特殊地址
      • 应用
        • ping(packet interNet groper):测试两个主机的连通性
        • ICPM风暴
        • tracert 跟踪分组从源点到终点的路径
  • 4.4 路由选择协议
    • 理想的路由suanfa
    • 最佳路由
    • 路由算法的自适应性
      • 静态路由选择策略か非自适应性,不能及时适应网络状态变化
      • 动态路由选择策略か自适应路由选择,实现起来复杂开销大
    • 分层次的路由选择协议
      • 互联网采用分层次的:规模大,隐藏单位内部网络布局细节
      • 自治系统AS:单一技术管理下的一组路由器
        • 一种AS内部和一种AS之间路由选择协议
    • 互联网有量大类路由选择协议
      • 内部网关协议IGP(interior gateway prot):自治系统内,如RIP、OSPF
      • 外部网关协议 EGP(external ):如BGP-4
    • 路由信息协议RIP:内部网关协议中最先广泛使用
      • 分布式基于距离向量
      • 每个路由器维护从自己到每个网络距离记录
      • 距离定义:也叫跳数
        • RIP允许一条路径15路由器,超过相当于不可达
      • 三个要点:仅和邻居;交换的是自己的路由表;按固定时间间隔交换信息
      • 路由表的建立:刚开始只知道直连的1,此后相邻路由交换更新信息
      • 距离向量算法
      • 有点:实现简单、开销小
      • 缺点:限制网络规模,最大距离15;路由器之间交换完整路由表;好消息传得快,坏消息传得慢
    • 路由器:互联网关键设备
      • 主要作用:联通不同网络;选择信息传送线路
      • 分组丢弃:处理分组速率赶不上进入队列速率。一大主要原因,输入输出溢出
  • 4.5 IPv6 协议
    • 主要变化:大地址空间;扩展地址层次结构;灵活首部;改进选项;允许扩充;即插即用(自动配置,不用DHCP);支持资源预分配;8字节对齐,首部8字节整数倍
    • 数据报一般格式
      • 基本首部
      • 有效载荷か净负荷,允许多个扩展首部
    • 通信量类(traffic class):为了区分不同IPv6数据报类型、优先级首先区分两大业务量——收拥塞控制的业务量と不受
      • 不受拥塞控制的业务量:拥塞时不能进行速率调整的姑娘
    • 流标号(flow label)20位,流式网络上特定源点到特定终点一系列数据报,流经过每一个路由器保证指明的服务质量
    • 扩展首部
      • 途中经过的路由器不处理
      • 六种:逐跳选项、路有选择、分片、认证、加载安全负载、目的站选项
    • 目的地址:三种基本类型:单播、多播、任播(目的站一组计算机,只交付其中一个,通常最近个)
    • 地址格式:冒号十六进制,冒号分隔,允许零压缩;点分十进制记法
    • IPv6地址分类:未指明、环回、多播、本地链路单播、全球单播
    • 要向后兼容
      • 双协议栈
        • 部分主机、路由器两个协议栈
      • 隧道技术:路由器把包装成IPv4,走传统路径一直到
  • 4.6 虚拟专用网络 VPN (virtual private network)
    • 公司内网使用专门地址
    • 专用地址か本地地址か保留地址か私有地址:仅在单位内部称专用网
      • 路由器一律不转发
    • 全球地址:全球唯一,ISP分配
    • 采用这样专门IP地址的互连网乘
    • 公网作为机构专用网通信载体,称虚拟专用网VPN(virtual private network)
    • 通常VPN数据加密
    • 远程接入VPN(remote access VPN)
      • 利用隧道技术实现虚拟专用网:加个外部网的首部
    • 网络地址转换NAT(network address translation)
      • 专用网到全球地址
      • 网络地址与端口号转换NAPT(network address and port translation)
      • NAPT 地址转换表:不同地址换成统一全球地址的不同端口(LAN端,WAN端)

5 传输层(transport layer)

  • OSI和TCP-IP参考模型の核心,提供独立于具体网络、可靠的端-端数据传输
    • 链层:结点到结点
    • 网层:主机到主机
    • 输层:进程到进程
  • 5.1 传输层概述
    • 功能:
      • 提供应用进程间的逻辑通信
      • 差错检测
    • 两种传输协议
      • 无连接的用户数据报协议(UDP, user datagram protocol)
        • 传之前不用连接;单位是UDP报文或用户数据报;不需要确认;不提供可靠交互但些况最有效
      • 面向连接的传输控制协议(TCP, transmission control protocol)
        • 面向连接;单位是TCP报文段(segment);不提供广播、多播服务;增加开销,增首部,占资源
    • 端口
      • 用来标识进程;不同于进程标识符;16bit端口号(0~65535);只有本地意义,本计算机应用层各进程
      • 类型
        • 熟知端口号:统一分配控制(0~1023)
        • 注册端口号:在IANA注册防重复(1024~49151)
        • 临时端口号:给用户进程暂时选用(49152~65535)
  • 5.2 UDP 协议
    • 只在IP的数据报服务上加很少功能
      • 端口的复用分用
      • 差错检测
    • 主要特点:无连接;尽最大努力交付;面向报文,应用层报文不合并不拆分;没有拥塞控制,拥塞不使发送速率降低(适合实时、多媒体)支持一对一一对多多对一多对多;首部只有8字节
    • 面向报文
      • 保留报文边界,加首部就给IP层;应用层多长它多长;应用程序要选择合适大小的(太长,IP层分片,太短,IP数据报首部相对太大低效)
    • 首部格式
      • 源端口、目的端口、长度、校验和
      • 还有仅为了计算校验和的伪首部(源IP、目的IP、0、17、UDP长度)
    • 应用:报文短,对报文可靠性要求不高的
  • 5.3 TCP 协议
    • 特点:面向连接;只能一对一(点对点)(一条连接只两个端点(endpoint));可靠交付服务を提供;全双工通信;面向字节流((stream)は流入流出进程的字节序列)(指应用程序交的数据块们仅看作无结构字节流)
    • 面向流
      • 不保证收到数据块和发出的有大小关系;字节流却必须收发同;写、读の缓存
    • 注意
      • 虚连接不是物理连接;根据对方接收窗口值和拥塞程度决定一个报文段的字节;可把太长的数据块划分,太短的を积累足够多的
    • 首部格式
      • 传输单元はTCP段,由20字节固定头、可能的选项头、数据字节
      • 段长度受IP包数据域长度(最大约65535字节)及链路MTU(Maximum Transmission Unit)限制,实际以太网MTUは1500,故TCP段最大1480字节
      • 源端口、目的端口、序号、确认号、头部长度、保留、URG,ACK,PSH,RST,SYN,FIN、窗口大小、校验和、紧急指针
  • 5.4 可靠传输
    • 理想传输条件:信道不生差错,发送方多块接收方都来得及处理
    • 停止等待协议:简单的流量控制与差错控制,每发送完一个分组就停止发送等确认(ACK)后再下一个,否则超时重发;分组、ACK都是重复的底丢弃
      • 注意:发了分组暂留副本备重发;分组和确认分组都要编号;超时计数器重传时间长于平均往返时间;简单,信道利用率低
    • 报文发送时机:TCP维护变量最大报文段长度MSS(Maximum Segment Size),缓存数据达到MSS就组报文段;发送方可指明要求发送,即推送(push)操作;发送方计时器期限到了就缓存数据都发(还是不超MSS)
  • 5.5 TCP传输连接管理
    • 每一条TCP连接唯一确定于通信两端端点(即套接字,socket)
    • 传输连接的阶段
      • 连接建立
        • 要解决的问题:确知对方存在;允许协商参数(最大报文段长度、最大窗口值、服务质量)、能对传输实体资源分配(缓存大小、连接表中的项目)
        • 数据包可能丢失、重复、不按顺序
        • 三次握手算法(交换三个TCP报文段)(防止失效的请求报文段到达而错) Three-Way Handshake
          • 客户切SYN-SENT,发SYN=1, seq=x
          • 服务器切SYN-RCVD,发SYN=1, ACK=1, seq=y, ack=x+1
          • 客户切ESTABLISHED,发ACK=1, seq=x+1, ack=y+1 (注意这里没有SYN咯,就确认)
          • 服务器切ESTABLISHED
      • 数据传送
      • 连接释放
        • 传输结束后双方都可释放
        • 四次挥手协议 Four-Way Handshake
          • A切FIN-WAIT-1,发FIN=1, seq=u
          • B切CLOSE-WAIT,发ACK=1, seq=v, ack=u+1
            • 到达A后A切FIN-WAIT-2
          • 被动关闭后B切LAST-ACK, 发FIN=1, ACK=1, seq=w, ack=u+1
          • A切TIME-WAIT,发ACK=1,seq=u+1, ack=w+1
          • A自己等2MSL关闭
          • B收到FIN的ACK就关闭
        • A必须等2MSL(最大报文生存时间,maximum segment life):保证A发送最后一个ACK能到达B;防止已失效连接请求报文段出现(2MSL本连接产生所有报文段皆消失矣)
      • 简单总结三次握手四次挥手:握手は客 SYN 服 ACK+SYN 客 ACK,挥手は甲 FIN 乙 ACK 乙 FIN 甲 ACK。之所以三四不一,在于第二者发ACK时是否同时发SYN/FIN
        • 分别发三个四个报文。最主要的标志位就是SYN/FIN和ACK。(理解本质嘛,有时候不必过于深入地关注每个报文的序列号和确认号)

6 应用层

  • 每个应用层协议解决个应用问题
  • 规定应用进程通信遵循的协议
  • 许多基于客户/服务器方式
  • 6.1 网络计算模型
    • 集中式计算模型(centralized computing):所有处理在主机
    • 文件服务器模式(分散式),只适用于小规模局域网,用户多数据多就会网络瓶颈
    • 分布式计算模型(distributed computing)
      • 客户/服务器模式(client/server)
        • 用户界面和应用逻辑在客户机,数据库服务器在服务器
        • 优点:充分利用服务器高性能;流量小
        • 问题:系统移植困难、对客户端资源要求高、用户界面风格不一、客户端维护困难
          • 每一套信息系统要相应客户端,胖客户端
          • 不适应高用户量、高安全性、客户端零管理要求
      • 浏览器/服务器模式(browser/server)
        • 用户界面在客户机(表现层)、应用逻辑在应用服务器(应用层)、数据库服务器在服务器(数据层)
        • 优点:各层较独立,适应环境变化;数据库安全性;客户端不用专用软件只要浏览器,瘦客户端也;客户端零管理
        • 不足:应用服务器返回的不止数据还有大量显示格式;CS、BS都有单点服务瓶颈、无法抵抗DoS攻击等问题
      • P2P计算模式(peer to peer):非中央化,没有客户或服务器的状态区分;各点逻辑对等直接通信;每个节点都提供一些资源,加入的节点多则性能强(异于BS)
  • 6.2 域名系统 DNS:分布式的域名系统,用以作为主机名字的层次结构的命名树
    • 若干域名服务程序完成,运行域服的机器谓域名服务器
    • 域名,经DNS👉IP地址,IP经ARP👉MAC地址
    • 互联网的域名结构
      • 层次树状结构,任何因特网主机或路由器唯一
      • ... .三级域名.二级域名.顶级域名
      • 从叶到根的路径,用点分开
    • 域名服务器
      • 一个服务器管辖的叫区(zone),每一个区有权限域名服务器(该区所有主机域名到IP地址)
      • 区可≤域,如abc.com域可以分成y.abc.com, abc.com区(这样是两个权限域名服务器)
      • 本地域名服务器采用迭代查询(DNS域名解析过程)
        • 本机m.xyz.com找本地域名服务器dns.xyz.com,本地域服查根域名服务器、顶级域名服务器dns.com、权限域名服务器dns.abc.com以返回地址
      • 名字的高速缓存:每个域名服务器维护一个,最近用过的名字,何处获得名字映射,每项内容设计时器
  • 6.3 文件传输 FTP:屏蔽计算机系统的细节,适合异构网络任意计算机传送文件
    • 特点
      • 只提供基本服务,使用TCP可靠传输服务
      • 主要功能减少不同OS处理文件的不兼容
      • CS模式
      • 服务进程分一个主进程、若干从属进程
    • 工作过程:监听端口21;接受请求启动从属的控制进程建立“控制连接”(主进程回去等别人);客户端口令后通过控制连接 传送到控制进程;控制进程创建“数据传送进程”,通过端口20建立数据传输连接;客户端通过控制连接传送交互命令,通过数据连接接受文件数据;结束了释放俩连接,俩进程终止
    • 两个端口
      • 21服务器进程也,同时告诉服务器自己的另一端口号码用来数据传送
      • 20服务器传送数据
      • 两个端口号,数据连接控制连接不混乱,简单易实现协议
  • 6.4 电子邮件 Email
    • 两个子系统
      • 用户代理:本地,阅读、编辑、发发送、信箱管理
      • 消息传输代理:后台的系统守护进程,系统间传递信件
    • 优点:快捷,廉价,不打断工作休息
    • 缺点:无法确认接收方看过;垃圾邮件尚无有效对策
    • 主要组成构件:SMTP(用户代理发送到邮件服务器,邮件服务器间)、POP3(接收方邮件服务器读取到收件人用户代理)
      • 简单邮件传送协议(SMTP, simple mail transfer protocol):运行在TCP上,端口25;简单命令传输邮件
      • 邮局协议POP3协议,CS方式,服务器端口110,TCP连接
    • WebMail:服务器间SMTP,两端都HTTP
    • 通用因特网邮件扩充MIME(Multipurpose Internet Mail Extensions)
      • SMTP缺点:不能传送可执行文件、二进制对象,限于ASCII码,不能超长
      • MIME定义传送非ASCII,转ASCII再给SMTP
  • 6.5 万维网 WWW(world wide web):数量巨大遍布全球的文档组成,这些文档はWeb页
    • 分布式服务,Web服务器互相链接
    • Web三要素
      • URL 统一资源定位符(uniform resource locator),标识各种资源(文档)
        • 相当于文件名在网络范围扩展
        • < URL 访问方式 >://< 主机>:< 端口>/< 路径>
          • 访问方式有ftp文件传送协议, http超文本传送协议, file本地文件访问协议
      • HTML 超文本标记语言(hyperText markup language),用于描述网页文档,其超链接描述资源与资源的关系
      • HTTP 超文本传送协议(hyperText transfer protocol),访问资源,浏览器与Web服务器间交互
        • 应用层,使用TCP可靠传输
        • 基于消息,可以在异构系统间
    • 万维网工作过程:浏览器、服务器建立TCP链接、HTTP请求报文、HTTP响应报文、释放TCP连接
    • 用户点击超链接后发生的事件:浏览器分析指向页面的URL;浏览器向DNS请求解析IP地址;DNS返回IP地址;浏览器向之的 端口80 建立TCP连接;发送取文件命令;服务器响应把文件发给浏览器;TCP连接释放;浏览器显示文件内容
    • 服务器端的工作: 端口80 监听,与请求客户建立TCP连接;确定请求的web也(名字拓展);(若需要)认证客户、对其访问控制;(若需要)对请求页面访问控制;检查请求的也在否高速缓存;不在则本地磁盘读取;切丁包含在响应中的MIME类型;文件返回,日志记录;释放连接
    • HTTP报文结构:两类,请求报文、响应报文
      • 面向正文(text-orient),每个字段都是ASCII码串
      • 三部分,开始行、首部行、实体主体
      • 请求报文:客户像服务器
        • 请求报文中,开始行是请求行
        • 请求方法:OPTION, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
      • 响应报文:服务器到客户
        • 开始行是状态行:HTTP版本、状态码、解释状态码的简单短语
        • 状态码与短语
          • 200OK
          • 301MovedPermanently
          • 400BadRequest
          • 404NotFound
          • 505HTTPVersionNotSupported
    • 在服务器放用户信息:万维网站点用Cookie跟踪,表示HTTP服务器和客户间状态信息,为用户唯一识别码
      • 是个索引,很小,内容在服务器本地
      • 维护状态:可设置有效期、安全性,第一次发送建立cookie,以后是以之特定动作
    • HTTPS
      • HTTPS 使用 TLS(Transport Layer Security)来进行加密通信。
      • TLS是一种加密通信协议,用于确保在Web浏览器和服务器之间传输的数据的安全性和隐私性。
        • SSL/TLS 握手过程:通常发生在TCP三次握手之后,(有人说TLS四次握手,但也经常不说几次握手)
          • 步骤
            • ClientHello:客户端开始SSL/TLS握手过程,发送包含所支持的加密方法、支持的SSL/TLS版本等信息给服务器。
            • ServerHello:服务器回复一个ServerHello消息,确认使用的加密方法和SSL/TLS版本。
            • 证书和密钥交换:服务器发送证书给客户端,客户端验证证书的合法性。然后双方通过密钥交换算法协商生成会话密钥。
            • Finished:最后,双方发送Finished消息,之后传输的所有数据都使用协商出来的会话密钥进行加密。
      • TSL 与 SSL 的关系
        • TLS 可以被看作是 SSL 的升级版,它基于 SSL 3.0,但是在安全性和效率上进行了一些改进和优化。
        • HTTPS 不是“同时使用”TLS 和 SSL,而是基于其中之一来提供安全通信。在大多数现代应用中,HTTPS 通常建立在 TLS 协议之上,因为 TLS 是更新且更安全的协议。
        • 虽然我们通常说的是“HTTPS”,但在实际应用中,由于 TLS 是目前更为主流和安全的选择,所以当我们说到“HTTPS”时,一般都是指“运行在 TLS 协议上的 HTTP”。
      • https报文在被包装成tcp报文的时候完成加密的过程,无论是https的header域也好,body域也罢都是会被加密的。
      • TLS协议实际上使用了非对称加密和对称加密两者的组合:
        • 非对称加密主要用于验证通信方的身份并安全地交换对称密钥。
        • 对称加密用于加密实际的数据传输,因为它相对来说计算效率更高。

7 网络安全

  • 和每个层都有关
    • 物理层:防窃听、防破坏的报警装置
    • 链层:链路加密
    • 网层:防火墙或使用安全IP协议(IPSec)
    • 输层:整个连接加密(如安全套接字层SSL,secure socket layer)
    • 用层:鉴别、不可否认
  • 7.1 网络安全问题概述
    • 两大威胁
      • 被动攻击(截获):预防(加密)
      • 主动攻击(篡改、伪造、拒绝服务):可以通过鉴别技术检测
    • 目标
      • 数据保密性(授权和访问控制、数据加密技术)、数据完整性(防篡改)(数据加密和校验技术)、用户身份认证(账号-口令、电子证书等)、资源可用性(访问控制、防火墙、入侵检测)、不可否认性(数字签名等)
  • 7.2 加密技术:网安的基础
    • 密码体制
      • 常规密码体制:对称密钥
        • 加密解密密钥相同,简单快速,密钥分配困难
        • 如 DES, 3DES, IDEA
      • 公钥密码体制:不对称密钥
        • 加密解密密钥不同,适合密钥分配、数字签名、鉴别,加密解密速度慢
        • 如 RSA
        • 公钥PK公开,私钥SK保密,加密算法E解密算法D公开(实际一样)
        • 公钥加密要私钥解密(多个用户加密一个解读,可用于保密),私钥加公钥解(一个用户加密多个用户解读,用于数字签名)
        • 密文:用B的公钥加密,B用B私钥解密
        • 数字签名:证明真实性
          • 确认当事人身份,信息签发后是否篡改
          • 必须保证:
            • 保温鉴别、报文的完整性(防否认)、不可否认(防伪造)
        • 具有保密性的数字签名:同时秘密通信与数字签名,A用自己私钥签名,用B公钥加密,B那边自己私钥解密,A的公钥核实签名
          • 解密后才能看签名
        • 报文鉴别:接收方能验证真伪,但很慢
        • 报文摘要:用散列函数将任意长度报文变换为较短固定场——数字指纹
          • 算法:MD5, SHA, CRC
          • 特性:便于实现、单向性、不肯能两条同样摘要的报文を、输入微小变化摘要很大变化
          • 用法:接受者算摘要和签名里的摘要对比
        • 数字证书(digital certificate, digital ID):标志各方身份信息。是CA认证中心发放的数字文件。
        • SSL(secure socket layer,安全套接字层)安全协议,对万维网客户与服务器传送数据加密和鉴别
          • 联络阶段协商使用的加密算法、密钥
          • 联络后左右数据使用联络的会话密钥
          • HTTPS使用之
          • 提供的安全服务
            • SSL服务器鉴别:证实服务器身份,即验证副武器的证书并获得公钥
            • SSL客户鉴别
            • 加密的SSL会话:加密所有报文,检测是否篡改
          • SSL安全会话建立过程
            • 协商加密算法(A支持啥B选一个)
            • B的数字证书,A用CA发布的公钥鉴别
            • A产生秘密数用于产生会话密钥
            • B产生会话密钥
            • 用会话密钥加密数据传输
  • 7.3 防火墙
    • 特殊编程的路由器,两个网络间实施访问控制策略
    • 墙内为“可信的网络”墙外は
    • 解决内联网(intranet)外联网(extranet)安全问题
    • 连接内外局域网的两个分组过滤路由器、一个应用网关
    • 分组过滤型防火墙
      • 分组过滤:网络层输层选择数据包,依据过滤逻辑(访问控制表ACL)
        • 检查源地址、目的地之、端口号、协议状态、协议类型(TCP, UDP, ICMP)(TCP选项)(流向)(刘静网络接口)等因素
      • 访问控制表ACL(Access Control Lists)
        • 阻止列表:源地址/元端口/目的地之/目的端口
      • 分组过滤判断依据
      • 分组过滤性防火墙的特点
        • 优点:简单,性能影响小;应用层无关,不用改应用程序
        • 缺点:需要对协议又深入了解;不允许稳步客户直接连接内部主机;不提供用户鉴别
    • 应用网关型防火墙
      • 应用层上建立协议过滤和转发
      • 可实现高层用户鉴别
      • 同城在专用工作站系统或硬件防火墙

配置 wie Nginx, SSL

Nginx

sudo apt install nginx
sudo nano /etc/nginx/conf.d/my.conf # 自己添加的配置文件,添加到总的 http {} 部分里,看 `/etc/nginx/nginx.conf` 里的内容,具体是添加在 `/etc/nginx/conf.d/` 建立的文件里
# 当前 http,就是把 `server {...}` 分别给有无www的各写一遍 (其实在 server_name 指定多个域名就好了)
sudo systemctl restart nginx

Nginx 的 .conf 文件怎么写

server {
        # location 以外是全局块
        listen 3000 ssl; # 这里不写 ssl 的话就不 speak ssl,就不是 https
        server_name yangchnx.com www.yangchnx.com;
        [root ...;]
        [index ...;]

        # location 里面是 location 块
        #此处更改对应路径(location后面是pattern)
        location ^~ /qieyun-autoderiver {
                        alias /home/yang_chn_x/qieyun-autoderiver/build;
                        index index.html index.htm;
        }
        location = /test {
            return 200 "hello";
        }
        location / {
                        root /home/yang_chn_x/index/build;
                        index index.html index.htm;
        }
        location ^~ /cantonese-flashcard {
                        alias /home/yang_chn_x/cantonese-flashcard/build;
                        index index.html index.htm;
        }
        location ^~ /love {
                        alias /home/yang_chn_x/love/build;
                        try_files $uri $uri/ /love/index.html;
        }
}

location 下面用 root 会把 location 复制到 root 后面,而用 alias 则用 alias 替代 location。

try_files 按顺序尝试这些文件,如果都没有,就对最后一个 uri 元素做 internal redirect,而这个内部重定向也需要写在个 location 里。只 try_filesalias 挺好的。

certbot で ssl, https

sudo apt update
sudo apt install snapd
sudo snap install core; sudo snap refresh core
sudo apt-get remove certbot
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
# 一旦過期,執行下句亦用於更新。
sudo certbot --nginx

自动给 Nginx 自定义配置文件 /etc/nginx/conf.d/*.conf 里面添加了相关信息。

爬虫 | Rampilo | Crawler

因为其原理跟网络技术结合紧密,放这。

爬虫需要注意的一些点:

HTTP 请求头(HTTP Request Headers) | HTTP 标头(header)

以及 requests 之使用

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers#%E8%AF%B7%E6%B1%82%E4%B8%8A%E4%B8%8B%E6%96%87

User-AgentReferer 都被归类为请求上下文。

  • User-Agent 允许 服务器之流 识别 发起请求的用户代理软件 的 应用程序类型、操作系统、软件供应商或软件版本。
  • Referer 前一个网页的地址,表示从该网页链接(进入)到当前请求的页面。
    • 常用于图片防盗链,比如想访问锑度网的某图,必须填一个锑度网的网址作为 Referer
    • 新开个别的浏览器,就没法直接打开这种图片链接。就因为新开的浏览器也不知道合法的 Referer
headers = { # 对于图片,Referer 很重要
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.0.0 Safari/537.36',
    'Referer': ORIGIN_URL
}
for i, image_url in enumerate(image_urls):
    try:
        response = requests.get(image_url, headers=headers)
        if response.status_code == 200:
            # 从URL中提取文件名
            filename = os.path.join('downloaded_images', f'image_{i}.jpg')
            with open(filename, 'wb') as file:
                file.write(response.content)
            print(f"Image {i} downloaded successfully.")
        else:
            print(f"Failed to download image {i}. Status code: {response.status_code}")
    except Exception as e:
        print(f"Error downloading image {i}: {str(e)}")