计算机基础--->网络(1)【分层模型、网络协议、HTTP等】

news2024/11/24 16:43:14

文章目录

  • 网络分层模型
    • OSI七层模型及其作用
    • TCP/IP四层模型及作用
    • 为什么网络需要分层?
  • 常见的网络协议
    • 应用层常见的协议
    • 传输层常见的协议
    • 网络层常见协议
  • 从输入URL到页面展示的过程
  • HTTP常见的状态码
  • HTTP与HTTPS的区别
  • HTTP是不保存状态的协议,如何保存用户状态?
  • URI和URL区别?
  • Cookie和Session有什么区别?
  • PING命令的作用
  • DNS的作用是什么?
  • DNS服务器

网络分层模型

网络分层模型是用于描述网络协议与网络硬件之间相互作用的一种模型,在实际应用中,通常采用OSI模型或TCP/IP模型。

OSI模型将网络协议分为七层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。每一层都有对应的协议和功能,每一层都向上一层提供服务并从下一层接收服务。

TCL/IP模型将网络的协议分为了四层,分别为网络接口层、网络层、传输层和应用层。网络接口层和网络层对应与OSI模型中的物理层、数据链路层和网络层,传输层和应用层对应于OSI模型中的传输层、会话层、表示层和应用层。

网络分层模型的作用是将网络通信过程分解成多个层级,使得不同的层级可以独立设计、实现和维护,从而提高了网络协议的通用性、可靠性和灵活性。网络分层模型害便于开发人员和维护人员对网络通信过程进行分析和故障排查。

OSI七层模型及其作用

  1. 物理层:物理层是网络模型的最低层,主要关注设备间如何传输原始比特流,包括连接器、接口、传输介质、信道复用技术等。
  2. 数据链路层:数据链路层是网络模型的第二层,主要关注网络节点之间的链路连接,包括数据的封装、错误检测、流量控制、媒体接入和链路管理等。
  3. 网络层:网络层是网络模型的第三层,主要关注数据包的路由和转发,包括IP地址的管理、数据包的分段和组装、路由器的功能和协议等。
  4. 传输层:传输层是网络模型的第四层,主要关注数据传输的端到端可靠性,包括TCP和UDP等协议,TCP协议提供可靠传输,UDP协议提供非可靠传输。
  5. 会话层:会话层是网络模型的第五层,主要关注应用程序之间的会话管理,包括会话建立、维护和结束等。
  6. 表示层:表示层是网络模型的第六层,主要关注数据格式的表示和转换,包括数据加密和压缩等。
  7. 应用层:应用层是网络模型的最高层,主要关注数据通信的应用,包括http、ftp等应用层协议。

在这里插入图片描述

每一层都专注做一件事情,并且每一层都需要使用下一层提供的功能,比如传输层需要使用网络层提供的路由和寻址功能,这样传输层才知道把数据传输到哪里。

OSI的七层体系结构概念清楚,理论也很完整,但是它比较复杂,并且不实用,有些功能在多个层中重复出现。

TCP/IP四层模型及作用

  1. 网络接口层:网络接口层是TCP/IP模型的最底层,它负责将数据在计算机网络中进行物理传输,包括物理设备之间的地址解析、多路复用和帧同步等。
  2. 网络层:网络层是TCP/IP模型的第二层,它负责把数据包从源主机传送到目标主机,包括IP协议、ICMP协议、ARP协议、RARP协议,和路由器等。
  3. 传输层:传输层是TCP/IP模型的第三层,它负责提供端对端(End-to-End)的数据传输服务,包括TCP协议和UDP协议,TCP协议提供可靠的数据传输,UDP协议提供简单的数据传输。
  4. 应用层:应用层是TCP/IP模型的最高层,它负责网络应用之间的交互,包括各种协议,如HTTP、FTP、SMTP、DNS、TELNET 等。

为什么网络需要分层?

在后端开发过程中我们经常也会按照功能的不同将系统分层,比如前后端交互的控制层Controller,业务操作层Service还有数据库操作Dao层。

复杂的系统需要分层,因为每一层都需要专注于一类事情,网络分层也是一样的原理。

