计算机网络记忆点

2023-10-27

声明:转载还得加上链接麻烦,这只是整理自己要的东西,忘记了回头看看,顺便让大家了解了解,如果有什么侵权,请联系我,我会删除,谢谢理解

1.网络层次划分

TCP/IP从下往上:物理层、数据链路层、网络层、传输层、应用层

OSI七层网络模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层

物理层

这一层为上层协议提供一个传输数据的可靠物理媒体,简单的说,物理层确保原始的数据可在各种物理媒体上传输。

重要设备:中继器和集线器

数据链路层

数据块称为帧,帧是数据链路层的传送单位。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发。

数据链路层为网络层提供可靠的数据传输,主要协议是:以太网协议。

重要设备:网桥和交换机。

网络层

网络层负责对子网间的数据包进行路由选择,可以实现拥塞控制和网际互连功能。

基本数据单位为IP数据报。包含的协议有:IP协议、ICMP协议、ARP协议

重要设备:路由器。

传输层

将上层数据分段并提供端到端的、可靠的或不可靠的传输。

包含的协议有:TCP协议(面向连接的、可靠的、基于字节流的传输层通信协议,确认机制、超时重传机)、UDP协议(提供简单的非连接传输层服务、面向报文)

重要设备:网关

应用层

数据传输的基本单位为报文。就是访问网络服务的接口。

主要协议:FTP文件传送协议、Telnet远程登录协议、SMTP邮件传送。。。

 

2.TCP/IP协议

网络层的IP协议,传输层的TCP协议。TCP负责发现传输问题,确保数据安全正确传输到目的地。IP是给每一个设备规定一个地址。

TCP三次握手和四次挥手

TCP连接建立过程:首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。

TCP连接断开过程:假设Client端发起中断连接请求,也就是发送FIN报文。Server端接到FIN报文后,意思是说"我Client端没有数据要发给你了",但是如果你还有数据没有发送完成,则不必急着关闭Socket,可以继续发送数据。所以你先发送ACK,"告诉Client端,你的请求我收到了,但是我还没准备好,请继续你等我的消息"。这个时候Client端就进入FIN_WAIT状态,继续等待Server端的FIN报文。当Server端确定数据已发送完成,则向Client端发送FIN报文,"告诉Client端,好了,我这边数据发完了,准备好关闭连接了"。Client端收到FIN报文后,"就知道可以关闭连接了,但是他还是不相信网络,怕Server端不知道要关闭,所以发送ACK后进入TIME_WAIT状态,如果Server端没有收到ACK则可以重传。“,Server端收到ACK后,"就知道可以断开连接了"。Client端等待了2MSL后依然没有收到回复,则证明Server端已正常关闭,那好,我Client端也可以关闭连接了。Ok,TCP连接就这样关闭了!

为什么要三次挥手?

在只有两次“握手”的情形下,假设Client想跟Server建立连接,但是却因为中途连接请求的数据报丢失了,故Client端不得不重新发送一遍;这个时候Server端仅收到一个连接请求,因此可以正常的建立连接。但是,有时候Client端重新发送请求不是因为数据报丢失了,而是有可能数据传输过程因为网络并发量很大在某结点被阻塞了,这种情形下Server端将先后收到2次请求,并持续等待两个Client请求向他发送数据...问题就在这里,Cient端实际上只有一次请求,而Server端却有2个响应,极端的情况可能由于Client端多次重新发送请求数据而导致Server端最后建立了N多个响应在等待,因而造成极大的资源浪费!所以,“三次握手”很有必要!

为什么要四次挥手?

试想一下,假如现在你是客户端你想断开跟Server的所有连接该怎么做?第一步,你自己先停止向Server端发送数据,并等待Server的回复。但事情还没有完,虽然你自身不往Server发送数据了,但是因为你们之前已经建立好平等的连接了,所以此时他也有主动权向你发送数据;故Server端还得终止主动向你发送数据,并等待你的确认。其实,说白了就是保证双方的一个合约的完整执行!

3.UDP协议

udp是用户数据报协议,面向无连接的通讯协议。属于不可靠连接。

TCP  UDP 的区别:TCP是面向连接的,可靠的字节流服务;UDP是面向无连接的,不可靠的数据报服务。

