当前位置: 首页 > news >正文

计算机网络的基本概念

IP地址(Internet Protocol Address)是指在计算机网络中每个设备的唯一标识符。它用于区分不同设备并在网络中进行数据包的路由。我们平常所使用的IP地址主要版本:

IPv4

  • 格式: 由四个整数(0到255)组成,以点分十进制表示,比如 192.168.1.1
  • 地址空间: 约42亿个地址,但由于网络划分和地址分配,实际可用地址更少。
  • 种类:
    • 公有IP: 公开可在互联网上使用的IP地址。
    • 私有IP: 仅在局域网内部使用的IP地址,通常在以下范围内:
      • 10.0.0.0 到 10.255.255.255
      • 172.16.0.0 到 172.31.255.255
      • 192.168.0.0 到 192.168.255.255

IP地址在网络通信中扮演着关键角色,是互联网和各类私有网络正常运作的基础。

 端口号是在网络通信中,用于区分不同服务或应用程序的逻辑地址。它们与IP地址共同组成网络上设备的地址信息,使数据可以被正确地路由到特定的应用程序。以下是关于端口号的一些重要信息:

1. 端口号的范围

  • 范围: 端口号的取值范围通常是0到65535。
  • 类型:
    • 知名端口(Well-Known Ports): 0 - 1023,通常被操作系统或一些程序保留。例如,HTTP使用端口80,HTTPS使用端口443,SMTP使用端口25。
    • 注册端口(Registered Ports): 1024 - 49151,分配给特定应用程序或服务,用于更复杂的服务。
    • 动态或私有端口(Dynamic/Private Ports): 49152 - 65535,通常由用户应用程序动态分配。

2. 端口号的功能

  • 区分服务: 在同一台服务器上,可以通过不同的端口号来区分同一IP地址下的不同服务。例如,Web服务器和FTP服务器可以共用同一IP地址,但分别使用不同的端口号。
  • 促进多任务: 允许多个应用程序或服务同时运行在同一台设备上而不会相互干扰。

3. 端口号的用法示例

  • 当您在浏览器中输入一个网址时,通常会使用HTTP或HTTPS协议,并相应地连接到80或443端口。
  • 邮件客户端使用SMTP协议通常会连接到25端口或587端口。
  • 数据库服务如MySQL通常使用3306端口。

4. 端口扫描和安全性

  • 端口扫描是攻击者常用的侦查技术,以找出哪些端口开放并寻找潜在的攻击点。
  • 因此,网络安全策略中往往会禁止不必要的端口,或者使用防火墙来控制对特定端口的访问。

总结

端口号在网络通信中扮演着重要角色,使得多个应用和服务能够在同一设备上正常运行并进行有效的通信。正确管理和配置端口号是网络安全和性能的重要组成部分。

网络协议是指在计算机网络中,不同设备之间通信时遵循的规则和标准。它们定义了数据如何被格式化、传输、处理和接收。以下是一些关于网络协议的重要信息:

1. 协议的基本组成

  • 语法: 定义数据格式和传输结构,例如数据包的格式。
  • 语义: 定义协议中各部分的功能或意义,包括控制信息的含义。
  • 时间: 定义数据传输的时序和控制方法,即数据的发送和接收顺序。

2. 常见的网络协议

  • TCP/IP (传输控制协议/互联网协议): 互联网的基础协议,确保数据在不同网络之间的传输。

    • TCP: 确保数据传输的可靠性,使用序列号和确认应答。
    • IP: 负责路由和寻址。
  • HTTP/HTTPS (超文本传输协议): 用于网页访问的协议,HTTPS是加密的HTTP,增加了安全性。

  • FTP (文件传输协议): 用于在网络上传输文件。

  • SMTP (简单邮件传输协议): 用于发送电子邮件。

  • IMAP/POP3: 用于接收电子邮件的协议。

  • DNS (域名系统): 将域名解析为IP地址,实现人类可读域名与机器可读地址之间的转换。

