当前位置: 首页 > news >正文

计算机网络笔记

TCP有连接可靠服务

TCP特点
1.TCP是面向连接的传输层协议;
2.每条TCP连接只能有两个端点,每条TCP连接是一对一的;
3.TCP提供可靠交付,保证传送数据无差错,不丢失,不重复且有序;
4.TCP提供全双工信道,允许通信双方同时发送数据。TCP两端都设有发送缓存和接收缓存,用来临时存放双向通信的数据;
发送缓存存放的数据:1.发送应用程序传给发送方TCP准备发送的数据。2.TCP已发送但未收到确认的数据。
接收缓存存放的数据:1.按序到达但尚未被接受应用程序读取的数据。2.不按序到达的数据。
5.TCP是面向字节流的,虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序交下来的数据仅视为一串无结构的字节流。(这会导致粘包问题)UDP报文长度由发送应用进程决定,TCP报文的长度需要根据接收方给出的窗口值和网络拥塞程度来决定。如果进程传送到TCP缓存的数据块太长,TCP会把它划分得短一些传送,如果太短则积足够多得字节再组成报文段发出去。
TCP连接的端口为套接字,由IP和端口号组成,套接字唯一的标识网络中的一台主机和其上的一个应用(进程)。每条TCP连接唯一的被通信的两个端口确定。

三次握手
1.客户机向服务器发送请求连接报文段,报文段中同步位SYN置1,同时包含一个初始序号seq=x,客户端进入同步已发送(SYN-SENT)状态。
2.服务器收到客户端的请求连接报文,回复一个确认报文。报文中确认位ACK、同步位SYN都置1,并包含一个初始序号seq=y和确认号ack=x+1,服务器进入同步收到(SYN-RCVD)状态。
3.客户端收到服务器的确认之后再向服务器发送一个确认报文,报文中确认位ACK置1,序号为seq=x+1,确认号ack=y+1,客户进程进入已建立连接(ESTABLISHED)状态。

四次挥手
1.客户机发送释放链接报文段,并停止发送数据,主动关闭TCP连接。报文段中终止位FIN置1,序号seq=u为上一个发送序号+1,客户机进入终止等待1(FIN-WAIT_1)状态。
2.服务器收到报文段后回复一个确认报文段。报文段中确认位ACK置1,确认号ack=u+1,序号seq=v为前一个序号加一,服务器进入关闭等待状态(CLOSE-WAIT)。
3.当服务器没有要向客户机发送的数据时,通知TCP释放链接。发送释放连接报文段。报文段中终止位FIN确认位ACK都置1,确认号ack=u+1,序号seq=w(可能在这之前服务器还发送过一些数据),服务器进入最后确认状态(LAST-ACK)。
4.客户机收到报文,回复一个确认报文段。报文段中确认位ACK置1,确认号ack=w+1,序号seq=u+1。客户机等待2MSL(最长报文段寿命)后进入连接关闭状态(CLOSED)。

UDP无连接非可靠服务

UDP特点
1.无需建立连接,没有建立连接时延;
2.无连接状态,因为是无连接,因此不必维护连接状态(接收缓存发送缓存拥塞控制和确认之类的);
3.分组首部开销更小(UDP首部只有8B,而TCP有20B);
4.应用层能更好的控制发送的数据和发送时间。(没有拥塞控制不会受网络拥塞影响);
5.UDP支持一对一,一对多,多对多的交互通信,而TCP只支持一对一通信;

UDP常用于一次性传送较少数据的网络应用,如DNS,SNMP,也常用于多媒体应用,如IP电话,视屏会议,流媒体等。因为时延小。
UDP不保证可靠交互,但可由用户在应用层来完成可靠交互(可以在应用层实现类似TCP可靠交互的机制(确认,重传,数据有序))
UDP是面向报文,UDP对应用层交下来的报文既不合并,也不拆分,而是保留报文的边界,一次交付一个完整的报文(报文在UDP中是不可分割的,报文是UDP数据报处理的最小单位)。(但UDP交付给IP层(网络层)后可能会被分片)

相关文章:

计算机网络笔记

TCP有连接可靠服务 TCP特点: 1.TCP是面向连接的传输层协议; 2.每条TCP连接只能有两个端点,每条TCP连接是一对一的; 3.TCP提供可靠交付,保证传送数据无差错,不丢失,不重复且有序; 4.…...

高效反编译luac文件

对于游戏开发人员,有时候希望从一些游戏apk中反编译出源代码,进行学习,但是如果你触碰到法律边缘,那么你要非常小心。 这篇文章,我针对一些用lua写客户端或者服务器的编译过的luac文件进行反编译,获取其源代码的过程。 这里我不赘述如何反编译解压apk包的过程了,只说重点…...

密码湘军,融合创新!麒麟信安参展2023商用密码大会,铸牢数据安全坚固堡垒

2023年8月9日至11日,商用密码大会在郑州国际会展中心正式开幕。本次大会由国家密码管理局指导,中国密码学会支持,郑州市人民政府、河南省密码管理局主办,以“密码赋能美好发展”为主题,旨在推进商用密码创新驱动、前沿…...

关于视频监控平台EasyCVR视频汇聚平台建设“明厨亮灶”具体实施方案以及应用

一、方案背景 近几年来,餐饮行业的食品安全、食品卫生等新闻频频发生,比如某火锅店、某网红奶茶,食材以次充好、后厨卫生被爆堪忧,种种问题引起大众关注和热议。这些负面新闻不仅让餐饮门店的品牌口碑暴跌,附带的连锁…...

区块链系统探索之路:私钥的压缩和WIF格式详解

在前面章节中,我们详细介绍了公钥的压缩,在比特币网络中,一个私钥可以对应两个地址,一个地址是由未压缩公钥所生成的地址,另一个就是由压缩公钥所创建的地址,从公钥到区块链地址的转换算法,我们…...