4.HTTP协议

https详解:看了很明白  插眼 

https://blog.csdn.net/guolin_blog/article/details/104546558?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159369977419724843327676%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=159369977419724843327676&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-2-104546558.first_rank_ecpm_v3_pc_rank_v4&utm_term=https 

http2和http1的区别对比

相比 HTTP/1.x,HTTP/2 在底层传输做了很大的改动和优化:
- HTTP/2 采用二进制格式传输数据,而非 HTTP/1.x 的文本格式。二进制格式在协议的解析和优化扩展上带来更多的优势和可能。
- HTTP/2 对消息头采用 HPACK 进行压缩传输,能够节省消息头占用的网络的流量。而 HTTP/1.x 每次请求,都会携带大量冗余头信息,浪费了很多带宽资源。头压缩能够很好的解决该问题。
- 多路复用,直白的说就是所有的请求都是通过一个 TCP 连接并发完成。HTTP/1.x 虽然通过 pipeline 也能并发请求,但是多个请求之间的响应会被阻塞的,所以 pipeline 至今也没有被普及应用,而 HTTP/2 做到了真正的并发请求。同时,流还支持优先级和流量控制。
- Server Push:服务端能够更快的把资源推送给客户端。例如服务端可以主动把 JS 和 CSS 文件推送给客户端,而不需要客户端解析 HTML 再发送这些请求。当客户端需要的时候,它已经在客户端了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算机网络记忆点 的相关文章

  • spyder 出现ValueError: PyCapsule_GetPointer called with incorrect name

    我太难了 经过一堆试验 终于出了坑 总的来说 1 卸载pyqt5 命令 pip uninstall pyqt5 2 重新安装低版本的pyqt5 命令 pip install PyQt5 5 10 1 如果出现pip vendor urlli
  • meta-compilation

    RPython GraalVM 转载于 https my oschina net crcc blog 2239743
  • k8s的pv和pvc创建

    NFS使用PV和PVC 1 配置nfs存储 2 定义PV 实现 下图的pv和pvc测试 pv的定义 这里定义5个PV 并且定义挂载的路径以及访问模式 还有PV划分的大小 vim pv yaml apiVersion v1 kind Pers
  • Pytorch实战笔记(1)——BiLSTM 实现情感分析

    本文展示的是使用 Pytorch 构建一个 BiLSTM 来实现情感分析 本文的架构是第一章详细介绍 BiLSTM 第二章粗略介绍 BiLSTM 就是说如果你想快速上手可以跳过第一章 第三章是核心代码部分 目录 1 BiLSTM的详细介绍
  • JDK11.0.7下载及安装详细教程,步骤解释(win10)

    0 背景知识 JRE Java Runtime Environment JDK Java Development Kit JRE顾名思义是java运行时环境 包含了java虚拟机 java基础类库 是使用java语言编写的程序运行所需要的软
  • HW娱乐板块-你们都是天才~

    接下几天会是各类系统升级改造的时机了 大家都很有想法 就你tm叫韩毅啊 今年你是HW最出名的人物 虽然我不知道他在干什么 但是闸机已经被打穿了 从小我就想当一个百万富翁 我每天加班 可我的梦想却离我越来越遥远 我来到了护网为了实现我的梦想
  • 家里的wifi服务器无响应,宽带wifi服务器无响应

    宽带wifi服务器无响应 内容精选 换一换 当您调用API时 如果遇到 APIGW 开头的错误码 请参见API网关错误码进行处理 正常返回值说明200 OKGET和PUT操作正常返回 201 CreatedPOST操作正常返回 202 Ac
  • 如何用IDaaS云身份认证落地“零信任”安全架构

    题记 2020的RSAC Zero trust 零信任 去年有39家公司打 Zero trust 标签 今年数量激增到91家 可以说零信任理念已被国外同行广泛接受 零信任不仅仅是技术 更是理念的转变 会成为未来十年主流的网络安全架构 为什么
  • 记一次在Tweak中引入Swift framework的过程

    最近想在一个插件里打通App和web端 实现通过web控制App 方案是选用socket io作为服务端和web前端 iOS端socket io是一个纯swift实现的库 目前Theos对swift的支持还不是很完善 但是可以完成一般的工作
  • 大学生团体天梯赛(第八届)

    题目地址 天梯赛 include
  • 浅谈算法和数据结构: 十 平衡查找树之B树

    前面讲解了平衡查找树中的2 3树以及其实现红黑树 2 3树种 一个节点最多有2个key 而红黑树则使用染色的方式来标识这两个key 维基百科对B树的定义为 在计算机科学中 B树 B tree 是一种树状数据结构 它能够存储数据 对其进行排序
  • 复习 OpenGL 纹理映射 总结

    今天系统的复习了一下OpenGL纹理映射 主要参考资料是这两个 OpenGL 教程 http www opengl tutorial org beginners tutorials tutorial 5 a textured cube ht
  • git的简单命令操作,即怎么从github上下载代码到本地

    先到git官网下载自己电脑对应版本的git https git scm com 安装完成后在桌面右键 然后就可以在这里输入命令了 跟linux窗口即命令差不多 接下来就是简单的命令介绍 1 git version 查看当前git安装成功没有
  • 嵌入式期末复习(四)简答题

    1 ARM公司全称是什么 商业模式是什么 列举ST公司常用的ARM内核单片机型号 1 全称 Advanced RISC Machines 2 商业模式 为产品做设计 知识产权付费 3 stm32f101c8t6 stm32f103rct6
  • cgic: CGI的C函数库

    下载回源码包以后 就3个文件 cgic c 函数库capture c 一个很简单的CGI例子 仅仅输出两行提示文字cgictest c 一个演示读取form表单数据的CGI例子 首先在vc6里创建一个空的win32静态库cgic 然后添加c

