湛江做网站哪家专业/太原seo公司

湛江做网站哪家专业,太原seo公司,网站建设留言板怎么做,wordpress 商城模版活动发起人小虚竹 想对你说: 这是一个以写作博客为目的的创作活动,旨在鼓励大学生博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧&#xff01…

活动发起人@小虚竹 想对你说:

这是一个以写作博客为目的的创作活动,旨在鼓励大学生博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!我们一起发掘写作的魅力,书写出属于我们的故事。我们诚挚邀请你参加为期14天的创作挑战赛!

提醒:在发布作品前,请将不需要的内容删除。

1.应用层

我们之前编写完了基本的 java socket ,要知道,我们之前所写的所有代码都在应⽤层,都是为了 完成某项业务,如翻译等。关于应⽤层,我们在讲解完毕基本的 TCP/IP 协议之后,我们会单独来进 ⾏讲解。

2.传输层

负责数据能够从发送到传输到接收端。

2.1 再谈端口号

端口号标识了一个主机上进行通信的不同的应用程序。

在TCP/IP协议中,⽤"源IP","源端⼝号","⽬的IP","⽬的端⼝号","协议号"这样⼀个五元组来标识⼀个 通信(可以通过netstat-n查看);

端⼝号范围划分

• 0-1023:知名端⼝号,HTTP,FTP,SSH等这些⼴为使⽤的应⽤层协议,他们的端⼝号都是固定的.

• 1024-65535:操作系统动态分配的端⼝号.客⼾端程序的端⼝号,就是由操作系统从这个范围分配 的.

2.2UDP协议

UDP协议格式

• 16位UDP⻓度,表⽰整个数据报(UDP⾸部+UDP数据)的最⼤⻓度; 如果校验和出错,就会直接丢弃;

UDP的特点:

  • 无连接:知道对端的IP和端⼝号就直接进⾏传输,不需要建⽴连接,
  • 不可靠传输:没有确认机制,没有重传机制;如果因为⽹络故障该段⽆法发到对⽅,UDP协议层也不会给应 ⽤层返回任何错误信息;(如何理解这里的不可靠,⾯向数据报 应⽤层交给UDP多⻓的报⽂,UDP原样发送,既不会拆分,也不会合并;)
  • 面向数据报:不能够灵活的控制读写数据的次数和数量
  • 全双工

我们接下来了解UDP报头,我们所熟知的HTTP协议的报头是文本格式的,UDP/TCP/IP的报头是二进制格式的。

长度

整个UDP数据报长度(报头+载荷),长度属性也是两个字节,表示范围0~65535(64KB).

端口号

一个端口号的取值范围是0~65535,实际上一般把1024以下的端口保留,我们写代码都用1024~65535这个范围的。服务器的端口是程序员指定的(提前指定好,客户端才能访问到),客户端的端口是系统自动分配的空闲端口(如果提前指定了,可能会与你客户端上的程序起冲突)。

校验和

验证数据是否发生修改,之前我们将HTTP的数字签名是为了防止黑客篡改(防人),但UDP的校验和不是为了防人,和安全性无关,而是为了防止出现运输过程中的“比特翻转”(即1变0,0变1)。

发送之前,先计算一个校验和,把整个数据包的数据都代入,把数据与校验和一起发送给对端,接收方收到之后重新计算一下校验和,和收到的校验和进行对比(UDP发现校验和不一致,就会直接丢弃)。UDP的校验和使用了CRC方式来进行校验(循环冗余校验),把每个字节(除了校验和位置的部分之外),都当做整数,进行累加,溢出来也没有关系,继续加最终得到结果,crc校验和传输到对端,数据出现错误了,对端再次 计算的校验和就会和第一个校验和不以样。

认为两个原始数据相同,使用相同的校验和算法,得到的校验和也应该是相同的,反之,两个校验和相同,原始数据一定也相同(可能存在变数)。

UDP使⽤注意事项

UDP总长度最大是64KB,可以表述为UDP总长度达到64KB或UDP携带的载荷长度达到64KB上限。

我们注意到,UDP协议⾸部中有⼀个16位的最⼤⻓度.也就是说⼀个UDP能传输的数据最⼤⻓度是 64K(包含UDP⾸部). 然⽽64K在当今的互联⽹环境下,是⼀个⾮常⼩的数字.如果我们需要传输的数据超过64K,就需要在应⽤层⼿动的分包,多次发送,并在接收端⼿动拼装。

