一、计算机网络概述

1.1计算机网络在信息时代的作用

三网:

  1. 电信网络(电话)

  2. 计算机网络(因特网、其他网络等)

  3. 有线电视网络

    1.2因特网概述

  4. 概述:

    • 网络:交换机将多台电脑连接(如电脑机房)
    • 互联网:路由器连接多个网络
    • 因特网:全球最大的一个互联网(TCP/IP Suite)
  5. 多层次ISP结构的互联网:
    第一层ISP、NAP——> 第二层ISP、大公司——> 第三层ISP ——>本地ISP、公司——>校园网

  6. ISP、企业网以及网民

    • 各小区、工厂局域网 ——>ISP运营商(电信、网通等)——>电信机房、网通机房、双线机房等(跨运营商传输会变慢,双线机房很有必要)
    • 网站——>服务器(托管到机房、阿里云服务器等)
  7. 因特网的标准化工作:因特网协会ISOC

    1.3因特网的组成

  8. 核心部分:数据交换方式

    • 电路交换方式:事先建立连接。电话-交换机-电话。
    • 电路交换面向连接:电话-交换机-中继线-交换机-电话
    • 分组交换方式:报文分组(不需要选择好路径,不确定路径)
    • 报文交换 :不分组直接传送(时间短)
  9. 边缘部分:客户和服务器
    主机之间的通信方式:

    • 客户服务器方式(C/S)
    • 对等连接方式(P2P):下载东西不是从一个地方下载,计算机既是客户端,又是服务器、路由器的存储转发功能

1.4计算机网络的类别

  1. 作用范围

    • 广域网:应用广域网技术,如电脑通过ADSL到运营商然后再去和邻居通信;花钱买服务,花钱买带宽
    • 局域网:应用局域网技术,如电脑通过无线交流;自己购买设备,自己维护,带宽固定,距离100米以内
  2. 使用者

    • 公用网
    • 专用网
  3. 拓扑结构

    • 总线型:计算机用一根线连接
    • 环形:计算机接在环上
    • 星型:计算机接在交换机上
    • 树型:根交换机,分支交换机
    • 网状:路由器连的网
  4. 交换方式

    • 电路交换网
    • 报文交换网
    • 分组交换网
  5. 工作方式:资源子网

    • 通信子网
    • 接入网

      1.5计算机网络的性能

  6. 速率:数字信道上传送数据位数的速率

  7. 带宽:数字信道所传送的最高速率

  8. 吞吐量:单位时间所有数据量总和

  9. 时延:发送时延、传播时延、处理时延、排队时延

  10. 时延带宽积:传播时延×带宽

  11. 往返时间:发数据到确认接收的时间

  12. 利用率:

    • 信道利用率:有数据通过时间/总时间
    • 网络利用率:信道利用率加权平均值

      1.6计算机网络的体系结构

  13. 基本概念

    • ISO 国际标准化组织
    • OSI/RM 互联网法律上的国际标准
    • TCP/IP Suite 因特网事实上的国际标准
    • Network Protocols 数据交换遵守的规则、标准或约定
    • 网络体系结构 计算机网络各层及其协议的集合
  14. OSI 七层

    • 应用层:能够产生网络流量能够和用户交互的应用程序(记事本不是应用层)开发人员考虑的问题
    • 表示层:加密 压缩
    • 会话层:服务和客户端建立的会话 查木马 netstat -nb
    • 传输层 可靠传输建立会话 不可靠传输 流量控制
    • 网络层:IP地址编址 选择最佳路径
    • 数据链路层:数据如何封装 添加物理层地址 MAC地址
    • 物理层:规定一些标准 电压 接口

      前三层是程序开发人员解决,接下来三层是网络工程师要解决的问题

网络排错:从底层到高层
物理层:网线
网络层:IP地址
应用层:浏览器是不是中了恶意插件

网络安全和OSI参考模型

  • 物理层安全:接入同一个交换机的电脑可能别人会接入你的电脑
  • 数据链路层安全 ADSL的密码输入才可以打开网络 无线AP密码
  • 网络层安全 哪片网络可以通过路由器出去
  • 应用层安全 SQL注入漏洞 上传漏洞
  1. 开放系统信息交换设计的概念:实体、协议、服务、服务访问点
  2. 五层协议对应的数据单元
  • 应用层:传输数据单元
  • 运输层:报文 加协议
  • 网络层:数据报 加IP地址 数据包
  • 数据链路层:数据帧 加MAC地址
  • 物理层:比特0110… 加帧头帧尾

    电脑MAC地址是刻在电脑上的,但是可以修改和互联网接入时使用的MAC地址,修改后可以蹭网~
    计算机匹配时注意网速也要匹配才能接通 自动协商即可

  1. 虚拟机的网络设置

