“传输层”学习提纲
前言
计算机网络的知识抽象、晦涩、不易理解并记忆,在此对“传输层”一章中重点知识总结成提纲。
传输层提供的服务
传输层的功能
- 端到端通信(应用进程间的逻辑通信)(网络层是主机到主机通信)
- 复用和分用(网络层的复用和分用概念与之不同)
- 两种传输层协议:用户数据报协议(UDP)和传输控制协议(TCP)(网络层不能同时实现两种协议)
- 差错控制:检测数据报/报文段的首部+数据(网络层只检测分组的首部)
- 流量控制(传输控制协议(TCP)实现)
- 拥塞控制(传输控制协议(TCP)实现)
注意:
- 传输层:端到端通信
- 网络层:主机到主机通信
- 数据链路层:点到点通信
传输层、网络层和数据链路层的服务访问点(SAP)
- 传输层:端口
- 网络层:网际协议(IP)地址
- 数据链路层:介质访问控制(MAC)地址
端口号的类型(依据端口号的范围)
服务器使用的端口号:
- 熟知端口号:0-1023
- 登记端口号:1024-49151
客户端使用的端口号/临时端口号:49152-65535
常用的熟知端口号
- 文件传输协议(FTP):数据连接:20,控制连接:21
- 远程登录(TELNET):23
- 简单邮件传输协议(SMTP):25
- 域名系统(DNS):53
- 简单文件传输协议(TFTP):69
- 超文本传输协议(HTTP):80
- 简单网络管理协议(SNMP):161
套接字的组成
- 端口号——进程
- 网际协议(IP)地址——主机
传输层提供的服务类型
- 无连接:用户数据报协议(UDP)
- 面向连接:传输控制协议(TCP)
用户数据报协议(UDP):面向报文
用户数据报协议(UDP)的服务
相对网际协议(IP)服务增加:
- 复用和分用
- 差错控制
用户数据报协议(UDP)数据报的格式
首部:8字节(B)
- 源端口号:2字节(B)
- 目的端口号:2字节(B)
- 长度(首部+数据):2字节(B)
- 校验和(校验用户数据报协议(UDP)数据报的首部+伪首部+数据):2字节(B)
数据
伪首部(只用于计算校验和而临时添加,既不向上递交也不向下传送):12字节(B)
- 源网际协议(IP)地址:4字节(B)
- 目的网际协议(IP)地址:4字节(B)
- 值0:1字节(B)
- 协议:值17:1字节(B)
- 用户数据报协议(UDP)数据报的长度:2字节(B)
基于用户数据报协议(UDP)的应用
- 域名系统(DNS)
- 简单文件传输协议(TFTP)
- 简单网络管理协议(SNMP)
- 实时传输协议(RTP)
- 客户端/服务器模型
- 远程过程调用(RPC)
- 实时多媒体
传输控制协议(TCP):面向字节流
传输控制协议(TCP)报文段的格式
首部:
- 固定部分:20字节(B)
- 可变部分:4字节(B)的整数倍
固定部分:
- 源端口:2字节(B)
- 目的端口:2字节(B)
- 序号:4字节(B):本传输控制协议(TCP)报文段的数据的第一个字节的序号
- 确认号:4字节(B):期望传输控制协议(TCP)报文段的数据的第一个字节的序号
- 数据偏移/首部长度:4比特/位(b):值的基本单位:4字节(B)
- 保留:6比特/位(b)
- 标志位:6比特/位(b)
- 窗口:2字节(B)
- 校验和(首部+数据):4字节(B)
- 紧急指针:2字节(B)
标志位:
- 紧急位URG:1比特/位(b)
- 确认位ACK:1比特/位(b)
- 推送位PSH:1比特/位(b)
- 复位位RST:1比特/位(b)
- 同步位SYN:1比特/位(b)
- 终止位FIN:1比特/位(b)
可变部分:
- 选项:最大报文段长度(MSS)(数据)
- 填充
数据
伪首部(只用于计算校验和而临时添加,既不向上递交也不向下传送):12字节(B)
- 源网际协议(IP)地址:4字节(B)
- 目的网际协议(IP)地址:4字节(B)
- 值0:1字节(B)
- 协议:值6:1字节(B)
- 传输控制协议(TCP)报文段的长度:2字节(B)
传输控制协议(TCP)连接管理
模式:客户机/服务器(C/S)模式
过程:
- 连接建立(三次握手)
- 数据传输
- 连接释放(四次挥手)
注意:连接端点/套接字,而不是点、主机和端(应用进程)
传输控制协议(TCP)连接建立(三次握手)的过程
注释:
- SYN:同步位
- ACK:确认位
- seq:序号
- ack:确认号
- 客户机:SYN=1,seq=x
- 服务器:SYN=1,ACK=1,seq=y,ack=x+1
- 客户机:ACK=1,seq=x+1,ack=y+1
传输控制协议(TCP)连接释放(四次挥手)的过程
注释:
- FIN:终止位
- ACK:确认位
- seq:序号
- ack:确认号
- 客户机:FIN=1,seq=u
- 服务器:ACK=1,seq=v,ack=u+1
- 服务器:FIN=1,ACK=1,seq=w,ack=u+1
- 客户机:ACK=1,seq=u+1,ack=w+1
传输控制协议(TCP)的可靠传输机制
- 校验(与用户数据报协议(UDP)的校验机制同)
- 序号:对字节(B)编号
- 确认(默认是累积确认):对传输控制协议(TCP)报文段确认
- 重传
重传事件:
- 冗余确认(ACK)->拥塞控制的快重传
- 超时
传输控制协议(TCP)的流量控制机制
- 滑动窗口+拥塞控制:发送窗口上限值=min[接收窗口(rwnd),拥塞窗口(cwnd)]
传输控制协议(TCP)的拥塞控制机制/算法
慢开始算法中,初始拥塞窗口(cwnd)=1=最大传输控制协议(TCP)报文段长度(MSS)
- 慢开始(指数增大):拥塞窗口(cwnd)<=阈值/门限(ssthresh);拥塞窗口(cwnd)×2
- 拥塞避免(加法增大):拥塞窗口(cwnd)>=阈值/门限(ssthresh);拥塞窗口(cwnd)+1
- 快重传:接收三个冗余确认(ACK)立即重传,不等待超时
- 快恢复
网络拥塞处理(乘法减小):
- 阈值/门限(ssthresh)=拥塞窗口(cwnd)÷2
- 拥塞窗口(cwnd)=1
- 执行慢开始算法
快恢复算法过程:
- 阈值/门限(ssthresh)=拥塞窗口(cwnd)÷2
- 拥塞窗口(cwnd)=拥塞窗口(cwnd)÷2/阈值/门限(ssthresh)
- 执行拥塞避免算法
总结:
- 冗余确认(ACK)事件:快重传算法+快恢复算法
- 超时事件:慢开始算法+拥塞避免算法+网络拥塞处理
基于传输控制协议(TCP)的应用
- 文件传输协议(FTP)
- 远程登录(TELNET)
- 简单邮件传输协议(SMTP)
- 超文本传输协议(HTTP)
总结
计算机网络的知识抽象、晦涩、不易理解并记忆,在此对“传输层”一章中重点知识总结成提纲。
参考资料
- 《2023年计算机网络考研复习指导》组编:王道论坛
作者的话
- 感谢参考资料的作者/博主
- 作者:夜悊
- 版权所有,转载请注明出处,谢谢~
- 如果文章对你有帮助,请点个赞或加个粉丝吧,你的支持就是作者的动力~
- 文章在描述时有疑惑的地方,请留言,定会一一耐心讨论、解答
- 文章在认识上有错误的地方, 敬请批评指正
- 望读者们都能有所收获
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 夜悊的技术小宅!