Linux 计算机网络基础概论
一、网络基本概念
1、网络
网络是由若干节点和连接这些结点的链路组成,网络中的结点可以是计算机、交换机、路由器等设备。通俗地说就是把不同的主机连接起来就构成了一个网络,构成网路的目的是为了信息交互、资源共享。
网络设备有:交换机、路由器、集线器
传输介质有:双绞线、同轴电缆、光纤
简单的网络示意图:
2.互联网
把多个网络连接起来就构成了互联网。目前最大的互联网就是我们常说的因特网。
简单的互联网示意图:
3.IP地址(用来唯一标识一台主机)
IP地址就是给因特网上的每一个主机(或路由器)的每一个接口分配一个在全世界范围内唯一的标识符。IP地址因其特殊的结构是我们可以在因特网上很方便地进行寻址。
(1)IP地址的两种类别格式
IP地址有分IPV4和IPV6两种类别格式,IPV4是类似“A.B.C.D”的格式,它是32位的,用“.”分成4段,每个段是8个位(值位0~255),用10进制表示。IPV6是128位,格式类似“XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX”,用“:”分成8个段,每个段16个位,用4个16进制数表示。
IPV4地址示例:“192.168.31.1”
IPV6地址示例:“2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b”
接下来描述的IP地址默认都指的是IPV4的地址。为了便于寻址,了解目标主机的位置,每个IP地址由网络号和主机号两部分组成。同一个物理网络上的所有主机都是用同一个网络号,只是主机号不同。
(3)IP地址组成
(4)IP地址分类
由于每类地址的开头是固定的,因此每类地址都有自己的范围:
A类IP地址范围:0.0.0.0~127.255.255.255
B类IP地址范围:128.0.0.0~191.255.255.255
C类IP地址范围:192.0.0.0~223.255.255.255
D类和E类一般不使用。
(5)IP地址的特点
寻址特别方便,可以方便地知道是哪个网络中的哪个主机。
使用命令“ifconfig”可以在Linux查看自己的IP地址,如下图:
主机环回地址是用来测试的,每台主机都有这个地址,在测试程序的时候就会用这个地址,127代表本主机,所以发给127的数据是不会离开本主机的,它会从网络的发送缓冲区直接导到接收缓冲区,这个数据不会离开网络。如果要测试这一段网络,要通过网络上两台不同的主机之间通讯就必须使用局域网的IP地址。在网络中如果两台主机要通讯,那么这两台主机要通过网络设备以及传输介质是首先在物理层面要是连通的。看两台主机之间的物理地址是否连通,需要用到ping命令。
主机环回是指地址为 127.0.0.1 的任何数据包都不应该离开计算机(主机),发送它的时候不是被发送到本地网络或互联网,它只是被自己“环回”,并且发送数据包的计算机成为接收者。这种形式的地址不得出现在主机之外。因此,拾取定向到 127.0.0.1 的流量的路由器应该立即丢弃数据包。这可确保没有专门用于主机上的流量进入 Internet。
4.MAC地址
在局域网中,硬件地址又称为物理地址或者MAC地址,长度48位,是固化在计算机适配器的ROM中的地址。因此假定连接在局域网上的一台计算机的适配器坏了而我们更换了一个新的适配器,那么这台计算机的局域网的地址也就改变了,虽然这台计算机的地理位置没有发生变化。其次当我们把笔记本电脑从一个城市带到另一个城市时,虽然物理位置改变了,但是电脑在局域网中的“地址”不会改变。由此可见,局域网上某个主机的“地址”根本不能告诉我们这台主机位于什么地方。在网络上方便地寻找某个主机,还得靠IP地址来实现。
5.端口
端口是表示主机上一个应用程序的代号,就是用来表示一个主机上的进程。因为IP虽然可以唯一标识一个主机,但是两个主机之间通讯往往是两个主机上的进程,所以就需要端口。
常见的端口:
HTTP协议用的80号端口
SSH远程登录协议用的22号端口
查看端口号的命令netstat -natp
6.套接字
可以通过套接字进行两台主机的数据的发送和接收。
套接字的地址由IP地址和端口号组成,由套接字的地址指定是哪台主机上的哪个进程。
最终通过套接字提供的是一个跨越主机的进程间通讯的能力。
7.网络协议
网络协议就是一组网络规则的集合,是我们共同遵守的约定或标准。
网络协议有多种,常见的协议:
HTTP:超文本传输协议
FTP: 文件传输协议
TELNET : 是internet 远程登陆服务的标准协议。
TCP : 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议
UDP :用户数据报协议
IP : Internet Protocol 简称 IP,又译为网际协议或互联网协议
ICMP :因特网控制报文协议
ARP : 地址解析协议,是根据IP地址获取MAC地址的协议
RARP : 逆地址解析协议
二、网络分层模型
OSI的7层模型 和 tcp/ip协议族体系4层结构:
1.数据链路层
数据链路层的主要功能是:通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。
2.网络层
网络层实现数据包的选路和转发。广域网或者说互联网通常使用众多分级的路由器来连接分散的主机或者局域网,因此,通信的两台主机一般不是直接相连的,而是通过多个中间结点(路由器)连接的。网络层的任务就是选择这些中间结点,以确定两台主机之间的通信路径。 同时,网络层对上层协议隐藏了网络拓扑连接的细节,使得在传输层和网络应用程序
看来,通信的双方是直接相连的。
3.传输层
传输层为两台主机上的应用程序提供端到端的通信。 与网络层使用的逐跳通信的方式不同,传输层只关心通信的起始端和目的端,而不在乎数据包的中转过程。
4.应用层
应用层负责处理应用程序的逻辑。
三、网络应用程序通信流程
如下图,应用程序A要将数据”hello” 传给网络上另外一台主机上的应用程序 B, 数据“hello”从应用层发送给传输层后,传输层在数据前面加上 tcp 协议或 udp 协议的报头,将整条报文发给网络层,网络层添加自己的IP报头,再将整条数据发送给数据链路层。数据链路层将数据封装成能在网络中独立传输的数据单元,即数据帧。封装好的数据帧通过网络传输到另一台主机,然后再从下层依次拆包,将数据部分送往应用层。应用程序B就得到了数据”hello”。
相关文章:

