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

计算机网络知识点总结 (1)

目录

OSI七层模型

物理层

数据链路层

网络层

传输层

会话层

表示层

应用层

 TCP/IP模型

五层体系结构

TCP三次握手在哪一层

各层的网络协议

数据在各层间的传输

浏览器地址栏输入URL到显示网页的过程

DNS的解析过程

WebSocket和Socket的区别

抓包

HTTP

常用状态码

 

http的请求方式

http的get可以执行写操作吗

什么是幂等 ?

Get和Post的区别

Http的请求过程

HTTP请求报文结构

HTTP响应报文

URL和URI的区别

HTTP1.0,1.1,2.0区别


OSI七层模型

物理层

主要作用是传输比特流,网卡工作在这层

数据链路层

数据链路层定义了如何格式化数据进行传输,以及如何控制对物理介质的访问。通常提供错误检测和纠正,以确保数据传输的准确性。

网络层

网络层主要功能是将网络地址转化为对应的物理地址,并决定如何将数据从发送方路由到接收方。路由器属于网络层。本层需要关注的协议TCP/IP协议中的IP协议。网络层负责将数据传输到目标地址。目标地址可以使多个网络通过路由器连接而成的某一个地址。因此这一层主要负责寻址和路由选择。主要由 IP、ICMP 两个协议组成

传输层

随着网络通信需求的进一步扩大,通信过程中需要发送大量的数据,如海量文件传输,可能需要很长时间,网络在通信的过程中会中断很多次,此时为了保证传输大量文件时的准确性,需要对发送出去的数据进行切分,切割为一个一个的段落(Segement)发送,其中一个段落丢失是否重传,段落是否按顺序到达,是传输层需要考虑的问题。

传输层解决了主机间的数据传输,数据间的传输可以是不同网络,并且传输层解决了传输质量的问题。

传输层需要关注的协议有TCP/IP协议中的TCP协议和UDP协议。

会话层

自动收发包,自动寻址。

会话层作用是负责建立和断开通信连接,何时建立,断开连接以及保持多久的连接。常见的协议有 ADSP、RPC 等

表示层

Linux给WIndows发包,不同系统语法不一致,如exe不能在Linux下执行,shell不能在Windows不能直接运行。于是需要表示层。

解决不同系统之间通信语法问题,在表示层数据将按照网络能理解的方案进行格式化,格式化因所使用网络的不同而不同。

它主要负责数据格式的转换。具体来说,就是讲设备固有的数据格式转换为网络标准格式。常见的协议有ASCII、SSL/TLS 等

应用层

规定发送方和接收方必须使用一个固定长度的消息头,消息头必须使用某种固定的组成,消息头中必须记录消息体的长度等信息,方便接收方正确解析发送方发送的数据。

应用层旨在更方便应用从网络中接收的数据,重点关注TCP/IP协议中的HTTP协议

四层传输层数据被称作(Segments);

三层网络层数据被称做(Packages);

二层数据链路层时数据被称为(Frames);

一层物理层时数据被称为比特流(Bits)。

 TCP/IP模型

TCP/IP四层模型

①、应用层(Application Layer):直接面向用户和应用程序,提供各种网络服务。它包含了用于特定应用的协议和服务,如 HTTP(HyperText Transfer Protocol)、FTP(File Transfer Protocol)、SMTP(Simple Mail Transfer Protocol)等。

②、传输层(Transport Layer):提供端到端的通信服务,确保数据可靠传输。它负责分段数据、流量控制、错误检测和纠正。常见的传输层协议有 TCP 和 UDP。

③、网际层:或者叫网络层(Internet Layer),负责在不同网络之间路由数据包,提供逻辑地址(IP 地址)和网络寻址功能。用于处理数据包的分组、转发和路由选择,确保数据可以从源端传输到目标端。

④、网络接口层(Network Access Layer):或者叫链路层(Link Layer),负责将数字信号在物理通道(网线)中准确传输,定义了如何在单一网络链路上传输数据,如何处理数据帧的发送和接收,包括物理地址(MAC 地址)的解析。常见协议 WIFI 以太网

五层体系结构

  • 应用层:作为网络服务和最终用户之间的接口。它提供了一系列供应用程序使用的协议,如 HTTP(网页)、FTP(文件传输)、SMTP(邮件传输)等。使用户的应用程序可以访问网络服务。
  • 传输层:提供进程到进程的通信管理,这一层确保数据按顺序、无错误地传输。主要协议包括 TCP 和 UDP。
  • 网络层:负责数据包从源到目的地的传输和路由选择,包括跨越多个网络(即互联网)。它使用逻辑地址(如 IP 地址)来唯一标识设备。路由器是网络层设备。
  • 数据链路层:确保从一个节点到另一个节点的可靠、有效的数据传输。交换机、网桥是数据链路层设备。
  • 物理层:电缆、光纤、无线电频谱、网络适配器等。

