1、 TCP的定义:
a) 传输控制协议TCP(Transport Control Protocol)是用于不可靠的因特网上提供可靠的、端到端的字节流通信的协议。
2、 TCP的主要特征:
a) 面向连接的传输,传输数据钱需要线建立连接、数据传输完毕要释放连接;
b) 端到端通信,不支持广播通信;
c) 高可靠性,确保传输数据的正确性,不出现丢失和乱序;
d) 全双工方式传输;
e) 采用字节流方式,即以字节为单位传输字节序列,如果字节流太长,将其分段;
f) 提供紧急数据传送功能,即当有经济数据需要发送时,发送进程会立即发送,接收方收到后会暂停当前工作,读取紧急数据并做相应处理
3、 TCP段的结构:
a) 源端口:源节点进程端口号;
b) 目标端口:目标节点进程端口号;
c) 序列号:TCP对字节流中的每个字节都编号;
d) 确认号:下一个字节的序列号,代表前面的字节都正确接收;
e) 头长度:根据该字段确定TCP数据的起始位置;
f) 标志:该字段包含对其它字段的说明或者对控制功能的标志。具体的有如下:
i. ACK:说明确认字段中的数据有意义;
ii. URG:说明紧急数据指针字段中的数据有意义;
iii. FIN:标志是最后的TCP数据段,FIN也称为完成;
iv. PSH:接收方可以立即提供该段数据到应用层;
v. RST:出现异常的时候,需要暂时终止连接的标志,也称为复位
vi. SYN:在建立初始连接时,允许双方共同确定初始序列号,也称为同步
g) 窗口:通知接收双方可以发送的数据字节数
h) 校验和:进行差错校验的字段
i) 紧急数据指针:紧急数据需要接收方尽快提供给应用层;
j) 选项:可选长度
k) 数据:用户提供的数据
4、 TCP的端口号
a) TCP中的端口地址是16位,可以选择0-65535范围内的端口号,下面是65536个端口号的使用规定:
i. 端口号小于256的定义为常用端口号,服务器是通过常用端口号来识别的;
ii. 任何TCP/IP实现所提供的服务都用1-1023之间的端口号;
iii. 大多数TCP/IP实现给临时端口分配1024-5000之间的端口号;
iv. 大于5000的端口号是为其他服务器预留的,Internet上并不常用的服务。
b) TCP协议的常用端口号:
i. FTP的端口号21和20
ii. Telent的端口号23
iii. HTTP的端口号80
iv. SMTP的端口号25
v. POP3的端口号110
5、 TCP的连接管理
a) 在传输数据前要建立逻辑连接,数据传输结束后还要释放连接,这种建立、维护和释放连接的过程就是连接管理
b) 三次握手建立连接:第一方向另一放发送连接请求段SYN,另一方回应对连接请求的确认段ACK和SYN,第一方再发送对对方确认段的确认ACK,连接建立成功。
c) 四次握手释放连接:第一方向另一方发送连接释放请求段FIN,另一方回应对连接释放的确认段ACK和FIN,此时另一方还可以发送数据,当无数据传输的时候,另一方发送释放连接的请求段FIN,第一方再发送对对方请求段的确认段ACK,连接释放成功。
6、 TCP的滑动窗口
a) 滑动窗口的管理可以让发送方不需要从应用层一收到数据就马上发送,可以等待数据达到一定数量后一起发送;
b) 滑动窗口的管理也可以让接收方不需要一收到数据就立即发送确认,可以等待接收的数据达到一定数量后一起发送确认。
7、 TCP的重传策略
a) TCP协议用于控制数据段是否需要重传的依据是设立重发定时器。定时器超时前没有收到确认,则重传该数据段;定时器超时前收到确认,就关闭该定时器。
8、 TCP的拥塞控制
a) 因特网中,对拥塞的控制大部分是由TCP来完成的,对拥塞控制的最有有效的方法是降低数据传输率;
b) 解决拥塞的办法是增加一个拥塞窗口。
零测试