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”。

在这里插入图片描述

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

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

相关文章

ctfshow-web-红包题第六弹

0x00 前言 CTF 加解密合集CTF Web合集 0x01 题目 0x02 Write Up 首先跑一下字典,这里用的dirmap,可以看到有一个web.zip 下载下来之后发现是一个网站备份,备份的是check.php.bak 然后接着看,可以看到这里不太可能是sql注入,有…

centos7安装nacos

解决 Nacos 国内下载速度缓慢的问题 方案 1. 选择相应的版本源码下载 1.1 依次点击 1、2、3 选中我们的最新稳定版本 1.4.0 1.2 点击下载 ZIP、或者 clone 也行,这里都可以 2. 本地编译 2.1 预备环境准备 2.2 解压编译 3. 启动验证 3.1 解压 3.2 启动服务器 3…

k8s service (三)

K8s service (三) LoadBalancer类型的Service LoadBalancer和NodePort其实是同一种方式,目的都是向外暴露一个端口,区别在于LoadBalancer会在集群的外部再来做一个负载均衡设备,而这个设备需要外部环境支持的,外部服务发送到这…

excel 分组排序

excel中会遇到对不同分组数据进行排序,比如对于不同班级里的学生按照分数高低进行升序排序,可以采用如下公式 SUMPRODUCT((A$2:A$12A2)*(C$2:C$12>C2))1 如果需要 进行降序排序,将公式中的大于号替换为小于号即可

Cinema 4D软件安装包分享(附安装教程)

目录 一、软件简介 二、软件下载 一、软件简介 Cinema 4D(简称C4D)是由德国Maxon Computer公司开发的一款三维动画渲染和建模软件,广泛应用于影视、广告、工业设计等领域。C4D因其高效率、易用性和强大的功能而受到广大设计师和艺术家的青睐…

vue 实现word文档页面内预览docx-preview 和 vue-office

1.先下载引入 npm i docx-preview --save import { renderAsync } from docx-preview;2.使用 fetch(url) .then((response) > {let docData response.blob(); //将文件转换成bolb形式//选择要渲染的元素let childRef document.getElementsByClassName("childRef&qu…

npm下载最后会卡顿很长时间

npm下载最后会卡顿很长时间 这几天在使用npm下载东西时会出现,快结束了,但是进度条就是卡在那,要等好久才能下载完 解决办法 换阿里云的源 更换源:npm config set registry https://registry.npmmirror.com/ 查看源&#xff…

SQL Server软件安装包分享(附安装教程)

目录 一、软件简介 二、软件下载 一、软件简介 SQL Server是一种关系型数据库管理系统,由美国微软公司开发。它被设计用于存储、管理和查询数据,被广泛应用于企业级应用、数据仓库和电子商务等场景。 以下是SQL Server软件的主要特点和功能&#xff1…

【PHP】PHP基本语法

1、PHP标记 当解析一个文件时&#xff0c;PHP 会寻找起始和结束标记&#xff0c;也就是 <?php 和 ?>&#xff0c;告诉 PHP 开始和停止解析二者之间的代码。此种解析方式使得 PHP 可以被嵌入到各种不同的文档中去&#xff0c;而任何起始和结束标记之外的部分都会被 PHP…

Pytorch-day07-模型保存与读取

PyTorch 模型保存&读取 模型存储模型单卡存储&多卡存储模型单卡读取&多卡读取 1、模型存储 PyTorch存储模型主要采用pkl&#xff0c;pt&#xff0c;pth三种格式,就使用层面来说没有区别PyTorch模型主要包含两个部分&#xff1a;模型结构和权重。其中模型是继承n…

spring cloud整合spring boot,整合nacos、gateway、open-feign等组件

补充&#xff1a; 想看具体详情的可以看我的github链接&#xff1a;codeking01/platform-parent: spring cloud整合spring boot、nacos、gateway、open feign等组件 (github.com) 由于我升级了jdk17&#xff0c;所以用上了spring boot 3.0.2了。 踩坑无数&#xff0c;一堆无用文…

通过C实现sqlite3操作,导入电子词典

#include <stdio.h> #include <string.h> #include <stdlib.h> #include <sqlite3.h> int main(int argc, const char *argv[]) {//创建并打开一个数据库sqlite3 *db NULL;if(sqlite3_open("./dict.db",&db) ! SQLITE_OK){printf("…

宠物小程序开发

在当今社会&#xff0c;宠物已成为许多人生活中不可或缺的一部分。宠物市场的持续增长为创业者提供了巨大的商机。然而&#xff0c;作为一个创业者&#xff0c;要在竞争激烈的宠物市场中脱颖而出并不容易。因此&#xff0c;开发一个专属于自己的宠物小程序成为了解决这一难题的…

jdk 03.stream

01.集合处理数据的弊端 当我们在需要对集合中的元素进行操作的时候&#xff0c;除了必需的添加&#xff0c;删除&#xff0c;获取外&#xff0c;最典型的操作就是集合遍历 package com.bobo.jdk.stream; import java.util.ArrayList; import java.util.Arrays; import java.ut…

测试框架pytest教程(10)自定义命令行-pytest_addoption

pytest_addoption pytest_addoption是pytest插件系统中的一个钩子函数&#xff0c;用于向pytest添加自定义命令行选项。 在pytest中&#xff0c;可以使用命令行选项来控制测试的行为和配置。pytest_addoption钩子函数允许您在运行pytest时添加自定义的命令行选项&#xff0c;…

中国芯,寻找新赛道迫在眉睫

北京华兴万邦管理咨询有限公司 商瑞 陈皓 近期国内半导体行业的热点可以用两个“有点多”来描述&#xff0c;一个是中国芯群体中上市公司股价闪崩的有点多&#xff0c;另一个是行业和企业的活动有点多。前者说明了许多国内芯片设计企业&#xff08;fabless商业模式&#xff09;…

Ubuntu20 安装 libreoffice

1 更新apt-get sudo apt-get update2 安装jdk 查看jdk安装情况 Command java not found, but can be installed with:sudo apt install default-jre # version 2:1.11-72, or sudo apt install openjdk-11-jre-headless # version 11.0.138-0ubuntu1~20.04 sud…

在Jupyter Notebook中添加Anaconda环境(内核)

在使用前我们先要搞清楚一些事&#xff1a; 我们在安装anaconda的时候它就内置了Jupyter Notebook&#xff0c;这个jupyter初始只有base一个内核&#xff08;显示为Python3&#xff09; 此后其实我们就不需要重复安装完整的jupyter notebook了&#xff0c;只要按需为其添加新的…

【hibernate validator】(五)分组约束

首发博客地址 https://blog.zysicyj.top/ 一、请求组 1. 人组 package org.hibernate.validator.referenceguide.chapter05;public class Person { NotNull private String name; public Person(String name) { this.name name; } // getters and sette…

基于寄生捕食算法优化的BP神经网络(预测应用) - 附代码

基于寄生捕食算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码 文章目录 基于寄生捕食算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码1.数据介绍2.寄生捕食优化BP神经网络2.1 BP神经网络参数设置2.2 寄生捕食算法应用 4.测试结果&#xff1a;5…