【网络原理】初学网络必备知识

news2024/11/29 20:34:49

🥊作者:一只爱打拳的程序猿,Java领域新星创作者,CSDN、阿里云社区优质创作者。

🤼专栏收录于:计算机网络原理


本期讲解什么是局域网与广域网,网络通信基础知识之IP地址、端口号、协议、五元组。

目录

1、浅述网络发展史

2、 局域网(LAN)

3、广域网(WAN)

4、网络通信基础

4.1 IP地址

4.2 端口号

4.3 初识协议

4.4 五元组


1、浅述网络发展史

独立模式:刚开始,电脑与电脑之间无任何介质连接,此时进行业务处理是非常繁杂的。

网络互联:随着网络的发展,计算机能够处理的事务越来越多,于是有多个计算机协作完成业务,便有了网络互联。为了区分网络的范围,从而引申出了 局域网 与 广域网。


2、 局域网(LAN)

局域网(LAN),是指覆盖范围相对较小的计算机网络,通常只覆盖一个建筑物或者一组建筑物。它们通常用于企业、学校、办公室等场所内部的数据传输和共享。局域网可以使内部计算机快速互相通信,而且 安全性较高

因此,常见的局域网连接有

1. 通过网线连接

网线指的是用于计算机网络中传输数据信号的电缆。

通常用于连接计算机、路由器、交换机、调制解调器和其他网络设备。 

2. 通过集线器连接 

集线器(Hub)是一种计算机网络设备,主要用于连接多个计算机或其他网络设备,以实现数据通信和共享。

它可以将多个设备的网络线路集中在一起,形成网络总线,从而扩展网络的覆盖范围和连接设备的数量。

3. 通过交换机(switch)连接 

交换机(Switch)是计算机网络中常见的设备之一,主要用于在局域网中传输数据包。

与集线器不同,交换机可以根据MAC地址识别出特定的设备,仅向目标设备传输数据,从而避免了不必要的数据传输和网络拥堵。

4. 通过路由器连接 

区分路由器和“猫” :

路由器:用于将网络数据包转发到不同的网络。它可以连接两个或多个网络,并管理它们之间的数据流量。


:是指Cable Modem,是一种数字调制解调器,用于将电缆系统的电信信号转换成计算机可以识别的数字信号。在家庭网络中,它经常与路由器一起使用,以使多台计算机可以共享同一个互联网连接。


3、广域网(WAN)

广域网(WAN),则是覆盖范围比较大的计算机网络,主要由不同地区或不同国家的计算机连接而成,通常通过互联网进行连接。广域网可以使计算机在不同地点进行数据传输和共享,但是因为覆盖面较广,所以其 安全性相对较低

上图,美、日、英三国进行连接交互就构成了一个比较大的广域网,由于三者之间的距离较远覆盖范围广,因此安全性比较低。 


4、网络通信基础

网络互连的目的是进行网络通信,也即是网络数据传输,更具体一点,是网络主机中的不同进程间,基于网络传输数据。

那么,在组建的网络中,如何判断到底是从哪台主机,将数据传输到那台主机呢?这就需要使用 IP地址 来标识。


4.1 IP地址

概念:IP地址主要是标识网络主机、网络设备的网络地址。通俗的来说,IP地址用于定位主机的网络地址。

类似于我们收快递的地址需要填写XX省、XX市等信息,这样快递才能邮过来。网络地址也是如此,只有告诉计算机别人主机的网络地址是什么才能传输信息。

格式:IP地址是一个32位的二进制,通常被分割为4个8位二进制(4个字节),通常以点分十进制的格式来描述如 11000000.10101000.00000010.00000000(4个8位二进制形式) 写为192.168.2.0 (点分十进制形式)。而 192.168.2.0 可认为是一个 IP 地址。

