说明
- 博客作为笔记备份,不定时更新
- 参考内容为王道考研《计算机网络考研复习指导2023》
- 简化版仅进行了知识点汇总,详细知识点没有记录,主要用来搭知识体系框架
思维导图版
文字版
传输层
传输层提供的服务
- 传输层的功能
- 端到端的逻辑通信
- 为运行在不同主机上的进程之间提供了逻辑通信
- 复用和分用
- 复用:发送方不同的应用进程都可以使用同一个传输层协议传送数据
- 分用:接收方的传输层剥去报文的首部后可正确交付数据
- 差错检验
- 检验首部和数据部分
- 传输协议:UDP和TCP
- 端到端的逻辑通信
- 传输层的寻址与端口
- 端口
- 作用
- 端口是传输层服务访问点(TSAP)
- 端口标识主机中的应用进程
- 传输层使用的是软件端口
- 端口号
- 16bit,端口号仅具有本地意义
- 分类
- 服务器端使用的端口号
- 熟知端口号(0~1023)
- 登记端口号(1024~49151)
- 常用的熟记端口号
- FTP:21
- TELNET:23
- SMTP:25
- DNS:53
- TFTP:69
- HTTP:80
- SNMP:161
- 客户端使用的端口号(49152~65535)
- 这类端口仅在客户进程运行时才动态的选择,又称为短暂端口号
- 通信结束后,刚刚使用过的客户端口号就不复存在
- 服务器端使用的端口号
- 套接字
- 套接字 S o c k e t = ( I P 地址 : 端口号) Socket = (IP地址:端口号) Socket=(IP地址:端口号)
- 套接字实际上是一个通信端点,唯一的标识网络中的一台主机和其上的一个进程
- 作用
- 端口
UDP
- 特点
- 无需建立连接,因此不会引入建立连接的时延
- 无连接状态
- 首部开销小,仅8B
- 没有拥塞控制,应用层能更好地控制要发送的数据和发送的时间
- 支持一对一、一对多、多对一、多对多通信
- 适用于一次性传输较少数据的网络应用,如DNS、SNMP;也常用于多媒体应用
- 不保证可靠交付,由应用层维护可靠性
- 面向报文,一次交付一个完整的报文(报文长度由发送的应用进程决定),不合并不拆分,仅保留报文的边界
- 首部格式
- 源端口 2B
- 目的端口 2B
- 长度 2B
- 校验和 2B
- 校验
- 计算校验和时,临时在UDP数据报之前增加12B的伪首部
- UDP的校验和检查首部和数据部分
- 校验时,若UDP数据报长度不是偶数个自己,则填上一个全0字节,但该字节不发送
TCP
- 特点
- 面向连接,是一条逻辑连接
- 每条连接只能有两个端点(进程对进程)
- 提供可靠交付,传送的数据无差错、不丢失、不重复、有序
- 全双工通信,收发两端都设有发送缓存和接收缓存
- 面向字节流
- TCP首部格式
- 首部20B固定,后面4N字节可选,首部长度为4B的整数倍,首部最大长度为60B
- TCP连接管理
- 三次握手
- 注意:服务器端的资源是在完成第二次握手时分配的,客户端的资源是在完成第三次握手时分配的,因此服务器易受到SYN泛洪攻击
- 四次挥手
- 三次握手
- TCP可靠传输
- 校验
- 序号
- TCP首部的序号字段用来保证数据有序的交给应用层
- 每个字节都有编号
- 确认
- 默认使用累积确认
- 重传
- 超时
- 为每个发送的报文段设置计时器
- 采用自适应算法,保留了加权平均往返时间RTTs,超时重传时间应略大于RTTs
- 冗余确认
- TCP规定发送发收到对同一报文段的3个冗余ACK时,就认定跟在该报文段后的报文段丢失
- 超时
- TCP流量控制
- 采用滑动窗口机制
- 发送窗口实际大小 = m i n 接收窗口 r w n d , 拥塞窗口 c w n d 发送窗口实际大小=min{接收窗口rwnd,拥塞窗口cwnd} 发送窗口实际大小=min接收窗口rwnd,拥塞窗口cwnd
- 与数据链路层流量控制的区别
- 传输层定义端到端的流量控制;数据链路层定义两个中间相邻结点间的流量控制
- 传输层的窗口大小可动态改变;而数据链路层的不可以动态变化
- TCP拥塞管理
- 拥塞控制和流量控制的区别
- 拥塞控制是全局性过程;流量控制是端到端的
- 慢开始&拥塞避免
- 快重传&快恢复
- 快重传技术使用ACK冗余来检测丢包发生
- 拥塞控制和流量控制的区别