计算机网络自学(更新中)

计算机网络自学(更新中)

lena dahuaidan

导论

TCP与UDP

  • tcp向上传输的是可靠的,编号、校验、重传等,消耗时间、空间
  • 对可靠性要求不高但对实时性要求高->UDP数据传输协议,所以常见于多媒体应用
  • https://pic.imgdb.cn/item/64af49711ddac507cc874125.png 左TCP右UDP,TCP先连接
  • 传输层是为多个远程应用进程提供服务的 在网络层提供的端到端的服务基础上实现,将主机到主机细分到进程到进程,是网络层的细分,不可靠到可靠
  • 网络层源主机到目标主机,主机到主机,是尽力而为的(?可能会丢包等)端到端(其中有很多点到点)所以在数据链路层提供的相邻两点点到点服务基础上才能实现
  • 传统?互联网网络层:路由:路由协议(路由器交换信息,路由算法->路由表)转发: IP协议(对到来的分组进行转发)
  • SDN
    • 数据平面
    • 控制平面

第一章 网络

什么是网络

网络边缘

https://pic.imgdb.cn/item/64af4ace1ddac507cc8a6a2b.png

  • 运用进程间通信的模式

    • CS模式 客户端服务器模式 ==服务器是主要的,首先运转==,守在端口等待客户端的请求,客户端主动请求服务器的资源,主为服务器,从为客户端
      • 问题 请求多的时候达到阈值会断崖,存在可扩展性的问题?(不全)扩容满足不了用户的请求
    • 对等模式(P2P)
      • 每个节点==既是客户端又是服务器==,
      • 请求资源的节点越多的同时 提供资源的节点也越来越多,且通信是==分布式==的,可以向不同节点请求
      • 文件分发系统中常用 如迅雷、电驴
  • TCP面向连接TCP:握手,两者做好准备、底层协议栈 做好准备,为后续通信分配资源等,通信状态==只==在端系统维护(面向连接) https://pic.imgdb.cn/item/64af4b121ddac507cc8b0f2f.png

    • 可靠 保序 (排序编号重传等 有时间代价
    • 流量控制:协调发送和接收速度,不让发送方发送太快以至于超过接收方的处理速度
    • 拥塞控制 考虑到网络路径的通行能力
  • UDP 无连接的

    • 不可靠 丢了就丢了,如定时采样的东西丢了也没事就可以采用UDP
      • 不用花时间的代价

https://pic.imgdb.cn/item/64af4b281ddac507cc8b4b4f.png

网络核心

  • 分组交换

    • 使用的是带宽的全部
    • 以分组packet为单位,在每个节点全存储,查路由表,通过某个端口全转发来实现网络核心数据交换的作用
    • 为什么要先完全存储?
      • 在使用这条链路的时候,其他的链路可以被其他主机对所使用 共享
    • 好处 按需使用,不占用网络资源 共享 支持的主机通信对数量更多 每个的节点不用维护主机对的映射
    • 缺点
      • 延迟比线路交换长,线路交换只耽误一个比特的时间,而分组交换要耽误存储的时间
      • 有排队时间,若这条链路还有别的分组要传
        • 排队延迟是随机的,后来的分组的排队延迟比前面的分组长
      • 拥塞:路由器的缓存用完了的话,分组将会被drop,所以有可能丢失
    • 举例 https://pic.imgdb.cn/item/64af4bb41ddac507cc8ccaaf.png![[Pasted https://pic.imgdb.cn/item/64af4bd11ddac507cc8d1d90.png注意发送和接收是一件事的两面,所以只算一次
    • 划分时间片的方式,是随机的(不同于线路交换(固定的))称为统计多路复用
    • 方式 按照网络层有没有连接分为
      • 数据报 无连接 分组写了目标主机的完整地址,两主机在通讯前不需要握手,每个分组的传递都是独立的
        • 因为路由表有可能变 即使目标主机ip没变,也有可能走不同的路线
        • 路由器中不维护主机主机间通讯状态,查路由表就转走
      • 虚电路 有连接 主机和目标主机通讯前要握手建立网络层的连接,交换节点间要保持通讯的状态,建立了虚拟电路,每个分组携带了虚电路号而不是目标主机的完整地址,同样是存储转发
        • 怎么建立?靠信令
        • 要维护通讯关系
        • 这叫有连接而不是面向连接(通讯状态的维护仅仅体现在端系统)
        • 虚电路和tcp
          • 比如有个简单网络,主机A跟D需要通信。通过两个路由节点B跟C。类似这样A<—>B<—->C<—>D这时候在A和D之间,建立TCP连接,TCP协议是A和D之间的。那么,在整个链路中,A和D之间的包经过路由器B和C的时候,B和C如果针对每个这样的包都进行路由交换,会比较慢,那么这时候,B和C可以建立某种虚电路。这样:A<—>B<===>C<—>D需要注意的是,B和C之间的虚电路并不是仅仅服务于A到D的包的,他服务于B到C的包,也就是说如果通过B到C有其他的数据包,也可以通过虚电路。所以,简单来说的话,TCP是连接层协议,一般用于网络端点间。虚电路属于网络层,一般虚电路用于路由节点之间。
  • 电路交换,为呼叫预留端-端资源

    • 独享的,专用资源,而计算机通讯具有很强的突发性,线路交换不太适合
    • 要求建立呼叫连接,有线路建立的时间
    • 保证性能
    • 可能会被浪费资源,
    • 常用于固话、移动通讯 https://pic.imgdb.cn/item/64af4bee1ddac507cc8d6933.png
    • https://pic.imgdb.cn/item/64af4c041ddac507cc8da8a0.png
    • 举例
    • 缺点
      • 连接建立时间长
      • 计算机间通信具有突发性,若使用线路交换则浪费的片多
        • 即使这个call没有数据传递,则其所占据的片也不能被别的呼叫胡勇
      • 可靠性不高
        • 交换机要维持很多对piece和piece的映射关系,一旦核心节点宕机,影响范围广
    • 方式:频分、时分、波分

接入网和物理媒体

网络结构和ISP

把关系密集的,在一个网络当中的,成为一个ISP 的网络

  • 网络的结构
    • 接入ISP 端系统通过接入ISP接入到互联网,如移动、联通

    • 接入ISP直接必须是互联的,如一个用的移动一个用的联通,若不互联则不能通信

    • ICP如谷歌、百度content provider network

    • 总结:

      • 中心:第一层ISP,国家/国际覆盖(点少,点和点间带宽大),速率极高,贷款大
        • 直接与其他第一层ISP相连
          • 通过peer连接或者和IXP
        • 与大量的第二层ISP和其他客户网络连接
      • 第二层ISP 最终目的通过合作把互联的范围扩大
      • 第三层ISP 与其他本地ISP 如接入网,与端系统最近,把终端接进

分组延时,丢失和吞吐量

  • 一跳(hop)所要经历的四种分组延时
    • 节点处理延迟,通常是微秒数量级或更少
      • 检查分组有无出错
      • 查路由表、处理等
    • 排队延时 取决于当时网络情况(拥塞情况)
      • 流量强度I=La/R, a指单位时间内需要这条篇链路转发的分组数量,每个分组长度L,所以I=单位时间这条链路需要放出的bit数量/带宽
        • 范围是0-1
        • 流量强度越接近1,排队延时趋近于无限大
    • 传输trasmistion延时 如R=Mbps,分组长度L=Mbits,传输延时为L/R
    • 传播延时 越过空间需要耗费的时间代价,物理链路的长度、在媒体的传播速度,所以若两个节点物理距离近的话传播延时基本可忽略不计
    • A主机到B主机需要很多跳
  • 信道容量
    • 容量大 一个信道可以容纳很多分组
    • 容量小 局域网 一个分组还没打完呢另一端就收到头的
  • ICMP协议 互联网控制报文协议
    • TTL time to leave生存时间是有限制,过一跳路由器TTL-1,若TTL=0的时候分组被抛掉(会通过ICMP协议告诉源主机,还说是我(某个路由器)干的)
    • 可以利用TTL=1,2…测试每一跳的延时
  • 分组丢失
    • 每条链路对应的输出队列总是有限的,所以可能被用完,链路的队列缓冲区容量有限
    • 分组到达一个满的队列时该分组会被drop
    • 三种应对
      • 若上一个节点的链路是可靠的,则上一个节点重传,
      • 而若是不可靠的如以太网,且应用进程是通过TCP来放出分组则为源主机重传,
      • 若链路是不可靠的且协议是UDP则源主机也不重传即根本不重传 https://pic.imgdb.cn/item/64af4cdd1ddac507cc90451a.png
  • 吞吐量
    • 单位时间内从源主机到目标主机的有效的比特数量/单位时间
      • 瞬间吞吐量 在一个时间点的速率
      • 平均吞吐量
      • 吞吐量取决于瓶颈链路(获得带宽最少的)

协议层次和服务模型

  • 功能模块化 相互调用
  • 分层 仅相邻层次的可调用 特殊的模块化
  • 大问题分解 便于采用新技术
  • 互联网复杂功能的实现
    • 上层模块可以使用下层服务,每层次通过层间接口向上层提供服务
    • 每层实现一个或一组功能,通过协议实体的交互动作,对等层实体通过一些协议交换控制信息
      • 怎么把协议数据单元PDU传给对方实体?实体
        • 通过层间接口借助于下层提供的服务
      • 协议的目的是为了向上层提供更好的服务,协议的实现要借助下层的服务
    • 本层向上层提供的服务也就包括了本层及以下的所有服务
  • 服务和服务访问点
    • 服务 低层实体向上层实体提供他们之间通信的能力,是垂直的
      • 服务用户和服务访问点
      • 若有三个应用,对于TCP来说是三个服务用户
      • 服务访问点来区分报文给谁,下层服务提供者用于区分不同上层用户的信息,是在层间的
    • 原语 上层使用下层服务的形式,上层要使用什么具体的服务?告诉服务提供者
    • 服务访问点SAP sercices access point 使用下层提供的服务通过层间的接口——地点
  • SDU服务数据单元,加上一些控制信息通过层间接口传到下一层,抛掉一些控制信息再加上一些本层的控制信息,形成本层PDU协议数据单元,跟对等层交换信息都是通过PDU进行交换的
    • SDU很大的时候有可能分成小块,每块都在头部加上控制信息形成大小合适的PDU
    • SDU很小的时候 合在一起再加一个头
    • 总之,body部分来自于上层SDU
    • PDU 每层交换的数据单元的称呼都不一样
  • 分层处理的好处
    • 大问题分解 便于采用新技术
  • 坏处:
    • 分布实现,子系统之间要相互交换信息导致效率相对更低
  • 互联网协议栈
    • https://pic.imgdb.cn/item/64af4cfd1ddac507cc90afe6.png
    • 物理层
      • 上层下来的帧一组一组地变成物理信号,承载在媒体之上,传输单位时bit
    • 链路层
      • 在物理层服务基础上在相邻两点间传输以帧为单位的数据,区分物理层比特的帧头帧尾
    • 网络层
      • 在链路层基础上提供以分组为单位的端到端(主机到主机)的数据传输
      • 不可靠的
    • 传输层
      • 把通信从主机到主机细分为进程到进程
      • 把网络层提供的可能不可靠的(乱序的、丢的等)变成可靠的
    • 应用层

封装和解封装没看

  • 标题: 计算机网络自学(更新中)
  • 作者: lena
  • 创建于: 2023-07-13 08:47:26
  • 更新于: 2023-07-13 10:29:23
  • 链接: https://lenaaa0.github.io/2023/07/6328c60e2bef.html
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
 评论