TCP 是基于连接的通信(可类比于打电话)
UDP 是基于非连接的通信(可类比于写信)
TCP通过三次握手,传输确认和四次挥手完成上述要求
三次握手(建立连接):
注:之所以要三次握手而不是两次,是为了解决网络信道不可靠的问题,在收到服务端的 SYN+ACK 包后,才会确认连接建立。
为处理丢包和乱序问题,采用下图机制,同时TCP属于全双工的,不区分客户端和服务端
四次挥手(断开连接):
注:三次挥手后,客户端会等待一段时间,若在此期间由于服务端未收到确认的ACK包,将会重发FIN包,在彻底确认后才会断开连接,此操作同样也是为了解决网络信道不可靠的问题
UDP协议速度快,但稳定性弱
二者区别:
其中,bind()函数把一个本地协议地址赋予一个套接字。对于网际协议,协议地址是32位的IPv4地址或是128位的IPv6地址与16位的TCP或UDP端口号的组合。