二、物理层

2.1物理层的基本概念

  1. 物理层:解决如何在传输媒体传输数据比特流,而不是指具体传输媒体
  2. 物理层确定与传输媒体的接口的一些特性:机械特性、电气特性、功能特性等

2.2数据通信的基础知识

2.2.1典型的数据通信模型

PC机(输入汉字)——>变为数字比特流——>调制解调器——>变为模拟信号——>公用电话网——>变为模拟信号——>调制解调器——>变为数字比特流——>PC机

源系统——>传输系统——>目的系统

2.2.2数据通信的基础知识

  1. 相关术语:通信、消息、数据、信号、模拟信号、数字信号、码元(波形)

  2. 有关信道的几个基本概念:信道是指传送信息的媒体 发送和接受的两条信道

    • 单向通信 单工通信 一个方向通信无双方交互 电台电视台.
    • 双向交替通信 半双工通信 并不能同时发送或者接收 对讲机
    • 双向同时通信 全双工通信 同时发送、接收 打电话
  3. 基带信号和带通信号

    • 基带信号:源信号 传输距离短
    • 带通信号:经过了调频 传输距离远
  4. 几种最基本的调制方法:调幅、调频、 调相

  5. 常用编码:单极性不归零码、双极性不归零码、单极性归零码、双极性归零码、曼彻斯特编码、差分曼彻斯特编码(抗干扰性强)

  6. 信道的极限容量:发送信号波形会失真,如果失真大就难以识别 奈式准则

奈式准则:理想低通信道的最高码元传输速率
香农公式:带宽受限和干扰情况下信道的极限信息传输速率
奈式准则和香农公式的应用范围

2.3 物理层下面的传输媒体

  1. 电信领域使用的电磁波的频谱

  2. 导向传输媒体:电磁波沿着固体媒体传播

    • 双绞线:无屏蔽、屏蔽双绞线
    • 同轴电缆
    • 光缆
  3. 非导向传输媒体:自由空间 电磁波 无线电 短波通信(电离层反射) 微波(直线传播 接受塔)

  4. 集线器 目前被交换机替代 扩大网络传输范围 是一个大冲突域

    2.4信道复用技术

  5. 频分复用FDM:多个源信号经过调频变成不同频率的信号,然后一起运输

  6. 时分复用TDM:先放的数据先取出去;

  7. 统计时分复用STDM:数据帧里加标记

  8. 波分复用WDM

  9. 码分复用CDM:

    • 常用名词:码分多址CDMA
    • CDMA的工作原理:
      1. 对于一个发送端信号,一个比特时间划分多个码片
      2. 多个信号复用运输
      3. 接收端通过格式化内积判断自己对应的码片信号(与自己格式化内积为1,与自己反码为-1,与其他码片为0)

        2.5数字传输系统

  10. 脉码调制——PCM体制

  11. 电话通讯局用到的,有两个标准

  12. 电话-PCM-TDM

2.6宽带接入技术

  1. 宽带接入技术指的是计算机如何接入Internet
  2. xDSL:低端频谱留给传统电话,未利用的高端频谱留给用户上网;不用再铺线了
  3. HFC 光纤同轴混合网:有线电视网基础上接入网;采用结点体系结构
  4. FTTx 光纤到… :

三、数据链路层

3.1数据链路层基本概念及基本问题

  1. 基本概念

    • 数据发送模型 仅从数据链路层观察帧的流动
    • 数据链路层的信道类型:点对点信道(pc直接连接)、广播信道(通过集线器连接多个pc)
    • 链路和数据链路
    • 帧:数据链路层传送的是帧,有帧头帧尾,判断开始和结尾
  2. 三个基本问题

    • 封装成帧:IP数据报加上帧头帧尾;半截子帧会被丢弃
    • 透明运输:为了避免接收端错误地提前接收了帧,所以会字节填充,数据段中加上转义字符
    • 差错控制:循环冗余检验;加一段帧校验序列;CRC差错检测技术得到FCS帧校验序列;接收端数据链路层接受的帧没有传输差错(有差错的帧被丢弃);无差错接收

3.2两种情况下的数据链路层

3.2.1.使用点对点的信道数据链路层

PPP协议使用最多

  1. PPP协议使用场合:用户接入网(PPP协议)到ISP(已向因特网管理机构申请到一批IP地址)至因特网
  2. PPP协议应满足的要求:简单、封装成帧、透明性、多种网络层链路、差错检测、检测连接状态、最大传送单元、网络层地址协商、数据压缩协商
  3. PPP协议的组成:从下向上分别为高级数据链路控制协议HDLC、链路控制协议LCP、网络控制协议NCP(针对每一个网络层协议)
  4. PPP协议帧格式:一字节帧头+一字节FF+一字节03+两字节协议(标识信息部分是什么内容)+信息部分+两字节FCS+帧尾
  5. PPP协议填充方式:
    字节填充:传的是字节,将字节转义
    零比特填充:传的是比特流
  6. PPP协议的工作状态:链路静止——>链路建立——>鉴别——>网络层协议——>链路打开

