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

news2024/12/23 10:51:57

网络传输通过高低电压

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

传输模式:

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

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

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

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

一根网线中有多根导线

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

设备部署

目的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.coloradmin.cn/o/1277823.html

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

相关文章

LIN TP

LIN总线为了解决多帧场景,也像CAN一样有TP协议。 主机发送请求PDU,从机发送应答PDU。 分为单帧(Single Frame,SF)、首帧(First Frame,FF)和续帧(Consecutive Frames,CF)三种。 PDU结构 包含节点地址(NAD)、协议控制…

C语言-预处理与库

预处理、动态库、静态库 1. 声明与定义分离 一个源文件对应一个头文件 注意&#xff1a; 头文件名以 .h 作为后缀头文件名要与对应的原文件名 一致 例&#xff1a; 源文件&#xff1a;01_code.c #include <stdio.h> int num01 10; int num02 20; void add(int a, in…

08-中介者模式-C语言实现

中介者模式&#xff1a; Define an object that encapsulates how a set of objects interact.Mediator promotes loose coupling by keeping objects from referring to each other explicitly,and it lets you vary their interaction independently.&#xff08;用一个中介对…

【Python3】【力扣题】383. 赎金信

【力扣题】题目描述&#xff1a; 题解&#xff1a; 两个字符串ransomNote和magazine&#xff0c;ransomNote中每个字母都在magazine中一一对应&#xff08;顺序可以不同&#xff09;。 即分别统计两个字符串中每个字母出现的次数&#xff0c;ransomNote中每个字母的个数小于等…

分享83个节日PPT,总有一款适合您

分享83个节日PPT&#xff0c;总有一款适合您 83个节日PPT下载链接&#xff1a;https://pan.baidu.com/s/1xX4tVpl3sSW-d2nlFzN-mg?pwd6666 提取码&#xff1a;6666 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整理更不易…

openGauss学习笔记-137 openGauss 数据库运维-例行维护-检查和清理日志

文章目录 openGauss学习笔记-137 openGauss 数据库运维-例行维护-检查和清理日志137.1 检查操作系统日志137.2 检查openGauss运行日志137.3 清理运行日志 openGauss学习笔记-137 openGauss 数据库运维-例行维护-检查和清理日志 日志是检查系统运行及故障定位的关键手段。建议按…

R语言实验三

1、读取一个文件并进行如下操作。 ①使用命令清空工作空间&#xff0c;使用read.table读取exam_1.txt文件&#xff0c;将文件保存到data变量中&#xff0c;数据第一行设置为列名&#xff0c;第一列是行名。 ②判断对象data是否为矩阵。 ③将对象转换为矩阵&#xff0c;记为d…

pyqt5使用pyqtgraph实现动态热力图

pyqt5使用pyqtgraph实现动态热力图 一、效果图 二、流程 1、打开Designer创建一个UI界面 2、把UI转成py 3、创建一个main.py文件 4、在main文件中渲染画布、创建初始数据、画热力图、创建更新数据线程、绑定按钮触发事件三、UI界面 其中h_map.py代码如下: # -*- coding: ut…

【多线程】-- 09 线程同步之三大不安全案例举例

多线程 6 线程同步 “多个线程操作同一个资源” 处理多线程问题时&#xff0c;多个线程访问同一个对象&#xff0c;并且某些线程还想修改这个对象&#xff0c;这时候就需要线程同步。线程同步其实就是一种等待机制&#xff0c;多个需要同时访问此对象的线程进入这个对象的等…

1.0 十大经典排序算法

分类 算法 本系列算法整理自&#xff1a;https://github.com/hustcc/JS-Sorting-Algorithm 同时也参考了维基百科做了一些补充。 排序算法是《数据结构与算法》中最基本的算法之一。 排序算法可以分为内部排序和外部排序&#xff0c;内部排序是数据记录在内存中进行排序&#…

vue3使用vue-router路由(路由懒加载、路由传参)