2.3TCP协议

TCP协议特点:有链接,面向字节流,可靠传输,全双工。

TCP协议段格式

1.16位源端口号/16位目的端口号:传输层的核心内容;

2.4位首部长度:表⽰该TCP头部有多少个32位bit(有多少个4字节);所以TCP头部最⼤⻓度是15* 4=60。

3.选项:选项的存在,导致tcp报头长度是可变的。

4.保留6位:TCP报头中就预留了一些“保留位”,现在先不用,但是先占个位子。

5.:TCP最核心的6个标志位

  •  URG:紧急指针是否有效.
  •  ACK:确认号是否有效,ack为1,表示是应答报文.
  •  PSH:提⽰接收端应⽤程序⽴刻从TCP缓冲区把数据读⾛.
  •  RST:对⽅要求重新建⽴连接;我们把携带RST标识的称为复位报⽂段.
  • SYN:请求建⽴连接;我们把携带SYN标识的称为同步报⽂段.
  •  FIN:通知对⽅,本端要关闭了,我们称携带FIN标识的为结束报⽂段.

6.16位校验和:用来校验数据是否出现错误.

7.针对确认应答中的情况,给数据进行编号,其中确认序号只在应答报文中才生效。

8.16位紧急指针:标识哪部分数据是紧急数据

TCP的核心机制

可靠性:此处的可靠性,不是说A给B发一个消息,B100%能收到,而是A给B发了消息之后,尽量让B收到消息。

TCP核心机制一:确认应答

保证可靠性的一个关键前提,发送方知道自己的数据是否被对方收到,需要对方给返回一个“应答报文”(acknowledge.ack),发送方知道应答报文,就可以确认对方收到了。

举个例子,我们用短信给别人发送多条消息时,正常情况下,如图所示

但是在网络上会出现后发先至的情况,如图所示,这种情况会引起误解,

那么针对这种情况,我们又该如何解决,接下来我们介绍一下TCP的解决方案

TCP将每个字节的数据都进行了编号,即为序列号。上述列子编号如上图所示:

每⼀个ACK都带有对应的确认序列号,意思是告诉发送者,我已经收到了哪些数据;下⼀次你从哪⾥开始 发.

1.TCP是面向字节流的,在编号时,不是按照用条、2条来编号的,而是按照“字节”的方式来编号的,每个字节都分配一个编号,编号是连续递增的。

        一个TCP的载荷是由多个字节构成的,需要多个编号,那么此处的序号该怎么填写:序号字段填写载荷部分的第一个字节的序号,序号连续递增;确认序号填法是把收到的载荷数据的最后一个字节序号+1。

2.引入序号之后,接收方就可以根据序号对数据进行排序,TCP需要先处理后发先至的情况,确保应用程序通过socket api读到的数据顺序(即确保代码里读到的数据和发送方写入的数据顺序一致)是正确的。

3.TCP报头不参与排序,序号、确认序号都是针对载荷的,TCP在接收方这里会安排“接收缓冲区”,(内存,操作系统内核里),通过网卡读到的数据,先放到缓冲区中,后续代码里调用read,也是从接收缓冲区来读的。

4.在接收缓 冲中,根据序号来排序,序号小的在前面,大的在后面,确保前面的数据已经到了,然后read才能接触阻塞,如果是后面的数据先到,read会继续阻塞,不会读取到数据。

TCP核心机制二:超时重传

1.超时重传是针对丢包的情况做出处理,这里首先会设置一个超时时间,

比如A给B发送数据等B的回应,如果达到等待时间上限,还没有收到ack,A就认为传输过程中发生丢包情况。这里的丢包可能是A给B发生的数据丢了或者B给A返回的ack丢了。

2.为什么会发生丢包现象?

因为网络结构是非常复杂的,数据报经过某个路由器,交换机转发的时候,该路由器、交换机已经非常繁忙了,导致当前所需要转发的数据量超出路由器、交换机的转发能力上限,此时,数据报会消耗更多的时间,才能到达对方,跟糟糕的是,数据报太多,路由器、交换机根本处理不过来,接收缓冲区已满,只能丢弃。

3.丢包是不能避免的客观现象,而重传是有效对抗丢包的手段。

4.如何判断是否丢包?

引入超时时间来判断是否丢包,TCP中,判断超时时间的阈值,不是固定数值,是动态改变的。

