博客
关于我
计算机网络UDP协议和TCP协议
阅读量:585 次
发布时间:2019-03-11

本文共 1294 字,大约阅读时间需要 4 分钟。

@iptables

UDP协议

UDP协议全称为用户数据报协议(User Datagram Protocol),它位于传输层,提供面相传输服务。与TCP协议不同,UDP协议不提供可靠的传输服务,只提供尽力交付。以下是UDP协议的主要特点:

  • UDP是无连接的协议,减少了通信前的握手过程开销,适合_latency-sensitive_应用
  • UDP不提供可靠的数据传输,因此需要应用层进行差错检测和数据重传
  • UDP使用面相报文传输,适合一次性传输小规模的数据
  • UDP没有拥塞控制机制,适合_real-time_应用
  • UDP的协议首部仅8字节,相比TCP的22字节开销更小
  • TCP协议

    TCP协议全称为传输控制协议(Transmission Control Protocol),位于传输层,提供可靠的字节流传输服务。TCP协议将数据分割成更小的数据报段进行传输,并在接收端重新组合这些报段,从而实现数据的有序传输和可靠交付。以下是TCP协议的主要特点:

  • TCP协议提供可靠的传输服务,绝对保证数据的完整性、有序性和无差错
  • TCP协议面相字节流传输,大数据量可以分割成小的数据报进行传输
  • TCP协议通过三次握手建立连接,四次挥手断开连接
  • TCP协议提供拥塞控制和流量控制机制,避免网络拥堵
  • 三次握手

    TCP连接的建立过程包括三次握手:

  • 第一次握手:客户端发送SYN包,表示欢迎建立连接,等待服务器确认
  • 第二次握手:服务器收到SYN包后,发送SYN-ACK包,确认客户端请求并发送自己的SYN包
  • 第三次握手:客户端收到SYN-ACK包后,发送ACK包确认 převåigger_连接建立完成
  • 四次挥手

    TCP连接的断开过程包括四次挥手:

  • 客户端发送FIN包,表示希望断开连接
  • 服务器收到FIN包后,发送ACK包确认数据接收完毕
  • 服务器发送FIN包,表示希望断开连接
  • 客户端收到FIN包后,发送ACK包确认连接断开
  • TCP和UDP的不同点

    UDP协议和TCP协议各有特点,主要区别如下:

  • 连接方式:TCP是面相连接的协议,通信前需要建立连接(三次握手);UDP是无连接的协议,通信时可以直接发送数据
  • 传输可靠性:TCP提供可靠传输,保证数据无差错、不丢失、不重复,UDP提供不可靠传输,差错率较高
  • 数据传输方式:TCP面相字节流传输,需要将大块数据分割成小块传输并重新组合;UDP面相数据报传输,不需要分组和重组
  • 拥塞控制与流量控制:TCP提供拥塞控制和流量控制机制,避免网络拥堵;UDP不提供这些机制
  • TCP协议的可靠性保证

    TCP协议通过以下机制确保传输可靠性:

  • 拥塞控制:TCP协议通过慢启动机制避免网络拥堵,发送端在连接开始时发送少量数据探路,逐渐增加传输速度
  • 流量控制:TCP协议通过窗口大小字段控制发送端的发送速度,接收端根据缓冲区剩余空间报告窗口大小,发送端根据此调整发送速度
  • 这个详细解释了TCP协议的拥塞控制和流量控制机制,以及如何通过三次握手和四次挥手确保TCP连接的可靠建立和断开。通过了解这些特点,可以更好地理解TCP协议与UDP协议之间的区别,并在实际应用中选择合适的协议。

    转载地址:http://lxqtz.baihongyu.com/

    你可能感兴趣的文章
    Django ORM操作
    查看>>
    京喜小程序体验评分优化实践
    查看>>
    C#中文转换成拼音
    查看>>
    C++错误笔记
    查看>>
    【无线通信模块】GPRS DTU不稳定和容易掉线原因
    查看>>
    SpringBoot使用RedisTemplate简单操作Redis的五种数据类型
    查看>>
    国标流媒体服务器以ROOT身份运行提示“permission denide”报错解决
    查看>>
    国标流媒体服务器在linux系统运行提示fork/exec ……/redis/redis-server错误解决方案
    查看>>
    国标GB28181协议视频推流平台EasyGBD在Linux下编译报“UINT64_C在此作用领域中尚未声明”错误
    查看>>
    qt中转到槽后如何取消信号与槽关联
    查看>>
    qt问题记录-spin box与double spin box
    查看>>
    移动端事件
    查看>>
    css 图片按比例缩放
    查看>>
    小程序form表单里面buton点击事件失效
    查看>>
    微信小程序placeholder设置自定义样式
    查看>>
    spring-day01
    查看>>
    spring的值注入与组件扫描
    查看>>
    C#跨窗体程序调用方法的具体操作
    查看>>
    C#中创建Android项目
    查看>>
    统计学之变异系数与是非标志
    查看>>