TCP三次握手在哪一层

三握四挥都是在传输层

各层的网络协议

数据在各层间的传输

对于发送方而言,从上层到下层层层包装,对于接收方而言,从下层到上层,层层解开包装。

浏览器地址栏输入URL到显示网页的过程

1、DNS解析,将域名解析为IP地址

2、TCP连接 经过三握创立连接

3、发送HTTP请求

4、服务器处理请求 服务器接收到 HTTP 请求后,根据请求的资源路径,经过后端处理,生成 HTTP 响应消息

5、浏览器接受HTTP响应

6、断开连接

DNS的解析过程

WebSocket和Socket的区别

  • Socket 其实就是等于 IP 地址 + 端口 + 协议
  • WebSocket 是一个持久化的协议,它是伴随 H5 而出的协议,用来解决 http 不支持持久化连接的问题。
  • Socket 一个是网编编程的标准接口,而 WebSocket 则是应用层通信协议。

抓包

谷歌的network 还有wireshark

HTTP

常用状态码

HTTP 状态码用于表示服务器对请求的处理结果,可以分为 5 种:

  • 1xx 服务器收到请求,需要进一步操作,例如 100 Continue。
  • 2xx 请求成功处理,例如 200 OK。
  • 3xx 重定向:需要进一步操作以完成请求;例如 304 Not Modified 表示资源未修改,客户端可以使用缓存。
  • 4xx 客户端错误:请求有问题,例如 404 Not Found 表示资源不存在。
  • 5xx 服务器错误,例如500 Internal Server Error 表示服务器内部错误。

 

http的请求方式

  • GET:请求检索指定的资源。应该只用于获取数据,并且是幂等的,即多次执行相同的 GET 请求应该返回相同的结果,并且不会改变资源的状态。
  • POST:向指定资源提交数据,请求服务器进行处理(如提交表单或上传文件)。数据被包含在请求体中。可能会创建新的资源或修改现有资源。
  • DELETE:删除指定的资源。
  • PUT:用于替换指定的资源。如果指定的资源不存在,创建一个新资源。
  • HEAD:类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头。可以用于检查资源是否存在,验证资源的更新时间等。
  • OPTIONS:用于获取服务器支持的 HTTP 请求方法。通常用于跨域请求中的预检请求(CORS)。
  • TRACE:回显服务器收到的请求,主要用于测试或诊断。但由于安全风险(可能暴露敏感信息),很多服务器会禁用 TRACE 请求。
  • CONNECT:建立一个到目标资源的隧道(通常用于 SSL/TLS 代理),用于在客户端和服务器之间进行加密的隧道传输。

http的get可以执行写操作吗

可以,但不推荐 会有安全问题 如:跨站请求伪造CSRF

什么是幂等 ?

幂等就是可以重复执行但是执行结果都是一致的

在正确实现的条件下,GET、HEAD、PUT 和 DELETE 等方法都是幂等的,而 POST 方法不是。

Get和Post的区别

GET 请求主要用于获取数据,参数附加在 URL 中,存在长度限制,且容易被浏览器缓存,有安全风险;而 POST 请求用于提交数据,参数放在请求体中,适合提交大量或敏感的数据。

另外,GET 请求是幂等的,多次请求不会改变服务器状态;而 POST 请求不是幂等的,可能对服务器数据有影响。

Http的请求过程

1、Http是基于TCP\IP协议的

2、首先URL输入,DNS解析域名为IP地址

3、TCP建立连接,发送http请求

4、服务器收到请求,执行,执行完返回一个http响应

5、客户端接收响应,进行渲染

HTTP请求报文结构

请求行

包括请求方法、请求 URL 和 HTTP 协议的版本。例如:GET /index.html HTTP/1.1

请求头部

包含请求的附加信息,如客户端想要接收的内容类型、浏览器类型等。例如:

  • Host: www.javabetter.cn,表示请求的主机名(域名)
  • Accept: text/html,表示客户端可以接收的媒体类型
  • User-Agent: Mozilla/5.0,表示客户端的浏览器类型
  • Range:用于指定请求内容的范围,如断点续传时表示请求的字节范围。

消息正文

消息正文是可选的,如 POST 请求中的表单数据;GET 请求中没有消息正文。

HTTP响应报文

①、状态行

包括 HTTP 协议的版本、状态码(如 200、404)和状态消息(如 OK、NotFound)。例如:HTTP/1.0 200 OK

②、响应头部

