【计算机网络】网络原理

目录

1.网络的发展

2.协议

3.OSI七层网络模型

4.TCP/IP五层网络模型及作用

5.经典面试题

 6.封装和分用

发送方(封装)

接收方(分用)


1.网络的发展

路由器:路由指的是最佳路径的选择。一般家用的是5个网口,1个WAN口+4个LAN口(口:端口)。可以连接连接多个局域网。

局域网:把几个电脑通过路由器连接到一起。

广域网:将多个局域网连接起来。可能会覆盖一个城市,一个国家。

交换机:可以扩展路由器的端口。

IP地址:描述了一个设备在网络上的地址。计算机中使用一个32位4字节数字表示地址,由于这样太大,为了表示出来,4个字节分4部分表示。采用的是点分十进制(127.0.0.1)。每个数字范围是0~255。分别代表一个字节。

我们可以通过ipconfig指令在终端上查看我们电脑上的ip地址。

端口号:区分一个主机上不同的应用程序的。端口号是一个整数(2个字节)。范围是0~65535。

使用端口号的规则:要求同一个主机上的应用程序不能关联到同一个端口号。一个端口号只能被一个应用程序绑定。但一个应用程序可以绑定多个端口号。0一般不使用,1~1023这个范围的端口号供系统使用。就像有些国家的一夫多妻制。夫相当于应用程序;妻相当于端口号。

例如:443->https   80->http    22->ssh    23->telnet


IP和端口号

IP和端口号往往是"一对",比如,买个东西:

  • 收件人地址(源IP),收件人电话(源端口号)。
  • 发件人地址(目的IP),发件人电话(目的端口号)。

2.协议

网络上,本质是通过光/电信号来传输数据。比如:低电平表示1,高电平表示0;高频光信号表示1,低频光信号表示0。本质上还是二进制数据。

协议就是一种约定,规定。约定了通信双方按照一定的方式来传输数据。

五元组

  • 源IP
  • 源端口
  • 目的IP
  • 目的端口
  • 协议类型

协议拆分

将一个大的协议·拆分成多个小的协议。

协议分层

由于通信网络很复杂,拆分就拆分出来太多的小的协议,小的协议太多,不好管理,这时候就需要分层了。按照协议的定位/作用分类,并且约定了不同层协议之间的"调用关系"。(上层协议调用下层协议,下层协议给上层协议提供支持)。类似于一个公司。公司大了就要进行细分。


3.OSI七层网络模型

OSI七层网络模型仅仅出现在教科书中。

实际开发中大都用的是TCP/IP五层网络模型


4.TCP/IP五层网络模型及作用

                     

是OSI七层模型的简化版本。下面讲述这五层协议的作用,以网购为例

1.物理层

  • 描述的是网络通信的硬件设备。

2.数据链路层

  • 两个相邻节点之间的数据传输情况。
  • 比如商家和我中间隔了许多城市,可能中间还有水路等。关心的是每一步应该使用什么交通工具。

3.网络层

  • 进行路径规划。
  • 即从商家的位置到我的位置发货选哪条路发货最合适(传输成本,传输时间,传输效率)。先从哪个城市到哪个城市,再从哪个城市到哪个城市。

4.传输层

  • 只关注起点和终点。
  • 从商家角度来看,他只关心他自己的发件人地址/电话以及收件人地址/电话,只关心货是不是已经发出和我是不是已经收到货。

5.应用程序层

  • 数据传输过来后,如何使用这个数据。
  • 即我收到货后使用这个商品干啥,比如我买了一个刷子,我可以刷鞋,刷床,还可以刷沙发等。

如果有TCP/IP四层模型的这种说法,那应该就是不算物理层。


5.经典面试题

某某某这个设备应用工作在哪一层?

主机:

  • 它的操作系统内核实现了从传输层到物理层的内容。即就是TCP/IP五层模型的下四层。

路由器:

  • 实现了从网络层到物理层的内容,是TCP/IP五层模型的下三层。

交换机:

  • 实现了从数据链路层到物理层。是TCP/IP五层模型的下两层。
  • 交换机的作用是针对路由器的端口进行扩展。因为路由器上的端口是有限的,有可能不够用。

集线器:

  • 只实现了物理层。作用是把网线一分为二。

 

 6.封装和分用

描述了网络通信过程中,基本的数据传输流程。(即发送方一步步封装,接收方一步步拆解)


发送方(封装)

1.应用层(发送方)

协议:由程序员自定义协议

举个例子:例如,QQ发消息,A通过QQ把一个hello传递给B。

在应用层中就会把这个输入的"hello"打包成一个应用层的数据报(格式:字符串拼接)数据报中是二进制形式,这个数据报的内容格式由开发QQ的人员自定义的。我们假设是下面这种:

       


2.传输层(发送方)

典型协议:TCP,UDP

就是要对刚才的应用层数据再进行打包,变成传输层的数据报,打包过程即字符串拼接。把刚才的应用层数据的基础上再拼接传输层的报头。

一个数据报 = 报头 + 载荷

UDP报头中最关键的信息:就是"源端口"和"目的端口"。

传输层数据报搞好之后,这个数据会进一步交给网络层。


3.网络层(发送方)

主要协议:IP协议

IP报头包含最重要的属性:源IP和目的IP。

网络层的数据打包之后,继续把数据交给"数据链路层"再进一步打包。


4.数据链路层(发送方)

主要协议:以太网

以太网报头包含最重要的属性:源mac地址和目的mac地址。这个地址也是用来描述一个设备在网络上的地址的。

打包好后,继续交给物理层。


5.物理层(发送方)