3. 协议的分层模型

  • OSI模型: 是一个标准的网络协议分层模型,分为七层:

    1. 物理层
    2. 数据链路层
    3. 网络层
    4. 传输层
    5. 会话层
    6. 表示层
    7. 应用层
  • TCP/IP模型: 主要分为四层:

    1. 网络接口层
    2. Internet层
    3. 传输层
    4. 应用层

4. 协议的重要性

  • 互操作性: 不同设备和系统之间能够顺利通信。
  • 标准化: 提供一个公认的框架,使得硬件和软件开发者能够设计兼容的产品。
  • 可靠性: 确保数据传输的完整性和正确性。

5. 总结

网络协议是计算机和其他设备之间实现有效通信的基石,通过遵循一系列规则和标准,确保数据的准确传输和处理。熟悉常见的网络协议有助于理解网络的运作和解决相关问题。

 

网络协议分层是将复杂的网络通信过程划分成多个层次,以便于设计、实现和管理。以下是网络协议的两种主要分层模型:OSI模型和TCP/IP模型。

1. OSI模型

开放系统互联(OSI)模型是一种理论模型,分为七层:

  1. 物理层 (Physical Layer):

    • 负责实际的物理连接和数据传输。
    • 处理电缆、信号、频率等。
  2. 数据链路层 (Data Link Layer):

    • 负责在局域网内的帧传输和错误检测。
    • 确保数据从一个节点到另一个节点的可靠传输。
    • 常见协议:Ethernet、PPP。
  3. 网络层 (Network Layer):

    • 负责数据包的路由和转发。
    • 处理网络间的通信和寻址。
    • 常见协议:IP(互联网协议)。
  4. 传输层 (Transport Layer):

    • 负责数据的完整性和可靠性。
    • 提供端到端的通信,能够控制数据流。
    • 常见协议:TCP(传输控制协议)、UDP(用户数据报协议)。
  5. 会话层 (Session Layer):

    • 负责建立、管理和终止会话。
    • 确保会话之间的数据交换顺利进行。
  6. 表示层 (Presentation Layer):

    • 处理数据的格式化和转换。
    • 确保不同系统能理解数据的语义。
  7. 应用层 (Application Layer):

    • 负责支持应用程序的网络功能。
    • 提供用户界面和支持用户交互。
    • 常见协议:HTTP、FTP、SMTP。

2. TCP/IP模型

TCP/IP模型是互联网工作的实际基础,分为四层:

  1. 网络接口层 (Network Interface Layer):

    • 相当于OSI模型的物理层和数据链路层。
    • 负责物理连接和数据帧的传输。
  2. 互联网层 (Internet Layer):

    • 相当于OSI模型的网络层。
    • 负责数据包的路由和寻址。
    • 主要协议:IP(互联网协议)。
  3. 传输层 (Transport Layer):

    • 相当于OSI模型的传输层。
    • 提供端到端的运输服务和错误检测。
    • 主要协议:TCP(可靠传输)、UDP(不可靠传输)。
  4. 应用层 (Application Layer):

    • 包含了OSI模型的应用层、表示层和会话层。
    • 提供网络服务给用户应用程序。
    • 常见协议:HTTP、FTP、DNS等。

总结

协议分层提供了一个结构化的方式来理解和管理网络通信。每一层都有特定的功能和责任,使得复杂的网络操作变得更加可管理和可扩展。通过这种结构化的设计,开发人员和网络工程师可以更容易地设计、实现和故障排除网络。

在计算机网络中,“封装”是指将数据分层处理的过程。在网络传输过程中,数据从应用层到物理层依次被封装成不同的协议数据单元。封装的主要目的是为了解决不同层之间的数据传输和处理问题。以下是封装的过程及其相关概念。

“分用”通常指的是将某个事物或资源进行分配、分开使用的过程。在不同的上下文中,它可能有不同的含义。

