计算机网络 —— 一文搞懂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可用于实时应用,如视频会议,聊天,电子游戏等。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

商品搬家到抖店

使用的工具为 张飞搬家,登录上去 张飞搬家 1 复制商品的网址 商品链接复制过去后,点击下面的开始批量复制 2 检查修改商品信息 价格啊、图片啊、各种商品属性啊,检查下,不合适的修改和补充 3 开始搬家 4 查看商品 打开抖店后…

LogicFlow 学习笔记——1. 初步使用 LogicFlow

什么是 LogicFlow LogicFlow 是一个开源的前端流程图编辑器和工作流引擎,旨在帮助开发者和业务人员在网页端创建、编辑和管理复杂的业务流程和工作流。它提供了一个直观的界面和强大的功能,使得设计和管理工作流变得更加高效和便捷。 官网地址&#xff…

计算机网络:网络层 - IP数据报的转发

计算机网络:网络层 - IP数据报的转发 基于终点转发最长前缀匹配二叉线索树路由表特殊路由特定主机路由默认路由 IP多播 基于终点转发 路由器转发报文时,是通过报文中的目的地址字段来转发的,也即是说路由器只知道终点的IP地址,根…

Java:System 系统类

文章目录 一、System二、常用API2.1 exit2.2 currentTimeMillis2.3 arraycopy 一、System System 类提供了对系统操作的API。 二、常用API 2.1 exit exit:终止运行的 Java 虚拟机0:表示正常结束非0:表示异常结束(一般用1&#…

php中配置variables_order详解

variables_order 是 PHP 配置中的一个指令,它决定了PHP如何从外部来源自动接收变量数据,这些外部来源包括HTTP GET、POST、Cookie以及命令行参数等。这个设置会影响到$_GET, $_POST, $_COOKIE, $_FILES, 和 $_REQUEST 这些预定义全局变量的内容。 varia…

GiantPandaCV | 提升分类模型acc(三):优化调参

本文来源公众号“GiantPandaCV”,仅用于学术分享,侵权删,干货满满。 原文链接:提升分类模型acc(三):优化调参 一、前言 这是本系列的第三篇文章,前两篇GiantPandaCV | 提升分类模型acc(一):B…

微服务feign组件学习

手写不易,对您有帮助。麻烦一键三连。也欢饮各位大料指正,交流。 微服务feign组件学习 1.概念1.1 feign 概念1.2 Ribbon概念 2.使用2.1 集成feign2.1.1 maven依赖2.1.2 项目结构 2.2 使用2.2.1 定义feign接口2.2.2 消费端服务调用2.2.3 消费端扫描feig…

单通道电容感应芯片XW01T用于水位检测、人体感应

概述 XW01T SOT23-6封装和丝印 XW01T 是一个单通道电容感应芯片,广泛应用于水位检测,人体感应等应用场合。 特点 做非接触式液位检测和长按功能检测 自动环境校准 内置按键消抖,无需软件再消抖 嵌入共模干扰去除电路 每秒按键反应速度可达 20 次 上电立刻判断按键有效状态 按…

数据分析的流程是啥样?

数据分析在当今的商业环境中扮演着至关重要的角色。通过深入挖掘和理解数据,企业可以做出更明智的决策,优化产品与服务,提高市场竞争力。然而,数据分析并非简单的数据堆砌和解读,它需要一个系统的流程来确保分析的准确…

【C++11】第一部分(一万六千多字)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 C11简介 统一的列表初始化 {}初始化 std::initializer_list 声明 auto decltype 右值引用和移动语义 左值引用和右值引用 左值引…

【Python】数据处理:NumPy

NumPy是一个用于科学计算的开源Python库,其名称来源于“Numerical Python”的缩写。它提供了支持大规模多维数组和矩阵运算的功能,此外还包含了大量的数学函数库,可以高效地进行各种数学操作。 import numpy as np数组创建、属性和操作 数组…

Docker|了解容器镜像层(2)

引言 容器非常神奇。它们允许简单的进程表现得像虚拟机。在这种优雅的底层是一组模式和实践,最终使一切运作起来。在设计的根本是层。层是存储和分发容器化文件系统内容的基本方式。这种设计既出人意料地简单,同时又非常强大。在今天的帖子[1]中&#xf…

基于mybatis plus增加较复杂自定义查询以及分页

基于java技术,spring-boot和mybatis-plus搭建后台框架是现在非常流行的技术。 其中关于多表关联查询的实现相对比较复杂,在这里进行记录以供开发人员参考。 以一个系统中实际的实体类为查询为例, T3dMaterial实体其中的fileType属性及字段…

桶排序!!

桶排序 算法描述bucketSort函数bucketSort完整代码topKFrequent函数topKFrequent完整代码 完整代码 算法描述 给定一个整数数组 nums 和一个整数 k ,请返回其中出现频率前 k 高的元素。可以按 任意顺序 返回答案。 bucketSort函数 这个函数将输入数组根据元素出现…

Scrapy与MongoDB的异步数据存储

在数据采集过程中,处理大量的数据请求和存储任务是常见的需求。使用Scrapy来爬取数据并将其存储到MongoDB中是一个高效的解决方案。本文将介绍如何实现一个异步插入MongoDB的Scrapy管道。 项目背景 在本项目中,我们需要从某些公开网站上爬取数据&#…

java安装并配置环境

安装前请确保本机没有java的残留,否则将会安装报错 1.安装java jdk:安装路径Java Downloads | Oracle 中国 百度网盘链接:https://pan.baidu.com/s/11-3f2QEquIG3JYw4syklmQ 提取码:518e 2.双击 按照流程直接点击下一步&#x…

618:带货短剧,阿里VS拼多多的新战场

霸道总裁爱上我、穿越回古代成为后宫之主...让人上头的短剧今年持续升温,成为不少人的“电子榨菜”。 今年618,短剧又变身火热的主角,成为各大平台和品牌的新战场。 淘宝早在“逛逛”板块的二级页面,增加了名为“剧场”的板块&a…

机器学习实验------PCA

目录 一、介绍 二、算法流程 (1)数据中心化 (2)计算协方差矩阵 (3)特征值分解 (4)选择特征 三、运行结果展示 四、实验中遇到的问题 五、PCA的优缺点 优点: 缺点…

vue相关的前端知识回顾

nvm的安装 nvm 是一个 nodejs 版本管理工具。 使用 nvm 可以安装不同版本的 nodejs。也能够实时的切换不同的版本的NodeJS。 官方文档:https://github.com/nvm-sh/nvm 安装命令: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/in…

联想正式发布全栈算力基础设施新品,加速筑基AI 2.0时代

6月14日,以“异构智算 稳定高效”为主题的联想算力基础设施新品发布会在北京成功举办。 据「TMT星球」了解,在与会嘉宾和合作伙伴的见证下,联想正式发布率先搭载英特尔至强 6能效核处理器的联想问天WR5220 G5、联想ThinkSystem SR630 V4、联…