网络应用基础 ——(2023新星计划文章二)

news2024/12/28 19:03:04

一,TCP/UDP报头

1.1TCP报文头部详解

在这里插入图片描述在这里插入图片描述

  • Source port:源端口号与Destination port目标端口号:
    在TCP(传输控制协议)协议中,源端口和目标端口字段用于标识通信会话的端点。
    (1)源端口是一个16位字段,用于标识本地主机上的发送应用程序或进程。它由发送主机选择,并由接收主机用于将响应数据包发送回正确的端口。
    (2)目标端口是一个16位字段,用于标识远程主机上的接收应用程序或进程。它由发送主机指定,并由接收主机用于将传入数据包定向到正确的应用程序或进程。
    (3)源端口和目标端口字段一起形成一个唯一的套接字(Socket),它标识两个主机之间特定的通信会话。源端口和目标端口的组合允许多个应用程序或进程在同一主机上与不同的端点建立多个通信会话。
  • Sequence numberAcknowledge numbe
    在TCP协议中,序列号和确认号字段用于提供可靠的数据传输。发送方可以根据确认号确定接收方已经成功接收到哪些数据,从而可以重传丢失的数据。接收方可以使用序列号来将接收到的数据按正确的顺序进行组装,从而保证数据的完整性和正确性。
    (1)Sequence number:TCP链接中的每个报文都有序列号。序列号是一个32位的字段,用于标识TCP报文段中第一个字节的序列号。由于TCP报文段可能会分成多个IP数据包进行传输,序列号可以用于确定报文段中的字节在数据流中的顺序。
    (2)Acknowledge numbe:,用于对收到的报文的确认的确认号。确认号是一个32位的字段,用于指示期望接收的下一个字节的序列号。当接收方成功接收到一个TCP报文段时,它会发送一个确认报文段回到发送方,其中确认号字段被设置为已接收的最大序列号加1,表示下一个期望接收的字节的序列号。
  • Window Size
    用于窗口TCP的流量控制,根据接收者能力进行调节,这个值表明当前接受端可接受的最大数据总数(字节),如果没有这个流量控制,传输方会尽最大能力传输数据,如果接收方一次不能接受完所有数据就会导致丢包,还需要重新传送。
  • Checksum字段:
    在计算机网络中,Checksum(校验和)是一种用于检测数据传输中错误的技术。在TCP协议中,Checksum字段用于检测TCP报文段中的错误。
    (1)Checksum字段是一个16位的字段,用于存储计算出的校验和值。发送方在发送TCP报文段时,计算校验和并将其添加到Checksum字段中。接收方在接收到TCP报文段后,也会计算校验和并将其与Checksum字段中的值进行比较,以检测是否存在数据传输中的错误。
    (2)计算校验和的方法是将TCP报文段中的每个16位字(包括报文头和报文数据)两两相加,得到一个总和。如果总和大于16位,则将低16位与高16位相加,直到得到一个16位的结果。然后将这个16位结果取反,得到的值就是校验和。
    (3)通过Checksum字段,TCP协议可以检测到数据传输中的错误,例如数据丢失、损坏或被篡改等。如果接收方检测到Checksum值与计算得到的校验和值不同,则说明TCP报文段中存在错误,接收方会丢弃这个报文段并要求发送方重新发送数据。
    因此,Checksum字段是TCP协议实现可靠数据传输的重要组成部分之一。

1.2滑动窗口

  • 概念:滑动窗口是TCP协议中用于流量控制和拥塞控制的机制之一,它允许发送方和接收方之间的通信进行自适应调整,以适应网络条件的变化。
  • 作用
    (1)在TCP协议中,发送方和接收方都维护一个滑动窗口,用于控制数据的传输。发送方的滑动窗口表示可以发送的数据量,而接收方的滑动窗口表示可以接收的数据量。这个滑动窗口大小可以根据网络条件进行动态调整。
    (2)发送方根据接收方的滑动窗口大小来发送数据,确保不会发送超过接收方缓冲区大小的数据。接收方通过发送确认消息来告知发送方它的滑动窗口大小,从而通知发送方可以发送多少数据。
    (3)通过滑动窗口,TCP协议可以自适应地调整数据的传输速率,以适应网络的拥塞和性能变化。如果网络拥塞,接收方可以减小滑动窗口的大小,从而减少发送方的数据量,避免网络拥塞加剧。如果网络条件良好,滑动窗口可以增大,从而提高数据传输速率。

