计算机网络复习三

186 阅读8分钟

这是我参与更文挑战的第19天,活动详情查看: 更文挑战

四、网络层

4.1 网络层向上只提供简单灵活的,无连接的,尽最大努力交付的数据报服务

4.2 网际协议IP

  • 地址解析协议ARP

    • IP地址---->物理地址
  • 逆地址解析协议RARP

    • 物理地址---->IP地址
  • 网际控制报文协议ICMP

    • 提高IP数据报交付成功的机会

    • 报文种类

      • 差错报告报文

        • 终点不可达
        • 时间超过
        • 参数问题
        • 改变路由(重定向)
        • 源点抑制
      • 询问报文

        • 回送请求和回答
        • 时间戳请求和回答
    • 不应该发送ICMP差错报告报文的4种情况

  • 网际组管理协议IGMP

4.3 IP地址划分

  • 两级IP地址:网络号+主机号

    • 分类

      • A:8(1~126)+24

        • 每个网络主机数很多
      • B:16(128~191)+16

        • 65534
      • C:24(192~223)+8

        • 254
      • D:1110+...(多播地址)

      • E:1111+...

    • 注意事项

      • 网络号,主机号全0或全1一般不用

      • 私有IP地址

        • 10.0.0.0~10.255.255.255
        • 172.16.0.0~172.31.255.255
        • 192.168.0.0~192.168.255.255
  • 三级IP地址:网络号+子网号(由主机号产生)+主机号

    • 子网掩码:采用连续的1

    • 网络地址=子网掩码&IP地址

      • 不同的掩码可能得到相同的网络地址
      • 但是不同掩码的效果是不一样的,支持不同数量的主机数

4.4 IP数据报

  • 首部

    • 固定部分

      • 版本

        • 占4位,ip协议的版本
      • 首部长度

      • 区分服务

      • 总长度

        • 首部和数据之和的长度
      • 标识

        • 占16位,计数器,用来产生数据报的标识
      • 标志

        • 占3位,目前只有前两位有意义
        • 标志字段中最低位即为MF
        • MF=1,表示后面还有分片,MF=0表示是最后一个
        • 中间位DF=0,才允许分片
      • 片偏移

        • 以8个字节为偏移单位
      • 生存时间TTL

        • 能经过路由器的最大数量,这是数据报在网络中的寿命
      • 协议

      • 首部校验和

      • 源地址

      • 目的地址

    • 可选部分

  • 数据部分

4.5 IP层转发分组

  • 目的网络地址,下一跳地址

  • 查找路由表

    • 只有到达最后一个路由器的时候,才试图像目的主机直接交付

4.6 自治系统

  • 内部网关协议

    • RIP

      • 分布式基于距离向量的路由选择协议

      • 从一路由器到它直接相连的网络的距离定义为1

      • 允许一条路径最多只包含15个路由器,距离16相当于不可达

      • 路由器越少越好

      • 适用于小型网络

      • RIP特点

        • 仅和相邻网络之间交换信息
        • 交换信息为:当前路由器所知道的全部信息,即:自己所在的路由表
        • 按固定时间间隔交换信息
        • 好消息快,坏消息慢(进而网络开销比较大)
        • 实现简单,开销较小,但是....随着网络规模的变大,开销也变大
    • OSPF:开放最短路径优先

      • 分布式链路状态协议

      • 三大要点

        • 向本自治系统中的所有路由器发送信息---洪泛法
        • 发送信息:相邻的所有路由器的链路状态
        • 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息
      • 链路状态数据库---全网的拓扑结构图

      • OSPF将一个自治系统再划分为若干个更小的范围,区域

      • OSPF直接用IP数据报传送

      • OSPF五种分组类型

        • 问候
        • 数据库描述
        • 链路状态请求
        • 链路状态更新
        • 链路状态确认
  • 外部网关协议

    • BGP

      • 不同自治系统的路由器之间交换路由信息的协议
      • 边界网关协议 BGP 只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由

4.7 vpn

  • 在公网上建立一个安全链路(隧道)供远程用户安全访问内网

4.8 NAT(网络地址转换)

  • 所有使用本地地址的主机在和外界通信时都要在 NAT 路由器上将其本地地址转换成 IPG 才能和因特网连接

五、传输层

5.1 相关概念

  • 应用进程之间的通信(端对端的通信)

  • 主要功能

    • 为应用程序之间提供端对端的逻辑通信

      • 网络层:为主机之间提供逻辑通信
    • 对收到报文进行差错检测

    • 两种传输协议

      • TCP

        • 面向连接

          • 传输控制协议
      • UDP

        • 无连接

          • 用户数据报协议

5.2 UDP

  • 无连接
  • 用尽最大努力交付
  • 面向报文
  • 一对一,一对多,多对多。。。
  • 首部开销小,只占8个字节

5.3 TCP

  • 面向连接
  • 每一条TCP连接只能有两个端口(点对点)
  • 可靠交付的服务
  • 全双工通信
  • 面向字节流

