计算机网络 —— 一文搞懂TCP/UDP

传输层:TCP/UDP

    • 1. TCP
      • 1.1 TCP连接管理
      • 1.2 TCP首部格式
    • 2. UDP
      • UDP首部格式
    • 3. 其他传输层协议
      • 3.1 SCTP
      • 3.2 DCCP

传输层实现源端主机和目标端主机上对等实体间会话,TCP/IP中两个代表性的传输层协议分别是TCPUDP,两者均使用端口来标识传输数据对应的应用程序。

通常使用源IP、目的IP、源端口、目的端口、协议号5个信息来标识一个通信。

1. TCP

TCP(Tranmission Control Protocol) 是面向连接的可靠的流协议,实行“顺序控制”或“重发控制”机制,还具备“流控制(流量控制)”、“拥塞控制”、提高网络利用率等众多功能。

1.1 TCP连接管理

  • 建立一个TCP连接需要发送3个包,称作“三次握手”
  • 断开一个TCP连接需要发送4个包,称作“四次握手”

在这里插入图片描述

1.2 TCP首部格式

在这里插入图片描述

  • 源端口号(Source Port):发送端端口号,16位。
  • 目标端口号(Destination Port):接收端端口号,16位。
  • 序列号(Sequence Number):指发送数据的位置,每发送一次数据,就累加一次该数据字节数的大小,32 位。序列号在建立连接时由计算机生成的随机数作为其初始值,通过SYN包传给接收端主机。再将每转发过去的字节数累加到初始值上表示数据的位置。
  • 确认应答号(Acknowledgement Number):指下一次应该收到的数据的序列号,实际上是指已收到确认应答号减一为止的数据,发送端收到这个确认应答以后可以认为在这个序号以前的数据都已经被正常接收,32位。
  • 数据偏移(Data Offset):表示TCP所传输的数据部分应该从TCP包的哪个位开始计算,也可看作TCP首部的长度,4位。
  • 保留(Reserved):扩展时使用,4位,一般设置为0。
  • 控制位(Control Flag):8位,每一位从左至右分别为CWR(Congestion Window Reduced)、ECE(ECN-Echo)、URG(Urgent Flag)、ACK(Acknowledgement Flag)、PSH(Push Flag)、 RST(Reset Flag)、SYN(Synchronize Flag)、FIN(Fin Flag)。

在这里插入图片描述

  • 窗口大小(Window Size):用于通知从相同TCP首部的确认应答号所指位置开始能够接收的数据大小,16位。TCP不允许发送超过此处所示大小的数据。
  • 校验和(Checksum):用于校验和计算TCP的伪首部。接收端在收到TCP数据段以后,从IP首部获取IP地址信息构造TCP伪首部,再进行校验和计算。由于校验和字段里保存着除本字段以外其他部分的和的补码值,因此算校验和字段在内的所有数据的16位和以后,得出的结果是“16位全部为1”说明所收到的数据是正确的。
    在这里插入图片描述
  • 紧急指针(Urgent Pointer):表示本报文段中紧急数据的指针,16 位,只有在URG控制位为1时有效。
    - 选项(Options):用于提高TCP的传输性能,长度可变。由于根据数据偏移(首部长度)进行控制,因此其长度最大为40字节。

2. UDP

UDP (User Datagram Protocol)提供面向无连接的通信服务,是不具有可靠性的数据报协议,不能保证消息一定会到达。传输细节处理由上层应用完成,因此,应用会根据自己的需要进行重发处理。

由于 UDP面向无连接,它可以随时发送数据,主要用于那些对高速传输和实时性有较高要求的场景:

  • 包总量较少的通信(DNS、SNMP等)
  • 视频、音频等多媒体通信(即时通信)
  • 限定于 LAN 等特定网络中的应用通信
  • 广播通信(广播、多播)

UDP首部格式

在这里插入图片描述

  • 源端口号(Source Port):发送端端口号,16位。该字段是可选项,有时可能不会设置源端口号,无源端口号时该字段的值设置为0,可用于不需要返回的通信中▼。
  • 目标端口号(Destination Port):接收端端口号,16位。
  • 包长度(Length):保存UDP首部的长度跟数据的长度之和。
  • 校验和(Checksum):为提供可靠的UDP首部和数据而设计。接收主机在收到UDP数据报以后,从IP首部获知IP地址信息构造UDP 伪首部,再进行校验和计算。校验和字段的值是校验和字段以外剩下部分的1的补码和。因此,包括校验和字段在内的所有数据之和结果为“16位全部为1”时,会被认为所收到的数据是正确的。另外,UDP中也有可能不用校验和。此时,校验和字段中填入0。

