type
status
date
slug
summary
tags
category
icon
password

协议层次

计算机网络解决复杂问题的方式
协议:协议通过下层的服务实现,协议是为了向上层提供更好的服务
分层的原因:为了给网络协议的设计提供一个结构,网络设计者以分层的方式组织协议并实现这些协议的网络硬件和软件
实现服务的方式:当前层通过接口访问下层提供的服务,再向上层提供服务以完成更加复杂的功能,这些也包括了下层提供的服务和对等层交互形成的新服务

服务和服务访问点

面向连接的服务

客户端进程要与服务端建立连接
TCP

无连接的服务

两个进程不需要为后续准备
UDP

服务和协议

区别

服务:低层实体向上层实体提供它们之间的通信的能力,是通过原语来操作的,是垂直的
协议:对等层(peer entity)之间在相互通信的过程中,需要遵循的规则的集合,是水平的

联系

本层协议的实现要依靠下层提供的服务
本层实体通过协议为上层提供更高级的服务

数据单元(DU)

  • SDU:service data unit 服务数据单元
    • 上层要求下一层传输的数据
  • ICI:interface control information 接口控制信息
  • PDU:protocol data unit 协议数据单元
    • 本层PDU由上层要求传输的数据,即SDU,和本层需要的附加控制信息组成
      上层SDU–>通过层间接口–>本层头部Header(存储附加信息)+上层SDU–>本层PDU–>成为下一层的SDU–>……
  • 每一层的协议数据单元称呼不一样

协议栈:各层的所有协议被称为协议栈

各层介绍

  • 应用层
    • 分布在多个端系统上,而一个端系统中的应用程序使用协议与另一个端系统中的应用程序交换信息分组
      这种在应用层上的信息分组叫报文
      这一层的协议是最多的
      在运输层提供的服务基础上,完成应用到应用之间的信息交互
      FTP、HTTP、DNS
  • 传输层
    • 运输层在应用程序端点之间传送应用层报文
      运输层上的分组叫报文段
      在主机到主机的基础上,进行进程到进程的区分
      在网络层提供的服务基础上,把网络层提供的不可靠通讯服务变成可靠的通讯服务
      TCP提供面向连接的服务、UDP提供无连接服务
  • 网络层
    • 网络层负责将称为数据报的网络层分组从一台主机移动到另一台主机
      运输层协议(TCP和UDP)向网络层递交运输层报文段和目的地址
      所有具有网络层的因特网组件必须运行IP,IP即网际协议,是把因特网连接在一起的黏合剂
      在链路层提供的相邻两点传输的基础上,提供从源主机到目标主机之间的端到端的传输
      IP、路由协议
  • 链路层
    • 网络层依靠链路层的服务,网络层将数据报下传给链路层,链路层沿着路径将数据报传递给下一个节点,在下一个节点,链路层将数据报上传给网络层
      不仅有header还有一个尾部——纠错和检错
      在物理层提供的服务的基础上,在相邻两点之间传输以帧(frame)为单位的数据
      PPP
  • 物理层
    • 将一个个比特从一个节点移动到下一个节点
      直接使用物理媒体来传输信号,数字数据变成物理信号,承载在媒体之上

各层次协议数据单元

  • 应用层
    • 报文(message)
  • 传输层
    • 报文段(segment)
  • 网络层
    • 分组(packet)
      无连接方式:数据报(datagram)
  • 数据链路层
    • 帧(frame)
  • 物理层
    • 位(bit)

协议层次模型小结

notion image
  • 为什么要分层?
    • 简化设计和实现,便于互联互通
  • 每一层的对等实体之间进行通信,通信要遵守协议
  • 只有最底层是实际通信,其他层都是虚拟通信
  • 数据流向:U型
    • 发送系统自顶向下,最底层实际传输数据
    • 接收系统自底向上
  • 封装
    • 某层实体在上一层交付的数据前面或后面加上自己的控制信息,构成本层的数据包
    • 这些控制信息是由协议定义的
  • 例子:
    • 源–>目的的数据传输收到电磁波信号
      –>物理层分辨帧头和帧尾,取出帧交给链路层(解封装)
      –>链路层取出数据部分交给网络层(解封装)
      –>网络层分析分组头部(包含目标IP地址等信息)(解封装)
      –>把分组交给网卡
      –>网卡(封装)
      –>交给链路层加上头部形成帧(封装)
      –>交给物理层一个bit一个bit地打出(封装)
      在源端封装,在目的端解封装,最终从源端传到目标主机

Service Primitives 服务原语

  • 层与层之间的交互
数组Computer Networking Notes
  • Giscus