PPP协议:错了就重新传,不纠错

操作p31:配置路由器接口使用PPP协议封装

3.2.2使用广播信道数据链路层

CSMA/CD协议

  1. 局域网概述

    • 局域网拓扑:星型网、环线网、总线网(出现早,一根线)、树型网
    • 局域网的特点与优点:有广播功能等
    • 局域网共享通信媒体:PC共享链路
      1. 静态划分信道:频分复用、时分复用、波分复用、码分复用;需要没两个电脑接通信道
      2. 动态媒体接入控制:随机接入(主要被以太网采用)、受控接入(用的少)
  2. 以太网

    1. 认识以太网
      • 计算根据网卡MAC地址确认是否是自己的数据
      • 不用划分信道
      • 一个链路上只能有两个计算机发送接收、所有计算机都可以通过抓包、MAC欺骗等收到不属于自己的数据
    2. 载波接听多点接入/碰撞检测 以太网使用CSMA/CD协议
      • 多点接入:计算机接入方式连接在一根总线上
      • 载波接听:检测一下是否有计算机占用了线
      • 碰撞检测:为了发现碰撞,因此不能太长,所以以太网不超过一百米。
    3. 以太网重要特性
      不能进行全双工通信,只能进行半双工通信
    4. 以太网冲突检测和避让机制
      1. 争用期
        • 以太网的端到端往返时延成为争用期;
        • 最短有效帧长:如果发生冲突就一定是在发送的前36字节之内;检测到了冲突就立即终止发送,成为由于冲突而异常中止的无效帧
      2. 二进制指数类型退避算法
        • 碰撞中止后,要退避一个随机时间再发送数据
        • 经过算法确定退避的时间,当重传达到16次仍不能成功则丢弃该帧,并向高层报告

3.3 以太局域网(以太网)

  1. 概述

    • 以太网的两个标准:Ethernet V2标准、802.3标准
    • 以太网与数据链路层的两个子层:起初为了数据链路层能更好适应多种局域网标准而定;现在TCP/IP体系经常使用的局域网是Ethernet V2,所以现在单说媒体接入控制MAC层;有的适配器仅装有MAC协议
    • 以太网提供的服务:不可靠交付、尽最大努力交付
  2. 星型拓扑:中心是集线器

    • 集线器特点:使用的CSMA/CD协议、工作在物理层、整个系统任然像一个传统的以太网那样运行
    • 以太网10Base-T:每个站到集线器距离不超过100m
  3. 信道利用率

    • 与碰撞事件(n个争用期)和占用期(发送时间)有关
    • 以太网参数的要求:数据率一定时,以太网线长度受到限制;帧长不能太短
    • 最大信道利用率

4.MAC层

  1. MAC层的硬件地址(MAC地址)
    • MAC地址是48位二进制组成,前三个字节(高位24位)由组测管理机构分配给厂家,代表不同的厂,后三个字节由厂家自行指派
    • 同一个网段的MAC地址相同会发生冲突
    • 命令行ipconfig /all可查MAC地址,显示的是十六进制
  2. 适配器检查MAC地址:网卡每收到MAC帧就先用硬件检查帧中的MAC地址决定手下还是丢弃;发往计算机的帧有单播帧、广播帧、多播帧
  3. MAC帧格式(最常见的Ethernet V2标准):六个字节目的地址+六个字节源地址+两个字节类型+数据+四个字节FCS

    以太网使用曼彻斯特编码,所以最后发现没有信号了就代表帧结束了

操作抓包:抓取其他计算机数据、可用于排除电脑故障

3.4扩展以太网(优化以太网)

  1. 在物理层考虑扩展:

    • 光纤、光纤解调器
    • 各自用集线器连成局域网 大冲突域 效率低
  2. 在数据链路层考虑扩展:

    • 网桥
      1. 站表记录MAC地址
      2. 目前使用最多的网桥是透明网桥(计算机不知道有没有经过网桥)
      3. 自学习算法:记下发送的站,若不知道转发路线就先转发到各个路线上
    • 交换机:交换机就是多端口网桥 生成树算法
  3. 虚拟局域网VLAN 局域网LAN

    • VLAN:交换机上的接口分为两个区域,两个区域互不相通,而且也ping不通,除非中间接了路由器
    • VLAN可跨交换机传送数据
    • VLAN干道链路和访问链路:干道链路连接两个交换机;访问链路是计算机和交换机相连
    • VLAN网帧格式:在以太网帧格式中插入VLAN标记,用来指明发送该帧的工作站属于哪一个虚拟局域网