特殊IP地址

  1. 127.0.0.1:这是本地回环地址,也称为"localhost"。它指向本地计算机,通常用于测试网络配置和应用程序的运行情况。

  2. 0.0.0.0:这是未指定特定目标地址的通配符地址。它用于创建监听任意地址的服务,如web服务器等。

  3. 10.0.0.0/8、172.16.0.0/12和192.168.0.0/16:这些地址块是私有地址,用于内部局域网私有使用,不会在公共互联网中路由。

  4. 169.254.0.0/16:这是自动分配的私有地址空间。当设备无法从 DHCP 服务器获取 IP 地址时,会自动分配一个本地 APIPA(Automatic Private IP Addressing)地址。

  5. 255.255.255.255:这是广播地址,用于将数据包发送到当前网络上的所有设备。

IP地址解决了网络通信时,定位网络主机的问题,但是还存在一个问题,传输到目的主机后,由哪个进程来接收这个数据呢?这就需要 端口号 来标识 !


4.2 端口号

概念:在网络通信中,我们直到了 IP地址 是用于标识计算机网络地址的,而端口号可以标识主机中发送数据、接受数据的进程。通俗的来讲,端口号用于定位主机中的进程。

格式:端口号的范围为 0-65535 范围的数字,在网络通信中,进程可以通过绑定一个端口号,来发送及接受网络数据。

例如,Web服务器的默认端口号是80,当用户在浏览器中输入URL时,会自动使用该端口号与服务器建立连接。

常见的端口号有

  • 80: HTTP服务
  • 443: HTTPS服务
  • 21: FTP服务
  • 22: SSH服务
  • 25: SMTP服务
  • 3306: MySQL数据库服务

注意事项:一个进程可以绑定多个端口号,但两个进程不得绑定同一个端口号。

疑问:有了 IP地址 和 端口号 就能定位网络中的某个进程,但有一个问题网络通信是通过 0/1 这样的二进制数据来传输的,如何告诉对方我所传输的是什么格式呢?

假如,我传输的一条信息“你吃饭了吗?”或是一个图片。网络通信如何规定格式呢,需要用 协议 来规范双方之间的通信格式。


4.3 初识协议

概念:协议及网络协议的简称,通俗的来讲就是网络传输过程中按照相关的规则来进行传输,而这套规则就是协议,如不遵守协议则通信不了。协议有三个重点:语法、语义、时序。

语法:语法指的是消息格式的规定,包括消息的所有字段、它们的顺序和长度等。

例如,一个HTTP请求报文的语法规定了方法字段、请求URI字段、协议版本字段等。

语义:指的是消息中包含的信息的意义和含义,也就是消息所要表达的内容。

例如,在一个HTTP请求报文中,方法字段和请求URI字段组合起来表示了客户端请求的服务资源的位置和操作

时序:指的是消息的顺序和时间关系。

例如,在TCP协议中,通信双方需要遵守严格的时序规则来保证消息的可靠传输和顺序。必须按照数据包的序列号顺序进行传输,接收方必须按照先后顺序进行排队缓存并且按顺序组装消息。

为什么需要协议,还是那句话,假如我要进行网络通信给某个人发一句话“你吃饭了吗?”或一张图片。如果没有协议进行约束,将无法进行传输。 


4.4 五元组

五元组是计算机网络中用于描述网络连接的一种基本结构。

五元组

  1. 源IP地址(Source IP Address):指发送数据包的计算机的IP地址。

  2. 目标IP地址(Destination IP Address):指接收数据包的计算机的IP地址。

  3. 源端口号(Source Port Number):指发送方的端口号,用于区分不同的应用程序,使其可以并发地运行。

  4. 目的端口号(Destination Port Number):指接收方的端口号,用于标识接受数据包的应用程序。

  5. 传输协议(Protocol):指传输协议类型,例如TCP、UDP、ICMP等。

在程序猿眼中可认为: 

源IP:标识源主机

源端口号:标识源主机中该次通信发送数据的进程

