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 连接管理的三个节点
- 建立连接
- 数据传输
- 连接拆除
三次握手
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,可以使分组注入到网络的速率更加合理。
快速恢复和快速重传