网络初识必知会

2023-10-06 23:28
文章标签 初识 网络 知会

本文主要是介绍网络初识必知会,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

局域网:把一些设备通过交换机/路由器连接起来

广域网:把更多的局域网也相互连接,当网络规模足够大的

交换机:组网过程中的重要设备!

路由器:组网过程中的重要设备!

IP地址:描述一个主机在互联网上的具体位置

端口号:区分一个主机上的应用程序

协议:(非常核心的概念)

协议就是约定,发送方约定了他发数据是啥样的格式,接收方也得理解这个格式,两边对上号,才能够进行正确的通信!

协议:在传输之前就先约定好发送方和接收方都约定好每组代表的啥意思!!

在网络通信中,需要约定的协议,其实是非常非常复杂的!!

面对复杂的环境,就需要复杂的协议!但是,太复杂了也不好!!

当一个协议太复杂了,就可以拆分成多个协议,当协议拆分出很多的时候,存在有些小的协议作用或者定位是类似的,那么,就可以针对这些小的协议进行“分类”,同时在针对这些不同的类别,进行分层,相当于约定层级和层级之间的调用关系,要求上层协议调用下层协议,下层协议给上层协议提供支持,不能跨层调用!!

公司经常有一定的层级关系:

跨层级进行交互,职场上一般是非常禁忌的!!

协议分成的好处:

  1. 分成之后,就可以做到层次之间,耦合程度比较低,上层协议不必了解下层的细节,下层也不必了解上层的细节!
  2. 方便的对某一层的协议进行替换!

真实的网络协议具体是怎么分成的呢??

OSI七层网络模型(仅仅存在于教科书上的!)

TCP/IP五层网络模型(当下最广泛使用的网络模型)

下列内容要求熟练背诵,计算机网络中最基础,最核心的概念!!

应用层,传输层,网络层,数据链路层,物理层

  1. 应用层,关注传过来的数据要干啥用!!(同一个人,针对同一个东西,拿来的用途也是不一样的)
  2. 传输层:不考虑中间路径,只关注起点和终点。如:我和淘宝卖家,都不关心,中间是怎么传输的(快递),只关心起点和中点,你乐意咋传输就咋传输,只要规定时间送到即可!!
  3. 网络层:主要负责两个遥远的节点之间的路线规划

    收货地是西安,发货地是上海

    上海到西安,中间有很多条路可以走~

    在众多的路径中,找一个合适的~

    上海《——》西安

    上海《——》南京《——》西安

    上海《——》苏州《——》徐州《——》西安

  4. 数据链路层:主要关注相邻节点之间的传输

    上海——》南京:火车??

    南京——》西安:卡车??

    网络上相邻节点,就是通过网线/光纤/无线直接连接的设备!!

  5. 物理层:网络通信的基础设施!!网线,光纤,网络接口…………

网络上的高速公路!!

那么,经过上述这样的分成之后,就可以让程序员同一时刻只关注一个子问题!!


在上述的五层中,只有应用层才真正的关注数据的用途!!

应用层:对咱们程序员写的应用程序,下面的四层测试操作系统内部一级封装好的!!因此,咱们写代码进行网络编程,主要工作还是围绕应用层展开的!!

目前:程序员改不了系统内核,也改不了硬件,则目前高校的课堂重点围绕应用层和传输层站卡!!