包含响应的附加信息,如服务器类型、内容类型、内容长度等。也是键值对,例如:

  • Content-Type: text/plain,表示响应的内容类型
  • Content-Length: 137582,表示响应的内容长度
  • Expires: Thu, 05 Dec 1997 16:00:00 GMT,表示资源的过期时间
  • Last-Modified: Wed, 5 August 1996 15:55:28 GMT,表示资源的最后修改时间
  • Server: Apache 0.84,表示服务器类型

③、空行

表示响应头部结束。

④、消息正文(可选)

响应的具体内容,如 HTML 页面。不是所有的响应都有消息正文,如 204 No Content 状态码的响应。

URL和URI的区别

URL是URI的子集

  • URI,统一资源标识符(Uniform Resource Identifier, URI),标识的是 Web 上每一种可用的资源,如 HTML 文档、图像、视频片段、程序等都是由一个 URI 进行标识的。
  • URL,统一资源定位符(Uniform Resource Location),它是 URI 的一种子集,主要作用是提供资源的路径。

HTTP1.0,1.1,2.0区别

HTTP1.0 默认是短连接,HTTP 1.1 默认是长连接,HTTP 2.0 采用的多路复用

1.0

  • 无状态协议:HTTP 1.0 是无状态的,每个请求之间相互独立,服务器不保存任何请求的状态信息。
  • 非持久连接:默认情况下,每个 HTTP 请求/响应对之后,连接会被关闭,属于短连接。这意味着对于同一个网站的每个资源请求,如 HTML 页面上的图片和脚本,都需要建立一个新的 TCP 连接。可以设置Connection: keep-alive 强制开启长连接。

1.1

  • 持久连接:HTTP 1.1 引入了持久连接(也称为 HTTP keep-alive),默认情况下不会立即关闭连接,可以在一个连接上发送多个请求和响应。极大减轻了 TCP 连接的开销。
  • 流水线处理:HTTP 1.1 支持客户端在前一个请求的响应到达之前发送下一个请求,以提高传输效率。

2.0

  • 二进制协议:HTTP 2.0 使用二进制而不是文本格式来传输数据,解析更加高效。
  • 多路复用:一个 TCP 连接上可以同时进行多个 HTTP 请求/响应,解决了 HTTP 1.x 的队头阻塞问题。
  • 头部压缩:HTTP 协议不带状态,所以每次请求都必须附上所有信息。HTTP 2.0 引入了头部压缩机制,可以使用 gzip 或 compress 压缩后再发送,减少了冗余头部信息的带宽消耗。
  • 服务端推送:服务器可以主动向客户端推送资源,而不需要客户端明确请求。

 

http://www.dtcms.com/a/296999.html

相关文章:

  • Web前端:JavaScript indexOf()方法
  • 腾势N9再进化:智能加buff,豪华更对味
  • 无线通信资源分配相关算法
  • ESP32-S3学习笔记<6>:ADC的应用
  • AI助力 三步实现电子发票发票号码的提取
  • 小架构step系列24:功能模块
  • 【ResizeObserver】【页面布局】监听一个 div 元素的动态高度变化并同步设置另一个元素的高度
  • Windows环境下 Go项目迁移至Ubuntu(WSL) 以部署filebeat为例
  • 【数组的定义与使用】
  • 保障工业核心命脉:深度解读工业交换机QoS的“智能流量治理”之道
  • CMake ARGV变量使用指南
  • Python桌面版数独(五版)-优化选择模式触发新棋盘生成
  • OSPF 实验
  • RuoYi-Vue 项目 Docker 全流程部署实战教程
  • 中国、美国、欧盟、日本、英国临床试验API数据接口
  • Ⅹ—6.计算机二级综合题7---10套
  • Mac系统机能连接操控别的平台设备吗?能被远程操作吗?
  • Nginx快速入门及案例
  • 【安卓笔记】解决livedata粘性事件
  • 《Java语言程序设计》第2章复习题(2)
  • RePlugin 坑位使用原理与指南
  • 多源信息融合智能投资【“图神经网络+强化学习“的融合架构】【低配显卡正常运行】
  • 模拟退火算法 (Simulated Annealing, SA)简介
  • JavaWeb学习打卡14(JSP内置对象及作用域)
  • ARM汇编常见伪指令及其用法示例
  • IntelliJ IDEA中管理多版本Git子模块的完整指南
  • 智慧工厂网络升级:新型 SD-WAN 技术架构与应用解析
  • 商场导航软件:3D+AI 基于Deepseek 模型的意图识别技术解析
  • BacNet 是什么?跟 LoRaWAN 的关系是什么?
  • 将JS字节流转化为对象