Linux 计算机网络基础概论
一、网络基本概念 1、网络 网络是由若干节点和连接这些结点的链路组成,网络中的结点可以是计算机、交换机、路由器等设备。通俗地说就是把不同的主机连接起来就构成了一个网络,构成网路的目的是为了信息交互、资源共享。 网络设备有:交换机…...

深入理解 C++ 中的 std::cref、std::ref 和 std::reference_wrapper
深入理解 C 中的 std::cref、std::ref 和 std::reference_wrapper 在 C 编程中,有时候我们需要在不进行拷贝的情况下传递引用,或者在需要引用的地方使用常量对象。为了解决这些问题,C 标准库提供了三个有用的工具:std::cref、std:…...

在其他python环境中使用jupyter notebook
1、切换到目标python环境 activate 目标python环境 2、安装notebook内核包 pip install ipykernel 3、加环境加入到notebook中 python -m ipykernel install 目标python环境 4、切换到base环境 activate base 5、打开目标项目的对应盘 如果,项目在c盘&…...

计算机网络-笔记-第二章-计算机网络概述
目录 二、第二章——物理层 1、物理层的基本概念 2、物理层下面的传输媒体 (1)光纤、同轴电缆、双绞线、电力线【导引型】 (2)无线电波、微波、红外线、可见光【非导引型】 (3)无线电【频谱的使用】 …...
Hive字符串数组json类型取某字段再列转行
一、原始数据 acctcontent1232313[{"name":"张三","code":"上海浦东新区89492jfkdaj\r\n福建的卡"...},{"name":"狂徒","code":"select * from table where aa1\r\n and a12"...},{...}]...…...

ElementUI Table 翻页缓存数据
Element UI Table 翻页保存之前的数据,网上找了一些,大部分都是用**:row-key** 和 reserve-selection,但是我觉得有bug,我明明翻页了…但是全选的的个框还是勾着的(可能是使用方法不对,要是有好使的…请cute我一下…感谢) 所以自己写了一个… 思路: 手动勾选的时候,将数据保存…...
使用 AutoGPTQ 和 transformers 让大语言模型更轻量化
大语言模型在理解和生成人类水平的文字方面所展现出的非凡能力,正在许多领域带来应用上的革新。然而,在消费级硬件上训练和部署大语言模型的需求也变得越来越难以满足。 🤗 Hugging Face 的核心使命是 让优秀的机器学习普惠化 ,而…...
AUTOSAR规范与ECU软件开发(实践篇)6.5 BswM模块概念与配置方法介绍
目录 1、BswM模块概念与配置方法介绍 (1) BswMModeRequestPort配置 (2) ModeCondition与LogicalExpression配置...

