IP:无连接,不可靠,无确认,尽力而为的传输
TCP:面向连接,可靠,滑动窗口,确认的数据交付,自动重传未确认的传输
UDP:不需要创建连接,不可靠,数据可能丢失
表 42-1 UDP与TCP比较
图 43-1 多路复用和多路分解
43.3.2 端口号范围
表 43-1 常见的周知端口号及应用程序
表 43-2 常见的注册端口号及应用程序
UDP:使用UDP端口号在传输层寻址,提供用于差错检测的校验和,供那些不要求传输层提供可靠性、确认或流控的应用协议使用
44.2 UDP操作
UDP伪首部校验,防止将报文交付到错误目的地
DNS在较短的简单请求or应答时使用UDP 53端口,对要求可靠交付的大一点的报文(如区域传送)使用TCP 53端口
TCP面向连接、带确认、可靠性、滑动窗口、需要时进行重传、拥塞避免、流控、无结构数据亦即面向流
表45-1 TCP补充标准
45.2 TCP功能
应用程序通常将一个很短的独立数据块交给UDP打包
离散报文的方式要求程序主动了解数据报顺序等问题
TCP将数据视为流,而不需要把数据切割成块,应用程序自己确定数据元素结束or开始边界
TCP累积从应用进程处接收的数据流,定期将其打包成段,交付给IP层
最大段长MSS:Maximum Segment Size (不含TCP首部)
TCP字节级的标识机制:序列号
图46-4 增强型PAR,同一时刻可以有不止一个报文传输,每个报文均可单独确认
46.2.4 TCP面向流的滑动窗口确认系统
发送窗口:接收方允许发送方具有的、传输在外的、未经确认的最大字节数量
可用窗口:发送窗口长度 - 已发送而未确认的字节数
图46-6 TCP传输流分类及发送窗口专用名词
TCP累积确认,滑动窗口调整
UDP直接将数据发送给目的端口对应的进程,因此可以无缝处理任意多个直接正在向其发送报文的进程,因为UDP处理它们的方式都一样
TCP必须分离不同连接,独立管理每条连接的操作
一个连接由套接口标识:源地址,源端口,目的地址,目的端口
表46-1 常见TCP应用程序及对应端口
图47-1,表47-1 TCP有限状态机
客户进程主动打开(SYN),服务进程被动打开,每个设备都会为每个TCP会话建立传输控制块TCB
SYN:初始化连接时的序列号同步
图47-2 TCP三资握手
第二步的SYN+ACK是服务器对客户机的ACK和服务器自己的SYN
图47-3 TCP同时开始创建连接的过程
32比特初始序列号ISN
图47-4 TCP序列号同步
半开连接问题:一台设备关闭或终止了连接而另一设备不知情
47.5.1,47.5.2 TCP复位
TCP保活报文(不含数据的空段)
图47-5 TCP连接终止
最大段寿命MSL,客户机关闭TCP连接前需等待2倍MSL时间
图47-6 TCP同时连接终止过程
表48-1,图48-1 TCP段格式
表48-2 TCP段控制比特
TCP选项:最大段长度,窗口长度移位比特,……
48.2.3 伪首部的优越性
48.3.1 MSS选择:开销管理(首部及数据比例)~小,IP分片~大
IPv4最小MTU 576字节 - 20 字节TCP首部 - 20字节IP首部 = TCP标准MSS 536字节
SYN报文中的最大段长度选项,指定设备想使用的MSS
图48-6 服务器方TCP事务实例
图48-7 客户机TCP事务实例
48.4.5 滑动窗口的复杂化
TCP的PSH置位,立即交付
TCP的URG置位,优先发送
累积确认意味着,若一个段传丢了,那么在该段重传并成功接收前,之后的段都无法得到确认
49.2.2 TCP选择性确认(SACK)
往返时延RTT:round-trip time
TCP自适应重传
49.3.2 确认的多义性
图49-4 TCP窗口长度调整和流量控制
图49-5 收缩TCP窗口存在的问题
TCP探测段,提醒服务器返回当前窗口长度
图49-6 TCP糊涂窗口综合症SWS
49.6.2 SWS避免算法
49.7.2 TCP拥塞处理机制
没有评论:
发表评论