本文主要是带大家了解一下网络通信,以及UDP、TCP通信协议概念与其优缺点。
网络通信:
在将UDP、TCP之前,我们需要先了解什么是网络通信。网络通信是通过网络将各个孤立的设备进行连接,通过信息交换实现人与人,人与计算机,计算机与计算机之间的通信。说的通俗点,网络通信是通过网络使不同设备之间可以进行数据交互。
我们可以看一些生活中最常见的例子:
蓝牙
WiFi
手机热点
常见的网络通信设备:
而常见的一些网络通信设备有:
交换机
路由器
光猫
网线
网卡
网络通信协议:
网络通信中最重要的就是网络通信协议,那么什么是网络通信协议呢?
网络通信协议是一种网络通用语言,为连接不同操作系统和不同硬件体系结构的互联网络提供通信支持。
简单点,网络协议就是网络之间进行沟通、交流的桥梁,只有相同网络协议的计算机才能进行信息的沟通与交流。就像人与人之间一样,只有使用相同语言的人才能进行正常的交流与沟通。
常见的网络通信协议有:UDP、TCP、ICMP、HTTP、HTTPS、FTP等。
Internet 的传输层有两个主要协议,互为补充。无连接的是 UDP,面向连接的是 TCP。
UDP通信:
UDP是用户数据报协议(User Datagram Protocol),它为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。并且UDP报文没有可靠性保证、顺序保证和流量控制字段等,可靠性较差。
但是正因为UDP协议的控制选项较少,在数据传输过程中延迟小、数据传输效率高,适合对可靠性要求不高的应用程序,或者可以保障可靠性的应用程序,如DNS、TFTP、SNMP等。
通俗来讲,UDP通信就像发短信一样,我们只需要知道对方的电话即可编辑短信发送消息,并不需要理会对方是否处于在线、欠费、关机等状态。
一般应用于:周期性的状态信息、图片和视频数据传输、局域网内数据传输。
TCP通信:
TCP是传输控制协议(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
说的直白点,TCP就像打电话一样,必须要对方接通电话了,才能进行交流。一定要双方连接之后才能进行通信。因此TCP有三次握手和四次挥手。
三次握手:
第一次握手: 建立连接
第二次握手: 服务器接收到SYN报文段
第三次握手:客户端接收到服务器的SYN+ACK报文段
四次挥手:
第一次挥手: 主机1给主机2发送一个FIN报文段
第二次挥手: 主机2接收到后,向主机1回一个FIN报文段
第三次挥手: 主机2向主机1发送FIN报文段,请求关闭连接
第四次挥手: 主机1接到后向主机2发送ACK报文段,然后进入TIME_WAIT状态
简单来说,其实三次握手、四次挥手就像打电话一样。
三次握手:
客户端:你好,是服务器吗?
服务器:我在,是客户端吗?
客户端:是我
... ...
四次挥手:
客户端:我的事情说完了,你有问题吗?
服务器:还有一件事,等一下
... ...一段时间后:
服务器:好了,这下没问题了,挂了哦
客户端:好的
总结:
TCP:
传输控制协议(Transmission Control Protocol),比较像打电话。无连接、不可靠、无序、效率高、资源要求低
UCP:
用户数据报协议(User Datagram Protocol),比较像发消息。面向连接、可靠、不重复、安全、点对点、效率低、资源要求较高