在协议分层的背景下,数据如何通过网络传输的呢??(封装&分用

发送方发送数据,要把数据从上到下,依次交给对应的层次的协议,进行封装,接收方收到数据,要把数据从上午到下,依次交给对应的层次的协议进行解析,解析的过程就叫分用!!

总的来说:

  1. 应用层:应用程序,拿到数据怎么用??:应用程序
  2. 传输层:负责关注传输过程中起点和终点:系统内核封装
  3. 网络层:负责整个传输过程中的路径规划
  4. 数据链路层:负责两个相邻节点之间的数据传输:硬件+驱动
  5. 物理层:硬件设备,基础设施

这篇关于网络初识必知会的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/154559

相关文章

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

poj 3181 网络流,建图。

题意: 农夫约翰为他的牛准备了F种食物和D种饮料。 每头牛都有各自喜欢的食物和饮料,而每种食物和饮料都只能分配给一头牛。 问最多能有多少头牛可以同时得到喜欢的食物和饮料。 解析: 由于要同时得到喜欢的食物和饮料,所以网络流建图的时候要把牛拆点了。 如下建图: s -> 食物 -> 牛1 -> 牛2 -> 饮料 -> t 所以分配一下点: s  =  0, 牛1= 1~

poj 3068 有流量限制的最小费用网络流

题意: m条有向边连接了n个仓库,每条边都有一定费用。 将两种危险品从0运到n-1,除了起点和终点外,危险品不能放在一起,也不能走相同的路径。 求最小的费用是多少。 解析: 抽象出一个源点s一个汇点t,源点与0相连,费用为0,容量为2。 汇点与n - 1相连,费用为0,容量为2。 每条边之间也相连,费用为每条边的费用,容量为1。 建图完毕之后,求一条流量为2的最小费用流就行了

poj 2112 网络流+二分

题意: k台挤奶机,c头牛,每台挤奶机可以挤m头牛。 现在给出每只牛到挤奶机的距离矩阵,求最小化牛的最大路程。 解析: 最大值最小化,最小值最大化,用二分来做。 先求出两点之间的最短距离。 然后二分匹配牛到挤奶机的最大路程,匹配中的判断是在这个最大路程下,是否牛的数量达到c只。 如何求牛的数量呢,用网络流来做。 从源点到牛引一条容量为1的边,然后挤奶机到汇点引一条容量为m的边

Linux操作系统 初识

在认识操作系统之前,我们首先来了解一下计算机的发展: 计算机的发展 世界上第一台计算机名叫埃尼阿克,诞生在1945年2月14日,用于军事用途。 后来因为计算机的优势和潜力巨大,计算机开始飞速发展,并产生了一个当时一直有效的定律:摩尔定律--当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。 那么相应的,计算机就会变得越来越快,越来越小型化。

配置InfiniBand (IB) 和 RDMA over Converged Ethernet (RoCE) 网络

配置InfiniBand (IB) 和 RDMA over Converged Ethernet (RoCE) 网络 服务器端配置 在服务器端,你需要确保安装了必要的驱动程序和软件包,并且正确配置了网络接口。 安装 OFED 首先,安装 Open Fabrics Enterprise Distribution (OFED),它包含了 InfiniBand 所需的驱动程序和库。 sudo

【机器学习】高斯网络的基本概念和应用领域

引言 高斯网络(Gaussian Network)通常指的是一个概率图模型,其中所有的随机变量(或节点)都遵循高斯分布 文章目录 引言一、高斯网络(Gaussian Network)1.1 高斯过程(Gaussian Process)1.2 高斯混合模型(Gaussian Mixture Model)1.3 应用1.4 总结 二、高斯网络的应用2.1 机器学习2.2 统计学2.3

网络学习-eNSP配置NAT

NAT实现内网和外网互通 #给路由器接口设置IP地址模拟实验环境<Huawei>system-viewEnter system view, return user view with Ctrl+Z.[Huawei]undo info-center enableInfo: Information center is disabled.[Huawei]interface gigabit

Golang 网络爬虫框架gocolly/colly(五)

gcocolly+goquery可以非常好地抓取HTML页面中的数据,但碰到页面是由Javascript动态生成时,用goquery就显得捉襟见肘了。解决方法有很多种: 一,最笨拙但有效的方法是字符串处理,go语言string底层对应字节数组,复制任何长度的字符串的开销都很低廉,搜索性能比较高; 二,利用正则表达式,要提取的数据往往有明显的特征,所以正则表达式写起来比较简单,不必非常严谨; 三,使