整体说说为什么网络需要分层,首先就是为了各层之间相互独立,各层之间不需要关心其他层是如何实现的,只需要知道自己如何调用下层提供好的功能就可以了。其次就是可以提升网络的可靠性和可扩展性,每一层提供不同的服务和功能,各层之间独立设计实现和维护,从而加快了开发和维护速度。最后还可以降低系统的复杂度,不同的层关注不同的问题,更容易用各种优化方案来优化各自的功能和服务。

常见的网络协议

应用层常见的协议

常见的网络协议有 HTTP、FTP、SMTP、POP3/IMAP、Telnet、SSH、RTP、DNS等。

  • HTTP(Hypertext Transfer Protocol,超文本传输协议):基于TCP协议,是一种超文本传输协议,用于浏览器和Web服务器之间传输超媒体文档的协议。当使用浏览器浏览网页时,网页就是通过HTTP请求进行加载的。
  • SMTP(Simple Mail Transfer Protocol,简单邮件发送协议):简单邮件传输协议,用于发送电子邮件的协议,只负责邮件的发送。
  • POP3/IMAP(邮件接收协议):两者都是负责邮件接收协议,IMAP相较于POP3更新更强大,支持邮件搜索、标记、分类、归档等高级功能,而且可以在多个设备之间同步邮件状态。几乎现代电子邮件客户端和服务器都支持IMAP。
  • FTP(File Transfer Protocol,文件传输协议) : 文件传输协议,用于网络上进行文件传输,是一种不安全的协议,因为传输过程不会对数据进行加密。
  • Telnet(远程登陆协议):远程登录协议,用于远程登录到其他服务器,缺点之一是所有数据包括账号密码都是以明文形式发送。
  • SSH(Secure Shell Protocol,安全的网络传输协议):基于 TCP 协议,通过加密和认证机制实现安全的访问和文件传输等业务。
  • RTP(Real-time Transport Protocol,实时传输协议):通常基于 UDP 协议,但也支持 TCP 协议。它提供了端到端的实时传输数据的功能,但不包含资源预留存、不保证实时传输质量,这些功能由 WebRTC 实现。
  • DNS(Domain Name System,域名管理系统): 基于 UDP 协议,用于解决域名和 IP 地址的映射问题。

传输层常见的协议

  • TCP(Transmission Control Protocol,传输控制协议 ):提供 面向连接 的,可靠 的数据传输服务。
  • UDP(User Datagram Protocol,用户数据协议):提供 无连接 的,尽最大努力 的数据传输服务(不保证数据传输的可靠性),简单高效。

网络层常见协议

  • IP(Internet Protocol,网际协议):TCP/IP协议中最重要的协议之一,主要作用是定义数据包的格式、对数据包进行路由和寻址,便于它们跨网络传播并达到正确的目的地。目前的IP协议主要有两种,IPv4是目前应用广泛的协议,IPv6是IPv4的升级版。
  • ARP(Address Resolution Protocol,地址解析协议):地址解析协议,用于将IP地址映射为MAC地址,以便进行数据链路层的通信。
  • ICMP(Internet Control Message Protocol,互联网控制报文协议):是一种互联网控制消息协议,用于发送错误消息和诊断消息。
  • NAT(Network Address Translation,网络地址转换协议):NAT 协议的应用场景如同它的名称——网络地址转换,应用于内部网到外部网的地址转换过程中。具体地说,在一个小的子网(局域网,LAN)内,各主机使用的是同一个 LAN 下的 IP 地址,但在该 LAN 以外,在广域网(WAN)中,需要一个统一的 IP 地址来标识该 LAN 在整个 Internet 上的位置。
  • OSPF(Open Shortest Path First,开放式最短路径优先):一种内部网关协议(Interior Gateway Protocol,IGP),也是广泛使用的一种动态路由协议,基于链路状态算法,考虑了链路的带宽、延迟等因素来选择最佳路径,特点是快速收敛,高效稳定,常用于大型网络中。
  • RIP(Routing Information Protocol,路由信息协议):一种内部网关协议(Interior Gateway Protocol,IGP),也是一种动态路由协议,基于距离向量算法,使用固定的跳数作为度量标准,选择跳数最少的路径作为最佳路径。
  • BGP(Border Gateway Protocol,边界网关协议):一种用来在路由选择域之间交换网络层可达性信息(Network Layer Reachability Information,NLRI)的路由选择协议,具有高度的灵活性和可扩展性。

