TCP 和 UDP 协议详解

news/2024/11/22 16:22:13/

文章目录

  • 1 概述
  • 2 TCP 协议
    • 2.1 报文格式
    • 2.2 三次握手,建立连接
    • 2.3 四次挥手,断开连接
    • 2.4 窗口机制
  • 3 UDP 协议
    • 3.1 传输头格式
  • 4 扩展
    • 4.1 常用端口号
    • 4.2 TCP 与 UDP 区别

1 概述

传输层协议
TCP:Transmission Control Protocol,传输控制协议,面向连接,可靠
UDP:User Datagram Protocol,用户数据报协议,无连接,不可靠
目的:在程序之间传输数据

2 TCP 协议

2.1 报文格式

在这里插入图片描述

在这里插入图片描述

  • 蓝色背景为重点了解部分
  • (1)源端口(16 位):数据从哪里来
  • (2)目标端口(16 位):数据到哪里去
  • (3)序号(32 位,seq):TCP 将要传输的每个字节都进行编号,序号是本报文段发送的数据组的第一个字节的编号,序号可以保证传输信息的有效性。比如:一个报文段的序号为 300,此报文段数据部分共有 100 字节,则下一个报文的序列号为 401
  • (4)确认号(32 位,ack):
    • 表明该序号之前的所有数据已经正确无误的收到
    • 指明下一个期待收到的序号(ack = seq + 1)
  • (5)首部长度(4 位):表示该 TCP 头部有多少个 32 位(有多少个 4 字节)
  • (6)保留字段(6 位):未用,所有实现必须把这个字段置全 0
  • (7)标志字段(6 位):为 1 时,有效
    • URG:紧急指针有效
    • ACK:接收序号有效
    • PSH:推进功能有效
    • RST:连接复位为初始状态,通用用于连接故障后的恢复
    • SYN:对序号同步,用于连接的建立
    • FIN:数据发送完,连接可以释放
  • (8)窗口(16 位):为流控分配的信息量
  • (9)校验和(16 位):段中所有 16 位字按模 2 16 − 1 2^{16} - 1 2161 相加的和,然后取 1 的补码
  • (10)紧急指针(16 位):从发送顺序号开始的偏置值,指向字节流的一个位置,此位置之前的数据是紧急数据
  • (11)选项:目前只有一个任选项,即建立连接时指定的最大段长

2.2 三次握手,建立连接

在这里插入图片描述

2.3 四次挥手,断开连接

在这里插入图片描述

2.4 窗口机制

在这里插入图片描述

3 UDP 协议

3.1 传输头格式

在这里插入图片描述

4 扩展

4.1 常用端口号

  • 0 ~ 1023:系统端口,这些端口只有系统特许的进程才能使用
  • 1024 ~ 5000:临时端口,一般的应用程序使用
  • 5001 ~ 65535:服务器(非特权)端口,用来给用户自定义端口
常用端口号应用说明
20FTPFile Transfer Protocol,文件传输协议,用于 数据传输
21FTPFile Transfer Protocol,文件传输协议,用于 控制信息和数据能够同时传输
80HTTPHyper Text Transport Protocol,超文本传输协议

4.2 TCP 与 UDP 区别

TCPUDP
是否连接面向连接无连接
传输可靠性可靠的不可靠的
应用场景传输大量数据传输少量数据
速度

http://www.ppmy.cn/news/70419.html

相关文章

【利用AI刷面试题】AI:十道JavaScript面试题巩固一下知识

文章目录 1. 请说明 JS 中的闭包是什么,它有哪些应用场景?2. 请描述一下数组的遍历方式,如何向数组中添加元素?3. 如何利用JS实现一个进度条?4. 请阐述浮点数在 JavaScript 中的存储机制?5. 请简述ES6 模块…

基于html+css的图展示70

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

Shell基础学习---4、文本处理工具、综合应用案例(归档文件、发送信息)

1、文本处理工具 1.1 cut cut的工作就是“剪”,具体的说就是在文件中负责剪切数据用的。cut命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段输出。 1、基本语法 cut [选项参数] filename 说明:默认分割符是制表符 2、选项参数说明 选…

JMX vs JFR:谁才是最强大的JVM监控利器?

大家好,我是小米!今天我们来聊一聊JVM监控系统,特别是关于JMX和JFR的使用。你是否有过在线上应用出现性能问题时,无法准确获取关键指标的困扰呢?那么,不妨听听我给大家带来的解决方案。 什么是JMX 首先&a…

C# TimeSpan的使用

TimeSpan:表示一个时间间隔。使用实例如下: TimeSpan m_timeSpan new TimeSpan(10,10,10); 1、TimeSpan初始化 TimeSpan(Int32, Int32, Int32) 将 TimeSpan 结构的新实例初始化为指定的小时数、分钟数和秒数。 TimeSpan(Int32, Int32, Int32, I…

DBCO-COOH分子量:305.3,CAS:1353016-70-2,二苯基环辛炔-羧基;类似有DBCO-NH2、SH、MAL、NHS等等

中文名称:二苯基环辛炔-羧基 英文名称:DBCO-acid 英文别称:DBCO-COOH cas: 1353016-70-2 分子式:C19H15NO3 分子量:305.3 DBCO-COOH是DBCO 衍生化的常用构件,在EDC、DCC和HATU等活化剂存在下&#xf…

全电发票时代,记账凭证不用再打印了!

—政策通告— 为进一步推进电子发票应用和推广实施工作,助力国家数字经济发展,国家档案局会同财政部、商务部、国家税务总局总结三批增值税电子发票电子化报销、入账、归档试点经验,依据国家相关法律法规和标准规范,编制形成了《…

VScode启动报错:Error: command ‘pyright.createtypestub‘ already exists

新安装了vscode,启动时报错, 2023-05-15 09:12:19.064 [info] [Info - 9:12:19 AM] (7176) Pylance language server 2023.5.20 (pyright 009aef31) starting 2023-05-15 09:12:19.064 [info] [Info - 9:12:19 AM] (7176) Server root directory: c:\…