1.1 VMware Workstation与Kali的安装和配置1
资源见专栏第一篇文章https://blog.csdn.net/algorithmyyds/article/details/132457258 安装VMware 不多加赘述,直接按顺序安装即可。 有以下需注意的地方: 1.建议选择增强型服务; 2.不要加入体验改进计划。是否开启提示更新看你的想法&…...

DDR与PCIe:高性能SoC的双引擎
SoC芯片无处不在,小到家电控制的MCU,大到手机芯片,我们都会接触到。如今大部分芯片设计公司都在开发SoC芯片,一颗SoC芯片可以集成越来越多的功能,俨然它已成为IC设计业界的焦点。 高性能、高速、高带宽的互联和存储的…...

C#_特性反射详解
特性是什么? 为程序元素额外添加声明信息的一种方式。 字面理解:相当于把额外信息写在干胶标签上,然后将其贴在程序集上。 反射是什么? 反射是一种能力,运行时获取程序集中的元数据。 字面理解:程序运行…...
【跟小嘉学 Rust 编程】十三、函数式语言特性:迭代器和闭包
系列文章目录 【跟小嘉学 Rust 编程】一、Rust 编程基础 【跟小嘉学 Rust 编程】二、Rust 包管理工具使用 【跟小嘉学 Rust 编程】三、Rust 的基本程序概念 【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念 【跟小嘉学 Rust 编程】五、使用结构体关联结构化数据 【跟小嘉学…...

时间复杂度和空间复杂度
全文目录 算法的复杂度时间复杂度大O渐进表示法空间复杂度常见算法复杂度对比 算法的复杂度 算法在编写成可执行程序后,运行时需要耗费时间资源和空间(内存)资源 。因此衡量一个算法的好坏,一般是从时间和空间两个维度来衡量的,即时间复杂度…...
mac docker 卡住解决
文章目录 1、问题简述2、重新安装docker3、docker守护进程4、问题解决方案 1、问题简述 在docker desktop上更改了daemon.json的文件内容,应该是参数写的有问题,修改完配置再启动docker desktop就失败了,然后想着卸载docker desktop…...

linux/centos zookeeper 使用记录
配置cfg 下载zookeeper-3.4.14.tar.gz负责到centos服务器解压 /xxx/zookeeper-3.4.14/conf/下创建zoo.cfg文件并配置以下属性,/bsoft/zookeeperdata/目录先预先创建 tickTime2000 initLimit10 syncLimit5 dataDir/bsoft/zookeeperdata/ clientPort2181zk启动/重启/关…...

用wireshark流量分析的四个案例
目录 第一题 1 2 3 4 第二题 1 2 3. 第三题 1 2 第四题 1 2 3 第一题 题目: 1.黑客攻击的第一个受害主机的网卡IP地址 2.黑客对URL的哪一个参数实施了SQL注入 3.第一个受害主机网站数据库的表前缀(加上下划线例如abc) 4.…...
Oracle 时区详解
1 简介 由于地球经纬度及地球自转引起的经度方向,不同的经度的地方,所感受到的昼夜是不同 的。有关国际会议决定将地球表面按经线从东到西,每隔经度15度划分一个时区,并且规定 相邻区域的时间相差1小时。 这就是时区的由来。 而实际使用中,…...

仿mudou高性能高并发服务器
"这个结局是我的期待,我会一直为你祝福。" 项目实现目标: 仿muduo库One Thread One Loop式主从Reacto模型实现高并发服务器。通过实现高并发服务器组件,简洁快速完成搭建一个高性能服务器。并且,通过组件内提供的不同应⽤层协议⽀…...
vue权限管理——菜单权限设置
1.前提:后端提供菜单对应数据 此处用mockjs模拟 const menuList [{id: 1, path:/uploadSpec,authName: "上传spec", icon: User, children:[], rights:[view,add,edit,delete]},{id: 2, path:/showSpec, authName: "Spec预览", icon: DataAn…...
【LeetCode】228.汇总区间
题目 给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。 列表中的每个区间范围 [a,b]…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...

linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...

Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...

前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...

ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...
scikit-learn机器学习
# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...