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

计算机网络部分基础知识

网络协议的意义

        单台主机内部的设备之间需要发送和接收消息,那么和相隔很远的两台主机之间发送消息有什么区别呢?两台主机通过网络发送消息,相当于两个网卡设备之间进行通信,最大的区别在于距离变长了。而距离变长带来的结果就是:

1. 会面临数据包丢包的问题

2. 需要解决目标主机的定位问题

3. 如何保证经过无数台设备转发,数据仍能准确被接收

        为了解决这些问题,就有了协议,协议本质上就是一种约定,两套主机约定好一定的数据格式,这样能保证不同厂商生产的计算机也能顺畅地通信,并且网络通信的分层协议各层能够处理丢包、定位的问题。网络协议的范围非常广泛,从硬件到软件,能保证不同的机器都能无障碍地接入互联网:厂商要想让机器接入互联网就要遵守协议。

网络的层状结构

        在网络通信的过程中,为了保证把数据可靠地从一台主机送到另一台主机,并且另一台主机能对数据作相应的处理,我们需要:

        1. 保证把数据交给下一跳主机

        2. 进行路径选择,定位目标主机

        3. 如果报文出现错误或丢失怎么办

        4. 如何使用送达的数据

        这些问题都需要有协议来解决,所以协议是很多的,为了更好地编码实现协议,就对协议进行了分层,我们把网络看作是层状结构。

        为了方便理解协议分层的好处,我们举一个现实生活中的例子,我们在和亲人打电话的时候,并不是直接和对方沟通,而是我们电话把我们的声音发送到对方的电话,再由对方的电话发出声音让对方听到。这个事件实际上也可以分为两层:语言层和通信设备层,语言层由汉语协议保证顺利交流,通信设备层由电话协议保证能够正常通信。那和外国友人打电话呢?语言层的协议切换为英语协议,但通信设备层并不需要修改协议,这实际上把各层的协议进行了解耦合,每层只需要专注于解决一件事情,并且都能够认为是同层的协议在进行直接通信。

        我们最常用的TCP/IP五层协议模型中,数据链路层协议保证把数据送到下一跳主机,网络层协议解决转发过程中的路径选择和确认目标定位问题,传输层解决报文出现错误或丢包的问题,应用层负责对接收到的数据进行处理,而物理层则负责光电信号的传递方式。

        

网络协议与系统

        现在我们已经知道网络协议是分层的,那么各层协议与一台主机具体是什么关系呢?

        网络协议应用层就在计算机的用户层,传输层和网络层协议位于操作系统的内核中,众所周知,用户想要访问计算机的硬件通常必须调用操作系统提供的接口,操作系统调用驱动程序来使用底层硬件,而数据链路层在计算机的驱动程序层。因为如果用户想进行网络通信,就必须访问网卡,所以自顶向下过程中贯穿了网络协议栈的每一层,这保证了用户会使用协议。

        再进一步,主机A向主机B发送数据时,首先由主机B的网卡接收到数据,然后要想把数据送到主机B的用户层,就需要自底向上贯穿网络协议栈的每一层。

        计算机在进行网络通信的过程中可能会受到很多报文,为了对这些报文进行管理,就需要有对应的数据结构,把对报文的管理转化为对数据结构的增删查改

网络传输的基本流程

        大家网购的时候有没有注意过,我们收到的快递不止是买的东西,上面还有一张快递单,上面有寄件人、收件人、物品信息等等内容。这能保证快递公司在运货的过程中始终知道收件人的地址,并且由于上面写的信息双方都看得懂,收件人也能知道寄件人的地址,这实际上也是一种协议。

        类似的,数据在传输的过程中,数据报文也不止有内容,而是报头加内容,那么报头实际上是什么样的呢?

可以看到,所谓的报头其实就是结构体字段,操作系统内协议的源码相同,则双方主机都能识别结构体字段,这就相当于双方共同遵守一个约定,这就是协议。

        下图是TCP/IP数据的封装和解包流程,封装过程:在应用层把数据发送到发送缓冲区,交付到传输层后添加TCP报头,继续向下交付到网络层,添加IP报头,继续向下交付到数据链路层,添加以太网包头。解包过程:逐层读取到报头后,把剩下的有效载荷交付给上一层。

因此在进行封装时,一定要考虑之后对方解包的过程,每一层的协议都需要解决以下两个问题:

1. 如何将报文中的报头和有效载荷进行分离

2. 如何将自己的有效载荷交付给上层的协议

