计算机网络之网络传输,三次握手和四次挥手

网络传输通过高低电压

流 基本类型数组 低电压转高电压,通过网卡

传输模式:

全双工:互相传输且能同时传输

半双工:互相传输但是不能同时传输

单工:单向传输,(键盘,显示器)

单根导线的电压不能同时存在,相反电压会抵消,相同会串联成同一信号

一根网线中有多根导线

交换设备:路由器、交换机、核心交换等,电压信号不能同时存在,会产生干扰,需要在交换设备中先存储起来,然后逐个发送给其他接收方,需要排队轮流发送,会导致网络延迟

设备部署

目的ip 目标设备地址 来源ip 来源设备ip 目的端口号 来源端口号 响应内容 响应时间 超时重发 过期时间 CRC校验码 数据过大需要拆分 序号 总大小 计算机网络协议 借助socket套接字 TCP协议,保证准确无误传输信息,速度慢

建立传输连接的过程

出厂设置设备地址,每一台设备都不一样,都有唯一的一个设备地址

距离越远,网络延迟越高,距离越近,网络延迟越低

三次握手(面试重点)

计算机网络中的“三次握手”是指建立TCP连接的重要步骤,即双方都发送数据包以确认彼此的存在并建立连接。

具体来说,“三次握手”是指以下三个步骤:

  1. 第一次握手:客户端发送SYN包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认。这个过程中,j是一个随机数,通过看服务器返回的j+1是否正确,判断第一次握手服务器是否正确响应。
  2. 第二次握手:服务器确认客户的SYN包,同时发送ACK包(ack = j+1)作为回应;自己也发送一个SYN包(syn=k),共两个包,此时服务器进入SYN_RECV状态。这个过程中,k也是一个随机数,用于看客户端返回的k+1是否正确,判断第二次握手客户端是否正确响应。
  3. 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。这个过程中,握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。

四次挥手

四次挥手过程(four-way handshake)是TCP(传输控制协议)中建立连接和释放连接的重要过程。具体步骤如下:

  1. 第一次挥手:客户端发送一个FIN报文(FIN=1)给服务器,表示要关闭连接。此时,客户端进入FIN-WAIT-1状态,服务器收到报文后,发送一个ACK报文(ACK=1,确认号ack=u+1,序号seq=v)给客户端,表示已收到连接释放请求,此时客户端进入FIN-WAIT-2状态,服务器进入CLOSE-WAIT状态。
  2. 第二次挥手:服务器发送一个FIN报文(FIN=1)给客户端,表示要关闭连接。此时,服务器进入LAST-ACK状态,等待客户端的确认。客户端收到报文后,发送一个ACK报文(ACK=1,seq=u+1,ack=w+1)给服务器,表示已收到连接释放请求,此时服务器进入TIME-WAIT状态。
  3. 第三次挥手:客户端发送一个ACK报文(ACK=1,seq=u+1,ack=w+1)给服务器,表示已收到服务器的连接释放请求。此时,客户端进入TIME-WAIT状态。
  4. 第四次挥手:服务器发送一个ACK报文(ACK=1,seq=w+1,ack=u+1)给客户端,表示已收到客户端的确认报文。此时,服务器进入CLOSE状态,完成四次挥手过程。

在四次挥手过程中,两次握手用于建立连接,两次握手用于关闭连接。同时,TCP协议为了防止已失效的连接请求报文段突然又传送到了服务端而错误地建立一个虚假的连接(也就是半开连接),所以TCP协议要求每个连接都必须经过建立连接和释放连接的过程。

响应 响应时间 超时重发 过期时间 超过响应时间后会超时重发,在发的过程中如果该信号超过过期时间得到的信号会被丢弃不再转发

太阳风暴,电压磁场爆炸,被迫切割磁感线,产生电流,电压发生改变,导致传播中断或者传播信号发生改变

校验码,关联数据

CRC校验码

数据包大小有限制,如果数据包太大,需要转发很久才能转发下一个,其他信号就暂时不能转发,导致断网,因此数据太大还需要拆开

全部接收完才会开始组装,因为存在超时重发,接受的顺序不一定正确,因此还需要有一个数据包的总大小,来判断当前数据包是否全部接收完成,因此文件下载时,下载没完成时不能查看,因为没有接收完还没组装

视频加载技术,就是将大视频分割成小视频,下一个播放一个

断网后没有传完的文件需要重新传输,因为不知道缺的是哪一个小片段没传

