IP、UDP、TCP协议区别

  • Post author:
  • Post category:其他

网络通信都是基于IP协议来实现的,下面看看IP、UDP、TCP协议区别:

一、IP协议

假如有主机A和主机B两台主机,为了把一条数据发送给B,在茫茫网络中如何准确的找到主机B呢?我们知道每台主机都有唯一的外网IP,所以可以能IP来找到我们发送数据的目的地–>主机B。

在发送的过程,主机A会在网络层中把主机B的IP(目标IP)和主机A的IP(源IP)和其它一些信息组成一个IP头,并附加到数据包中,再通过网络的底层找到主机B,并在主机B的网络层解析IP头,然后把数据发送给主机B。

IP协议是个很底层的协议,只负责发送数据,至于到没到,或者到了之后交给主机B的哪个程序(如:QQ、微信、浏览器……)处理都没有说明。

传输过程:主机A–>网络层(附加IP信息)–>底层网络–>网络层(解析IP信息)–>主机B

二、UDP协议

因为IP协议只负责发送数据,为了能让主机B正确处理发送的数据,出现UDP协议。

UDP协议最重要的信息就是多了一个“端口”,因为第一个应用程序都有一个相应的端口,所以通过端口可以找到对应的处理程序。UDP的传输过程也比IP传输过程多了一个传输层

传输过程:主机A–>传输层(附加源端口和目标端口等信息)–>网络层(附加IP信息)–>底层网络–>网络层(解析IP信息)–>传输层(解析端口信息)–>主机B

UDP缺点:

1.没有重发机制,错误的数据包会直接丢掉;

2.只管发送,不知道目标主机能否收到信息;

3.大文件会被拆成小的数据块传输,但收到的时候会是无序的数据库,无法重新组成整个文件。

UDP优点:传输快,所以会应用在一些关注速度、但不那么严格要求数据完整性的领域,如在线视频、互动游戏等。

三、TCP协议

TCP可以看成是UDP的升级版。TCP协议是在传输层中添加一个TCP头(除了包括端口外,还包含了排列顺序的序号)。

TCP传输数据可分为三大步:

1.通过三次握手建立连接(在数据通信开始之前先做好两端之间的准备工作)

2.传输数据

3.通过四次挥手断开连接

三次握手:

1.客户端给服务端发送一个带有SYN标志的数据包(主机A—–(客户端的SYN数据包)——->主机B)。

2.服务端给客户端发送带有SYN和ACK标志得数据包(主机B—–(服务端的SYN、ACK数据包)——->主机A)。其中ACK为客户端的SYN+1

3.客户端给服务端发送带有ACK标志的数据包(主机A—–(ACK数据包)——->主机B)。其中ACK为服务端的SYN+1

传输过程:主机A–>传输层(附加源端口和目标端口、数据包的序号等信息)–>网络层(附加IP信息)–>底层网络–>网络层(解析IP信息)–>传输层(解析端口、序号信息)–>主机B

优点:

1.重发机制,对于数据包丢失的情况,TCP 提供重传机制(即服务器接收到数据后,会向客户端发送一条确认信息,如果客户端一段时间内没有收到确认信息,就会重新发一份);

2.数据包排序机制,用来保证把乱序的数据包组合成一个完整的文件;

缺点:相比于UDP会慢很多(建立连接和断开连接有“三次握手”和“四次挥手”);

 

 

 

 


版权声明:本文为xzzfxz原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。