假设当前A向B发送数据,丢包时间的阈值是T,当A给B传输发生超时之后,就会延长这个时间阈值,即延长这个时间,但不是无休止的,超时次数达到一定程度或等待时间达到一定程度,就会认为网络出现严重故障,放弃这一次传输。

5.针对A给B发生的数据丢了或者B给A返回的ack丢了这两种情况,发送方A区分不了当前是那种情况,所有都重传。

情况1

A给B发生的数据丢了,直接重传就可以了。

情况2

对于这种情况,B已经收到了一份数据,如果重传,B就会收到两份一样的数据,如果tcp不处理,可能会使应用层读到两次一样的数据,所以tcp会在内部进行去重操作,此时根据序号,在接收缓冲区中寻找,如果存在,就直接丢弃;如果不存在,才放进去。

注:确认应当和超时重传是TCP最核心的两个机制,保证了TCP能够进行可靠运输

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

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

相关文章

eMMC安全简介

1. 引言 术语“信息安全”涵盖多种不同的设计特性。一般而言, 信息安全是指通过实践防止信息遭受未经授权的访问、使用、披露、中断、篡改、检查、记录或销毁。 信息安全的三大核心目标为 机密性(Confidentiality)、完整性(Integr…

Python 数据结构 2.时间复杂度和空间复杂度

Life is a journey —— 25.2.28 一、引例:穷举法 1.单层循环 所谓穷举法,就是我们通常所说的枚举,就是把所有情况都遍历了的意思。 例:给定n(n ≤ 1000)个元素ai,求其中奇数有多少个 判断一…

FFmpeg-chapter3-读取视频流(原理篇)

ffmpeg网站:About FFmpeg 1 库介绍 (1)libavutil是一个包含简化编程函数的库,包括随机数生成器、数据结构、数学例程、核心多媒体实用程序等等。 (2)libavcodec是一个包含音频/视频编解码器的解码器和编…

面试(进阶) —虚拟列表在什么场景使用,如何实现?

面试(进阶) —虚拟列表在什么场景使用,如何实现? 在前端开发中,当需要渲染大量数据时,传统的渲染方式往往会遇到性能瓶颈。一次性将大量数据渲染到DOM中,不仅会导致页面加载缓慢,还可能占用大量内存&#x…

Linux Mem -- 关于AArch64 MTE功能的疑问

目录 1.虚拟地址和物理地址映射完成后,才可以设置虚拟地址对应的memory tag ? 2.各种memory allocator中的address tag从哪来,怎么产生? 2.1 vmalloc allocator 2.2 slub分配器 2.3 用户可以指定IRG指令产生的address tag 3.kasan…

python-leetcode-颜色分类

75. 颜色分类 - 力扣&#xff08;LeetCode&#xff09; class Solution:def sortColors(self, nums: List[int]) -> None:"""Do not return anything, modify nums in-place instead."""low, mid, high 0, 0, len(nums) - 1while mid < h…

ArcGIS Pro技巧实战:高效矢量化天地图地表覆盖图

在地理信息系统&#xff08;GIS&#xff09;领域&#xff0c;地表覆盖图的矢量化是一项至关重要的任务。天地图作为中国国家级的地理信息服务平台&#xff0c;提供了丰富且详尽的地表覆盖数据。然而&#xff0c;这些数据通常以栅格格式存在&#xff0c;不利于进行空间分析和数据…

【江科大STM32】TIM输出比较(学习笔记)

本章图片文字内容也为重要知识&#xff0c;请马住&#xff01; 输出比较简介 OC&#xff08;Output Compare&#xff09;输出比较输出比较可以通过比较CNT与CCR寄存器值的关系&#xff0c;来对输出电平进行置1、置0或翻转的操作&#xff0c;用于输出一定频率和占空比的PWM波形…

【网络安全 | 漏洞挖掘】利用文件上传功能的 IDOR 和 XSS 劫持会话

未经许可,不得转载。 本文涉及漏洞均已修复。 文章目录 前言正文前言 想象这样一个场景:一个专门处理敏感文档的平台,如保险理赔或身份验证系统,却因一个设计疏漏而成为攻击者的“金矿”。在对某个保险门户的文件上传功能进行测试时,我意外发现了一个可导致大规模账户接管…

飞算 JavaAI 如何让微服务开发快人一步?

在当今竞争激烈的软件开发领域&#xff0c;微服务架构因其灵活性和可扩展性备受青睐。然而&#xff0c;微服务开发过程复杂&#xff0c;从需求分析到最终代码实现&#xff0c;每个环节都需要耗费大量时间和精力。飞算 JavaAI 的出现&#xff0c;犹如一道曙光&#xff0c;为开发…

Python—Excel全字段转json文件(极速版+GUI界面打包)

目录 专栏导读1、背景介绍2、库的安装3、核心代码4、完整代码(简易版)5、进阶版(GUI)总结专栏导读 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️‍🌈 博客主页:请点击——> 一晌小贪欢的博客主页求关注 👍 该系列文章专栏:请点击——…

2025年光电科学与智能传感国际学术会议(ICOIS 2025)

重要信息 官网&#xff1a;www.ic-icois.org 时间&#xff1a;2025年3月14-16日 地点&#xff1a;中国-长春 简介 2025年光电科学与智能传感国际学术会议&#xff08;ICOIS 2025&#xff09;将于2025年3月14-16日在中国-长春隆重召开。会议将围绕“光学光电”、“智能传感”…

企业微信里可以使用的企业内刊制作工具,FLBOOK

如何让员工及时了解公司动态、行业资讯、学习专业知识&#xff0c;并有效沉淀企业文化&#xff1f;一份高质量的企业内刊是不可或缺的。现在让我来教你该怎么制作企业内刊吧 1.登录与上传 访问FLBOOK官网&#xff0c;注册账号后上传排版好的文档 2.选择模板 FLBOOK提供了丰富的…

YOLOv5 + SE注意力机制:提升目标检测性能的实践

一、引言 目标检测是计算机视觉领域的一个重要任务&#xff0c;广泛应用于自动驾驶、安防监控、工业检测等领域。YOLOv5作为YOLO系列的最新版本&#xff0c;以其高效性和准确性在实际应用中表现出色。然而&#xff0c;随着应用场景的复杂化&#xff0c;传统的卷积神经网络在处…

智能机器人加速进化:AI大模型与传感器的双重buff加成

Deepseek不仅可以在手机里为你解答现在的困惑、占卜未来的可能&#xff0c;也将成为你的贴心生活帮手&#xff01; 2月21日&#xff0c;追觅科技旗下Dreamehome APP正式接入DeepSeek-R1大模型&#xff0c;2月24日发布的追觅S50系列扫地机器人也成为市面上首批搭载DeepSeek-R1的…

PostgreSQL10 逻辑复制实战:构建高可用数据同步架构!

PostgreSQL10 逻辑复制实战&#xff1a;打造高可用数据同步架构&#xff01; 概述 PostgreSQL 10 引入了逻辑复制&#xff08;Logical Replication&#xff09;&#xff0c;为数据库高可用和数据同步提供了更灵活的选择。PostgreSQL 复制机制主要分为物理复制和逻辑复制两种&…

原生家庭独立的艺术:找到自我与家庭的平衡点

原生家庭独立的艺术&#xff1a;找到自我与家庭的平衡点 &#x1f331; 引言 &#x1f308; 小林刚刚和父母结束了一次激烈的电话对峙。父母坚持认为他应该回到家乡工作&#xff0c;“这样我们也能照顾你”&#xff0c;而他则努力解释自己在大城市的职业规划。挂掉电话后&…

DeepSeek 15天指导手册——从入门到精通 PDF(附下载)

DeepSeek使用教程系列--DeepSeek 15天指导手册——从入门到精通pdf下载&#xff1a; https://pan.baidu.com/s/1PrIo0Xo0h5s6Plcc_smS8w?pwd1234 提取码: 1234 或 https://pan.quark.cn/s/2e8de75027d3 《DeepSeek 15天指导手册——从入门到精通》以系统化学习路径为核心&…

【智能音频新风尚】智能音频眼镜+FPC,打造极致听觉享受!【新立电子】

智能音频眼镜&#xff0c;作为一款将时尚元素与前沿科技精妙融合的智能设备&#xff0c;这种将音频技术与眼镜形态完美结合的可穿戴设备&#xff0c;不仅解放了用户的双手&#xff0c;更为人们提供了一种全新的音频交互体验。新立电子FPC在智能音频眼镜中的应用&#xff0c;为音…

常用的 pip 命令

pip 是 Python 的包管理工具&#xff0c;可用于安装、卸载、更新和管理 Python 包。以下是一些常用的 pip 命令&#xff1a; 1. 安装包 安装最新版本的包 pip install package_namepackage_name 是你要安装的 Python 包的名称&#xff0c;例如 pip install requests 可以安装…