网络中的地址管理

        局域网中的主机能够直接进行通信,每个网卡都有独一无二的mac地址,当局域网中的一台主机向另一台主机发送信息时,实际上是给所有主机发送广播信息,但只有目标主机的mac地址与信息匹配,其他主机则会将信息丢弃。而IP地址分为公网IP和内网IP,当我们提到IP地址可以用来表示互联网中唯一的一台主机时,指的是公网IP,内网IP是可以出现重复的,具体情况我们在后面的文章进行说明。

        为了更好地理解IP地址与mac地址之间的关系,举一个例子,唐僧师徒前往西天取经,到了女儿国后,女儿国国王问他从哪儿来到哪儿去,唐僧说贫僧自东土大唐而来,前往西天取经,国王接着问,那你上一站是哪儿,下一站要去哪儿,唐僧说上一站是火焰山,但是只知道最终目的地是西天,而不知道下一站是哪,需要国王告知,国王告知唐僧,下一站是黑风岭,最后唐僧师徒离开女儿国,前往下一站。这个过程中,他们的最终目的地是不变的,但是每到一个站点,他们的下一站都会改变,这个最终目的地就相当于是目的IP地址,而每次到的下一站就相当于mac地址,国王实际上就相当于路由器。所以IP地址的意义是什么呢?有了IP地址,我们就能根据路由表进行路径选择。mac地址的意义呢?有了mac地址,数据就能在局域网中正确传输。

总结

        通过本文的学习,我们了解了网络协议分层,知道了每层协议都需要能够分离报头和有效载荷、将有效载荷交付给上层协议;并对mac地址和IP地址有了一定的概念。

相关文章:

计算机网络部分基础知识

网络协议的意义 单台主机内部的设备之间需要发送和接收消息,那么和相隔很远的两台主机之间发送消息有什么区别呢?两台主机通过网络发送消息,相当于两个网卡设备之间进行通信,最大的区别在于距离变长了。而距离变长带来的结果就是&…...

WESWOO合作的出海企业(一)

分享一些我们在shopify开发上合作的品牌介绍1. **韶音科技(SHOKZ)**: - WESWOO为韶音科技设计了多个产品页面,如OPENFIT、OPENSWIMPRO等,这些页面展示了产品特点、滑动特效、比较功能等,并通过品牌VI统一&a…...

vue 项目中 使用vxe-grid 表格中给表格的表头设置特殊的格式 , 并且给指定的列文字设置颜色

项目场景: 相关背景: vue 项目中 使用vxe-grid 表格中给表格的表头设置特殊的格式,并为指定的列文字设置颜色 实现方案: 具体实现方法及步骤: 一、给表格的表头设置特殊的格式 实现方式一: :header-row-s…...

基于SpringBoot的企业资产管理系统

TOC springboot117基于SpringBoot的企业资产管理系统 系统概述 1.1 研究背景 智慧养老是面向居家老人、社区及养老机构的传感网系统与信息平台,并在此基础上提供实时、快捷、高效、低成本的,物联化、互联化、智能化的养老服务。 随着科技进步&#…...

ps快捷键,学习

ps快捷键图片变的特别大,归位,ctrl0背景图层锁住 选中图层,点击顶部图层,新建,背景图层,确定,就解开了,想在锁住,在点一次...

python代码模拟服务器实验2:IO多路复用select

实验代码的环境是在windows,和linux是有差别的 在Windows系统上,select模块需要传递特定的对象类型,而不是文件描述符。在Unix-like系统上,文件描述符是一个整数,而在Windows上,select期望得到的是socket对…...

修改ubuntu的终端显示语言为英文,界面保持为中文

修改ubuntu的终端显示语言为英文,界面保持为中文 sudo nano /etc/default/locale LANGzh_CN.UTF-8nano ~/.bashrc 在文件未尾加入下列两行 export LANGen_US.UTF-8 export LANGUAGEen在终端执行 source ~/.bashrc之后提示语言就变成英文了...

重塑园区生态,引领产业智慧化新飞跃

中服云智慧园区平台基于工业物联网平台,在园区场景中集中运用云计算、物联网、大数据、人工智能、数字孪生、边缘计算等新一代信息技术。秉承产业主导、业务主导、效率主导的理念,通过一体化子系统集成、智慧化业务管理、可视化运营分析、人性化客户服务…...

WSL 忘记ubuntu的密码