目的IP:标识目的主机

目的端口号:标识目的主机中该次通信接受数据的进程

协议号:标识发送进程和接受进程双方约定的数据格式

假如我在淘宝上购买物品,卖家发货有以下场景

目的IP:我的地址

端口号:我的名字

源IP地址:卖家地址

源端口号:卖家姓名

协议号:物流(圆通、申通、顺风等等)


为了网络协议的更好的指定,我们往往将网络协议进行分层。如OSI七层模型、TCP/IP五层模型。下期我将详细介绍:协议分层相关知识。

本期博文到这里就结束了,感谢点赞、评论、收藏、关注~ 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

springboot第25集:实体类定义规则

PO:持久化对象,一个PO对象对应一张表里面的一条记录。全部对应 VO:View视图对象,用来在页面中展示数据的,页面需要哪些字段属性就添加哪些,查询出来之后赋值操作比PO对象要简单。所以提高性能。 DTO&#x…

paddle 目标检测C++部署流程

1 源码下载以及依赖库 PaddleDetectionopencv3.4.6paddle_inference10.2 2 C 编译流程 手动配置cmake的依赖库路径 报错1 报错2 报错3 编译结果 3 测试 略

梵想 S690MQ 4TB固态尝鲜,我的磁盘空间又充裕了

先上一张我的工作电脑磁盘空间图,系统盘装了非常多的开发环境非常吃紧,数据盘D盘存着大部分虚拟机估计再过没多久也要告急了,之前磁盘已经红过一次,清理了下微信聊天记录感觉还能挺几个月。 对于爱折腾系统的我 1.5T 的磁盘空间已…

数据库的增删改查(二)

1、数据库约束 关系型数据库的一个重要功能 主要作用是保证数据的完整性,也就是数据的正确性(数据本身是正确的,关联关系也是正确的) 人工检查数据的完整性的工作量非常的大,在数据表定义一些约束,那数据…

从“制造”到“智造”!宏工科技发布“宏梦智能制造云”新产品

产业周期性变化正在给锂电产业带来深刻变革。6月7日,宏工科技在2023高工锂电材料大会上发表演讲表示,宏工科技推出了“宏梦智能制造云”,以整线一体化智造思路,赋能电池材料生产智造转型。 全球电动化与储能市场双轮驱动&#xff…

GPS跟踪系统Traccar

什么是 Traccar ? Traccar是一个开源的 GPS 跟踪系统。支持 200多种GPS 协议和 2000 多种型号的 GPS 跟踪设备。当然也包括像 iOS/Android 这样的手机设备,手机设备只需要安装Traccar的客户端即可使用。 前文介绍的 Hauk 只支持 Android 客户端&#xff…

数据分析第13课Matplotlib可视化

官网:https://matplotlib.org/users/installing.html 04-1Matplotlib介绍与安装 Matplotlib介绍 什么是Matplotlib Matplotlib是一个Python的基础绘图库,它可与 NumPy(科学计算的) 一起使用,代替Matlab(计算很好)使用。 为什么要学习Matplotlib(灵活度高) 将数据…

AutoHotKey文件与路径交互操作

文章目录 路径操作文件选择文件读写文件属性 AHK作为一种脚本语言,其功能特点是对操作系统功能的整合与简化,从而缩减操作流程,从而起到提高效率的目的。鼠标、键盘的映射,相当于是对外设操作的简化,而除了外部交互之外…

docker harbor私有仓库部署

