Skip to content

3.网络协议和体系结构

1. 概述

  • 协议:通信双方必须要遵守的规则和约定称为协议或者规程
  • 协议的要素:语法、语义和时序关系
  • 分层思想的好处和核心思路
  • ____ 构成了网络的体系结构
  • OSI 参考模型(7层)和 TCP/IP(4层)参考模型时目前常用的两种典型参考模型

2. OSI 开放系统互联参考模型

  • OSI 包括:物理层、数据链路层、网络层、传输层(运输层)、会话层、表示层和应用层
  • 物理层、数据链路层、网络层 被称为节点到节点层
  • 传输层、会话层、表示层和应用层称为端到端层

作用

  • 物理层:主要功能是在传输介质上实现无结构比特流传输
  • 数据链路层:实现相邻节点之间的数据可靠而有效地传输,以帧为单位、差错控制、连接管理
  • 网络层:数据转发与路由、流量控制、寻址(IP地址)
  • 传输层:复用/解复用、端到端的可靠数据传输、连接控制、流量控制和拥塞控制机制
  • 会话层、表示层
  • 应用层:提供给用户的网络服务相关,这些服务非常丰富,包括文件传输、电子邮件和P2P应用

OSI 术语

  • 数据单元:在层的实体之间传送的比特组被称为数据单元
  • 协议数据单元PDU:在对等层之间传递数据单元是按照本层协议进行的,这是的数据单元就是PDU
    • 物理层:比特流
    • 链路层:帧
    • 网络层:包或者分组
    • 传输层:数据段或报文段
    • 应用层:报文
  • 服务访问点 SAP:相邻层间的服务是通过其接口面上的服务访问点进行的,N层的SAP就是N+1层可以访问N层的地方
  • 服务原语:请求、指示、响应、确认
  • 分层体系结构中,下层向上层提供服务的类型包括:面向连接的服务和无连接的服务
  • 面向连接的服务以电话系统最为典型,面向连接的服务也被称为 虚电路服务

3. TCP/IP参考模型

  • 1974年第一版发表
  • 包含层有:网络接口层、网络互联层、传输层和应用层
  • 传输层负责在会话进程之间建立和维护端到端连接,实现网络环境中分布式进程通信。
  • 网络互联层是核心,主要是IP协议,解决把IP数据分组发往目的网络或主机的问题;还有ICMP,IGMP协议,IP、ARP(地址转换协议)、RARP(反向地址转换协议)等
  • 网络接口层:无实际规定只要能过遵循网络互联层的IP协议即可
  • OSI 和 TCP/IP 的区别(P74)
    • 层次划分不同
    • 面向连接和面向无连接的通信不同
    • 具体协议配合程度

TCP 和 UDP

  • TCP/IP参考模型包含 IP,TCP,UDP,DNS,HTTP 和 FTP
  • 两个传输层协议:面向连接的传输控制协议TCP 和 无连接的用户数据报协议UDP
  • 端口号为一个16位二进制整数: 端口号

UDP

  • 首部:、 __、 __
  • 理论最大长度 __ ,有时会降到 8192B

TCP

  • 面向连接、可靠的、基于字节流的传输层通信协议
  • 使用IP地址+端口号来唯一标识通信中的端点,其中IP地址用来标识 _ ,端口号用来标识是 _
  • TCP 连接采用的是 客户/服务器 模式

TCP首部:

  • 固定20字节:16位源端口,16位目的端口,32位序列号seq,32位确认序号ack_seq,4位首部长度(4B单位,最大60字节),6位保留字段,UAPRSF6位(状态位),16位窗口字段,16位校验和,16位紧急指针
    • 32位序列号:本次发送的第一个字节的序号
    • 32位确认序号:接收方发给发送方的,是期望收到对方的下一个报文段的数据的第一个字节的序号
    • 窗口字段用来控制对方发送的数据量
    • 紧急指针存放紧急数据的最后一个字节,开始位置就是数据的开始位置
  • 选项字段(变长):只规定了MSS,最大报文长度,不包括TCP首部
  • 填充字段,填充到头部位4B倍数
  • 报文大小收到数据链路层如以太网的MTU限制
  • 流量控制:通过通告接收缓存空间作为接受窗口,来通知对方;流量控制的目的是使发送端的数据发送速率不要太快,确保接收端能够来得及接收,不会出现溢出;使用窗口机制实现
  • 拥塞控制(P80):也是使用窗口机制实现;从端到端的角度来推测网络是否发送拥塞。

TCP 连接管理的三个节点

  1. 建立连接
  2. 数据传输
  3. 连接拆除

三次握手

A->B: SYN=1,                     seq=x
B->A: SYN=1, ACK=1, ack_seq=x+1, seq=y
A->B: SYN=0, ACK=1, ack_seq=y+1, seq=x+1

四次握手

A->B: FIN=1, seq=u
B->A: ACK=1, seq=v,   ack_seq=u+1
B->A: FIN=1, seq=w,   ack_seq=u+1
A->B: ACK=1, seq=u+1, ack_seq = w+1

慢启动算法和拥塞避免 P81

  • 在主机刚刚开始发送报文段时可先将拥塞窗口 cwnd 设置为一个最大报文段MSS 的数值。
  • 在每收到一个对新的报文段的确认后,将拥塞窗口增加至多一个MSS 的数值。
  • 用这样的方法逐步增大发送端的拥塞窗口cwnd,可以使分组注入到网络的速率更加合理。

快速恢复和快速重传