断点续传技术是指在文件传输过程中,当传输中断时,可以通过记录已传输的部分和相关信息,使传输在中断处继续进行的技术。它可以解决网络不稳定或其他中断情况下的文件传输问题。

socket套接字工具类,提供发送接受消息功能,它是计算机之间进行通信的一种约定或一种方式。通过socket这种约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送数据。

任何语言都有socket,底层网络传输都是socket,用来解析协议数据

正常通信,不做处理是不安全的

TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)是互联网协议(IP)中两种主要的传输层协议,它们的特点和应用场景如下:

TCP协议:

  1. 面向连接:在传输数据之前需要先建立连接,传输完成后释放连接。
  2. 可靠性高:TCP提供了确认、重传、数据排序等机制,保证数据的可靠性。
  3. 慢启动:TCP连接建立后,会逐渐增加数据传输的速率,防止网络拥塞。
  4. 吞吐量高:TCP支持窗口调整和流控制,可以根据网络状态进行调整,提高数据传输效率。
  5. 主要应用场景:每个UDP包都是独立的,并且可能会在传输过程中丢失、重复、乱序。因此,UDP适用于需要快速传输数据,而对数据可靠性要求不高的应用场景。

UDP协议:

  1. 无连接:不需要在传输数据之前建立连接,简单、快速。
  2. 简单性:由于UDP是无连接的协议,所以它在进行数据传输时不需要建立连接,也不需要进行数据的确认和重传等操作,因此相对来说比较简单、快速。
  3. 效率高:由于UDP不需要进行数据的确认和重传等操作,因此它的传输效率相对较高。
  4. 主要应用场景:对于一些对实时性要求比较高的应用,如实时视频流、游戏等,使用UDP协议可以更好地保证数据的实时性和流畅性。同时,对于一些对数据可靠性要求不高的应用,如网络爬虫、日志记录等,使用UDP协议也可以降低实现的复杂性和成本。

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

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

相关文章

kubernetes详解——从入门到入土(更新中~)

k8s简介 编排工具:系统层面ansible、saltstackdocker容器docker compose docker swarm docker machinedocker compose:实现单机容器编排docker swarm:实现多主机整合成为一个docker machine:初始化新主机mesos marathonmesos …

微信小程序查看接口信息(抓包)

本文仅供交流学习使用 主要参考: https://cloud.tencent.com/developer/article/1833591 https://www.cnblogs.com/x1you/p/12033839.html 由于参考文章在baidu权重不高(google才查到的), 所以自己重新记录一篇, 方便他人, 也防止参考文章丢失. 背景 需要知道微信小程序的接口…

8、Broker进一步了解

1、Broker消息分发服务以及构建ConsumeQueue和IndexFile与消息清除 前面分析如何进行刷盘,本章分析Broker的消息分发以及构建ConsumerQueue和IndexFile,两者构建是为了能够提高效率,减少消息查找时间以及减少网络带宽与存储空间。 ConsumeQ…

线程与线程池

单核cpu与多核cpu: 线程的并发和并行问题 多线程的创建: 多线程程序创建:java.lang.Thread(实现了Runnable接口) // 1定义一个类实现Runnable接口,重写run方法(run方法中设置线程任务)…

W5500实现以太网通信

实现原理 嵌入式程序跑在STM32微控制器,通过片上SPI控制器与W5500进行通信,配置所需网络参数并与远端服务器建立链接(TCP客户端)之后发送接收数据;又或者是建立服务器(TCP服务器)等待建立链接之…

mac电池最大充电限制工具 AlDente Pro中文 for Mac

Pro 版特有功能 热保护:在电池温度较高时为电池充电会导致电池老化更快。启用热保护后,当电池温度过高时,充电将自动停止。 航行模式:通常情况下,即使激活了最大电池充电,您的 MacBooks 电池也会始终稍微充…

记一次校园双选会面试问到的题

创建对象方式 线程安全和那些锁 stringbuff build区别 反射原理 集合底层 存储引擎myisam和innodb B树,慢查询,sql优化 数据库三大范式 左右内连接分别的效果 谈谈boot和spring,常用注解 ioc aop redis里的锁,缓存击穿穿透血崩&am…

7.上传project到服务器及拉取服务器project到本地、更新代码冲突解决