DiffusionDet: Diffusion Model for Object Detection

DiffusionDet: Diffusion Model for Object Detection 论文概述不同之处整体流程 论文题目:DiffusionDet: Diffusion Model for Object Detection 论文来源:arXiv preprint 2022 论文地址:https://arxiv.org/abs/2211.09788 论文代码&#xf…...

CH01_重构、第一个示例

概述 在这一章节,作者给出了一个戏剧演出团售票的示例:剧目有悲剧(tragedy)和喜剧(comedy);为了卖出更多的票,剧团则更具观众的数量来为下次演出打折扣(大致意思是这次的…...

学习篇之React Fiber概念及原理

什么是React Fibber? React Fiber 是 React 框架的一种底层架构,为了改进 React 的渲染引擎,使其更加高效、灵活和可扩展。 传统上,React 使用一种称为堆栈调和递归算法来处理虚拟 DOM 的更新,这种方法在大型应用或者…...

商城-学习整理-高级-全文检索-ES(九)

目录 一、ES简介1、网址2、基本概念1、Index(索引)2、Type(类型)3、Document(文档)4、倒排索引机制4.1 正向索引和倒排索引4.2 正向索引4.3 倒排索引 3、相关软件及下载地址3.1 Kibana简介3.2 logstash简介…...

无人机跟随一维高度避障场景--逻辑分析

无人机跟随一维高度避障场景--逻辑分析 1. 源由2. 视频3. 问题3.1 思维发散3.2 问题收敛 4. 图示4.1 水平模式4.2 下坡模式4.3 上坡模式4.4 碰撞分析 5. 总结5.1 一维高度避障场景5.2 业界跟随产品5.3 APM集成跟随 6. 参考资料7. 补充资料 - 大疆智能跟随7.1 炸机7.2 成功 1. 源…...

Android Studio Giraffe控制台乱码

这几天在使用Android Studio Giraffe进行一个App的开发,在项目构建的时候,控制台输出中文都是乱码,看着很不爽,进行了两项配置,中文就可以正常输出了,看起来就爽多了。 第一个配置:点击Help菜单…...

云原生 envoy xDS 动态配置 java控制平面开发 支持restful grpc实现 EDS 动态endpoint配置

envoy xDS 动态配置 java控制平面开发 支持restful grpc 动态endpoint配置 大纲 基础概念Envoy 动态配置API配置方式动静结合的配置方式纯动态配置方式实战 基础概念 Envoy 的强大功能之一是支持动态配置,当使用动态配置时,我们不需要重新启动 Envoy…...

Linux--实用指令与方法(部分)

下文主要是一些工作中零碎的常用指令与方法 实用指令与方法(部分) linux长时间保持ssh连接 这个问题的原因是:设置检测时间太短,或者没有保持tcp长连接。 解决步骤: 步骤1:打开sshd配置文件&#xff0…...

常见期权策略类型有哪些?

这几天在做一个期权策略类型的整理分类,怎么解释期权策略,期权策略是现代金融市场中运用非常广泛、变化非常丰富、结构非常精妙的金融衍生产品;同时也是一种更为复杂也更为灵活的投资工具,下文介绍常见期权策略类型有哪些&#xf…...

tomcat服务七层搭建动态页面查看

一个服务器多实例复制完成 配置tomcat多实例的环境变量 vim /etc/profile.d/tomcat.sh配置tomcat1和tomcat2的环境变量 进入tomcat1修改配置 测试通信端口是否正常 连接正常 toncat 2 配置修改 修改这三个 端口配置修改完成 修改tomcat1 shudown 分别把启动文件指向tomcat1…...

sql A表(含有部分B表字段) 向B表插入A表数据

今天遇到一个数据库插入问题 向表中插入 生产状态 为 2 的数据 但生产状态为改为12 的所有数据 查看网上的评论 参考 insert into b (a,b,c) select ‘1’,‘2’,c from a where a1 这样就可以a,b字段是插入指定某个值,而C字段则用表a的c字段. 最后解决了。忽然想起原来也有这…...

如何用思维导图+Markdown提升工作效率?

在日常的工作中,我们常常需要记录一些信息、重要的事情或者一些重要的想法,Markdown就是一种非常好用的记录工具。搭配思维导图可以提高我们的记录效率,让我们的记录更加结构化。 为什么使用思维导图? 思维导图可以帮助我们整理…...

睿趣科技:抖音开网店现在做还来得及吗

随着社交媒体的迅速发展,抖音作为一款短视频平台,已经在年轻人中间取得了巨大的成功。而近年来,越来越多的人开始考虑在抖音上开设网店,以迎合这一潮流。那么,抖音开网店现在还来得及吗? 首先,要明确的是&…...

C++——list的简要介绍

list的介绍 详细请看(https://cplusplus.com/reference/list/list/?kwlist) 1.list是一个可以在常数范围内在任意位置,进行插入和删除的序列式容器,并且此容器可以前后双向迭代。 2.list的底层实质是一个双向链表结构&#xf…...

Java自学网站推荐,专业教学快速提升

Java自学书籍推荐,很多同学在找小编要一些比较适合初学者的学习书籍,Java自学书籍可以帮助您学习和掌握Java编程语言。以下是一些常见的Java自学书籍,它们涵盖了Java的基础知识、编程技巧和应用开发等方面: 1."Java核心技术&…...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序

一、开发环境准备 ​​工具安装​​: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 ​​项目初始化​​: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

SpringCloudGateway 自定义局部过滤器

场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

Rapidio门铃消息FIFO溢出机制

关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)

上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...

初探Service服务发现机制

1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源&#xf…...

现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?

现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)&#xff…...