客户端”通常指的是在计算机网络中,向服务器请求服务或资源的计算机或应用程序。

“服务器”是指在计算机网络中,提供服务、资源或数据给其他计算机(客户端)的计算机或程序。

“请求”在计算机网络和客户端-服务器架构中,指的是客户端向服务器发送的消息,旨在获取资源或服务。

“响应”是在计算机网络中,服务器对客户端请求的回复。

两台主机之间的网络通信涉及多个步骤和协议,以下是一个简要的概述:

1. 网络基础

  • 主机:指连接到网络的计算机或设备。
  • IP地址:每台主机在网络中都有一个唯一的IP地址,用于标识和定位。

2. 通信协议

  • TCP/IP协议栈:网络通信通常基于TCP/IP协议栈,包括:
    • 应用层:如HTTP、FTP、SMTP等,负责具体的应用数据传输。
    • 传输层:如TCP(面向连接)和UDP(无连接),负责数据的分段和传输。
    • 网络层:负责数据包的路由和转发,使用IP协议。
    • 链路层:负责物理传输,使用以太网、Wi-Fi等技术。

3. 通信过程

  • 建立连接

    • 在TCP通信中,使用三次握手(Three-Way Handshake)建立连接:
      1. 主机A发送SYN请求到主机B。
      2. 主机B回复SYN-ACK确认。
      3. 主机A发送ACK确认,连接建立。
  • 数据传输

    • 一旦连接建立,主机A和主机B可以通过TCP或UDP协议进行数据传输。
    • 数据被分段并封装成数据包,包含源IP、目标IP、源端口、目标端口等信息。
  • 关闭连接

    • 在TCP通信中,使用四次挥手(Four-Way Handshake)关闭连接:
      1. 主机A发送FIN请求。
      2. 主机B回复ACK确认。
      3. 主机B发送FIN请求。
      4. 主机A回复ACK确认,连接关闭。

4. 路由与转发

  • 数据包在网络中通过路由器进行转发,路由器根据目标IP地址决定数据包的转发路径。

5. 安全性

  • 网络通信可以通过加密(如SSL/TLS)来保护数据的安全性,防止数据在传输过程中被窃取或篡改。

6. 故障处理

  • 网络通信中可能会遇到丢包、延迟等问题,TCP协议会通过重传机制来确保数据的可靠传输。

通过以上步骤,两台主机可以实现有效的网络通信,进行数据交换和信息传递。

两台主机之间的网络通信流程可以分为以下几个主要步骤:

1. 准备阶段

  • 配置网络:确保两台主机在同一网络中,或通过路由器连接。
  • 分配IP地址:每台主机需要有唯一的IP地址。

2. 建立连接

  • 三次握手(TCP)
    1. SYN:主机A发送SYN(同步)请求到主机B,请求建立连接。
    2. SYN-ACK:主机B接收到SYN后,回复SYN-ACK(同步-确认)。
    3. ACK:主机A收到SYN-ACK后,发送ACK(确认)给主机B,连接建立。

3. 数据传输

  • 数据分段:应用层数据被分段,封装成数据包。
  • 发送数据包:主机A通过网络将数据包发送到主机B。
  • 接收数据包:主机B接收到数据包,进行解封装并处理数据。

4. 确认与重传

  • 确认接收:主机B向主机A发送ACK确认已接收到数据。
  • 重传机制:如果主机A未收到ACK,会重传数据包。

5. 关闭连接

  • 四次挥手(TCP)
    1. FIN:主机A发送FIN(结束)请求,表示要关闭连接。
    2. ACK:主机B回复ACK确认。
    3. FIN:主机B发送FIN请求,表示也要关闭连接。
    4. ACK:主机A回复ACK确认,连接关闭。

6. 故障处理

  • 监测与恢复:在数据传输过程中,监测丢包、延迟等问题,并根据需要进行重传或调整。

7. 结束

  • 通信完成:两台主机完成数据交换,连接关闭,释放资源。