操作 更改交换机生成树的根(优先级)

3.5高速以太网

  1. 100BASE-T 以太网 快速以太网
    • 100BASE-T特点:双工方式下工作而无冲突发生,因此不使用CSMA/CD协议。MAC帧格式仍然是802.3标准规定的
  2. 吉比特以太网
  3. 组建局域网3层模型:接入层、汇聚层、核心层

    案例: 交换机上实现的接入安全

    • 设置交换机可以接的MAC地址唯一来保证不接其他计算机
    • 设置交换机口只可以接一台计算机

四、网络层

4.1网络层提供的两种服务

端系统来负责可靠性交付,而不是网络层

  1. 虚电路服务:逻辑上的连接。分组都沿着这条逻辑连接传送,而不是真正建立了物理连接

注意:电路交换的电话通信不同
2. 数据报服务(现在都是该服务):分组有重点地址。不需要先建立连接,不事先确定传送路径,分组可能沿着不同路径传送

4.2网际协议 IP

4.2.1虚拟互联网

  1. 中间设备/中继系统

    • 物理层:转发器(集线器)
    • 数据链路层:交换机或网桥
    • 网络层:路由器

      网关:

      • 现在:网络层使用的路由器
      • 原始:网络层以上
  2. 互联网、

    • 前两层经过中继系统连接往往不称为网络互连,仍是网络
    • 用路由器进行互联的网络才称为互联网
  3. 虚拟互联网络:通过逻辑互联,让IP协议使使用者看起来像统一的网络

  4. 网络层协议 四个:IP、ARP、ICMP、IGMP

    4.2.2 IP地址

  5. IP地址就是给接在因特网上的主机(或路由器)的每个接口分配一个唯一的32位标识符

  6. IP层次结构:32位IP分为网络IP和主机IP

  7. 网络IP:指定每个网络;同一个网络的计算机网络地址相同,是IP地址的一部分

  8. IP地址的类别:ABCDE类

  9. 常用的三类地址

    • 越往后网络地址位数越来越长
    • A类地址:1-126
    • B类地址:128-191
    • C类地址:192-224

      IP地址在计算机网卡上,路由器每个接口上也有。路由器上还有MAC地址

—-二进制——-十进制
———1———-1
——–10———-2
——-100———-4
——1000———-8
—–10000———16
—-100000———32
—1000000———64
–10000000——–128

–10000000——–128
–11000000——–192
–11100000——–224
–11110000——–240
–11111000——–248
–11111100——–252
–11111110——–254
–11111111——–255

  • 127.0.0.1本地环回地址
  • 169.254.0.0 特殊情况暂用的地址
  • 保留的私网地址

10.0.0.0
172.16.0.0 — 172.31.0.0
192.168.0.0 — 192.168.255.0
6. 子网掩码的作用

  • 用来将IP地址分为网络地址和主机地址两个部分

  • A类一个255,B类两个255,C类三个255

  • 子网掩码与自身IP地址写成二进制,做与运算,主机位归零

    1. 子网划分

    2. C类网络子网划分

    • 划分方法:IP地址变为二进制,若划分2个子网,主机IP地址多1位进行与运算,若划分4个子网主机IP地址多2位进行与运算,若划分8个子网主机IP地址多3位进行与运算。这里韩老师直接用横轴将0-255进行分割,每多一位相当于分割一次
    • 子网IP地址范围:如果经过划分是0-32,则可用的地址位1-30(31为广播地址)
    1. 变长子网划分

    2. B类网络子网划分

      • 主机位不能全为0或全为1
      • 点到点网络的子网掩码最好为252
    3. 超网
      将不同的网段进行合并。小的是偶数可以合并

    4. IP地址与MAC地址

  • 数据帧=数据包(数据段+IP地址)+MAC地址

  • IP地址决定了数据最后要去的位置,MAC地址决定了下一站要去的位置

    4.2.3ARP&RARP

  1. 概念

    • ARP:广播,通过IP地址获得MAC地址
    • RARP:通过MAC地址获得IP地址(逆向ARP)
  2. ARP欺骗的应用

    • 截取信息:流氓计算机给其他计算机发的是自己的MAC地址,然后流氓计算机再去转发到正确的网关
    • 断网:流氓计算机给其他计算机发的是随意的MAC地址
  3. ARP欺骗的断定
    cmd查看自己和其他计算机得到的网关MAC地址是否一致

    4.2.4 IP数据报格式

  4. IP数据报=首部+数据部分
    首部=可变部分+固定部分

  5. 首部

    • 标志-片偏移:数据太大拆分成IP数据报分片,然后根据字节位数可以得到片偏移

      一个字节八位八比特

