【网络原理】初始网络,了解概念

文章目录

1. 网络通信

计算机与计算机之间是互相独立,是独立模式。这就造成计算机之间无法形成数据的共享,协同完成工作,那么网络互连便孕育而生了。
网络互联
将多台计算机连接在一起,形成数据共享。
数据共享的本质是网络数据传输,即计算机之间通过网络进行传输数据,也称为网络通信。
根据连接的规模不同,可以分为局域网和广域网。

1.1 局域网LAN

局域网,Local Area Network,LAN。
local是表识了局域网是本地的,是私有的,是一个内网。那么局域网内的设备可以互相通信,局域网与局域网之间如果没有连接,那么将无法通信。
例如
我们使用手机开热点便形成了一个小型局域网,当其他设备连接这个热点,便加入了这个局域网中,那么它们之间便可以进行传输数据,进行多人游戏……

常见的局域网组成网络:

  1. 基于网络直连。
  2. 基于集线器(集线器(Hub)是计算机网络中用于连接多台计算机或网络设备的中心化设备。它是一个物理层设备,用于将多个设备连接在一起,以便它们可以在同一局域网上进行通信。现在几乎不在使用,被交换机取代)组建。
  3. 基于交换机(交换机(Switch)是计算机网络中的关键设备,用于连接多个计算机或网络设备,并以智能的方式在它们之间进行数据包转发。与集线器(Hub)不同,交换机工作在数据链路层(第二层),能够识别和学习设备的MAC地址,并根据需要选择性地转发数据包,以提供更高的性能和网络分段。)组建。
  4. 基于交换机和路由器(路由器(Router)是计算机网络中的网络设备,用于连接多个不同的网络,并在它们之间转发数据包,以确保数据在网络之间正确传输。路由器工作在网络层(第三层),它的主要任务是根据目标IP地址来决定如何将数据包从源网络传输到目标网络。)组建。

1.2 广域网WAN

广域网,Wide Area Network,WAN。
通过路由器,将多个局域网连接起来,在物理上组成很大范围的网络,就形成了广域网。广域网内部的局域网都属于其子网。
但其实WAN和LAN的概念是相对的,广域网也可以是一个比较大的局域网。

2. 基础概念

2.1 IP

概念
IP地址主要用于标识网络主机、其他网络设备(如路由器)的网络地址,通过IP地址我们可以定位到主机。
例如:我们寄快递,IP地址就相当于我们寄的快递地址。
格式
IP地址通常使用32位2进制数字表示,然后被分为4组(四个字节)。
例如:00000000.00000000.00000000.00000000。
每个字节也可以使用10进制表示(范围0~255整数)。
例如:
100.22.22.22,
特殊IP
127.*类的IP常用于本机环回测试,就是本机与本机之间的通信,最常用的IP:127.0.0.1

2.2 端口号

IP地址可以确定主机位置,但是还有一个问题,一个主机上面有着许多的进程,那么我们如何保证数据是我们需要的进程接受呢?
所以我们引入了一个端口号。
概念:端口号可以标识主机中发送数据,接受数据的进程。
这就相当于寄快递有了地址(IP)还是不行,我们还需要有接受人名字(端口号)。
格式
0~ 65535范围内的数字,在网络通信中,进程可以通过绑定一个端口号,来发送及接收网络数据。
注意

  1. 两个不同的进程不能绑定同一个端口号,但是可以绑定多个端口号。
  2. 端口0~1023是知名端口号,已经被绑定,例如:HTTP(端口号80),FTP(端口号21),但它们仍然可以使用其他端口号。
  3. 大于1023的端口号一般用于用户定义或私有的服务。

3. 认识协议

在网络信息传输中,传的数据有着很大的区别,那个数据可能是照片、视频、文字等,那么格式就会不同,如何让对方知道传的是什么数据呢?
我们便引入了协议,通过协议规定两方的数据格式。
概念
协议,网络协议的简称,网络协议是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵从的一组约定、规则。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。通常由三要素组成:

  1. 语法:即数据与控制信息的结构或格式;
  2. 语义:即需要发出何种控制信息,完成何种动作以及做出何种响应;
  3. 时序:即事件实现顺序的详细说明。

4. 五元组

在TCP/IP协议中,用五元组来标识一个网络通信:

  1. 源IP:标识源主机
  2. 源端口号:标识源主机中该次通信发送数据的进程
  3. 目的IP:标识目的主机
  4. 目的端口号:标识目的主机中该次通信接收数据的进程
  5. 协议号:标识发送进程和接收进程双方约定的数据格式
    1

5. 协议分层

协议分层就是把协议按照不同的功能分为不同层,使每层都有特色。

5.1 分层的作用

  1. 模块化设计:将协议分为不同层次, 每一层都有特定的功能和作用,方便维护与管理。
  2. 提高互操作性:协议分层使不同设备和系统之间更容易实现互操作性,因为它们可以使用相同的协议栈来进行通信。这有助于设备来自不同供应商或开发者之间的无缝集成。
  3. 促进标准化:协议分层促进了标准化,不同厂商和组织可以基于通用的协议标准来开发设备和应用程序,从而确保一致性和可互操作性。
  4. 简化故障排除:由于每个协议层都有特定的功能,故障排除变得更加简单。如果出现问题,可以更容易地确定故障所在的层次,从而加快修复过程。
  5. 促进技术创新:协议分层鼓励技术创新,因为可以独立地开发和更新每个协议层次,而不影响其他层次的功能。
  6. 支持多种网络拓扑:不同类型的网络拓扑(如星型、总线型、网状型)可以使用相同的协议栈,因为每个层次都关注特定的任务,而不受拓扑结构的影响。
  7. 安全性和隔离:协议分层有助于安全性和隔离。例如,安全协议可以在应用层上添加加密功能,而不必修改传输层或网络层。