这个流程确保了两台主机之间的可靠通信,能够有效地传输数据并处理可能出现的问题。

相关文章:

计算机网络的基本概念

IP地址(Internet Protocol Address)是指在计算机网络中每个设备的唯一标识符。它用于区分不同设备并在网络中进行数据包的路由。我们平常所使用的IP地址主要版本: IPv4 格式: 由四个整数(0到255)组成,以点…...

Python 爬虫项目实战三:GitHub 用户信息抓取与分析

一、项目背景 爬虫技术不仅限于获取网页内容,还可以用于获取和分析特定网站的用户信息。本文将演示如何使用Python编写爬虫程序,从GitHub网站抓取用户信息,并进行简单的数据分析。 二、环境准备 在开始之前,请确保你已经安装了…...

xtrabackup搭建MySQL 8.0 主从复制

xtrabackup搭建MySQL 8.0 主从复制 安装MySQL 8.0.37安装xtrabackupGTIDs初始化从库参考:GTID概述GTID相较与传统复制的优势GTID自身存在哪些限制GTID工作原理简单介绍如何开启GTID复制GTID与传统模式建立复制时候语句的不同点传统复制GTID复制 GTID同步状态简单解析…...

Java程序员接单分享

作为一名Java程序员,这阵子通过承接些小型项目,我顺利跨过了月薪破万的门槛。这些项目虽小,却如同磨刀石般,让我在实战中发现了自身技术栈的棱角与不足,尤其是意识到了在Java这一浩瀚技术海洋中的诸多未知领域。我深知…...

【HarmonyOS NEXT星河版开发学习】小型测试案例01-今日头条置顶练习

个人主页→VON 收录专栏→鸿蒙开发小型案例总结​​​​​ 基础语法部分会发布于github 和 gitee上面 ​ 前言 本系列可能是博客首发,鸿蒙开发星河版是一个全新的版本,由于参考视频较少鸿蒙开发不被重视导致csdn上面并没有全套的学习路线,…...

C语言----计算开机时间

计算开机时间 实例说明 编程实现计算开机时间&#xff0c;要求在每次开始计算开机时间时都能接着上次记录的结果向下记录。 实现过程&#xff1a; 1. 在TC中创建一个C文件。 2. 引用头文件&#xff0c;代码如下: #include <stdio.h> 3. 定义结构体time&#xff0c;用来…...

批发行业进销存-登录适配 android 横竖屏幕 源码CyberWinApp-SAAS 本地化及未来之窗行业应用跨平台架构

一、横竖屏切换的意义 以下是移动端横屏竖屏可切换在进销存中的一些重要应用&#xff1a; a、数据录入与查看 在录入商品信息、库存数量等大量数据时&#xff0c;横屏模式可以提供更宽阔的输入区域&#xff0c;减少输入错误。例如&#xff0c;在输入长串的商品编码或详细的商…...

js功能(1)

1、readonly 应用于元素&#xff1a;readonly 可以应用于 <input> 和 <textarea> 元素。 用户界面表现&#xff1a;当元素设置为 readonly 时&#xff0c;用户不能更改输入框中的值&#xff0c;但可以选中和复制文本&#xff0c;且表单包含该输入字段的值可以被提交…...

微信小程序乡村医疗系统,源码、部署+讲解

目录 摘 要 Abstract 1 绪论 1.1 研究背景及意义 1.2 研究现状 1.3 研究内容 2 相关技术介绍 2.1 Java 语言 2.2 MySQL 数据库 2.3 Spring Boot 框架 2.4 B/S 结构 2.5 微信小程序 3 系统分析 3.1 可行性分析 3.1.1 经济可行性 3.1.2 技术可行性…...

完美解决pip命令版本冲突导致对应版本模块包无法安装的问题

解决步骤 使用pip更新/降低指定模块包命令格式降低pip自身至指定版本的命令再次换源安装指定模块包 在对 FasterNet 这篇论文源码复现过程中&#xff0c;我们首先需要安装相关依赖文件&#xff08; path/to/your/requirements.txt&#xff09; -extra-index-url https://down…...

