2009年5月28日星期四

TCP/IP Guide : 第二篇 TCP/IP 较低层的核心协议 (8) TCP/IP 传输层协议

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拥塞处理机制

没有评论:

发表评论