4.2.5 IP转发分组的流程

  1. 数据路由:路由器在不同网段转发数据包

  2. 网络畅通的条件:数据包能去能回。沿途路由器必须有一个网段到另一个网段的路由

  3. 静态路由:管理员给路由器加路由表——所有没有直连的网络该怎么走

  4. 添加静态路由:

    • config t
    • show ip route
    • ip route 192.168.0.0 255.255.255.0 IP地址
    • show ip route
    1. windows网关就是默认路由
    2. 网络负载均衡:给网络中的路由器添加路由使得两个网段可以不用路径去和回,从而实现负载均衡

      4.3.网际控制报文协议 ICMP

  5. ICMP简介:主机或路由器报告差错情况

  6. ICMP不是高层协议,而是IP层协议

  7. ICMP报文类型:

    • ICMP差错报告报文
      1. 种类:重点不可达、源点抑制、时间超过、参数问题、改变路由(重定向)
      2. 差错报告报文的数据字段的内容
        ICMP
    • ICMP询问报文
      种类:回送请求和回答报文、时间戳请求和回答报文
    1. ping和pathping

      • ping:检测从哪通,从哪不通
      • pathping:跟踪数据包的路径,能检测到哪里不通

        4.4因特网的路由选择协议

    2. 动态路由协议RIP

      • 特点:最早 周期性广播 30秒 度量值是跳数(不是看带宽) 16跳
      • 配置RIP协议
        router rip
        network (写几个network取决于是否是同一类地址)
  8. 动态路由协议OSPF(内部网关协议)

    • 特点:触发式更新 度量值是带宽 支持多区域 三个表(a.邻居表-hello包;b.链路状态表-最佳路径;c.计算路由表)OSPF分为两种不同的区域
    • 配置OSTF协议
  9. 动态路由协议BGP(外部网关协议)

    • 特点: 连接自治系统 BGP发言人交换路径向量

      4.5 IP多播

4.6 虚拟专用网VPN和网络地址转换NAT

  1. 虚拟专用网VPN
    • VPN的功能:远程访问私网
    • 创建VPN拨号连接
    • 用隧道技术实现VPN
  • 本地地址:近代机构内部使用的IP地址
  • 全球地址:全球唯一的IP地址
  • RFC知名的专用地址(私网):

10.0.0.0-10.255.255.255
172.16.0.0-172.31.255.255
192.168.1.1-192.168.255.255

  1. 网络地址转换NAT4
    • NAT和PAT
    • NAT的端口映射

五、传输层

应用层 http https ftp DNS SMTP PoP3 RDP
传输层 TCP UDP
网络层 IP(RIP OSPF BGP)ICMP IGMP ARP

  1. 传输层两个协议应用场景

    • TCP 分段 编号 流量控制 建立会话 netstat -n
    • UDP 一个数据包就可以完成通信 不建立绘画 多播
  2. 传输层和应用层之间的关系

    http=TCP+80端口
    https=TCP+443端口
    ftp=TCP+21端口
    SMTP=TCP+25端口
    POP3=TCP+110端口
    RDP=TCP+3389端口
    共享文件夹=TCP+445端口
    SQL=TCP+1433端口
    DNS=TCP+1433端口 or  TCP+53端口
  3. 应用层协议和服务之间的关系

    • 服务运行后在TCP或UDP的某个端口侦听客户端请求
    • 查看自己计算机侦听的端口:
      netstat -an
      telnet 10.7.1.53.21
    • 端口代表服务
    • 更改端口增加服务器安全
    • mstsc
  4. Windows防火墙

    • 外面的不能进来、里面的可以出去
    • windows防火墙不能防空灰鸽子木马程序
    • 木马可以通过查会话和查看系统配置中的服务查看有没有木马服务
  5. TCPIP筛选实现服务器安全

    • 每增加服务就更新端口
    • 用端口区分服务
    • 计算机通过开启端口筛选来决定是否开TCPIP的服务来保证安全

      IPSec严格控制网络流量

  6. TCP传送的协议数据单元是TCP报文段
    UDP传送的协议数据单元是UDP报文

  7. UDP数据报:
    UDP

  8. 传输控制协议TCP

    • 可靠传输 流量控制 避免网络拥塞
    • 面向连接:三次握手
    • 只能有两个端点 点对点
    • 提供全双工通信
    • 面向字节流:传送端文件里的字节无数量规律规律地加到TCP缓存里,然后缓存里的字节加头部再无数量规律地合成数据报传送到接收端,接收端去掉头部将数据组合起来,然后读到空文件里
    • TCP如何实现可靠传输:(网络层不可靠,可靠性传输由传输层实现)
      1. 停止等待协议
        • 无差错情况:发送M1确认M1发送M2确认M2…
        • 超时重传:丢弃有差错的报文M1超时重传M1确认M1…
      2. 确认丢失和确认迟到(ARQ)
        • 确认丢失
        • 确认迟到
      3. 补充:
        • 停止等待协议信道利用率低,发送方可以连续发送多个分组,不必发完一个分组就停顿下来等待对方的确认,成为流水线传输
        • 流水线传输——连续ARQ协议:发送方维持发送窗口;发送窗口里的数据不能删除要等着确认
  9. TCP报文
    TCP报文=TCP首部(固定+可变)+TCP数据部分

    TCP报文格式

  10. TCP攻击

  11. TCP如何实现可靠传输

    • 以字节为单位的滑动窗口技术:发送窗口 发送缓存 A将窗口里的数据拆成数据包然后发送 B向A发送确认数据包 AB窗口后移 A删除部分数据 A继续传送下一个窗口数据
    • 数据包丢失:确认数据包返回数据有丢失 SAK选择确认 丢包窗口依旧后移
    • 超时重传时间的选择:设置计时器 重传时间到但是没有收到确认 就会重传这个数据包
      12.TCP的流量控制
  12. TCP避免拥塞

    • 拥塞条件:资源需求>资源总和
    • 实际的拥塞控制:拥塞窗口cwnd 慢开始 慢开始门限
    • 快重传快恢复:丢包以后直接要求重发而不是等到去人返回的时候才要求重传
    • 发送窗口的实际上限值:取接收方窗口和拥塞窗口两个变量最小值
  13. TCP的传输连接管理

    • 三阶段:连接建立、数据传送、连接释放
    • 采用客户端服务器方式
    • 三次握手建立TCP连接:ACK确认号;seq序号;建立连接时的各状态closed、synrcvd、established
    • TCP的连接释放:finwait-1、closewait、timewait、lastack

      六、应用层