5.1-软件工程基础知识-软件工程概述

软件工程诞生原因 了解 早期的软件&#xff1a;主要是指采用个体工作方式实现的程序。第一次软件危机&#xff1a;20世纪60年代中期 典型表现有软件质量低下、项目无法如期完成、项目严重超支等因为软件而导致的重大事故时有发生。 软件工程的诞生&#xff1a;1968年在NATO会…...

极简聊天室-websocket版

再写一个极简聊天室的websocket版&#xff0c;在本例中&#xff0c;websocket仅用于服务器向客户端传输信息&#xff0c;客户端向服务器发送信息是传统的http post方式&#xff0c;用axios来实现的&#xff0c;当然websocket本身是支持双向通信&#xff0c;主要是为了方便跟前面…...

QT学生管理系统 开发文档

目录 第一章 UI界面设计与开发 登录界面 主界面 UI美化 第二章 数据库设计与开发 数据库设计 连接数据库 数据库功能设计 sql语句设计 查询所有学生数量 查询第几页学生数据 删除学生 修改学生信息 清空学生表 添加单个用户 删除单个用户 修改用户权限 查询所有用户…...

【五大海内外高校支持】2024年数字经济与计算机科学国际学术会议(DECS2024)

大会官网&#xff1a;www.icdecs.net 大会时间&#xff1a;2024年9月20-22日 大会地点&#xff1a;中国-厦门 截稿日期&#xff1a;详情见官网 支持单位 马来西亚理工大学 北京科技大学经济管理学院 南京信息工程大学 马来西亚敦胡先翁大学 大会嘉宾 大会主席 罗航…...

VS项目打包成lib库并使用

一、新建一个静态库项目 一般要把项目设为Release模式 二、添加文件 将所需要打包的头文件、源文件添加到该静态库项目中 三、生成项目 生成成功后即可在Release文件夹出现找到相应的.lib文件 四、使用静态库 将静态库文件复制到项目文件夹中&#xff0c;然后在项目属性设…...

社交巨头与去中心化:解析Facebook在区块链的角色

区块链技术的兴起为多个行业带来了变革&#xff0c;而社交平台也正在经历这一波技术浪潮。作为全球最大的社交网络之一&#xff0c;Facebook&#xff08;现名Meta Platforms&#xff09;在区块链领域的探索展示了其如何应对去中心化趋势的挑战&#xff0c;并利用这一技术推动自…...

MyBatis(学习记录)

一、ORM ORM是“对象关系映射”&#xff08;Object-Relational Mapping&#xff09;的缩写。这是一种编程技术&#xff0c;用于将对象模型与关系型数据库系统之间的数据进行转换。在面向对象的编程语言中&#xff0c;数据通常以对象的形式表示&#xff1b;而在关系型数据库中&a…...

QSpinbox

加载图片资源 在项目中&#xff0c;选择新建&#xff0c;QT->Qt Resource File -choose &#xff0c;命名为 image ,创建完成了&#xff0c;会在目录下生成一个image.qrc。我们资源文件&#xff0c;要放在image.qrc 的同级目录或子目录中。 常用的小功能 在左下方&#x…...

分布式服务架构[原理、设计与实践]学习笔记

地震是由不可抗力导致的&#xff0c;而事故与之不同&#xff0c;任何大的生产事故在发生之前都有迹可循&#xff0c;而且事故的发生并不是偶然的&#xff0c;我们应该善于从现象中总结规律&#xff0c;找到发现、止损和避免的方法 海恩法则 每一起严重事故的背后&#xff0c;必…...

PDF发票解析并将信息回填到前端(1)后端解析PDF

文章目录 参考文章技术栈需求解析发票类型 1. 最终项目结构1.1 说明 2. 相关代码2.1 导入相应的maven依赖2.2 实体类2.3 工具类2.4 三层架构controllerservicemapper 参考文章 参考文章 技术栈 SpringBootVue 需求 本文主要是实现提取发票中的部分内容&#xff0c;并实现自…...

