这篇教程让我们就从最基本的网络数据收发开始谈起吧。其实这部分才是网络程序员应该做的最基础最简单的部分,但是这部分如果想要做好相对来说还是很有技巧和困难的。而且如果这部分你没做好,在多人对战类游戏中它带来的影响是极其恶劣的。
嗨各位小米迷们,小米小宇宙又来啦!今天我们要深入聊一聊网络世界的两位传输大神——TCP和UDP。这两位大佬在我们的技术舞台上可是扮演着举足轻重的角色,你们有没有在面试中被问到“TCP和UDP的区别”呢?
TCP 和 UDP 在效率、报文段、流量控制、连接管理上均存在差异,由于这些差异导致了应用场景要有不同的选择,由于 TCP 每个包都需要进行确认,因此 TCP 不适合告诉传输数据的场景,像是这种场景使用 UDP 就好了;
同时该过程确定了两者传输的“windows滑动窗口”大小,如下图所示:接收方只能收2个数据包,所以会发送“ACK3 Window size=2”把发送方发送的“Window size =3 send 3”丢弃掉。
技术点包含了C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等方面。
UDP和TCP的区别Tcp和udp都是属于TCP/IP协议(传输层协议)。TCPTCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。