vue-router 是 vue的一个插件库 1. 专门用来实现一个SPA单页面应用 2 .基于vue的项目基本都会用到此库 SPA的理解 1) 单页Web应用&#xff08;single page web application&#xff0c;SPA&#xff09; 2) 整个应用只有一个完整的页面 3) 点击页面中的链接不会刷新页面, 本…

2023年12月3日支付宝蚂蚁庄园小课堂今日答案是什么?

问题&#xff1a;雪天行车&#xff0c;路面会有不少前车行驶的轨迹&#xff0c;最好&#xff1f; 答案&#xff1a;顺着前车轨迹行驶 解析&#xff1a;雪天路面湿滑&#xff0c;而且可能有冰雪等堆积物遮盖路面&#xff0c;所以&#xff0c;最好顺着前车轨迹减速慢行&#xf…

网络和Linux网络_8(传输层)TCP协议_续(流量控制+滑动窗口+拥塞控制+紧急指针+listen第二个参数)

目录 1. 流量控制 2. 滑动窗口 2.1 滑动窗口概念 2.2 滑动窗口模型详解 高速重发控制&#xff08;快重传&#xff09; 3. 拥塞控制和拥塞窗口 4. 延迟应答 5. 捎带应答 6. 面向字节流 7. 粘包问题 8. 16位紧急指针 9. listen的第二个参数 10. TCP总结异常情况与UD…

【开箱即用】前后端同时开源!周末和AI用Go语言共同研发了一款笔记留言小程序!

大家好&#xff0c;我是豆小匠。 真的是当你在怀疑AI会不会取代人类的时候&#xff0c;别人已经用AI工具加速几倍的生产速度了… 周末体验了和AI共同开发的感受&#xff0c;小项目真的可以一人全干了… 本次实验使用的AI工具有两个&#xff1a;1. GitHub Copilot&#xff08;…

怎么通过邻接矩阵求图的通路总数和回路总数?

通路总数 邻接矩阵所有元素的之和 回路总数 邻接矩阵对角线元素之和

Unittest单元测试之unittest用例执行顺序

unittest用例执行顺序 当在一个测试类或多个测试模块下&#xff0c;用例数量较多时&#xff0c;unittest在执行用例 &#xff08;test_xxx&#xff09;时&#xff0c;并不是按从上到下的顺序执行&#xff0c;有特定的顺序。 unittest框架默认根据ACSII码的顺序加载测试用例&a…

有文件实体的后门无文件实体的后门rootkit后门

有文件实体后门和无文件实体后门&RootKit后门 什么是有文件的实体后门&#xff1a; 在传统的webshell当中&#xff0c;后门代码都是可以精确定位到某一个文件上去的&#xff0c;你可以rm删除它&#xff0c;可以鼠标右键操作它&#xff0c;它是有一个文件实体对象存在的。…

ClassCMS2.4漏洞复现

CMS源码在附件中 环境搭建 使用phpstudy2016搭建web环境&#xff0c;php版本为5.5 安装CMS 这里选择Mysql数据库进行安装 用户名和密码都写默认的admin方便记忆 输入完成后点击安装 点击安装 CMS的安装过程中有个报错忽略就好&#xff0c;登录不进后台的话刷新一下页面 进入了C…

1688API接口系列,1688开放平台接口使用方案(商品详情数据+搜索商品列表+商家订单类)

1688商品详情接口是指1688平台提供的API接口&#xff0c;用于获取商品详情信息。通过该接口&#xff0c;您可以获取到商品的详细信息&#xff0c;包括商品标题、价格、库存、描述、图片等。 要使用1688商品详情接口&#xff0c;您需要先申请1688的API权限&#xff0c;并获取ac…

LeetCode - 965. 单值二叉树(C语言,二叉树,配图)

二叉树每个节点都具有相同的值&#xff0c;我们就可以比较每个树的根节点与左右两个孩子节点的值是否相同&#xff0c;如果不同返回false&#xff0c;否则&#xff0c;返回true。 如果是叶子节点&#xff0c;不存在还孩子节点&#xff0c;则这个叶子节点为根的树是单值二叉树。…