1.上传project到SVN服务器 1.在eclipse中,从show view里调出SVN资源库视图 2.在SVN资源库窗口的空白位置右键选择新建资源库位置 3.填好服务器的地址 4.资源库导入成功,SVN资源库视图下出现导入的资源库 5.新建project 6.写好project的初始版本 7.右键project --&…

Java面试题(每天10题)-------连载(43)

目录 Spring篇 1、请举例说明Qualifier注解 2、构造方法注入和设值注入有什么区别? 3、Spring框架中有哪些不同类型的事件? 4、FileSystemResource和ClassPathResource有什么区别? 5、Spring框架中都用到了哪些设计模式? 6…

激光雷达生成的图像检测关键点用来辅助里程计的方案

文章:LiDAR-Generated Images Derived Keypoints Assisted Point Cloud Registration Scheme in Odometry Estimation 作者:Haizhou Zhang , Xianjia Yu, Sier Ha , Tomi Westerlund 编辑:点云PCL 欢迎各位加入知识星球,获取PDF…

数据结构与算法编程题41

线性表中各结点的检索概率不等时,可用如下策略提高顺序检索的效率: 若找到指定的结点,则将该结点和其前驱结点(若存在)交换,使得经常被检索 的结点尽量位于表的前端。试设计在顺序结构的线性表上实现上述策…

使用Vue写一个日期选择器

在 Vue 中实现日期选择器的方法有很多,下面提供一个简单的实现方法。 首先,在需要使用日期选择器的组件中引用 Vue 和 date-fns 库,date-fns 库是一个轻量级的 JavaScript 时间日期工具库,可以方便地处理日期的格式化和计算。 &…

DCGAN生成网络模型

DCGAN(Deep Convolutional Generative Adversarial Network)是一种生成对抗网络(GAN)的变体,专门设计用于生成图像。它结合了卷积神经网络(CNN)和生成对抗网络的概念,旨在生成具有高…

Java的接口和抽象类

在Java编程中,接口和抽象类是两个重要的概念。它们都用于实现面向对象编程中的抽象和封装,但在使用方式和功能上有所不同。本文将详细介绍Java中接口和抽象类的概念、用法和示例代码,帮助读者更好地理解和应用它们。 一、接口(In…

C语言/C++实战项目雷霆飞机(代码改进)

上代码 #include <stdio.h> #include <easyx.h> #include <time.h> #include <Mmsystem.h> #pragma comment(lib,"winmm.lib") #define WIDTH 600 #define HEIGHT 850 #define bullet_max 5000 //我方飞机子弹最大量 #define enem…

mysql基础之DQL基本单表查询

学习DQL之前先知道sql语句的执行顺序 from->join->on->where->group by->count(字段)->having->select->distinct->order by->limit null无法和任何值进行比较&#xff08;不相等&#xff09;&#xff0c;包括null和null也不相等 1.DQL简单查询…

免费好用的5个AI写作工具,如何更好的使用AI写作工具

人工智能&#xff08;AI&#xff09;作为当今科技领域的热门话题&#xff0c;正在以惊人的速度改变我们生活的方方面面。从智能助手到自动驾驶汽车&#xff0c;AI的应用已经渗透到我们日常的方方面面。 1. 什么是AI人工智能&#xff1f; 什么是AI人工智能&#xff1f;简而言之…

CCF编程能力等级认证GESP—C++1级—20230318

CCF编程能力等级认证GESP—C1级—20230318 单选题&#xff08;每题 2 分&#xff0c;共 30 分&#xff09;判断题&#xff08;每题 2 分&#xff0c;共 20 分&#xff09;编程题 (每题 25 分&#xff0c;共 50 分)每月天数长方形面积 答案及解析单选题判断题编程题1编程题2 单选…

会声会影2024软件还包含了视频教学以及模板素材

会声会影2024中文版是一款加拿大公司Corel发布的视频编软件。会声会影2024官方版支持视频合并、剪辑、屏幕录制、光盘制作、添加特效、字幕和配音等功能&#xff0c;用户可以快速上手。会声会影2024软件还包含了视频教学以及模板素材&#xff0c;让用户剪辑视频更加的轻松。 会…

Qt event事件发送

阻塞型事件发送 需要重写接收对象的event()事件处理函数 当事件发送后,将会立即进入event()事件处理函数进行事件处理 通过sendEvent()静态函数实现阻塞发送: bool QApplication::sendEvent ( QObject * receiver, QEvent * event ) ; // receiver:接收对象, event :要发送…