1.3UDP报文头部详解

二, TCP三次握手

三,

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

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

相关文章

LeetCode 1206. 实现跳表

不使用任何库函数,设计一个跳表。 跳表是在 O(log(n)) 时间内完成增加、删除、搜索操作的数据结构。跳表相比于树堆与红黑树,其功能与性能相当,并且跳表的代码长度相较下更短,其设计思想与链表相似。 例如,一个跳表包…

3.数据查询(实验报告)

目录 一﹑实验目的 二﹑实验平台 三﹑实验内容和步骤 四﹑命令(代码)清单 五﹑调试和测试清单 一﹑实验目的 掌握使用Transact-SQL的SELECT语句进行基本查询的方法;掌握使用SELECT语句进行条件查询的方法;掌握SELECT语句的GROUP BY、ORDER BY以及UN…

MX6U根文件系统配置

编译 BusyBox 构建根文件系统 /home/ /linux/nfs mkdir rootfs tar -vxjf busybox-1.29.0.tar.bz2 依照自己的交叉编译 不然会出错 配置好 busybox 以后就可以编译了,我们可以指定编译结果的存放目录,我们肯定要将编 译结果存放到前面创建的 rootfs 目录…

(leetcode)66. 加一 67. 二进制求和(详解)

目录 66. 加一 思路 代码 67. 二进制求和 思路 代码 66. 加一 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这…

7个最好的WordPress LMS在线学习管理系统比较

您是否正在为您的 WordPress 网站寻找最好的 LMS 在线学习管理系统插件? 学习管理系统 (LMS) 插件允许您创建和运行类似 Udemy 和 LearnDesk 等在线课程。一个完美的 WordPress LMS 插件拥有您管理在线课程、运行和评分测验、接受付款等所需的一切。 在本文中&…

【MySql】数据库 select 进阶

数据库 数据库表的设计ER 关系图三大范式 聚合函数与分组查询聚合函数 (count、sum、avg、max、min)分组查询 group by fields....having....(条件) 多表联查内连接外连接(左连接,右连接)自连接子查询合并查询 UNION 数据库表的设计 ER 关系…

在Centos中metabase安装与配置(bi工具)

1 metabase介绍 metabase是一款开源的BI分析工具,开发语言clojureReact为主、也有高阶的收费版。 官网:https://www.metabase.com/ 可以利用Metabase进行数据分析,数据可视化,报表生成等。开源地址:https://github.co…

(五)【平衡小车制作】位置式PID、直立环与速度环概念

