云计算百科
云计算领域专业知识百科平台

【嵌入式学习3】TCP服务器客户端 - UDP发送端接收端

目录

1、TCP

TCP特点

TCP三次握手(建立TCP连接):

TCP四次握手【TCP断开链接的时候需要经过4次确认】:

TCP网络程序开发流程

客户端开发:用户设备上的程序

服务器开发:服务器设备上的程序

2、UDP

为什么使用UDP?

UDP常用再哪些方面?

UDP特点

UDP接收和发送流程

UDP实现步骤

TCP和UPD对比


1、TCP

  • 数据不能随便发送,在发送之前还需要选择一个对应的传输协议,保证程序之间按照指定的传输规则进行数据的通信
  • TCP (Transmission Control Protocol)简称传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP通信需要经过创建连接、数据传送、终止连接三个步骤
TCP特点
  • 面向连接:通信双方必须先建立连接才能进行数据的传输,完成数据交换后,双方必须断开此连接,以释放系统资源。这种连接是一对一的,因此TCP不适用于广播的应用程序,基于广播的应用程序请使用UDP协议
  • 可靠传输:
    •         TCP采用发送应答机制:TCP发送的每个报文段都必须得到接收方的应答才认为这个TCP报文段传输成功
    •         超时重传:发送端发出一个报文段之后就启动定时器,如果在定时时间内没有收到应答就重新发送这个报文段。
    •         错误校验:TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。
    •         流量控制和阻塞管理:流量控制用来避免主机发送得过快而使接收方来不及完全收下。
    TCP三次握手(建立TCP连接):

            建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。

    ①第一次握手:客户端将数据包发送给服务端,等待服务端确认【SYN=1,seq=J】

    ②第二次握手:服务端收到客户端的连接请求,发送数据包给客户端确认连接请求【SYN=1,ACK=1,ack=J+1,seq=K】

    ③第三次握手:客户端收到确认,将数据包发送给服务端,服务端检查数据包正确连接后开始传输数据【ACK=1,ack=K+1】

    TCP四次握手【TCP断开链接的时候需要经过4次确认】:

    ①主机1向主机2发起FIN报文后进入FIN_WAIT_1状态【FIN=1,seq=u】

    ②主机2收到FIN报文,向主机1回ASK报文确认此时可以关闭连接【ACK=1,seq=v,ack=u+1】

    ③主机2向主机1发送FIN报文,请求关闭同时主机2进入CLOSE_WAIT状态【FIN=1,ACK=1,seq=w,ack=u+1】

    ④主机1收到主机2FIN报文,向主机2发送ASK报文,主机2收到后关闭连接【ACK=1,seq=u+1,ack=w+1】

    此时,主机1等待2MSL(Maximum Segment Lifetime 报文最大生存时间)后依然没有收到回复,则证明Server端已正常关闭,主机1也可以关闭连接。

    TCP网络程序开发流程
    客户端开发:用户设备上的程序
  • 创建客户端套接字对象
  • 和服务端套接字建立连接
  • 发送数据
  • 接收数据
  • 关闭客户端套接字
  • 服务器开发:服务器设备上的程序
  • 创建服务端端套接字对象
  • 绑定端口号
  • 设置监听
  • 等待接受客户端的连接请求
  • 接收数据
  • 发送数据
  • 关闭套接字
  • 2、UDP

    • 无连接通信协议,即在数据传输时,数据的发送端和接收端不建立逻辑连接。
    • 发送端不会确认接收端是否存在,就会发出数据,同样接收端在收到数据时,也不会向发送端反馈是否收到数据
    为什么使用UDP?

            使用UDP协议消耗资源小,通信效率高,所以通常都会用于音频、视频和普通数据的传输例如视频会议都使用UDP协议,因为这种情况偶尔丢失一两个数据包,也不会对接收结果产生太大影响。

    UDP常用再哪些方面?
    • 包总量较少的通信(DNS).
    • 视频、音频等多媒体通信(即时通信).
    • 限定于 LAN 等特定网络中的应用通信.
    • 广播通信(广播、多播)
    UDP特点
    • 需要资源少
    • 不保证接收
    • 无连接
    UDP接收和发送流程

    UDP实现步骤
  • 导入模块socket
  • 创建socket套接字
  • 绑定IP&端口(可选)
  • 发送数据
  • 关闭套接字
  • TCP和UPD对比

    UDP TCP
    面向无连接 有连接
    支持一对一、一对多、多对一、多对多 两个端点的一对一通信
    不保证数据传输的可靠性 传输数据无差错、不丢失、不重复、按时序到达
    占用资源少 占用资源多
    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 【嵌入式学习3】TCP服务器客户端 - UDP发送端接收端
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!