6.1网络应用概述

  1. 网络应用体系结构
    ① 客户机/服务器 ② P2P ③ 混合结构
  2. 网络应用的服务需求
    ① 可靠性 ② 带宽 ③ 时延
  3. Internet传输层服务模型
    ① TCP ② UDP
  4. 特定网络应用及协议
    ① HTTP ② SMTP POP IMAP ③ DNS ④ P2P应用
  5. Socket编程
    ① TCP ② UDP

    6.2网络应用基本原理

6.2.1网络应用的体系结构

  1. 网络应用:百度、QQ、Email、迅雷、支付宝、微信、百度云、淘宝网、网易

  2. 网络应用的体系结构:客户机/服务器结构(Client/Sever)、点对点结构(PeerToPeer)、混合结构

    • 服务器:持续提供服务、永久性访问地址/域名、利用大量服务器实现可扩展性
    • 客户机:使用服务器的服务、可能使用动态IP地址、不会与其他客户机直接通信
    • C/S举例——Web
      计算机客户端运行IE或者Sarari等浏览器,服务器运行Web服务器软件
    • P2P举例——BT文件共享
      没有永远在线的服务器,任意端系统/节点直接可以直接通讯,节点可能改变IP地址
    • 混合结构举例——Napster
      文件传输使用P2P结构,文件的搜索采用C/S结构(集中式)

      6.2.2 网络应用进程通信(网络应用的基础)

  3. 进程:主机上运行的程序

  4. 同一主机上运行的进程之间通信:进程间通信机制、操作系统提供

  5. 不同主机上运行的进程之间通信:消息交换/报文交换

    • 客户机进程:发起通信的进程
    • 服务器进程:等待通信请求的进程
  6. 套接字:Socket

    • 进程间通信利用socket发送/接收消息实现, 类似于寄信
    • 传输基础设施向进程提供API(传输协议的选择、参数的设置)
  7. 如何寻址进程

    • 进程有标识符:IP地址+端口号
    • 寻址主机——IP地
    • 某一主机具体进程——端口号:每个需要通信的进程分配一个端口号
  8. 应用层协议

    • 公开协议:由RFC定义、允许互操作、HTTP、SMTP、..
    • 私有协议:多数P2P文件共享应用
  9. 应用层协议的内容

    • 消息类型:请求消息、响应消息
    • 消息的语法格式:字段、字段如何描
    • 字段的语义:字段中信息的含义
    • 规则

6.2.3 网络应用的需求与传输层服务

  1. 网络应用的需求
    • 数据丢失/可靠性(网络电话容忍一定的数据丢失,文件传输要求100%可靠)
    • 时间延迟
    • 带宽
  2. Internet提供的传输服务
    • TCP服务(面向连接、可靠传输、流量控制、拥塞控制、不提供时间/延迟保障、不提供最小带宽保障)
    • UCP服务(无连接、不可靠数据传输、不提供可靠性保障+流量控制+拥塞控制+延迟保障+带宽保障)

      6.3Web应用

