作者:港1009 | 来源:互联网 | 2023-09-08 11:48
1. 概述
TCP是传输控制协议,是网络五层模型中,自下而上的第四层——传输层的协议。该协议是面向连接的、可靠的、基于字节流的。
2. 为什么会有TCP?
TCP是传输层的,是建立在网络层至上的。网络层上的IP协议,是基于不可靠的包交换的。为了满足可靠交换的需求,就出现了TCP协议。
3. TCP是如何保证可靠传输的?
TCP协议要求发送方,在发送数据后,等待接收方回执的ACK,如果发送端在合理的往返时延(RTT)内未收到ACK,就重传。并且TCP协议要求发送方和接收方,要检验校验和(CHECKSUM)是否有误。
4. 三次握手
第一次:客户端向服务器发送一个请求;
第二次:服务器收到后回执一个ACK;
第三次:客户端收到ACK后再发送一个ACK。
5. 四次握手
当TCP连接终止时,是采用四次握手方式。
第一次:客户端向服务器发送FIN
第二次:服务器向客户端回执ACK
第三次:服务器向客户端发送FIN
第四次:客户端向服务器回执ACK
6. 端口
这是一个常识性问题。如果使用了端口号的概念,那么一定是采用TCP连接的。
(1)为什么用端口:
TCP使用了端口号的概念,来标识发送方和接收方的应用层。可以根据端口号,来找到对方应用层相应的进程。
(2)端口号范围:
16位无符号整数,理论范围是[0, 65535]。
(3)端口号分类:
公开端口号:由IANA(英特网赋号管理局)管理分配。常用的FTP、SMTP、HTTP、TELNET皆属此类。
注册端口号:一般用作客户端进程临时连接服务器使用。
私有端口号:在特定的应用层应用进程中使用。
7. TCP的数据结构
000-015位:来源连接端口号
016-031位:目的连接端口号
032-063位:串行号码
064-059位:确认号码
……
160/192位开始:数据部分