文章目录 1. 以管理员身份打开 PowerShel2.输入命令 wsl.exe -d Ubuntu-20.04 --user root3.输入命令 passwd username 修改用户密码,username即待重置的用户的名称 1. 以管理员身份打开 PowerShel 2.输入命令 wsl.exe -d Ubuntu-20.04 --user root 注意版本号是自…...

github项目-创建一个新分支

在远程仓库创建一个分支实际上是在本地创建一个分支,然后将该分支推送到远程仓库。这是因为在 Git 中,您不能直接在远程仓库创建分支,而需要先在本地创建分支,然后将该分支推送到远程仓库。 以下是创建并推送新分支到远程仓库的步…...

Java设计模式中介者模式的优势与局限性分析

Java设计模式中介者模式的优势与局限性分析 一、引言 在软件工程中,设计模式是一种经过验证的解决方案,用于解决软件开发中常见的问题。设计模式的使用可以提高代码的复用性、可维护性和可扩展性。中介者模式(Mediator Pattern)…...

一、软件工程概述

软件工程概述 1. 软件的概念和特点2. 软件危机的产生3. 软件工程的概念和发展过程4. 软件工程知识体系与职业道德 1. 软件的概念和特点 软件定义 软件程序数据文档。 软件生存周期 问题定义:要解决的问题是什么?可行性分析:对于上阶段所确定…...

第六天:java设计模式、GUI编程与面向对象设计原则

第六天:设计模式、GUI编程与面向对象设计原则 1. 设计模式概述 设计模式的定义:回顾设计模式的定义,即解决特定设计问题的通用解决方案。常见设计模式:了解并掌握几种常见的设计模式,如单例模式、工厂模式、策略模式…...

解读RPA自动化流程机器人

RPA全称Robotic Process Automation,即机器人流程自动化,基于人工智能和自动化技术,能够将大量重复、规则明确的日常事务操作实现自动化处理,通常被形象地称为“数字员工”。本文金智维将深入探讨RPA的主要价值和应用领域&#xf…...

Redis17-服务端优化

目录 持久化配置 慢查询 什么是慢查询 如何查看慢查询 命令及安全配置 内存配置 集群优化 持久化配置 Redis的持久化虽然可以保证数据安全,但也会带来很多额外的开销,因此持久化请遵循下列建议: 用来做缓存的Redis实例尽量不要开启持…...

Web语义化及实际应用

你好同学,我是沐爸,欢迎点赞、收藏和关注!今天一起了解下Web语义化及其应用吧! 是什么? 使用合适的标签、属性,让页面能“说话“,让人和机器都能快速理解网页内容。 为什么? 有…...

Linux系统调试课:CPUFreq 中央处理器频率调节技术

文章目录 一、CPUFreq组成二、用户接口三、设备树配置沉淀、分享、成长,让自己和他人都能有所收获!😄 📢中央处理器频率调节(Central Processing Unit frequency,CPUFreq)技术可以降低ARM芯片的功耗,例如在系统对任务压力较小时,通过调整处理器工作频率与输入电压的…...

C++之模版初阶

目录 前言 1.泛型编程 2.函数模版 2.1函数模版概念 2.2函数模版格式 2.3函数模版的原理 2.4函数模版的实例化 2.5模版参数的匹配原则 3.类模版 3.1类模版的定义格式 3.2类模版的实例化 结束语 前言 前面我们学习了C的类与对象和内存管理,接下来我们继续学习…...

飞桨paddle API函数scatter详解

飞桨的scatter函数,是通过基于 updates 来更新选定索引 index 上的输入来获得输出,具体官网api文档见: scatter-API文档-PaddlePaddle深度学习平台 官网给的例子如下: >>> import paddle>>> x paddle.to_tens…...

RCE漏洞复现

PHP命令执行常用函数 回调函数必须是命令执行和代码执行的函数,有两个条件 必须是函数,而且需要有函数运行的参数 危害:可以直接删除文件,添加文件,甚至可以添加用户 system --执行外部程序,并且显示输…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

uniapp中使用aixos 报错

问题&#xff1a; 在uniapp中使用aixos&#xff0c;运行后报如下错误&#xff1a; AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列&#xff0c;以便知晓哪些列包含有价值的数据&#xff0c;…...

蓝桥杯 冶炼金属

原题目链接 &#x1f527; 冶炼金属转换率推测题解 &#x1f4dc; 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V&#xff0c;是一个正整数&#xff0c;表示每 V V V 个普通金属 O O O 可以冶炼出 …...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...

基于TurtleBot3在Gazebo地图实现机器人远程控制

1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...