TCP是什么
TCP是Transmission Control Protocol的缩写,即传输控制协议。
TCP是一种面向连接的、可靠的、基于字节流的传输协议,是互联网通信协议TCP/IP中的一个重要组成部分。
三次握手
第一次握手(SYN):客户端向服务器发送一个连接请求报文段,报文段中包含SYN(同步序列号)标志位,并随机选择一个初始序列号(ISN)。
第二次握手(SYN/ACK):服务器接收到客户端的连接请求报文段后,向客户端发送确认报文段,报文段中包含SYN(同步序列号)和ACK(确认序列号)标志位,确认号为客户端的初始序列号+1,同时服务器也随机选择一个初始序列号。
第三次握手(ACK):客户端接收到服务器的确认报文段后,向服务器发送确认报文段,报文段中包含ACK(确认序列号)标志位和确认号,确认号为服务器的初始序列号+1。
四次挥手
第一次挥手(FIN):客户端向服务器发送一个FIN(结束)报文段,请求关闭连接。客户端不再发送数据,但仍能接收服务器端的数据。
第二次挥手(ACK):服务器接收到客户端的FIN报文段后,发送一个ACK(确认)报文段作为响应,告诉客户端已经收到关闭请求。
第三次挥手(FIN):服务器向客户端发送一个FIN报文段,请求关闭连接。服务器不再发送数据,但仍能接收从客户端发来的数据。
第四次挥手(ACK):客户端接收到服务器发送的FIN报文段后,发送一个ACK报文段作为响应,告诉服务器已经收到关闭请求。此时,客户端和服务器之间的连接已经正式关闭
OSI七层模型
应用层(第7层)为应用程序或用户请求提供各种服务 协议有:HTTP(超文本传输协议) FTP(文本传输协议) TFTP(简单文件传输协议) SMTP(简单邮件传输协议) SNMP(简单网络管理协议) DNS(域名系统) TELNET(远程终端协议) HTTPS(超文本传输安全协议) POP3(邮局协议版本3 ) DHCP(动态主机配置协议) 计算机
表示层(第6层) 数据表示、编码、格式转换、数据加密 LPP(轻量级表示协议)
会话层 (第5层) 建立、管理和维护会话 安全协议:SSL(安全套接字层协议)、TLS(安全传输层协议)
传输层 (第4层) 数据通信、提供主机端对端的接口 TCP协议 UDP协议 防火墙、四层交换机
网络层 (第3层) ip选址、为数据包进行路由选择 协议有:ICMP(互联网控制信息协议) IGMP(组管理协议) IP(IPV4 IPV6)(互联网协议) 安全协议、路由协议(vrrp虚拟路由冗余) 路由器、3层交换机
数据链路层(第2层)建立逻辑连接、用MAC地址访问 地址解析协议:ARP(是一种用于将IP地址映射到物理MAC地址的协议)、PARP(反向地址转换协议) 以太网、网卡、交换机
物理层 (第1层)以二进制数据形式在物理媒体上输出数据(比特流传输) 物理线路、光纤、中继器、双绞线
TCP实现形式
TCP(传输控制协议)是一种面向连接的、可靠的、基于流的传输协议,常用于网络通信中。
TCP有以下几种实现形式:
原生TCP:原生TCP是指通过系统内核提供的TCP协议栈进行通信,通常使用Socket接口进行编程实现。
TLS:TLS(Transport Layer Security)是一种基于TCP协议的安全传输协议,可以在TCP协议之上提供加密和身份验证等安全功能,常用于保护Web应用程序和电子邮件等敏感数据的传输。
HTTP协议:HTTP(HyperText Transfer Protocol)是一种基于TCP协议的应用层协议,常用于Web应用程序中进行数据传输。HTTP协议基于TCP协议的可靠传输特性,但不是TCP协议的直接实现形式。
SCTP:SCTP(Stream Control Transmission Protocol)是一种基于TCP协议的可靠传输协议,支持多流复用和多路复用等功能,可以提高网络传输的效率和可靠性。
QUIC:QUIC(Quick UDP Internet Connections)是一种基于UDP协议的可靠传输协议,可以在低延迟和高带宽网络环境下提供更快的传输速度和更好的用户体验。
总结
TCP协议是一种面向连接的、可靠的、基于字节流的传输协议,提供了可靠的数据传输、流量控制、拥塞控制、数据重传、数据分段和序列号等功能,是互联网上广泛使用的传输协议之一。
返回状态码
返回状态码 1xx Informational(信息性状态码) 接收的请求正在处理 2xx Success(成功状态码) 请求正常处理完毕 200 成功 3xx Redirection(重定向状态码) 需要进行附加操作以完成请求 301 永久 302 临时 4xx Client Error(客户端错误状态码) 服务器无法处理请求 403 无权访问 404 资源不在 5xx Server Error(服务器错误状态码) 服务器处理请求出错 500 内部错误 503 繁忙
TCP和UDP的特点和区别
TCP的特点:
-
可靠性:TCP确保数据的可靠传输,通过序列号、确认应答、重传、拥塞控制等机制来保证数据的完整性和顺序性。
-
连接导向:在传输数据之前,TCP需要在通信的两端建立连接,这种面向连接的特性可以保证数据的可靠传输。
-
有状态:TCP会在通信的两端维护连接状态信息,可以进行可靠的错误检测和恢复。
-
慢启动:TCP在建立连接和网络状况恢复后,会采用慢启动机制,逐渐增加发送数据的速率。
UDP的特点:
-
非可靠性:UDP不提供可靠性保证,不保证数据传输的完整性或顺序性。
-
无连接:UDP不需要事先建立连接,直接将数据发送出去,因此传输开销较小。
-
无状态:UDP不维护连接状态信息,每个数据报都是独立的,因此对系统资源的消耗较少。
-
实时性:由于没有可靠性保证和连接建立的过程,UDP适合实时应用,如实时音频、视频等。
TCP和UDP的区别:
-
可靠性:TCP提供可靠性保证,而UDP不提供。
-
连接性:TCP是面向连接的,需要事先建立连接,而UDP是无连接的。
-
应用场景:TCP适用于对数据可靠性要求较高的应用,如文件传输、网页浏览等。UDP适用于对实时性要求较高,但对数据完整性要求较低的应用,如流媒体、实时游戏等。
-
传输效率:UDP比TCP传输效率更高,因为UDP没有连接建立和可靠性机制的开销。