计算机网络的相关知识点总结(一)
1.谈一谈对OSI七层模型和TCP/IP四层模型的理解?
不管是OSI七层模型亦或是TCP/IP四层模型,它们的提出都有一个共同的目的:通过分层来将复杂问题细化,通过各个层级之间的相互配合来更好的解决计算机中出现的问题。
说到分层,就有对应的具体不同的分层模型。TCP/IP四层模型其实是对OSI七层模型的简化版。OSI网络七层模型包括以下几个部分:
层级 (高-->低) | 层级名称 | 对应功能 |
7 | 应用层 | 为计算机用户提供服务 |
6 | 表示层 | 数据处理(编码解码、加密解密、压缩解压缩) |
5 | 会话层 | 管理会话(建立,维护、重连) |
4 | 传输层 | 为两个计算机进程之间的通信提供通用的数据传输服务 |
3 | 网络层 | 路由和寻址(决定数据在网络中的路径) |
2 | 数据链路层 | 计算机相邻节点的直接通信 |
1 | 物理层 | 为数据链路层提供传输介质的,为计算机相邻节点的通信提供以比特流的透明传输 |
层与层之间交互是基于“接口”的服务调用,当前层级负责接收下一层提供的服务,同时为自己的上一层提供服务。本层级之间只需关注自己内在的功能,层级内之间的交互是基于“协议”的。
而TCP/IP四层模型则包括应用层(应用层、表示层、会话层)、传输层、网络层、网络接口层(数据链路层、物理层),如下:
层级 | 层级名称 | 常见协议 |
4 | 应用层 | DNS:域名解析协议 |
FTP:文件传输协议 | ||
SMTP:简单邮件传输协议 | ||
3 | 传输层 | TCP:传输控制协议 |
UDP:用户数据报协议 | ||
2 | 网络层 | IPV6:互联网协议 |
ICMPv6:互联网控制协议 | ||
1 | 网络接口层 | ARP:地址解析协议(数据链路层) |
2.谈谈TCP协议的3次握手过程?
利用TCP协议建立连接时,会产生三次握手,三次握手是发生在客户端(接受方)与服务器(发送方)之间的。
第一次握手:由客户端主动打开,并主动发送建立连接请求的数据包(同步SYN=1,确认ACK=0)给服务器端,客户端由主动打开转换为发送状态;
第二次握手:服务器被动打开接收客户端发送的建立连接请求的数据包,若服务器同意建立连接,则向客户端发送一个ACK确认=1,SYN同步=1的数据包,此时服务器转换为接收状态;
第三次握手:客户端接收到服务器端发送的同意连接的数据包后,状态变为建立连接成功状态,随后向服务器端发送一个ACK=1的确认数据包,此时服务器端状态也是建立连接成功状态。
由三次握手,客户端与服务器端成功建立连接。
3.TCP协议为什么要3次握手?2次,4次不行吗?
握3次手,是恰到好处的。为什么这么说呢?是因为若是2次握手,会造成重复连接的情况,而4次握手或更多次则会带来资源上的浪费。客户端与服务器端建立连接,是由客户端主动发起请求(第一次),服务器端告知客户端同意建立连接(第二次),客户端告知服务器端我知道你同意即确认(第三次),确保了双方之间通信的畅通然后开始数据传输。
如果没有这第三次的确认,如果客户端由于网络延迟或其他原因导致的未及时发送请求连接的数据包,有可能就会再次重新发送请求连接的数据包,服务器端收到并同意连接,而此时第一个未及时发送的数据包又正常发送了,势必会导致服务器的再一次同意连接,这就导致了重复的连接,造成了不必要的资源浪费。
如果是4次及更多,我们要思考一个问题,建立连接的目的是?没错,是数据传输。三次握手就已经可以保证收发双方的正常通信了,此时应该要进行数据传输了,更多次的握手只会导致资源的浪费或者多次的请求连接的带来的不可控性。
4.谈谈TCP协议的四次挥手过程?
TCP协议的四次挥手是为了释放收发双方的连接的。
第一次挥手:客户端向服务器发出FIN=1的数据包,用来告知服务器断开连接的。
第二次挥手:服务器接收到终止连接的请求后,同意终止向客户端发出ACK=1的同意断开连接数据包,此时真的断开了吗?答案是否定的,因为是无法保证客户端向服务器发出断开请求时,服务器刚好不发送数据给客户端。
第三次挥手:服务器已经处理完发生要发送的数据后,正式向客户端发送FIN=1的断开连接的数据包。此时收发双方之间真的不能再发送数据了。
第四次挥手:客户端向服务器端发送ACK=1的确认数据包。
至此,收发双方彻底断开连接。
其实你稍微观察,客户端就像那个“渣男”,服务器端更像是一位“善解人意的女朋友”,哈哈哈,好了,开个玩笑。
相关文章:
计算机网络的相关知识点总结(一)
1.谈一谈对OSI七层模型和TCP/IP四层模型的理解? 不管是OSI七层模型亦或是TCP/IP四层模型,它们的提出都有一个共同的目的:通过分层来将复杂问题细化,通过各个层级之间的相互配合来更好的解决计算机中出现的问题。 说到分层…...
下载github.com上的依赖资源
下载github.com上的依赖资源(需要反复试才能成功,所以单独安装) export GIT_TRACE1 export GIT_CURL_VERBOSE1 pip install githttps://github.com/PanQiWei/AutoGPTQ.git -i https://pypi.mirrors.ustc.edu.cn/simple --trusted-hostpypi.mi…...
编写 GPT 提示词的公式 + 资源分享
GPT 能够给我们带来很大的帮助,因此我们要好好利用它。我们希望 GPT 输出令我们满意的内容,影响 GPT 输出内容的因素有模型和输入(Prompt,提示词)。 模型:我们可以选择不同的 GPT 产品,它们的模…...
用HTML、CSS和JavaScript制作的通用进制转换器
随着编程和计算机科学越来越受欢迎,我们经常需要进行进制转换。本文将介绍一个简洁、美观、适用于移动设备的进制转换工具,并详细讨论其实现。 目录 🌍 用HTML、CSS和JavaScript制作的通用进制转换器 1.项目图片展示 2. 技术栈 3. 主要功…...
ArcGIS 10.3软件安装包下载及安装教程!
【软件名称】:ArcGIS 10.3 【安装环境】:Windows 【下载链接 】: 链接:https://pan.baidu.com/s/1K5ab7IHMYa23HpmuPkFa1A 提取码:oxbb 复制这段内容后打开百度网盘手机App,操作更方便哦 软件解压码点击原文…...
【数据增强】
【数据增强】 1 数据增强的情形2 数据增强的方法 1 数据增强的情形 当数据比较小,难以获取新的训练数据时,可以考虑数据增强,如随机裁剪部分,随机左右上下翻转、随机旋转一个角度、随机亮度变化等微小变化,数据的多样…...
Ae 效果:CC Force Motion Blur
时间/CC Force Motion Blur Time/CC Force Motion Blur CC Force Motion Blur (CC 强制运动模糊)主要用于为动态图像添加强制的运动模糊效果,增加动态画面的流畅感和真实感。 相对于时间轴面板上的“运动模糊”开关,CC Force Moti…...
2023华为杯研究生数学建模竞赛CDEF题思路+模型代码
全程更新华为杯研赛CDEF题思路模型及代码,大家查看文末名片获取 华为杯C题思路分析 问题一 在每个评审阶段,作品通常都是随机分发的,每份作品需要多位评委独立评审。为了增加不同评审专家所给成绩之间的可比性,不同专家评审的作…...
FP独立站之黑科技:AB站收款、斗篷CLOAK
最近一段时间经常有不少小伙伴来咨询我独立站的相关的业务,因为很多独立站卖家觉得独立站不好做,再加上跨境平台禁止特货类产品的销售(如FP产品、成人用品、电子烟、灰黑类产品等等),但这类产品市场需求大,…...
【Linux网络编程】gdb调试技巧
这篇博客主要要记录一下自己在Linux操作系统Ubuntu下使用gbd调试程序的一些指令,以及使用过程中的一些心得。 使用方法 可以使用如下代码 gcc -g test.c -o test 或者 gcc test.c -o test -g的选项最好添加,如果不添加,l指令无法被识别 …...
ElementUI之登录与注册
目录 一.前言 二.ElementUI的简介 三.登录注册前端界面的开发 三.vue axios前后端交互--- Get请求 四.vue axios前后端交互--- Post请求 五.跨域问题 一.前言 这一篇的知识点在前面两篇的博客中就已经详细详解啦,包括如何环境搭建和如何建一个spa项目等等知识…...
报错处理:Error: Redis server is running but Redis CLI cannot connect
嗨,读者朋友们!今天我来跟大家分享一个我在运维过程中遇到的一个关于Linux上运行Redis服务时的报错及解决方法。 报错信息如下: Error: Redis server is running but Redis CLI cannot connect 这个报错信息表明Redis服务器已经运行ÿ…...
RocketMQ 源码分析——Producer
文章目录 消息发送代码实现消息发送者启动流程检查配置获得MQ客户端实例启动实例定时任务 Producer 消息发送流程选择队列默认选择队列策略故障延迟机制策略*两种策略的选择 技术亮点:ThreadLocal 消息发送代码实现 下面是一个生产者发送消息的demo(同步发送&#…...
ISTQB术语表
此术语表为国际软件测试认证委员会(ISTQB)发布的标准术语表。此表历经数次修改、完善,集纳了计算机行业界、商业界及政府相关机构的见解及意见,在国际化的层面上达到了罕有的统一性及一致性。参与编制此表的国际团体包括澳大利亚、…...
小米笔试题——01背包问题变种
这段代码的主要思路是使用动态规划来构建一个二维数组 dp,其中 dp[i][j] 表示前 i 个产品是否可以组合出金额 j。通过遍历产品列表和可能的目标金额,不断更新 dp 数组中的值,最终返回 dp[N][M] 来判断是否可以组合出目标金额 M。如果 dp[N][M…...
SkyWalking内置MQE语法
此文档出自SkyWalking官方git https://github.com/apache/skywalking docs/en/api/metrics-query-expression.md Metrics Query Expression(MQE) Syntax MQE is a string that consists of one or more expressions. Each expression could be a combination of one or more …...
Springboot2 Pandas Pyecharts 量子科技专利课程设计大作业
数据集介绍 1.背景 根据《中国科学:信息科学》期刊上的一篇文章,量子通信包括多种协议与应用类型: 基于量子隐形传态与量子存储中继等技术,可实现量子态信息传输,进而构建量子信息网络,已成为当前科研热点&…...
RabbitMQ里的几个重要概念
RabbitMQ中的一些角色: publisher:生产者consumer:消费者exchange个:交换机,负责消息路由,接受生产者发送的消息,把消息发送到一个或多个队列里queue:队列,存储消息virt…...
23. 图论 - 图的由来和构成
文章目录 图的由来图的构成Hi, 你好。我是茶桁。 从第一节课上到现在,我基本上把和人工智能相关的一些数学知识都教给大家了,终于来到我们人工智能数学的最后一个部分了,让我们从今天开始进入「图论」。 图论其实是一个比较有趣的领域,因为微积分其实更多的是对应连续型的…...
拼多多API接口解析,实现根据ID取商品详情
拼多多是一个流行的电商平台,它提供了API接口供开发者使用。要根据ID获取商品详情,您需要使用拼多多API接口并进行相应的请求。 以下是使用拼多多API接口根据ID获取商品详情的示例代码(使用Python编写): import requ…...
【JavaScript】解构
解构(Destructuring)是 JavaScript 中一种强大的语法特性,它允许你从数组或对象中提取值并赋值给变量,使代码更加简洁和易读。JavaScript 中有两种主要的解构语法:数组解构和对象解构。 数组解构 数组解构用于从数组…...
现代卷积网络实战系列2:训练函数、PyTorch构建LeNet网络
4、训练函数 4.1 调用训练函数 train(epochs, net, train_loader, device, optimizer, test_loader, true_value)因为每一个epoch训练结束后,我们需要测试一下这个网络的性能,所有会在训练函数中频繁调用测试函数,所有测试函数中所有需要的…...
rust特性
特性,也叫特质,英文是trait。 trait是一种特殊的类型,用于抽象某些方法。trait类似于其他编程语言中的接口,但又有所不同。 trait定义了一组方法,其他类型可以各自实现这个trait的方法,从而形成多态。 一、…...
TouchGFX之画布控件
TouchGFX的画布控件,在使用相对较小的存储空间的同时保持高性能,可提供平滑、抗锯齿效果良好的几何图形绘制。 TouchGFX 设计器中可用的画布控件: LineCircleShapeLine Progress圆形进度条 存储空间分配和使用 为了生成反锯齿效果良好的…...
STM32F103RCT6学习笔记2:串口通信
今日开始快速掌握这款STM32F103RCT6芯片的环境与编程开发,有关基础知识的部分不会多唠,直接实践与运用!文章贴出代码测试工程与测试效果图: 目录 串口通信实验计划: 串口通信配置代码: 测试效果图&#…...
Opencv-图像噪声(均值滤波、高斯滤波、中值滤波)
图像的噪声 图像的平滑 均值滤波 均值滤波代码实现 import cv2 as cv import numpy as np import matplotlib.pyplot as plt from pylab import mplmpl.rcParams[font.sans-serif] [SimHei]img cv.imread("dog.png")#均值滤波cv.blur(img, (5, 5))将对图像img进行…...
MasterAlign相机参数设置-增益调节
相机参数设置-曝光时间调节操作说明 相机参数的设置对于获取清晰、准确的图像至关重要。曝光时间是其中一个关键参数,它直接影响图像的亮度和清晰度。以下是关于曝光时间调节的详细操作步骤,以帮助您轻松进行设置。 步骤一:登录系统 首先&…...
9月22日,每日信息差
今天是2023年09月22日,以下是为您准备的14条信息差 第一、亚马逊将于2024年初在Prime Video中加入广告。Prime Video内容中的广告将于2024年初在美国、英国、德国和加拿大推出,随后晚些时候在法国、意大利、西班牙、墨西哥和澳大利亚推出 第二、中国移…...
Java版本企业工程项目管理系统源码+spring cloud 系统管理+java 系统设置+二次开发
工程项目各模块及其功能点清单 一、系统管理 1、数据字典:实现对数据字典标签的增删改查操作 2、编码管理:实现对系统编码的增删改查操作 3、用户管理:管理和查看用户角色 4、菜单管理:实现对系统菜单的增删改查操…...
Android studio中如何下载sdk
打开 file -> settings 这个页面, 在要下载的 SDK 前面勾上, 然后点 apply 在 platforms 中就可以看到下载好的 SDK: Android SDK目录结构详细介绍可以参考这篇文章: 51CTO博客- Android SDK目录结构...
企业英文网站建设/定制开发公司
前言 本文我们不去谈int、float、char等基本数据类型,而是用一般的类来说明。因为Java中可以直接通过 int varName 的方式来定义和使用一个基本类型的变量,但对于其它一般类型的对象,必须使用 new 来创建。 因此,为了更一般性地…...
tomcat做公司网站/快速排名教程
本文实例讲述了jsp实现用于自动生成表单标签html代码的自定义表单标签。分享给大家供大家参考。具体如下:这个是自己写的一个简单的jsp表单标签,用于自动生成checkbox,select,radio等标签,传入菜单集合生成html代码,自动选中指定值…...
网站开发所得税/爱战网官网
题目链接 链接:https://leetcode.com/problems/max-sum-of-rectangle-no-larger-than-k/description/ 题解&代码 1、暴力枚举所有的情况,时间复杂度O(n^2*m^2),实际耗时759 ms class Solution { public:int maxSumSubmatrix(vector<ve…...
资海集团网站建设/网站怎么做外链
Mybatis通用Mapper极其方便的使用Mybatis单表的增删改查 2.2.0 新增SqlMapper,可以使用MyBatis直接执行sql,详细文档2.2.0版本之后,通过SqlMapper可以支持多表的操作,但是需要在代码中直接写SQL。 即使不使用通用mapper࿰…...
wordpress防盗链接/搜索引擎优化的步骤
torch.cat((a,b),dim),两个向量在dim维度上拼接,要求被拼接的矩阵在另一个维度相等 import torch Atorch.ones(2,3) #2x3的张量(矩阵) B2*torch.ones(4,3)#4x3的张量(矩阵) Ctorch.cat((A,B),0)#按维数0(行࿰…...
嘉祥网站建设多少钱/网络营销以什么为中心
打开文件,路径为 C:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallSqlState.sql v2.0.50727 版本根据自己的framework版本选择 ASPState 存放的是.NET 访问的session,避免了session丢失的问题,但是会影响交互的效率转载于:https://w…...