把上述数据转换成二进制的01序列。再通过光信号/电信号进行传输。

上述这五步操作都为层层封装,就像是发快递一样。而下面的操作就相当于是拆快递了。


接收方(分用)

1.物理层(接收方)

将获得的光/电信号转成二进制数据,得到以太网数据报。


2.数据链路层(接收方)

通过以太网协议,针对以太网数据报进行解析。这个解析过程会解析出报头和报尾以及中间的载荷。把载荷部分进一步再交给网络层的协议处理。


3.网络层(接收方)

通过IP协议进一步针对网络层的数据报进行解析,去掉报头,拿到载荷,再把载荷交给传输层。


4.传输层(接收方)

通过UDP协议,再去掉报头,拿到载荷,再交给应用层。


5..应用层(接收方)

把上述数据通过端口号,交给各个应用程序。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

github: kex_exchange_identification: Connection closed by remote host

问题描述 (base) ➜ test git:(dev) git pull kex_exchange_identification: Connection closed by remote host Connection closed by 192.30.255.113 port 22 致命错误:无法读取远程仓库。解决方案 参照下边文档 https://docs.github.com/en/authentication/tr…

jvm 各个版本支持的参数

知道一些 jvm 调优参数,但是没有找到官网对应的文档,在网上的一些文章偶然发现,记录一下。 https://docs.oracle.com/en/java/javase/ 包含各个版本 jdk 8 分为 windows 和 unix 系统 https://docs.oracle.com/javase/8/docs/technotes/too…

【HTML+CSS】零碎知识点

公告滚动条 <!DOCTYPE html> <html><head><title>动态粘性导航栏</title><style>.container {background: #00aeec;overflow: hidden;padding: 20px 0;}.title {float: left;font-size: 20px;font-weight: normal;margin: 0;margin-left:…

GeoServer改造Springboot启动五(解决接口返回xml而不是json)

请求接口返回的是xml&#xff0c;而不是我们常用的json&#xff0c;问题呈现如下图 40 图 40请求接口返回XML 在RequestMapping注解上增加produces {MediaType.APPLICATION_JSON_UTF8_VALUE} 图 41增加produces

Linux权限基础知识

前言&#xff1a;作者也是初学Linux&#xff0c;可能总结的还不是很到位 Linux修炼功法&#xff1a;初阶功法 ♈️今日夜电波&#xff1a;修炼爱情 —林俊杰 0:30━━━━━━️&#x1f49f;──────── 4:47 …

大规模语言LLaVA:多模态GPT-4智能助手,融合语言与视觉,满足用户复杂需求

大规模语言LLaVA&#xff1a;多模态GPT-4智能助手&#xff0c;融合语言与视觉&#xff0c;满足用户复杂需求 一个面向多模式GPT-4级别能力构建的助手。它结合了自然语言处理和计算机视觉&#xff0c;为用户提供了强大的多模式交互和理解。LLaVA旨在更深入地理解和处理语言和视…

在 Windows Server RDS 服务器 上重置 120 天宽限期

如果您出于测试目的安装了 RDS Server 2016/2019/2022&#xff0c;并且 RDS 许可宽限期已过期&#xff0c;请继续阅读下面的内容以了解如何重置 120 天宽限期。您可能知道&#xff0c;在安装 RDS Server 2016 时&#xff0c;您有 120 天的时间来安装 RD 客户端访问许可证 &…

5分钟内在Linux上安装.NET Core应用程序

作为开源的忠实粉丝&#xff0c;我喜欢 .NET Core 的跨平台特性。它开启了无限的可能性&#xff0c;从业余爱好项目、实验和概念验证&#xff0c;到在具有高安全性和可扩展性的经济高效基础设施上运行的大规模高负载生产应用程序。我通常从任何云平台提供商那里获得最简单、最便…

浅谈电气防火限流式保护器在小型人员密集场所中的应用

摘要&#xff1a;本文通过结合城市中小型人员密集场所的特点和电气防火限流式保护器的功能&#xff0c;阐述了该类筑物预防电气火灾事故的方法。 关键词&#xff1a;小型人员密集场所&#xff1b;电气防火限流式保护器 0&#xff1a;概述 近年来&#xff0c;随着社会经济的不…

报错InitializeComponent报错(提示不存在)

我是c#新手。为了解决这个问题&#xff0c;需要按照以下步骤进行。、 首先&#xff0c;确保项目的类型为WPF应用(.NET Framework)&#xff1b; 然后&#xff0c;代码的位置应正确处于项目的MainWindow.xaml.cs&#xff1b; 最后&#xff0c;将MainWindow.xaml打开&#xff0c;…

PyTorch深度学习实战(22)——从零开始实现YOLO目标检测

PyTorch深度学习实战&#xff08;22&#xff09;——从零开始实现YOLO目标检测 0. 前言1. YOLO 架构1.1 R-CNN 目标检测模型的局限性1.2 YOLO 目标检测模型原理 2. 实现 YOLO 目标检测2.1 编译 DarkNet2.2 设置数据集格式2.3 配置网络架构2.4 模型训练和测试 小结系列链接 0. 前…

服务器中了mkp勒索病毒怎么处理,mkp勒索病毒解密,数据恢复

10月份以来&#xff0c;云天数据恢复中心陆续接到很多企业的求助&#xff0c;企业的服务器遭到了mkp勒索病毒攻击&#xff0c;导致企业的服务器数据库被加密&#xff0c;严重影响了企业工作&#xff0c;通过这一波mkp勒索病毒的攻击&#xff0c;云天数据恢复工程师为大家总结了…