博客
关于我
计算机网络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/

    你可能感兴趣的文章
    注册页面案例
    查看>>
    np.bincount(x)的简单解释
    查看>>
    LeetCode Top-100 T22-括号生成
    查看>>
    vscode设置eslint保存文件时自动修复eslint错误
    查看>>
    deepin 安装过程记录
    查看>>
    JAVA 多线程
    查看>>
    Java的 arraylist类【具体案例】
    查看>>
    牛客-链表中环的入口节点(Java)
    查看>>
    【ARM自学笔记】ARM Cortex -A中断系统(程序篇)
    查看>>
    解决微信小程序中 calc 失效问题
    查看>>
    JS数组去重的方法
    查看>>
    堆的应用_topK算法和堆排序
    查看>>
    最大半连通子图
    查看>>
    Remove Extra one 维护前缀最大最小值
    查看>>
    跳台阶
    查看>>
    另类加法,走方格的方案数,最近公共祖先
    查看>>
    线程学习5
    查看>>
    [Java Path Finder][JPF学习笔记][7]JPF输出详细程度设置
    查看>>
    GitHub完整记录数据库GHTorrent的下载和安装经验
    查看>>
    设计模式—— 三:依赖倒置原则
    查看>>