TCP与UDP理解
概述
TCP与UDP同属于TCP/IP协议族中传输层的两个重要协议,不同于网络层实现的跨网络跨节点的点对点(不同宿主间)通信,传输层实现的是端到端之间的通信(运行于不同宿主机上的进程间通信)。这是TCP与UDP协议设计和开发的目标。
TCP
TCP是Transmission Control Protocol的缩写,表示传输控制协议,是一种面向连接的通信协议,一笔TCP的数据被称为一个TCP分节(segment)。TCP提供面向字节流式传输能力,无数据边界,即TCP的header中是没有数据长度(length/size)指示字段的。TCP在网络状态正常或短暂异常的情况下,提供可靠的传输能力,保证TCP分节按序、正确、唯一的被传递到应用层。TCP header大于等于20字节。
- TCP主要通过确认(ACK)、超时与重传来实现可靠传输的。
- 通过source port与destination port实现端到端(进程到进程)间通信。
- 通过seq num与ack num保证每一个TCP分节按序、唯一的传输到目的端。
- data offset字段占4bits,数值以4字节(32bits)为单位,表示了TCP header的长度,或者说data段的起始位置。
- 控制位:6bits,自左向右分别为URG、ACK、PSH、RST、SYN、FIN,将在TCP详解中说明。
- window:窗口大小,16bits,被设置于接收端(receiver)的ACK分节中,用于告知发送方(sender)我方接收能力,还可以接收多少数据。主要用于TCP的拥塞控制,流量控制。
- checksum:校验和,用于数据校验,保证数据正确性。
- urgen