声明:本博客是B站视频【天下行走的平衡小车视频】的笔记 一、PID控制算法概念 PID控制,即为对偏差进行比例、积分和微分控制。由三个元素构成:比例(P),积分(I),微分(D&…

Linux系统应用编程(六)Linux网络编程(下篇)

本篇主要内容: 一、Linux的文件描述符二、多路IO转接(上)1.基础版多路IO转接select▶ 关于select( )函数▶ select( )改写上篇案例 2.加强版多路IO转接poll3.顶配版多路IO转接epoll▶ epoll相关函数(1)创建监听红黑树&…

重装系统后,MySQL install错误,找不到dll文件,或者应用程序错误

文章目录 1.找不到某某dll文件2.mysqld.exe - 应用程序错误使用DX工具直接修复 1.找不到某某dll文件 由于找不到VCRUNTIME140_1.dll或者MSVCP120.dll,无法继续执行代码,重新安装程序可能会解决此问题。 在使用一台重装系统过的电脑,再次重新…

Yolov8实战:交通roadsign识别,通过加入CVPR203 DCNV3和BiLevelRoutingAttention,暴力涨点

1.roadsign数据集介绍 数据集大小:877张 类别:speedlimit、crosswalk、trafficlight、stop 2.基于YOLOV8的roadsign识别 2.1 原始yolov8性能分析 原始map为0.841 2.1 加入DCNV3 博客地址: https://cv2023.blog.csdn.net/article/detai…

手写 EventBus:从零到一实现自己的事件总线库

简介:在本文中,我们将详细介绍如何从头开始实现一个轻量级的 EventBus 库。我们将以 XEventBus 为例,阐述整个实现过程,以及在实现过程中遇到的关键问题和解决方法。 一 引言 什么是 EventBus? EventBus 是一个基于…

C++ 多线程编程(三) 获取线程的返回值——future

C11标准库增加了获取线程返回值的方法&#xff0c;头文件为<future>&#xff0c;主要包括future、promise、packaged_task、async四个类。 那么&#xff0c;了解一下各个类的构成以及功能。 1 future future是一个模板类&#xff0c;它是传输线程返回值&#xff08;也…

2-Lampiao百个靶机渗透(精写-思路为主)框架漏洞利用2

特别注明&#xff1a;本文章只用于学习交流&#xff0c;不可用来从事违法犯罪活动&#xff0c;如使用者用来从事违法犯罪行为&#xff0c;一切与作者无关。 文章目录 前言一、环境重新部署二、AWVSxray联动和xraybs联动1.安装AWVSxray2.让xray和bs先联动3.AWVS和xray联动 三、p…

【Spring框架全系列】如何创建一个SpringBoot项目

&#x1f307;哈喽&#xff0c;大家好&#xff0c;我是小浪。前几篇博客我们已经介绍了什么是Spring&#xff0c;以及如何创建一个Spring项目&#xff0c;OK&#xff0c;那么单单掌握Spring是完全不够的&#xff0c;Spring的家族体系十分强大&#xff0c;我们还需要深入学习&am…

力扣---LeetCode160. 相交链表(代码详解+流程图)

文章目录 前言160. 相交链表链接&#xff1a;思路&#xff1a;方法一&#xff1a;暴力求解法1.1 时间复杂度&#xff1a;O(M*N)1.2 代码&#xff1a; 方法二&#xff1a;双指针2.1 时间复杂度&#xff1a;O(N)2.2 代码&#xff1a;2. 3流程图&#xff1a; 注意&#xff1a;补充…

13. Transformer(下)

P33 Transformer&#xff08;下&#xff09; 视频链接 P33 Transformer&#xff08;下&#xff09; 1. Decoder: Autoregressive(AT) Decoder原理&#xff1a; Encoder vs Decoder&#xff1a; Masked&#xff1a; how to stop&#xff1a; 2. Decoder: Non-autoregressive(…

网络基础——网络的发展史

作者简介&#xff1a;一名计算机萌新、前来进行学习VUE,让我们一起进步吧。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;我叫于豆豆吖的主页 目录 前言 一.网络发展史 1. ARPANET 2.TCP/IP协议 3. 互联网 4.Web浏览器 5.搜索引擎 6. 社交网…

如果你访问了某个网站,又不想让人知道怎么办?

问大家一个问题&#xff1a;如果你访问了某个网站&#xff0c;又不想让人知道怎么办&#xff1f; 你可能会说&#xff0c;把浏览器浏览历史记录清除&#xff0c;或者直接用无痕模式。 如果你只能想到这一层&#xff0c;那只能说图young&#xff01; 这么说吧&#xff0c;理论…

操作系统原理 —— 调度的概念、层次(十一)

调度的基本概念 在操作系统中的调度&#xff0c;是指操作系统从就序队列中选择一个作业&#xff0c;或者进程进行执行。 举个例子&#xff1a; 比如我们去银行窗口排队&#xff0c;排队的人就相当于就绪列表&#xff0c;窗口就相当于是操作系统&#xff0c;窗口需要服务排队…