zoukankan      html  css  js  c++  java
  • 自己的方式理解TCP和UDP

    每次要求说明白TCP和UDP的区别的时候,我们总是要记一对概念跟作用.记忆压力大.

    但如果我们直接去看他们的包头. 只需要记住简单的几个关键点. 就能完全散发思考出他们的作用和区别.

    比如你看到TCP里有个序列, 这就是用来做有序接收包的,就能够提供可靠性.
    再者 你看UDP的包头如此简单,你就知道 UDP效率肯定比TCP高.

    TCP [ Transmission Control Protocol ]

    1. 来源端口
    2. 目的端口
    3. 序列号   用于区分这是第几个包
    4. 确认号(ack)  期望收到的数据的开始序列号,也就是已经收到的下一个
    5. 数据偏移  数据段开始地址的偏移值
    6. 标示符 用于指定一些商议好的含义信息
    7. 窗口 接收窗口大小用于流量控制
    8. 校验和 数据校验
    

    可靠: 序列+超时重传完整: 校验和+确认号安全: 随机序列流量控制: 窗口

    由于协议本身带有超时检测所以属于有连接. 包头内容齐全所以具备可靠性. 但效率相对就低了.

    UDP [ User Datagram Protocol ]

    1. 来源端口
    2. 目的端口
    3. 报文长度
    4. 校验和
    

    包头超简单,所以效率非常高. 同样也就缺乏可靠性. 且逻辑上属于无连接.

  • 相关阅读:
    SpringBoot处理跨域的四种方式
    centos部署nextcloud
    nginx反向代理时配置访问密码
    java对redis的基本操作
    springboot使用redis
    Linux安装redis
    centos安装php7.2环境 (亲测可用)
    linux下后台启动springboot项目
    全局加token
    web移动端浮层滚动阻止window窗体滚动JS/CSS处理
  • 原文地址:https://www.cnblogs.com/skyhuangdan/p/12526329.html
Copyright © 2011-2022 走看看