6.3.1Web应用概述

  1. WorldWideWeb:网页、网页互相链接

  2. 网页包含多个对象:

    • 对象:HTML文件、JEPG图片、视频文件、动态脚本等
    • 基本HTML文件:包含对其他对象引用的链接
    • 对象的寻址:URL(协议 :// 主机 : 端口号 / 路径)
  3. HTTP协议概述

    • 万维网应用遵循HTTP协议
    • C/S结构
    • 使用TCP传输服务(80端口)
    • 是无状态协议(服务器不维护过去所发请求的信息)

      6.3.2 HTTP连接类型

  4. HTTP连接的两种类型

    • 非持久性连接:每个TCP连接最多传输一个对象
    • 持久性连接:每个TCP连接允许传输多个对象
  5. 响应事件分析与建模

    • 非持久性连接:2RTT+文件发送时间(一个对象)
    • 持久性连接:无流水的持久性连接(一个对象1RTT)、带有流水机制的持久性连接(所有引用对象1RTT)

      6.3.3 HTTP消息格式

  6. 两类消息:请求消息、响应消息

  7. 请求消息消息格式:

    • 请求行+头部行(可扩展)+换行+entity body
    • 请求消息通用格式:method、url、version、header field name、value、entity body..
    • 上传输入的方法:
      1. POST方法:网页填写表格(在请求消息的消息体entity body中上传客户端的输入)
      2. URL方法:使用GET方法(输入信息通过request行的URL字段上传)
    • 方法的类型:
      1. HTTP/1.0:GET、POST、HEAD
      2. HTTP/1.1:GET、POST、HEAD、GET、DELETE
  8. 响应消息消息格式:状态行+头部行+空行+data

    6.3.4 Cookie技术

  9. Cookie技术:为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(RFC6265)

  10. Cookie的组件:

    • HTTP响应消息的cookie头部行
    • HTTP请求消息的cookie头部行
    • 保存在客户端主机上的cookie文件,有浏览器管理
    • Web服务器端的后台数据库
  11. Cookie的原理:客户端第一次访问服务器,服务器会为其创建ID,以后客户端请求消息里会有cookie id

  12. Cookie的作用:能用于身份认证,购物车,推荐,Web e-mail

  13. 隐私问题

    6.3.5 Web缓存/代理服务器技术

  14. 功能:不访问服务器的前提下满足客户端HTTP请求。可以缩短客户请求的响应时间;减少机构/组织的流量;在大范围内实现有效的内容分发

  15. Web缓存/代理服务器技术:

    • 浏览器通过缓存进行Web访问。如果请求对象在缓存中,缓存返回对象;否则向原始服务器发送HTTP请求,获取对象,返回给客户端并保存该对象
    • 缓存即充当客户端也充当服务器
    • 一般由ISP(Internet服务提供商)架设
  16. Web缓存实例

    • 性能对比:原始服务器、提升互联网接入带宽、安装Web缓存
  17. 条件性GET方法

    • 目标:缓存有最新版本,则不需要发送请求对象
    • 缓存:在HTTP请求消息中声明所持有版本的日期
    • 服务器:如果版本是最新的,则响应消息中不包含对象

      6.4Email应用

6.4.1Email应用概述

  1. Email应用的构成:邮件客户端、邮件服务器、SMTP协议

    • 邮件客户端:如Foxmail、Web客户端
    • 邮件服务器:
      1. 邮箱:存储发给该用户的Email
      2. 消息队列:存储等待发送的Email
    • SMTP协议:邮件服务器之间传递消息使用的协议(邮件服务器既充当客户端又充当服务器)
  2. SMTP协议:RFC 2821

    • 使用TCP进行email消息的可靠传输
    • 端口25
    • 传输过程的三个阶段:握手、消息的传输、关闭
    • 命令/响应交互模式
  3. Email应用实例

  4. SMTP协议特点:

    • 使用持久性连接
    • 利用CRLF.CRLF确定消息的结束
  5. 与HTTP对比

    • HTT是拉式;SMTP是退式
    • 都使用命令/响应交互模式
    • 命令和状态码都是ASCII码
    • HTTP:每个对象封装在独立的响应消息中
    • SMTP:多个对象在由多个部分构成的消息中发送

      6.4.2 Email消息格式与POP协议

  6. Email消息格式

    • SMTP协议:头部行header(To、From、Subject)+消息体body

      这里的头部行与SMTP命令不同

    • 多媒体邮件扩展: MIME
      邮件头部增加额外的行声明MIME的内容类型

  7. 邮件访问协议:从服务器获取邮件

    • POP协议
    • IMAP协议
    • HTTP协议(Web浏览器收发邮件)
  8. POP协议

    • 认证过程:客户端命令(User声明用户名、Pass声明密码)、服务器响应(+OK、-ERR)
    • 事务阶段:List、Retr、Dele、Quit
    • “下载并删除”模式:换了客户端软件无法重读邮件
    • “下载并保持”模式:不同客户端都可以保留消息的拷贝
    • POP3是无状态的
  9. IMAP协议

    • 所有消息统一保存在一个地方:服务器
    • 允许用户利用文件夹组织消息
    • IMAP支持跨会话(session)的用户状态:文件夹名字、文件夹与消息ID之间的映射等

      6.5DNS应用

6.5.1DNS概述

  1. Internet上主机/路由器的识别问题:IP地址、域名

  2. 域名解析系统DNS

    • 多层命名服务器构成的分布式数据库
    • 应用层协议:完成名字的解析
    • Internet核心功能,用应用层协议实现
    • 网络边界复杂

      不适用集中式的DNS原因:单点失败问题、流量问题、距离问题、维护性问题

  3. DNS服务:域名向IP地址的翻译、主机别名、邮件服务器别名、负载均衡(web服务器)

  4. 分布式层式数据库:Root DNS servers—com DNS serves—Amazon.com DNS servers

    • 根域名服务器
    • 顶级域名服务器TLD:负责顶级域名com、org、net、edu等和国家顶级域名cn、uk、fr等
    • 权威域名解析服务器:提供组织内部服务器的解析服务(组织负责维护或者服务提供商负责维护)
    • 本地域名解析服务器:不属于层级体系;每个ISP有一个本地域名服务器;当主机进行DNS查询时,查询被发送到本地域名服务器(作为代理将查询转发给层级式)
  5. DNS查询示例

    • 迭代查询(平等询问):主机先访问本地域名服务器——>本地域名服务器访问根域名服务器——>我不认识这个域名,但是你可以问这个服务器——>根域名服务器继续访问com域名服务器——>…
    • 递归查询(被指示):主机先访问本地域名服务器——>本地域名服务器访问根域名服务器——>我帮你去问这个服务器——>根域名服务器访问com域名服务器——>…
  6. DNS记录缓存和更新

    • 只要域名解析服务器获得域名IP映射,即缓存这一映射(一段时间后缓存条目删除
    • 本地域名服务器一般会缓存顶级域名服务器的映射)

      6.5.2 DNS记录和消息

  7. DNS记录: 资源记录RR

    Type=A
    Type=NS
    Type=CNAME
    Type=MS
  8. DNS协议与消息

    • 查询和回复(消息格式相同)
    • 消息头部:Identification、flag
  9. 如何注册域名

  10. 找出那些在应用层实现的Internet核心服务,调研他们的协议、消息格式

    6.6 P2P应用

6.6.1 原理与文件分发

  1. 纯P2P架构

    • Peer-To-Peer
    • 特点:没有服务器;任意端系统之间直接通信;节点阶段性接入Internet、节点可能更换IP地址
  2. 文件分发(客户机/服务器 VS P2P):随着节点数目增加CS架构文件分发所需时间呈线性增长,P2P逐渐趋于水平

  3. 应用:BitTorrent(比特流)协议

    6.6.2 索引技术

  4. 搜索信息

    • P2P系统的索引:信息到节点位置(IP地址+端口号)的映射
    • 文件共享(电驴):利用索引动态跟踪节点所共享的文件的位置;节点告诉索引它拥有哪些文件;节点搜索索引,从而获知能够得到哪些文件
    • 即时消息(QQ):索引负责将用户名映射到位置;当用户开启IM应用时,需要通知索引它的位置;节点检索索引,确定用户的IP地址
  5. 集中式索引

    • Napster最早采用这种设计:节点加入时,通知中央服务器IP地址和内容;其他节点查找时,从其他主机处获取文件
    • 问题:单点时效问题、性能瓶颈、版权问题
  6. 洪泛式查询:Query flooding

    • 完全分布式架构
    • Gnutella采用这种架构:查询消息通过已有的TCP连接发送;节点转发查询消息;如果查询命中,则利用反向路径发回查询节点
  7. 层次式覆盖网络

    • 介于集中式索引和洪泛查询之间的方法:节点和超级节点间维持TCP连接;某些超级节点间维持TCP连接
    • Skype采用这种架构:本质上是P2P的(用户/节点对之间直接通信);私有应用层协议;索引负责维护用户名和IP地址之间的映射(类似QQ);索引分布在超级节点上

      还涉及到了Socket编程部分,作相关了解请查阅资料

附:本文内容最后一章出于哈尔滨工业大学聂兰顺老师的计算机网络课程,其他部分均参考韩老师

2020/06/20——2020/06/25