最经典的网络协议分层模型OSI(开发系统互联)模型和TCP/IP模型。

5.2 OSI七层模型

2

上图就是OSI模型,即复杂也不实用,所以并没有流行起来,我们最常用的协议分层还是TCP/IP五层(有时忽略物理层,也可称四层)模型。

5.3 TCP/IP五层(四层)模型

3

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。
TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。

  1. 应用层:负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。我们的网络编程主要就是针对应用层。
  2. 传输层:负责两台主机之间的数据传输。如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到目标主机。
  3. 网络层:负责地址管理和路由选择。例如在IP协议中,通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由)。路由器(Router)工作在网路层。
  4. 数据链路层:负责设备之间的数据帧的传送和识别。例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。
    有以太网、令牌环网,无线LAN等标准。交换机(Switch)工作在数据链路层。
  5. 物理层:负责光/电信号的传递方式。比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤,现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等。集线器(Hub)工作在物理层。

6. 封装和分用

不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)。
应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation)。
首部信息中包含了一些类似于首部有多长,载荷(payload)有多长,上层协议是什么等信息。
数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,根据首部中的 “上层协议字段” 将数据交给对应的上层协议处理。

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

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

相关文章

我的第一个react.js 的router工程

react.js 开发的时候,都是针对一个页面的,多个页面就要用Router了,本文介绍我在vscode 下的第一个router 工程。 我在学习react.js 前端开发,学到router 路由的时候有点犯难了。经过1-2天的努力,终于完成了第一个工程…

openGauss学习笔记-89 openGauss 数据库管理-内存优化表MOT管理-内存表特性-使用MOT-MOT使用查询原生编译

文章目录 openGauss学习笔记-89 openGauss 数据库管理-内存优化表MOT管理-内存表特性-使用MOT-MOT使用查询原生编译89.1 查询编译:PREPARE语句89.2 运行命令89.3 轻量执行支持的查询89.4 轻量执行不支持的查询89.5 JIT存储过程89.6 MOT JIT诊断89.6.1 mot_jit_detai…

git使用,一点点

查看自己有没有安装git git --version 如果没有安装请执行sudo yum install -y git来安装 git 指令 git log 查看日志 git pull 同步远端和本地仓库 这就是冲突的报错: 所以这个时候你要同步一下git pull

机器学习7:逻辑回归

一、说明 逻辑回归模型是处理分类问题的最常见机器学习模型之一。二项式逻辑回归只是逻辑回归模型的一种类型。它指的是两个变量的分类,其中概率用于确定二元结果,因此“二项式”中的“bi”。结果为真或假 — 0 或 1。 二项式逻辑回归的一个例子是预测人…

Python 数据分析与挖掘(一)

Python 数据分析与挖掘(数据探索) 数据探索 1.1 需要掌握的工具(库) 1.1.1 Nump库 Numpy 提供多维数组对象和各种派生对象(类矩阵),利用应用程序接口可以实现大量且繁琐的数据运算。可以构建…

N. Number Reduction

Problem - 1765N - Codeforces 发现如果是无前导0最小数那么在保证删除k个数时第1位是最小的,第二位一定是相对最小的,且答案第一位和第二位在原位置的间隔是小于等于还可以删除的位数的。 因此,对于原数字长度位n,要删除k&#…

免杀对抗-成品EXE免杀-反特征码-通用跳转

一、exe程序生成 1.使用如下shellcode加载器&#xff0c;生成c/c语言的exe程序 加载器&#xff1a;1.c #include <Windows.h> #include <stdio.h>#pragma comment(linker,"/section:.data,RWE")unsigned char shellcode[] 生成的shellcode;int main() { …

怎么通过docker/portainer部署vue项目

这篇文章分享一下如何通过docker将vue项目打包成镜像文件&#xff0c;并使用打包的镜像在docker/portainer上部署运行&#xff0c;写这篇文章参考了vue-cli和docker的官方文档。 首先&#xff0c;阅读vue-cli关于docker部署的说明&#xff0c;上面提供了关键的几个步骤。 从上面…

leetcode做题笔记160. 相交链表

给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 题目数据 保证 整个链式结构中不存在环。 注意&#xff0c;函数返回结果后&…

9.3 链表从指定节点插入新节点

一、从指定节点后方插入 插入逻辑如图&#xff1a; 插入前&#xff1a;A指向B&#xff0c;B指向C 插入后&#xff1a;B为插入点&#xff0c;当要插入D时就要让B指向D&#xff0c;D再指向C&#xff08;插入前B的指向&#xff09; #include <stdio.h>struct Test {int d…

Day-05 CentOS7.5 安装docker

参考 &#xff1a; Install Docker Engine on CentOS | Docker DocsLearn how to install Docker Engine on CentOS. These instructions cover the different installation methods, how to uninstall, and next steps.https://docs.docker.com/engine/install/centos/ Doc…

ES6中对象的扩展

1. 属性的简洁表示法 可以直接写入变量和函数作为对象的属性和方法。在对象中只写属性名&#xff0c;不写属性值&#xff0c;代表属性值等于和属性名相同的的变量的值。 属性的简写 let foo bar; let baz {foo}; // { foo: bar } // 等同于 let baz { foo: foo}方法的简写…