docker harbor私有仓库部署 docker system prune -a 删除停掉的服务,自定义网络等。 docker 私有仓库 docker配置文件 vim /etc/docker.daemon.josn { “insecury-registries”: ["192.168.232.10:5000],#指定私有仓库 } docker pull/push 19…

chatgpt赋能python:Python中引入其他包的指南

Python中引入其他包的指南 Python是一种流行的编程语言,拥有丰富的开源软件包和库。许多Python程序将使用其他包来增强其功能。在本文中,我们将探讨如何在Python项目中使用和引入其他包。 什么是Python包和库? Python包是一组可重复使用的…

冈萨雷斯DIP第7章知识点

文章目录 7.3 相关7.5 基图像7.6 傅里叶相关变换7.6.1 离散哈特利变换7.6.3 离散正弦变换 DIP的其他章节都好复习,唯独就这个第7章小波变换。复习起来十分头大,所以我开始写他的课后题,雾。 7.3 相关 已知两个连续函数 f ( x ) f(x) f(x) …

单链表【数据结构、数组模拟】

不采用动态链表 一般情况下,都是直接使用下面的代码进行模拟的 struct Node{int val;Node *next; }然后当我们需要进行创建一个新的节点时,都需要使用new Node(),非常慢!!! 数据规模一般都是10w~100w的数…

Android性能分析工具:Perfetto介绍及用法

本文字数:8409字 预计阅读时间:22分钟 概念 什么是Perfetto?Perfetto是Android 10中引入的全新平台级跟踪工具。这是适用于Android、Linux和Chrome的更加通用和复杂的开源跟踪项目。与Systrace不同,它提供数据源超集,可让您以pro…

【6.09 代随_52day】 最长递增子序列、最长连续递增序列、最长重复子数组

最长递增子序列、最长连续递增序列、最长重复子数组 最长递增子序列1.方法图解步骤递归代码 最长连续递增序列1.动态规划的方法图解步骤代码 最长重复子数组图解步骤代码 最长递增子序列 力扣连接:300. 最长递增子序列(中等) 1.方法 dp[i]…

开源 Golang 微服务入门三:ORM 框架 GORM

前言 前两篇笔记分别介绍了 Golang 微服务 HTTP 框架 Hertz 和 Golang 微服务 RPC 框架 Kitex,本文将要介绍面向ORM(持久层)框架 GORM。 官方文档 GORM 是面向 Golang 语言的一种 ORM(持久层)框架,支持多种数据库的接入,例如 MySQL&#x…

【TCP/IP】多进程服务器的实现(进阶) - 僵尸进程及wait、waitpid函数

目录 僵尸(Zombie)进程 僵尸进程的产生机制 僵尸进程的危害 僵尸进程的销毁 wait函数 waitpid函数 进程管理在网络编程中十分重要,如果未处理好,将会导致出现“僵尸进程”,进而影响服务器端对进程的管控。 僵尸(Zombie)进程 第一次听到…

继万物分割SAM之后,万物识别模型RAM来了!

Recognize Anything: A Strong Image Tagging Model 提出“识别万物模型”(Recognize Anything Model,RAM),用于图像打标签。RAM 可以高精度地识别任何常见类别。RAM 引入了图像打标签的一个新范式,利用大规模的图像-文…

如何在RPC和RESTful之间做选择?

不同软件系统之间的通信可以通过RPC(远程过程调用)或RESTful(表现层状态转移)协议来建立,这些协议允许多个系统在分布式计算中协同工作。 这两种协议在设计哲学上有所区别。RPC使得可以像调用本地过程一样调用服务器上…

AI时代已经到来,不想被抛弃,特别是传统产业的你,怎么办?

由于ChatGTP的惊人表现,本来已经趋于平淡的AI,又火爆起来。毫无疑问,人类已经进入了AI时代,AI将渗入到各行各业,渗入到生活与工作的每个方面。这是一场新的工业革命,很多工作都将消失,但也会产生…

【Python】Python进阶系列教程-- Python3 MySQL - mysql-connector 驱动(三)

文章目录 前言创建数据库连接创建数据库创建数据表主键设置 插入数据批量插入查询数据where 条件语句排序Limit删除记录更新表数据删除表 前言 往期回顾: Python进阶系列教程-- Python3 正则表达式(一)Python进阶系列教程-- Python3 CGI编程…