从输入URL到页面展示的过程

  1. DNS解析
  2. TCP连接
  3. 发送HTTP请求
  4. 服务器处理请求并返回HTTP报文
  5. 浏览器解析渲染页面
  6. 连接结束

HTTP常见的状态码

  • Informational(信息性状态码): 接收的请求正在处理
  • Success(成功状态码): 请求正常处理完毕
  • Redirection(重定向状态码): 需要进行附加操作以完成请求
  • Client Error(客户端错误状态码): 服务器无法处理请求
  • Server Error(服务器错误状态码): 服务器处理请求出错

HTTP与HTTPS的区别

  1. URL前缀不同: 一个前缀是http://,一个是https://
  2. 端口号不同: HTTP使用的是80端口,HTTPS使用的是443端口。
  3. 传输内容的安全性不同: HTTP协议运行在TCP上,传输的内容都是明文,HTTPS通过SSL或TLS等协议实现了加密传输,加密采用对称加密,但堆成加密的密钥用服务方的证书进行了非对称加密。所以HTTPS安全性更高,同时耗费的服务器资源更多。
  4. 传输速度不同: 因为HTTP不需要加密,所以传输速递比较快,而HTTPS要进行数据的加密和解密,因此传输速度相对较慢。

HTTP是不保存状态的协议,如何保存用户状态?

HTTP是一种不保存状态,即无状态协议。也就是HTTP协议自身不对请求和响应之间的通信状态进行保存。想要保存用户状态,就要使用到Session,Session的主要作用就是通过服务端记录用户的状态。比如我们在添加商品到购物车时,系统不知道是哪个用户进行操作的,因为HTTP协议是无状态的。服务器根据每个会话的用户生成一个唯一的Session ID并保存在Cookie中,在客户端浏览器再次访问服务器时,服务器会根据Session ID来恢复用户状态。

Cookie被禁用了怎么办?

最常见的方法就是利用URL重写把Session ID直接附加在URL路径后面。

URI和URL区别?

  • URI(Uniform Resource Identifier) 是统一资源标志符,可以唯一标识一个资源。
  • URL(Uniform Resource Locator) 是统一资源定位符,可以提供该资源的路径。它是一种具体的 URI,即 URL 可以用来标识一个资源,而且还指明了如何 locate 这个资源。

URI 的作用像身份证号一样,URL 的作用更像家庭住址一样。URL 是一种具体的 URI,它不仅唯一标识资源,而且还提供了定位该资源的信息。

Cookie和Session有什么区别?

  • 存储位置不同: Cookie是存储在客户端的浏览器中的一段文本,而Session是存储在服务器端的一段内存或硬盘文件中的数据。
  • 安全性不同: Cookie信息是明文存储在浏览器中,容易被篡改和窃取,因此需要进行加密或签名保护。而Session信息存储在服务器端,不容易被窃取,但也需要进行一些安全性保障措施。
  • 有效期不同: Cookie可以设置过期时间,控制保存的时间,而Session默认情况下是关闭浏览器时自动清除。
  • 穿透性不同: Cookie可以跨域访问,不同域名的Cookie可以相互访问,而Session只在同一个域名下共享。
  • 存储容量不同: Cookie存储的数据容量有限制,一般为4KB左右,而Session存储的数据容量相对更大。

总的来说,Cookie一般用于存储一些较小的用户状态信息,例如用户ID和密码等,方便用户下次访问时恢复身份,用于保留用户的登录状态。而Session则一般用于存储一些需要更安全保护或者更大容量的用户信息,比如购物车内容、用户配置信息等。

PING命令的作用

  • 测试网络连接性
  • 排除网络故障
  • 测试网络中的精确时间

PING 基于网络层的 ICMP(Internet Control Message Protocol,互联网控制报文协议),其主要原理就是通过在网络上发送和接收 ICMP 报文实现的。

ICMP 报文中包含了类型字段,用于标识 ICMP 报文类型。ICMP 报文的类型有很多种,但大致可以分为两类:

  • 查询报文类型:向目标主机发送请求并期望得到响应。
  • 差错报文类型:向源主机发送错误信息,用于报告网络中的错误情况。

DNS的作用是什么?

DNS域名管理系统,就是当用户使用浏览器访问网址之后,使用的第一个重要协议。DNS要解决的是域名和IP地址的映射问题。