在这里插入图片描述

3. 其他传输层协议

3.1 SCTP

SCTP(Stream Control Transmission Protocol,流控制传输协议)与TCP一样,都是对一种提供数据到达与否相关可靠性检查的传输层协议。

主要特点:

  • 以消息为单位收发
  • 支持多重宿主
  • 支持多数据流通信
  • 可定义消息的生存期限

SCTP主要用于进行通信的应用之间发送众多较小消息的情况。这些较小的应用消息被称作数据块(Chunk),多个数据块组成一个数据包。

主要应用场景:

  • 电话信令方面:SCTP可以提供更加可靠的信令传输服务,适用于无线网络中的信令传输。
  • 流媒体传输方面,SCTP能够支持多流传输,可以提供更好的数据传输质量。

3.2 DCCP

DCCP(Datagram Congestion Control Protocol,数据报拥塞控制协议)是一个辅助 UDP 的传输层协议。UDP没有拥塞控制机制,当应用使用 UDP发送大量数据包时极容易出现问题,于是出现了DCCP。

主要特点:

  • 无法提供发送数据的可靠性传输。
  • 面向连接,具备建立连接与断开连接的处理。在建立和断开连接上是具有可靠性。
  • 能够根据网络拥堵情况进行拥塞控制。使用DCCP(RFC4340)应用可以根据自身特点选择两种方法进行拥塞控制,分别是“类似TCP(TCP- Like) 拥塞控制”和“TCP友好升级控制”(TCP-Friendly Rate Control)。
  • 为了进行拥塞控制,接收端收到包以后返回确认应答(ACK)。该确认应答将被用于重发与否的判断。

DCCP可用于实时应用,如视频会议,聊天,电子游戏等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/712009.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据防泄漏的六个步骤|数据防泄漏软件有哪些

在当前复杂多变的网络安全环境下,数据防泄漏软件成为了企业信息安全架构中不可或缺的一环。下面以安企神软件为例,告诉你怎么防止数据泄露,以及好用的防泄露软件。 1. 安企神软件 安企神软件是当前市场上备受推崇的企业级数据防泄漏解决方案…

为什么微信输入法是比搜狗输入法更好的选择?

微信输入法官网:https://z.weixin.qq.com/ 最近使用搜狗输入法时,频繁弹出广告,实在令人烦恼,于是我干脆卸载了它。然而,电脑上没有输入法是不行的。经过在网上对比了许多输入法软件后,我发现了微信输入法。…

算法:分治(快排)题目练习

目录 题目一:颜色分类 题目二:排序数组 题目三:数组中的第k个最大元素 题目四:库存管理III 题目一:颜色分类 给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地对它们进行排序,…

红队攻防渗透技术实战流程:中间件安全:JettyJenkinsWeblogicWPS

红队攻防渗透实战 1. 中间件安全1.1 中间件-Jetty-CVE&信息泄漏1.2 中间件-Jenkins-CVE&RCE执行1.2.1 cve_2017_1000353 JDK-1.8.0_291 其他版本失效1.2.2 CVE-2018-10008611.2.3 cve_2019_100300 需要用户帐号密码1.3 中间件-Weblogic-CVE&反序列化&RCE1.4 应…

驱动开发(四):Linux内核中断