5.4 UDP与TCP格式

  • UDP

    • 首部字段

      • 源端口
      • 目的端口
      • 长度
      • 检验和
    • 数据字段

  • TCP

    • 首部字段

      • 源端口

      • 目的端口

      • 序号

      • 确认号

      • 数据偏移(首部长度):数据距离tcp段起始处的长度

      • 保留字段

      • 6个状态码

        • 紧急URG

          • URG=1,表明紧急指针字段有效,也就是相当于高优先级
        • 确认ACK

          • ACK=1,确认字段有效
        • 推送PSH

          • 接收 TCP 收到 PSH = 1 的报文段,就尽快地交付接收应用进程
        • 复位RST

          • RST=1,表明tcp连接出现严重差错,必须立即释放连接,然后重新建立传输连接
        • 同步SYN

          • 同步 SYN = 1 表示这是一个连接请求或连接接受报文
        • 终止FIN

          • 用来释放一个连接。FIN =1 表明此报文段的发送端的数据已发送完毕,并要求释放运输连接
      • 窗口

        • 用来让对方设置发送端口的依据
      • 检验和

        • 检验和检验范围包括:首部和数据
      • 紧急指针字段

        • 本报文段中紧急数据共有多少字节
      • 选项字段

        • 最初:MSS(最大报文段长度)---报文段最大数据长度为MSS字节
    • 数据字段

5.5 常见TCP端口

  • 20:ftp数据端口
  • 21:ftp控制端口
  • 23:telnet端口
  • 25:SMTP端口
  • 53:DNS端口
  • 80:http端口
  • 443:https端口

5.6 TCP流量控制和TCP拥塞控制

  • 流量控制

  • 拥塞控制

    • 拥塞控制 VS 流量控制

      • 流量控制

        • 点对点通信量的控制,是一个端对端的问题(接收方控制发送方)
        • 抑制发送方发送数据的速率,以便接收方能来得及接收
      • 拥塞控制

        • 是一个全局性的过程,涉及所有主机,所有路由器,所有因素...
        • 前提:网络能够承担现有的网络负荷
    • 拥塞控制产生原因

      • 网络中对需求资源的总和大于当前可用资源
    • 拥塞控制一般原理

      • 分组丢失是发生拥塞的征兆,但不是原因
    • 拥塞控制分类

      • 开环控制

        • 设计网络事先将有关发生拥塞的因素考虑周到
      • 闭环控制

      • 基于反馈环路的概念

    • TCP的拥塞控制方法(闭环控制)

      • 基本概念

        • tcp基于窗口的方法进行拥塞控制

        • 发送方维持一个拥塞窗口CWND

        • 真正的发送窗口值=min(接收方公告窗口的接收窗口,拥塞窗口值)

        • 控制拥塞窗口原则

          • 只要没有出现拥塞,就将窗口调大点
          • 如果出现了拥塞,就将窗口调小点
        • 拥塞的判断

          • 重传定时器超时
          • 收到三个相同(重复)的ACK
      • TCP拥塞控制算法

        • 慢开始

          • 从小到大逐渐增大拥塞窗口的数值
          • 拥塞窗口控制方法:每收到一个新的报文段的确认后,可以把拥塞窗口增加最多一个SMSS的数值
        • 拥塞避免算法

          • 线性的增长
        • 快重传

          • 直接进行重传操作
        • 快恢复

          • 当发送方收到连续三个确认后,发送方认为当前网络没有发生拥塞,不执行慢开始,而是快恢复
          • 快开始门限=当前拥塞窗口/2
          • 新拥塞窗口=快开始门限
          • 开始执行拥塞避免算法,使拥塞窗口

5.7 TCP运输连接管理

  • 运输连接的三个阶段

    • 连接建立

      • tcp连接过程叫做:握手

        • 握手需要在客户端和服务器发送三个tcp报文段

        • 三报文握手(三次握手

          • 防止已失效的连接请求报文段,突然又传送到了,因而产生错误
          • 第三次:对确认的再确认非常重要
    • 数据传送

    • 连接释放

      • 四次挥手

      • A必须等待2MSL时间

        • 设一个足够长的时间,使得的网络资源都释放掉
  • 运输连接的管理:就是使运输连接的释放和管理都能正常的进行

5.8 三次握手

5.9 IP数据段=首部+数据(tcp/udp 首部+数据字段)

5.10 注意

  • 连接是一条虚连接,而非真正的物理连接

  • TCP连接的端口是套接字或者插口

  • ip地址+端口号=套接字

  • ARQ:自动请求重传

  • CRC:循环冗余校验

    特点:检错能力极强;开销很小;易于实现

5.11 FCS码的生成

  • 选择一除数(一多项式)

    • 多项式的最高位和最低位必须存在
  • 补0

    • 多项式长度减一
  • 做除法

  • 做减法(异或运算)

  • 余数比除数少1,停止运算

5.12 CRC是一种检错方法,而FCS是添加到数据后面的冗余码