互联网

  • 互联网 internet:
    • 将不同的计算机网络连接起来,并允许位于网络中的主机之间互相通信

    • 子网:组成因特网的其中一个网络

术语Internet(大写的I)被用来指将全球成千上万的计算机连接起来的TCP/IP互联网

互联网的目标是隐藏不同物理网络的细节以便向互联网络中的所有主机呈现一个统一的网络架构,例如,这意味着可以使用单个地址格式来标识互联网上的所有主机。

  • 路由器:连接网络并在网络之间传输数据的计算机

    • 需要理解使用的 互联网协议

    • 需要理解它所连接到的网络所使用的 数据链路层协议

    • 拥有 多个网络接口,用来连接不同的网络

  • 多宿主机:拥有多个网络接口的 任意 主机(不必是路由器)

    • 各个接口上的网络地址是不同的

联网协议和层

一个联网协议是定义如何在一个网络上传输信息的一组规则。联网协议通常会被组织成一系列的层,其中每一层都构建于下层之上并提供特性以供上层使用。

TCP/IP 协议

  • TCP/IP 协议套件

TCP/IP 协议套件是一个分层联网协议,它包括因特网协议(IP)和位于其上层的各个协议层。(实现这些层的代码通常被称为协议栈)

1

  • 协议分层

协议分层如此强大和灵活的其中一个原因是透明——每一个协议层都对上层隐藏下层的操作和复杂性

1

  • 封装

    • 高层 -> 低层

      低层 不会 对高层发送过来的信息(应用程序数据TCP段IP数据报)进行 解释,只是将其加入到当前层的 中(加入了当前层的头信息),然后继续向下传递

    • 低层 -> 高层

      一个 逆向的解包过程

1

数据链路层

最低层是数据链路层,它由设备驱动和到底层物理媒介(如电话线、同轴电
缆、或光纤)的硬件接口(网卡)构成

关注的是在网络的物理链接上传输数据

  • :数据链路层将网络层传递过来的数据报 封装 进被称为 的一个一个单元

    • 包含传输的 数据

    • 包含一个 (目标地址,帧大小等等)

  • MTU: 最大传输单元

    • 数据链路层所能传输的 帧大小的上限

网络层:IP

位于数据链路层之上的是网络层

关注的是如何将包(数据)从源主机发送到目标主机,执行以下任务:

1

  • 网络层主要协议:IP

    • 版本

      • IPv4:使用 32位 地址来标识子网和主机

      • IPv6:使用 128位 地址来标识子网和主机

    • 数据报

      • IP以 数据报 的形式来传输数据

      • 在两个主机间发送的每一个数据报在网络上都是 独立传输 的,路径可能不同

      • 数据报包含一个 (目标地址,源地址等等)

    • 无连接和不可靠

      • IP是一种 无连接协议,因为 没有 在相互连接两个主机间 建立虚拟电路

      • IP是一种 不可靠协议,不保证 是否到达到达顺序是否重复

    • 分段

      • 当一个IP数据报的大小 大于MTU 时,IP会将数据报 分段(分解) 成一个个大小适合在网络上传输的单元。这些分段在达到最终目的地之后会被 重组 成原始的数据报

      • 每个IP分段本身就是包含了一个 偏移量字段 的IP数据报,该字段给出了一个该分段在原始数据报中的位置

  • IP地址:包含两个部分,网络ID,指定主机所属的网络,主机ID,标识位于该网络中的主机

    • IPv4:采用 点分十进制法(4字节写成十进制数,然后用点分开)

      1

      • 特殊地址

        • 回环地址127.0.0.1,通常会被分配给主机名 localhost

          发送到这个地址的数据报实际上不会到达网络,它会自动回环变成发送主机的输入

        • 主机ID位都是0:用来标识网络本省

        • 主机ID位都是1:子网广播地址

      • 子网划分:

        每个子网使用网络ID和子网ID组合起来标识。这种组合通常被称为 扩展网络ID

      1

    • IPv6:一系列用 冒号 隔开的 16位十六进制 数字

    1

传输层

1

传输层协议的任务是向位于不同主机(或有时候位于同一主机)上的应用程序提供端到端的通信服务

  • 端口号:在TCP和UDP中,通过一个 16位的端口号 来区分的 同一主机上的不同应用程序

    • 众所周知的端口

    • 注册的端口

    • 特权端口

    • 临时端口

  • 用户数据报协议(UDP)

    UDP仅仅在IP之上添加了两个特性:端口号和一个进行检测传输数据错误的数据校验和

  • 传输控制协议(TCP)

    TCP 在两个端点(即应用程序)之间提供了可靠的、面向连接的、双向字节流通信信道

    1

    • 建立连接:发送者和接收者交换选项来协商通信的参数

    • 将数据打包成段

      • 数据会被 分解 成段,每一个段都包含一个 校验和,从而能够检测出端到端的传输错误

      • 每一个段使用 单个 IP数据报来传输

    • 确认、重传以及超时

    • 排序

      在TCP连接上传输的每一个字节都会分配到一个 逻辑序号。这个数字指出了该字节在这个连接的数据流中所处的位置

      • 用于 重组

      • 用于 移除重复 的段

    • 流量控制:防止一个 快速的发送者 将一个 慢速的接收者 压垮

      • 滑动窗口算法
    • 拥塞控制

      • 慢启动和拥塞避免算法
 posted on 2025-05-15 22:33  Dylaris  阅读(23)  评论(0)    收藏  举报