一、TCP/IP网络模型
互联网中的计算机之间要想进行通信,就必须基于相同的协议,协议就是通信双方约定好的规则,比如,怎么找到通信的目标、找到之后应该如何初步建立连接、建立连接时需要发送哪些信息、结束通信时应该由哪一方发起。互联网中的设备之间想要进行通信,都需要遵守同一种规则,这种规则就是协议(protocol)。
TCP/IP 是互联网通信中各类协议族的总称,比如:TCP,UDP,IP,FTP,HTTP,ICMP,SMTP 等都属于 TCP/IP 族内的协议。
这些协议从顶向下可以分为应用层→传输层→网络层→数据链路层。
应用层:我们日常接触的就是应用层,电脑手机使用的应用都是在应用层实现,但是不同设备之间通信就需要把数据传给下一层传输层处理了。
传输层:传输层是给应用层提供网络支持的,传输层有两个协议,分别是UDP和TCP,UDP是面向无连接的,TCP是面向连接的,两者的应用场景不同。
网络层:网络层是负责将数据从一个设备传输到另一个设备,而传输层是负责将设备上的数据传输到设备上的应用。目标地址可以是多个网络通过路由器连接而成的某一个地址。因此这一层主要负责寻址和路由选择。
数据链路层:通信传输实际上是通过物理的传输介质实现的,数据链路层的作用是在这些通过传输介质互连的设备之间进行数据处理。
二、UDP
UDP传输协议是 「 无连接 」 的, 「无连接」 就是在正式通信前不必与对方先建立连接,不管对方状态就直接发送。它是一种不可靠的、面向无连接、可以实现多对一、一对多和一对一连接的通信协议。
三、TCP
TCP和UDP就恰恰相反了,它是一种可靠的通信协议,并且是一对一的,面向连接的。也就是说,使用TCP协议时,两台机器想要通信,必须先建立连接,可以想象此时两台机器之间建立了一条虚拟的数据通道。并且TCP为了保证数据的可靠性,会将数据分成若干个部分,然后在每部分数据的首部添加一个校验字节。当数据的一个部分被接收完毕之后,服务端会对这一部分数据的完整性和准确性进行校验,校验通过之后,才会要求对方开始下一部分数据的传输,如果校验失败,则会要求对方重新传输。
TCP协议能够为应用程序提供一个可靠的通信连接,使一台机器上的数据流可以无差错的发往目标机器,所以对可靠性要求比较高的都会使用TCP协议,比如文件的传输。
四、TCP和UDP比较
对比
UDP | TCP | |
是否连接 | 无连接 | 面向连接 |
是否可靠 | 不可靠传输,不使用流量控制和拥塞控制 | 可靠传输,使用流量控制和拥塞控制 |
连接对象个数 | 支持一对一,一对多,多对一和多对多交互通信 | 只能是一对一通信 |
传输方式 | 面向报文 | 面向字节流 |
首部开销 | 首部开销小,仅8字节 | 首部最小20字节,最大60字节 |
适用场景 | 适用于实时应用(IP电话、视频会议、直播等) | 适用于要求可靠传输的应用,例如文件传输 |
TCP是面向连接的,提供可靠传输的一对一协议。UDP是面向无连接的,不提供可靠传输,并且可以一对一,一对多,多对一传输。
本文地址:百科问答频道 https://www.neebe.cn/wenda/886397.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!