随机推荐

  • JPG&PNG图片压缩java实现

    最近项目中有一个需求是关于图片处理的 其实关于图片处理java的BufferedImage类基本上已经可以处理绝大多数需求 但是关于png图片的压缩遇到一点小的阻碍 我们知道png图片与JPG图片最大的区别就是可以保存为透明背景的图片 JP
  • 【软件开发】服务端高并发分布式架构演进之路

    服务端高并发分布式架构演进之路 本文以淘宝作为例子 介绍从一百个到千万级并发情况下服务端的架构的演进过程 同时列举出每个演进阶段会遇到的相关技术 让大家对架构的演进有一个整体的认知 文章最后汇总了一些架构设计的原则 在介绍架构之前 为了避免
  • Shell编程(四)---Shell内建命令简介

    命令 我们从一个Shell脚本的内部执行两种类型的命令 也就是通常 normal 的命令 这样的命令我们也可以在命令行的方式下来运行 称为处部命令 另一种就是我们前面所说的内建 built in 命令 称之为内部命令 内建命令是在Shell
  • 32个Python爬虫实战项目,满足你的项目慌

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 爬虫项目名称及简介 一些项目名称涉及企业名词 小编用拼写代替 1 WechatSogou weixin公众号爬虫 基于weixin公众号爬虫接口 可以扩展成其他搜索引擎的爬
  • matlab 二元函数的极限,利用MATLAB软件求解一元和二元函数的极值

    CourseEducationResearch课程教育研究 2018 年第 40 期 利用 MATLAB 软件求解一元和二元函数的极值 易 强 吕希元 重庆工商大学融智学院 重庆 400030 摘要 本文主要介绍利用 MATLAB 软件在电
  • Unity3d-简单AR游戏

    Unity3d 简单AR游戏 一 图片识别与建模 Vufria模块的导入 首先是安装Vuforia 模块 2017版本后的可以直接使用Unity Hub安装 安装完成后可以直接在软件中使用 然后在菜单目录的GameObject gt Vuf
  • java8中的lambda表达式,看这篇就够了

    Lambda表达式 Lambda是简洁的标识可传递匿名函数的一种方式 互动 事件驱动下 最终面向对象编程和函数式编程结合才是趋势 java中 一段代码的传递并不容易 因为JAVA是面向对象的语言 如果要传递一段代码 必须先构建类 再生成对应
  • 在java里actionPerformed是做什么用的

    public void actionPerformed ActionEvent e 这是接口ActionListener里面定义的一个抽象方法 所有实现这个接口的类都要重写这个方法 一般情况下 这是在编写GUI程序时 组件发生 有意义 的事
  • 1.1 波士顿房价预测

    文章目录 一 问题分析 1 1 线性回归模型 1 2 五步法 二 数据处理 2 1 数据导入 2 2 数据形状变换 2 3 数据集划分 2 4 数据归一化处理 2 5 封装成load data函数 2 6 获取归一化后的训练集和测试集 三
  • 数据挖掘的一般过程(小白的学习加实践记录)

    数据挖掘的过程 虽然很早确定了研究任务 从网络数据获取 地理实体数据集成与处理 分析挖掘 制图或知识表达的思路来开展这方面的研究工作 分析挖掘如文本挖掘 空间关联分析 空间趋势分析 空间分布分析 空间聚类 空间分类分析等等 奈何上学期我一学
  • 61_Pandas中将列表存储和处理为 pandas 中的元素

    61 Pandas中将列表存储和处理为 pandas 中的元素 作为 pandas DataFrame 的一个元素 Series 你可以存储列表 这是 Python 的内置类型 例如 对于由分隔符分隔的字符串 列出它们可能比用字符串方法处理
  • Python语法--变量及数据类型(4)

    1 变量 1 1定义 顾名思义 即变化的量 可以重复使用并且可以随时进行修改 相当于 容器 1 2作用 用来存储数据 1 3使用 定义变量的语法 变量名 变量值 定义变量后可以使用变量名来访问变量值 变量本身没有类型 与它保存的数据的数据类
  • mysql中cmake常用参数说明

    mysql Mysql从5 5开始 源代码安装将原来的configure改为cmake 因此在安装mysql 5 5 x时 需要先安装cmake 可以通过源码安装 也可以通过apt get软件包安装 在用cmake配置mysql过程中 找到
  • 实时音频编解码之六 LTP长时预测

    本文谢绝任何形式转载 谢谢 1 4 6 LTP LPC方法的压缩率比较高 但是音质不高 只用LPC方法的编解码语音具有 机器音 的特征 这是由于LPC系数阶数通常取10 20点 这一长度包含了共振峰信息但并不足以囊括所有的基频周期 且LPC
  • Flutter组件学习(20)可滚动组件以及ScrollController监听

    介绍 ViewPort视口 在很多布局系统中都有ViewPort的概念 在Flutter中 术语ViewPort 视口 如无特别说明 则是指一个Widget的实际显示区域 例如 一个ListView的显示区域高度是800像素 虽然其列表项总
  • 联想电脑如何打开BIOS并开启虚拟化——以G50为例

    不少初学者学习Linux等操作系统时 总会遇到新建的虚拟机无法打开 或者是在VirtualBox选择版本的时候发现没有64 bit选项 这些都说明你的电脑没有开启CPU虚拟化 那么如何查看CPU虚拟化是否开启呢 首先第一步 在任务栏上的空白
  • 浮动和清除浮动

    浮动 非IE浏览器下 容器不设高度 且子元素浮动时 容器高度不能被内容撑开 此时 内容会溢出到容器外面而影响布局 这种现象被称为浮动 溢出 浮动元素脱离文档流 不占据空间 引起 高度塌陷 div class father div class
  • Allegro如何导入dxf文件

    以上的操作就将dxf导入到了allegro中 将板框从dxf层改到outliine层 1 选择Edit Change 2 设置Find和Options 3 选择板框 即将dxf层改到outliine层 4 修改outline的颜色 可以看的
  • # 洗牌算法

    基本概念 等概率将将一个数组N打乱 概率每次都是1 N 加上 方法一 全局洗牌 从 0到N 1的数组下标 每次随机产生两个0到 N 1之间的数 进行交换 void get rand number int array int length i
  • 计算机网络记忆点

    声明 转载还得加上链接麻烦 这只是整理自己要的东西 忘记了回头看看 顺便让大家了解了解 如果有什么侵权 请联系我 我会删除 谢谢理解 1 网络层次划分 TCP IP从下往上 物理层 数据链路层 网络层 传输层 应用层 OSI七层网络模型 物