在这里插入图片描述

在实际使用的过程中,浏览器会在本地维护一个hosts列表,将解析后的域名的IP进行存储,一般浏览器会先查看要访问的域名是否在hosts列表中,如果有的话,直接提取对应的IP地址记录,如果本地hosts没有域名对应IP的记录,就调用DNS。

目前 DNS 的设计采用的是分布式、层次数据库结构,DNS 是应用层协议,基于 UDP 协议之上,端口为 53

DNS服务器

DNS服务器采用一个分层次的结构,呈现为树形结构。DNS服务器自底向上可以依次分为以下四个层级

  • 根DNS服务器: 根DNS服务器提供TLD服务器的IP地址。目前世界上只有13组根服务器,我国境内目前仍没有根服务器。
  • 顶级域DNS服务器(TLD服务器): 顶级域是指域名的后缀,如.com,.vip等。TLD服务器提供了权威DNS服务器的IP地址。
  • 权威DNS服务器: 在因特网上具有公共可访问主机的每个组织机构必须提供可访问的DNS记录,这些记录将这些主机的名字映射为IP地址。
  • 本地DNS服务器: 每一个ISP(互联网服务提供商)都有一个自己的本地DNS服务器。它起着代理的作用,严格来说,不说与DNS层级结构。

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

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

相关文章

华硕电脑怎么用U盘重装系统Win10?

华硕电脑怎么用U盘重装系统Win10?用户想用U盘给华硕电脑重装Win10系统,但不知道要怎么操作,这时候用户需要准备一台能够正常联网的华硕电脑,还有一个8G以上的U盘,最后根据小编分享的华硕电脑用U盘重装Win10系统教程操作…

MQTT Broker 规则引擎入门:快速指南

引言 规则引擎是一种能够根据输入数据按照预设规则进行决策或执行动作的软件系统。本文将向您介绍 EMQX MQTT Broker 的规则引擎功能,并阐述其在 MQTT 消息转换和数据集成方面的重要作用。同时,我们还将提供一份快速入门指南,通过实例帮助您…

【Spring Cloud】Gateway的配置与使用

Gateway其实是springcloud 原生的东西,但是我还是想放在这里讲,因为我们使用nacos时,前端调用服务之后,一般会调用到我们的网关上面,然后网关选择我们的nacos服务,再调用后端的服务 文章目录 🌏…

极客故事|AI Hackathon:从每一个微小的时刻开始

上周末,由 SegmentFault 思否和 ONES 主办,SegmentFault AI Hackathon 杭州站暨思否 11 周年特别活动在杭州圆满结束。大赛延续 Hack with AI, Rebuild Everything with AI 的主题,鼓励开发者使用 Generative AI 技术构建创新应用&#xff0c…

UDP和TCP网络编程

UDP和TCP网络编程 UDP网络编程UDP通信流程(回显服务)测试扩展《UDP字典查找单词》 TCP网络编程TCP互相通信测试 缓存区和缓存 UDP网络编程 特点: 无连接:发送数据前不需要建立连接。不可靠:没有重发机制,无…

2023下半年杭州/广州/深圳软考(中/高级)认证,近期开班

软考是全国计算机技术与软件专业技术资格(水平)考试(简称软考)项目,是由国家人力资源和社会保障部、工业和信息化部共同组织的国家级考试,既属于国家职业资格考试,又是职称资格考试。 系统集成…

一分钟让你轻松拿捏 求解斐波那契数列!