C++练习之插入删除

#include <iostream> #include <ctime> #include <cstring> #include<cstdlib> using namespace std;typedef struct bookInfo {char name[10];float price;int num; }BOOKINFO;// p: 结构体数组首元素地址 // n: 有效图书数量 void Print(const BOOKI…...

【LeetCode】238. 除自身以外数组的乘积

除自身以外数组的乘积 题目描述&#xff1a; 给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请…...

Excel公式与函数(运算符,计算限制,错误检查)(一)

公式 公式概念 公式 是以“”号为引导&#xff0c;用过运算符按照一定的顺序组合进行数据运算处理的等式&#xff0c;函数 则是按特定算法执行计算的产生一个或一组结果的预定义的特殊公式。 公式组成要素 公式的组成要素为“”&#xff0c;运算符&#xff0c;单元格引用&a…...

用AI助手写程序

用AI帮助写程序究竟靠不靠谱&#xff0c;下面来测试一下&#xff1a; 在文心一言中输入&#xff1a;写一个C Windows API串口通信程序。结果如下&#xff1a; #include <windows.h> #include <iostream> // 串口配置 void ConfigureCommPort(HANDLE hComm) {…...

动手学深度学习7.2 使用块的网络(VGG)-笔记练习(PyTorch)

以下内容为结合李沐老师的课程和教材补充的学习笔记&#xff0c;以及对课后练习的一些思考&#xff0c;自留回顾&#xff0c;也供同学之人交流参考。 本节课程地址&#xff1a;25 使用块的网络 VGG【动手学深度学习v2】_哔哩哔哩_bilibili 本节教材地址&#xff1a;7.2. 使用…...

SolidityFoundry ERC4626

ERC4626简介 ERC4626 协议是一种用于代币化保险库的标准。 我们经常说 DeFi 是货币乐高&#xff0c;可以通过组合多个协议来创造新的协议&#xff1b; ERC4626 扩展了 ERC20 代币标准&#xff0c;旨在推动收益金库的标准化&#xff0c;它是 DeFi 乐高中的基础&#xff0c;它允…...

大模型时代的操作系统:融合 Rust 和大模型,打造 AI 操作系统

每次技术革命&#xff0c;无论是个人电脑、互联网还是移动设备&#xff0c;总是从硬件开始&#xff0c;然后演化到软件层。而操作系统是计算机系统的核心&#xff0c;没有它&#xff0c;计算机就只是一堆硬件&#xff0c;无法运行任何程序。 微软 CEO 萨蒂亚纳德拉曾将生成式 …...

【ML】为什么要做batch normlization,怎么做batch normlization

为什么要做batch normlization&#xff0c;怎么做batch normlization 1. batch normlization1.1 批量归一化是什么&#xff1a;1.2 为什么要做批量归一化&#xff1a; 2. feature normalization2.1 特征归一化是什么&#xff1a;2.2 为什么要做特征归一化&#xff1a; 3. batc…...

【C++指南】命名空间

&#x1f493; 博客主页&#xff1a;倔强的石头的CSDN主页 &#x1f4dd;Gitee主页&#xff1a;倔强的石头的gitee主页 ⏩ 文章专栏&#xff1a;《C指南》 期待您的关注 目录 一、命名空间的重要性 1. C语言中没有命名空间而存在的问题 2. C引入了命名空间解决的问题 3.…...

RocketMQ Dashboard安装

RocketMQ Dashboard 是一个基于 Web 的管理工具&#xff0c;用于监控和管理 RocketMQ 集群。它提供了一个用户友好的界面&#xff0c;使管理员能够轻松地查看和操作 RocketMQ 系统中的各种组件和状态。 主要功能包括&#xff1a; 集群管理: 监控和管理 NameServer 和 Broker …...