驱动开发系列文章: 驱动开发(一):驱动代码的基本框架 驱动开发(二):创建字符设备驱动 驱动开发(三):内核层控制硬件层 驱动开发(四&#xf…

2024FIC决赛

容器密码:2024Fic~Competition~Finals杭州&Powered~By~HL! 案件背景: 2023年3月15日凌晨,受害人短视频平台上看到一段近期火爆的交通事故视频,留言后有人通过私信联系,称有一个赚大钱的机会,该人自称李某,提议让…

如何通过抖音自动评论精准获客实现业务增长?这些方法值得一试!

在当今竞争激烈的商业环境中,企业若想脱颖而出,就必须掌握精准获客的艺术。精准获客,即通过精确的市场定位和营销策略,吸引并保留最有可能成为客户的目标群体。它不仅能提高转化率,还能有效降低营销成本,是…

实况:老菜鸟自力更生从零开始重学spring目标是画出一张唬人大图(二、源码下载编译)

前情提要:调试前的基础知识梳理 速览 “Spring”包含哪些东西源码下载源码编译1、编译工具选择:gradle2、使用gradle编译spring并导入idea预编译spring-oxm导入IDEA确认合适的jdk版本排除spring-aspects模块 开始调试 “Spring”包含哪些东西 可以明确的…

LVS负载均衡:理解IPVS和IPVSADM的内部工作原理

LVS 负载均衡工作模式 LVS(Linux Virtual Server) 共有三种工作模式:DR、Tunnel、NAT。 DR(Direct Routing): 技术原理:DR模式下,LVS调度器接收到请求后,直接通过MAC地址…

Kali中安装和使用docker的学习笔记

一、常见命令 ctrl 、shift、 : 窗口变大; ctrl 、- :窗口变小; ctrl L: 清屏 ; sudo su : 切换root 用户; ip addr / ifconfig: 获取IP地址; systemctl start ssh…

探索Python的多媒体解决方案:ffmpy库

文章目录 探索Python的多媒体解决方案:ffmpy库一、背景:数字化时代的多媒体处理二、ffmpy:Python与ffmpeg的桥梁三、安装ffmpy:轻松几步四、ffmpy的五项基本功能1. 转换视频格式2. 调整视频质量3. 音频转换4. 视频截图5. 视频合并…

Mybatis框架中结果映射resultMap标签方法属性收录

Mybatis框架中结果映射resultMap标签收录 在MyBatis框架中,resultMap 是一种强大的机制,用于将数据库结果集映射到Java对象上。它允许你定义如何将查询结果中的列映射到Java对象的属性上,尤其是当数据库表的字段名与Java对象的属性名不一致时…

【太原理工大学】软件系统安全—分析题

OK了,又是毫无准备的一场仗,我真是ありがとうございます 凸^o^凸 根据前几年传下来的信息,所谓“分析”,就是让你根据情节自行设计,例如如何设计表单等,这类多从实验中出,王老师强调好好做实验一…

自然抽样和平顶抽样

自然抽样和平顶抽样是两种信号处理和采样技术,它们在音频信号处理、信号重建以及数字信号处理中有着不同的应用。 1. 自然抽样(也称为理想抽样或无失真抽样):样值脉冲的幅度随原始信号m(t)的幅度而变; 自然抽样过程的…

个人网站制作 Part 26 添加在线日历功能 | Web开发项目添加页面缓存

文章目录 👩‍💻 基础Web开发练手项目系列:个人网站制作🚀 添加在线日历功能🔨使用日历服务🔧步骤 1: 选择日历服务🔧步骤 2: 安装FullCalendar🔧步骤 3: 创建FullCalendar组件&…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 生成哈夫曼树(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 📎在线评测链接 生成哈夫曼树(100分) 🌍 评测功能需要订阅专栏后私信联系清…

数据中心布线管理:预标记线缆与移动扫描技术的融合

随着信息技术的飞速发展,数据中心布线管理面临着前所未有的挑战。传统的布线管理方式已无法满足现代数据中心高效、准确和可靠的需求。在这样一个背景下,预标记线缆与移动扫描技术的结合,为数据中心布线管理带来了革命性的解决方案。 布线管理…

基于System-Verilog点亮LED灯

文章目录 一、System-Verilog介绍1.1System-Verilog 二、简单的语法介绍2.1接口实例2.2全局声明和语句实例2.3时间单位和精度2.4用户定义的类型2.5 枚举类型 三、流水灯参考 一、System-Verilog介绍 1.1System-Verilog SystemVerilog是一种硬件描述和验证语言(HDV…

stm32f103 HAL库 HC-SR04测距

目录 一、实现测距二、添加TIM3控制LED根据距离以不同频率闪烁三、观察时序Modebus协议12路超声波雷达设计方案1. 系统架构设计2. 硬件设计3. 软件设计4. 通信协议设计5. 用户接口6. 安全和冗余7. 测试和验证8. 电源和物理封装9. 文档和支持 一、实现测距 配置时钟 配置定时器…

八、BGP

目录 一、为何需要BGP? 二、BGP 2.1、BGP邻居 2.2、BGP报文 2.3、BGP路由 2.4、BGP通告遵循原则 2.5、BGP实验 第一步:建立邻居 第二步:引入路由 BGP路由黑洞 路由黑洞解决方案 1、IBGP全互联 2、路由引入 3、MPLS 多协…