TCP和UDP协议是TCP/IP协议的核心。
一.TCP(Transmission Control Protocol:传输控制协议)
1.概念: TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。
2.特点
a、TCP 是面向连接的传输层协议。应用程序在使用 TCP 协议之前,必须先建立 TCP 连接。在传送数据完毕后,必须释放已经建立的 TCP 连接
b、每一条 TCP 连接只能有两个端点,每一条 TCP 连接只能是点对点(一对一)
c、TCP的传输是可靠的。通过 TCP 连接传送的数据,无差错、不丢失、不重复,并且按序到达。
d、TCP 提供全双工通信。TCP 允许通信双方的应用进程在任何时候都能发送数据。TCP 连接的两端都设有发送缓存和接受缓存,用来临时存放双向通信的数据。
e、面向字节流。TCP 中的“流”指的是流入到进程或从进程流出的字节序列,实际上是TCP 把数据看成一连串无结构的字节流
3.过程
工作方式(三次握手、四次挥手)
通道的建立——三次握手
为什么要进行“三次”握手?
因为两次握手只能保证单向连接是畅通的。只有经过第三次握手,才能确保双向都可以接收到对方的发送的数据。
(1)在建立通道时,客户端首先要向服务端发送一个SYN同步信号。
(2)服务端在接收到这个信号之后会向客户端发出SYN同步信号和ACK确认信号。
(3)当服务端的ACK和SYN到达客户端后,客户端与服务端之间的这个“通道”就会被建立起来。
通道的关闭——四次挥手:
为什么要进行“四次”挥手?
因为要确保服务端和客户端都停止发送数据。
(1)在数据传输完毕之后,客户端会向服务端发出一个FIN终止信号。
(2)服务端在收到这个信号之后会向客户端发出一个ACK确认信号。
(3)如果服务端此后也没有数据发给客户端时服务端会向客户端发送一个FIN终止信号。
(4)客户端在收到这个信号之后会回复一个确认信号,在服务端接收到这个信号之后,服务端与客户端的通道也就关闭了。
4.标志位(6位)
URG:它为了标志紧急指针是否有效。
ACK:标识确认号是否有效。
PSH:提示接收端应用程序立即将接收缓冲区的数据拿走。
RST:它是为了处理异常连接的, 告诉连接不一致的一方,我们的连接还没有建立好, 要求对方重新建立连接。我们把携带RST标识的称为复位报文段。
SYN: 请求建立连接; 我们把携带SYN标识的称为同步报文段。
FIN:通知对方, 本端要关闭连接了, 我们称携带FIN标识的为结束报文段。
UDP(User Datagram Protocol:用户数据报协议)
1.概念
UDP 是OSI(Open System Interconnection:开放式系统互联) 参考模型中一种无连接的传输层协议,提供的是非面向连接的、不可靠的数据流传输。
2.特点
- UDP 是无连接的,即发送数据之前不需要建立连接
- 传输不可靠,可能会出现丢包、UDP不能保证数据的发送顺序
- UDP是面向报文的,以数据报文段的形式进行传输
TCP与UDP的区别
1、TCP 面向连接(如打电话要先拨号建立连接);UDP 是无连接的,即发送数据之前不需要建立连接。
2、TCP 提供可靠的服务(通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达);3、UDP 尽最大努力交付,即不保证可靠交付。
4、TCP 面向字节流,实际上是 TCP 把数据看成一连串无结构的字节流;UDP 面向报文。
5、TCP 拥塞控制;UDP 没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如 IP 电话,实时视频会议等)。
6、每一条 TCP 连接只能是点到点的;UDP 支持一对一,一对多,多对一和多对多的交互通信。
7、TCP 首部开销20字节;UDP 的首部开销小,只有8个字节。
8、TCP 的逻辑通信信道是全双工的可靠信道;UDP 则是不可靠信道。
9、TCP 传输速率:慢;UDP 传输速率:快。
常见的知名端口号:
ssh服务器:22端口
ftp服务器:21端口
http服务器:80端口
telnet服务器:23端口
https服务器:443端口
MYSQL服务器:3306端口