文章目录 斐波那契数列的概念递归求解第N个斐波那契数迭代求解第N个斐波那契数递归法和迭代法的比较 斐波那契数列的概念 斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多斐波那契(LeonardodaFib…

windows10企业版安装西门子博途V15---01准备环境

网上看到了很多博途安装的文章或视频,一大部分都是你抄抄,我抄抄,滥鱼充饥,一是文章思路不清晰,二是具体安装环境不一致,三是视频讲解混乱,视频不清楚,操作有错误,其中不…

mac外接硬盘在哪里打开 mac外接硬盘用什么格式

Mac电脑具有出色的兼容性和高度的易用性,使得连接外接硬盘变得非常简单。但是,如果你不知道如何打开外接硬盘或者外接硬盘应该使用哪种格式,那么这将成为你使用Mac电脑过程中的一个难题。本篇文章将会向你介绍在Mac上如何打开外接硬盘&#x…

SpringCloud: SpringCloud面试题 ④

前言:面试题是一个以信息整合性看技术特性的一个手段。 1、什么是SpringCloud? springCloud是一系列框架的有序整合。目的在于大规模、分布式、微服务应用部署的解决方案。 2、什么是微服务? 微服务是将一个大而全的业务系统按照一定的业务…

机器学习与深度学习——基于潜在语义分析(LSA)的文档相似度计算

机器学习与深度学习——基于潜在语义分析(LSA)的文档相似度计算 基于潜在语义分析(LSA)是一种使用数学和统计方法来分析文本数据的技术。该技术可用于发现文本之间的关系,以及为文本提供有关其含义的更深层次的信息。…

【twcc】学习1:cc-feedback包构造及其接收处理

我的代码是m79,大神的代码看起来比我的新。核心的 ProcessTransportFeedbackInner 竟然没有找到。 webrtc源码分析(8)-拥塞控制(上)-码率预估 再次膜拜一下大神的分析。 本文大量引用大神的论述。 cc-controller下最重要的几个函数来介绍码率控制的核心过程,其分别是OnProce…

perf之cpu性能计数器

在win10主机上的VMware虚拟机里的centos7执行 perf list cache,显示空: [workcontrol-plane ~]$ perf list cache List of pre-defined events (to be used in -e): [workcontrol-plane ~]$ 原因是cpu cache的计数需要硬件支持,在虚拟机里…

使用omp和mpi并行技术实现蒙特卡罗算法实验 (MonteCarlo)

蒙特卡洛算法思想: 画一个正方形和一个内切圆然后在图形上面随机撒点,数一下落在圆 内和正方形内的点的数量之比,就是二者面积之比, 也就是π/4。 大数定理告诉我们,随着样本数量的增大,我们用这种方式模拟出来的值应该是越来越…

玩转电脑|带你了解如何快速查看电脑开关机时间

目录 前言 1、打开管理 2、打开事件查看器 3、打开windows日志 5、获取开机事件 6、获取关机事件 7、保存事件 8、保存事件文件 9、打开事件文件 前言 最近因为一些原因作者想要查看自己电脑每天的的开关机时间记录,但是不知道怎么进行查看,于是在网…

C++重温笔记(十): C++输入输出流

1. 写在前面 c在线编译工具,可快速进行实验: https://www.bejson.com/runcode/cpp920/ 这段时间打算重新把c捡起来, 实习给我的一个体会就是算法工程师是去解决实际问题的,所以呢,不能被算法或者工程局限住,应时刻提…

龙智携手Atlassian亮相DevOps国际峰会:释放团队潜力,以协作挑战不可能

2023年6月29日到30日,龙智将亮相DevOps国际峰会 北京站213展位。本次参展,我们将呈现Atlassian ITSM、DevOps以及工作管理三大解决方案,帮助您释放团队的力量,将不可能变成可能。 立即预约龙智专家面对面交流>>> 龙智自…

BuildAdmin商业级后台管理系统

🚀 CRUD代码生成 图形化拖拽生成后台增删改查代码,自动创建数据表,大气实用的表格、多达22种表单组件支持、拖拽排序、受权限控制的编辑和删除、支持关联表等等,可为您节省大量开发时间。[ 视频介绍 | 使用文档 ] 💥 内置WEB终端 我们内置了WEB终端以实现一些理想中的…

[算法前沿]--019-医学AIGC大模型的构建

基于主动健康的主动性、预防性、精确性、个性化、共建共享、自律性六大特征[1],华南理工大学未来技术学院-广东省数字孪生人重点实验室开源了中文领域生活空间主动健康大模型基座ProactiveHealthGPT,包括:(1) 经过千万规模中文健康对话数据指令微调的生活空间健康大模型扁鹊…

绿色零碳节群硕获奖,为可持续发展提供数字化抓手

6月15日,为探索迈向碳中和之路,第二届国际零碳节暨2023ESG领袖峰会盛大召开。各大绿色品牌与科技集团纷纷现身北京,展示低碳生产与绿色发展的科技成果。群硕也携带创新数字化产品与解决方案亮相国际绿色零碳节,并荣获2023绿色可持…