TCP/UDP通信协议详解 点击:1550 | 回复:0



Baimatech77

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:81帖 | 0回
  • 年度积分:0
  • 历史总积分:262
  • 注册:2019年7月26日
发表于:2019-10-17 10:05:22
楼主

一.通信协议概述:

1.定义:

通信设备双方通过共同遵从一组约定,从而使数据可在网络上进行相互传输。

打个比方,不同国家不同母语的两个人,如果要实现交流,就必须以大家都熟悉的一种通用语言来交流,比如英语。同样数据的格式只有一致,通信双方才能正常传输。


2.通信协议层次划分:

国际上通用的划分有tcp/ip四层模型和osi七层模型两种,TCP/UDP协议在两种模型中对应如下:

osi七层模型


通信协议层次划分.png


TCP/IP四层模型


TCP四层模型.png


二、TCP/UDP通信协议

1.概念

TCP、UDP是最常用的传输协议,同属于传输层,不同之处在于:


TCP(Transmission Control Protocol传输控制协议):是一种面向连接的、可靠的、基于字节流的通信协议;主要传输数据较大、可靠性要求较高的。


UDP(User Datagram Protocol用户数据报协议)是一种无连接的通信,不能保证数据包被发送到目标地址;主要是传输少量数据,安全性与可靠性较比TCP低。


打个比方:TCP连接就像打电话,用户拨特定的号码,对方在线并拿起电话,然后双方进行通话,通话完毕之后再挂断,整个过程是一个相互联系缺一不可的过程;

而UDP连接就像发短信,用户要发送短信给对方,只要输入对方的手机号码即可发送,并不需要先连接对方。


2.三次握手

TCP作为一个可靠连接需要经过3次“对话”,即我们常说的“三次握手”:

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态; 

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手.

完成三次握手,客户端与服务器开始传送数据


三次握手.png


UDP是面向非连接的,所以在服务端与客户端通信之前,不需要经过三次握手这个过程。


3.TCP/UDP对比

TCP和UDP对比.png

佰马科技工业级无线DTU传输模式支持TCP、UDP协议:

1)TCP:包括FTCP、HTCP、CTCP、TCPSVR;    

2)UDP:包括NUDP、HUDP、CUDP、UDPSVR;

其中:CTCP 、CUDP属于数据纯透传,即不带任何心跳包和注册包,如果要带,必须自定义设置。其余都带有心跳包和注册包。

资料来源:https://www.baimatech.com



热门招聘
相关主题

官方公众号

智造工程师