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

【计算机网络 | 第一篇】计算机网络基础知识

网络分层模型

1.OSI七层模型国际标准化组织提出的一个网络分层模型,总共有七层,其大体功能以及每一层分工如下所示:

每一层都专注做一件事,并且每一层都需要下一层提供的功能。

OSI七层模型七层结构体系清晰,理论完整,但是它比较复杂不实用,而且很多层的功能有些重复。

2.TCP/IP四层模型 是目前被广泛采用的一种模型,我们可以将TCP/IP四层模型看作OSI七层模型的精简版本,四层模型由以下组成:

1.应用层

2.传输层

3.网络层

4.网络接口层

为什么网络要分层呢?

复杂系统需要分层,因为每一层都要专注干一件事情。网络分层也是这样,每一层只专注于做一类事情。

网络分层主要有三方面原因:

1.保证各层之间相互独立:各层之间相互独立,不需要知道其他层是怎么实现的,只需要上层调用下层实现的功能即可。

2.提高了灵活性和可替代性:每一层都可以选择最合适的技术来实现,只要保证上层调用下层功能的规则不变,同时,每一层都可以根据需求进行修改和替换,不会影响整个网络的结构。

3.大问题变小化:许多复杂的问题可以通过分层来变小,这样使得复杂的计算机网络结构变得容易设计和实现。

常见网络协议

应用层常见协议:

HTTP(Hypertext Transfer Protocol,超文本传输协议):基于 TCP 协议,是一种用于传输超文本和多媒体内容的协议,主要是为 Web 浏览器与 Web 服务器之间的通信而设计的。当我们使用浏览器浏览网页的时候,我们网页就是通过 HTTP 请求进行加载的。

传输层常见协议:

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

网络层常见协议:

IP(Internet Protocol,网际协议):TCP/IP 协议中最重要的协议之一,属于网络层的协议,主要作用是定义数据包的格式、对数据包进行路由和寻址,以便它们可以跨网络传播并到达正确的目的地。目前 IP 协议主要分为两种,一种是过去的 IPv4,另一种是较新的 IPv6,目前这两种协议都在使用,但后者已经被提议来取代前者。

什么是URL

URL(Uniform Resource Locators),即统一资源定位器。网络上的所有资源都靠 URL 来定位,每一个文件就对应着一个 URL,就像是路径地址。理论上,文件资源和 URL 一一对应。实际上也有例外,比如某些 URL 指向的文件已经被重定位到另一个位置,这样就有多个 URL 指向同一个文件。

URL组成结构:

 

从输入URL到页面展示发生了什么?(重点)

先来看一张图(来源于《图解 HTTP》):

上面有个错误,是OSPF不是OPSF。 OSPF(Open Shortest Path First,ospf)开放最短路径优先协议, 是由 Internet 工程任务组开发的路由选择协议。

总体来讲有以下几个步骤:

1.在浏览器输入指定页面的URL。

2.浏览器根据DNS协议,解析出域名对应的IP地址。

3.浏览器通过解析出的IP地址和端口号,向目标服务器发出一个TCP连接请求。

4.浏览器在TCP连接上,向服务器发出一个HTTP请求报文,请求获取网页内容。

5.服务器收到HTTP请求报文后,处理请求,并返回HTTP响应报文给浏览器。

6.浏览器收到HTTP响应报文后,解析响应体中的HTML代码,渲染网页的结构,同时根据

HTML中的其他资源的URL,再次发起HTTP请求,获取这些资源,直到页面展示完全。

7.浏览器在不需要和服务器通信时,可以主动关闭TCP连接,或者等待服务器的关闭请求。

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

 HTTP是一种不保存状态,即无状态协议,那么如何保存用户状态呢?Session 机制的存在就是为了解决这个问题,Session 的主要作用就是通过服务端记录用户的状态。典型应用场景是购物车,当你添加商品到购物车时,系统不知道是哪个用户操作的,因为HTTP是无状态的。服务端给特定的用户创建特定的 Session 之后就可以标识这个用户并且跟踪这个用户了(一般情况下,服务器会在一定时间内保存这个 Session,过了时间限制,就会销毁这个 Session)。

在服务端保存 Session 的方法很多,最常用的就是内存和数据库(比如是使用内存数据库 redis 保存)。既然 Session 存放在服务器端,那么我们如何实现 Session 跟踪呢?大部分情况下,我们都是通过在 Cookie 中附加一个 Session ID 来方式来跟踪。

 如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力

相关文章:

  • 基于springBoot+vue的PC 端学习系统(源码+lw+部署文档+讲解),源码可白嫖!
  • L2-018 多项式A除以B
  • 电脑 BIOS 操作指南(Computer BIOS Operation Guide)
  • 累计达2.04亿户!中国联通首次公布5G网络用户数据
  • 使用MetaGPT 创建智能体(2)多智能体
  • 创维E900V20C-国科GK6323V100C-rtl8822cs-安卓9.0-短接强刷卡刷固件包
  • 遥感技术赋能电力设施监控:应用案例篇
  • 链表相关算法题
  • git clean password
  • Vue2+Vue3 130~180集学习笔记
  • OpenHarmony-Risc-V上运行openBLAS中的benchmark
  • C++ 迭代器失效详解:如何避免 vector 操作中的陷阱
  • SQL预编译——预编译真的能完美防御SQL注入吗
  • C#插件与可扩展性
  • 使用手机归属地查询API,使效率事半功倍
  • Jsp技术入门指南【五】详细讲解jsp结构页面
  • 【AI模型学习】关于写论文——论文的审美
  • 【RK3588 嵌入式图形编程】-SDL2-扫雷游戏-结束和重新开始游戏
  • 黑马V11版 最新Java高级软件工程师课程-JavaEE精英进阶课
  • AIP-236 策略预览
  • 多元布局、抱团取暖……上海虹口区召开外向型企业圆桌会议
  • 揭晓!人形机器人半马完赛奖+专项奖发布
  • 专家:晚期肿瘤不再“无药可医”,早筛早诊早治可提高生存率
  • 中东睿评|美伊就伊核问题谈判:不得不谈却又缘木求鱼
  • 深一度|2005年首败来得恰到好处,巴萨三冠王雄心依旧
  • 河南省人大常委会原党组副书记、副主任刘满仓被逮捕