24、网络编程基础概念

网络编程基础概念

        • 网络结构模式
        • MAC地址
        • IP地址
        • 子网掩码
        • 端口
        • 网络模型
        • 协议
        • 网络通信的过程(封装与解封装)

网络结构模式
  • C/S结构,由客户机和服务器两部分组成,如QQ、英雄联盟

  • B/S结构,通过浏览器与服务器进程交互,如4399网页游戏

MAC地址
  • 网卡是计算机上用于通信的硬件,而MAC地址就是网卡的地址,每个网卡都有唯一一个MAC地址。MAC地址 由6个部分组成:每个部分 都是一个字节,包含两个16进制数,如 00-16-EA-AE-3C-40
  • 另外,MAC地址又称为 局域网地址、 以太网地址、物理地址或硬件地址
IP地址
  • IP地址是主机或网络的逻辑(虚拟)地址,它 由4个部分组成:每个部分都是一个字节,包含一个10进制数,如:100.4.5.6。它也可以转换为二进制形式:01100100.00000100.00000101.00000110
  • 编码方式
    • A类IP地址:1字节的网络地址,3字节的主机地址。可表示的主机数为256^3 - 2,常用于大型网络。网络地址的第一个位必须为0,因此A类最多表示126个网络(B、C类没有这个限制)
    • B类IP地址:2字节的网络地址,2字节的主机地址。可表示的主机数为256^2 - 2
    • C类IP地址:3字节的网络地址,1字节的主机地址。可表示的主机数为256 - 2=254
    • 特殊网址数字:
      • 0:表示自己,如0.0.0.0
      • 255:广播地址,如(A类)126.123.45.255、(B类)129.123.255.255;或者是用于子网掩码
      • 127:IP地址不能以127作为开头,因为这群IP地址专门用于回路测试,如:127.0.0.1可以代表本机IP地址
子网掩码
  • 作用:屏蔽IP地址的一部分,从而区分它的网络部分和主机部分
  • 分类:
    • 255一类,如255.255.255.0
    • 其他:192.126.130.66/24,表示 192.126.130.66的子网掩码有24个1即255.255.255.0;192.126.130.66/26,表示 192.126.130.66的子网掩码有26个1
  • 具体方法:
    • 求网络部分:对(C类)255.255.255.0 求交集(即&umask)
    • 求主机部分:对(C类)255.255.255.0 取反后求交集(即&~umask)
  • 子网掩码的大小与正常IP地址一样
端口
  • 一般指的是虚拟端口,是主机通信的进出口。由 端口号 来标记,范围是从 0 到 65535(2^16-1)
  • 端口本质上其实是 内存的一个缓冲区,里面运行一个进程。比如,在一个缓冲区(端口)内运行QQ进程,这个缓冲区有一个端口号,外界就可以通过这个端口号与QQ进行通信
  • 类型:
    • 周知端口:范围 从 0 到 1023,表示 已经绑定的端口,用户不能使用。也叫知名端口、公认端口或者常用端口
    • 注册端口:范围 从 1024 到 49151,是用户进程可以使用的端口
    • 动态端口:范围是从 49152 到 65535,它的端口号不是认为指定的,而是系统自动(动态)分配的
  • 注意,一个应用程序可以有多个端口,比如:QQ即可以打电环,也可以发消息,那么QQ就会有多个端口
网络模型
  • OSI七层参考模型(物数网传会表应)

  • TCP/IP四层模型(TCP/IP协议族)

在这里插入图片描述

  • 在 应用层写程序,然后直接调用 传输层和网络层API即可
协议
  • 本质上就是 封装数据的规则,也就是 传输的数据包的格式。双方遵守同一套规则,按相同的方法封装和拆解数据

  • 常见协议:

    • 应用层常见的协议有:

      • FTP协议(File Transfer Protocol 文件传输协议)
      • HTTP协议(Hyper Text Transfer Protocol 超文本传输协议,一般用从 浏览器 向 服务器 请求数据,数据类型包括文本、图片、音频等)
      • NFS(Network File System 网络文件系统)
      • SSH
    • 传输层常见协议有:

      • TCP协议(Transmission Control Protocol 传输控制协议)
      • UDP协议(User Datagram Protocol 用户数据报协议)
    • 网络层常见协议有:

      • IP 协议(Internet Protocol 因特网互联协议)

      • ICMP 协议(Internet Control Message Protocol 因特网控制报文协议,如 ping

        在网络层就使用ICMP)

    • 网络接口层常见协议有:

      • ARP协议(Address Resolution Protocol 地址解析协议,用于查找IP地址对应的MAC地址)
      • RARP协议 (Reverse Address Resolution Protocol 反向地址解析协议,与ARP相反)
  • UDP协议:

在这里插入图片描述

  1. 源端口号即发送数据的端口的端口号
  2. 目的端口号即接收方端口号
  3. 长度:UDP用户数据报的长度,单位是字节,最小值是8 (也就是只有首部)
  4. 校验和:用于检测UDP数据报传输之后是否有错,有错就丢弃
  • TCP协议:

在这里插入图片描述

  • IP协议:

在这里插入图片描述

  • 以太网帧协议

    在这里插入图片描述

    • 中间的数据可以是IP协议,也可以是ARP协议

    • 如果是ARP协议

      • ARP请求:目的物理地址是 广播地址,即ff-ff-ff-ff-ff-ff

      • ARP应答:目的地址就是 原来发出请求的地址

  • ARP协议

在这里插入图片描述

  • ARP协议还需要封装在以太网帧中,才能在以太网中传递
网络通信的过程(封装与解封装)
  • 封装的过程:

在这里插入图片描述

  • 分用(解封装)的过程:

在这里插入图片描述

  • 具体过程

在这里插入图片描述

  • 如何知道目的地的MAC地址?答:根据目的地的IP地址,利用ARP协议得出 目的地的MAC地址,并缓存在主机中,具体过程如图:

    在这里插入图片描述

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

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

相关文章

【超详细】讲解Ubuntu上如何配置分区方案

Ubuntu 的分区方案 一、通用分区方案(200G为例) EFI系统分区(仅UEFI启动模式需要,) 大小:512MB–1GB类型:主分区(FAT32格式)挂载点:/boot/efi说明&#xff1…

函数的局部变量和全局变量的区分,Kimi的回答

这段代码的目的是通过计算 2**i 和 5**i 的首位数字,并将这两个首位数字的乘积添加到一个集合中,最终返回这些乘积的总和。下面是具体的解释和问题的分析。 sum_t的角色: sum_t 是一个累加器,用来存储所有独特的(不重复…

RNN模型及NLP应用(5/9)——多层RNN、双向RNN、预训练

声明: 本文基于哔站博主【Shusenwang】的视频课程【RNN模型及NLP应用】,结合自身的理解所作,旨在帮助大家了解学习NLP自然语言处理基础知识。配合着视频课程学习效果更佳。 材料来源:【Shusenwang】的视频课程【RNN模型及NLP应用…

【3.软件工程】3.4 原型及相关模型

软件开发模型进化论:从原型驱动到混合模型的完整指南 🔄 一、模型进化关系全景图 #mermaid-svg-GcOFjt54gUs4oPeu {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GcOFjt54gUs4oPeu .error-i…

硬件与软件的边界-从单片机到linux的问答详解

硬件与软件的边界——从单片机到 Linux 设备驱动的问答详解 在嵌入式开发和操作系统领域,经常会有人问: “如果一个设备里没有任何代码,硬件是不是依然会工作?例如,数据收发、寄存器数据存储、甚至中断触发&#xff…

玛卡巴卡的k8s知识点问答题(七)

25. 说明 Job 与 CronJob 的功能 Job 功能: 用于运行一次性任务(批处理任务),确保一个或多个 Pod 成功完成任务后退出。 适用于数据处理、备份、测试等场景,任务完成后 Pod 不会自动重启。 特点: 任务…

【NLP 51、一些LLM模型结构上的变化】

目录 一、multi-head 共享 二、attention结构 1.传统的Tranformer结构 2.GPTJ —— 平行放置的Transformer结构 三、归一化层位置的选择 1.Post LN: 2.Pre-LN【目前主流】: 3.Sandwich-LN: 四、归一化函数选择 1.传统的归一化函数 LayerNorm …

VS+Qt配置QtXlsx库实现execl文件导入导出(全教程)

一、配置QtXlsx 1.1 下载解压QtXlsxWriter(在github下载即可) 网址:https://github.com/dbzhang800/QtXlsxWriter 1.2 使用qt运行 点击qtxlsx.pro运行QtXlsxWriter 选择DesktopQt51211MSVC201564bit编译器(选择自己本地电脑qt…

Golang的文件处理优化策略

Golang的文件处理优化策略 一、Golang的文件处理优化策略概述 是一门效率高、易于编程的编程语言,它的文件处理能力也非常强大。 在实际开发中,需要注意一些优化策略,以提高文件处理的效率和性能。 本文将介绍Golang中的文件处理优化策略&…

自学-C语言-基础-数组、函数、指针、结构体和共同体、文件

这里写自定义目录标题 代码环境:?问题思考:一、数组二、函数三、指针四、结构体和共同体五、文件问题答案: 代码环境: Dev C ?问题思考: 把上门的字母与下面相同的字母相连,线不能…

VMware+Ubuntu+VScode+ROS一站式教学+常见问题解决

目录 一.VMware的安装 二.Ubuntu下载 1.前言 2.Ubuntu版本选择 三.VMware中Ubuntu的安装 四.Ubuntu系统基本设置 1.中文更改 2.中文输入法更改 3. 辅助工具 vmware tools 五.VScode的安装ros基本插件 1.安装 2.ros辅助插件下载 六.ROS安装 1.安装ros 2.配置ROS…

PostgreSQL pg_repack 重新组织表并释放表空间

pg_repack pg_repack是 PostgreSQL 的一个扩展,它允许您从表和索引中删除膨胀,并可选择恢复聚集索引的物理顺序。与CLUSTER和VACUUM FULL不同,它可以在线工作,在处理过程中无需对已处理的表保持独占锁定。pg_repack 启动效率高&a…

5G_WiFi_CE_射频输出功率、发射功率控制(TPC)和功率密度测试

目录 一、规范要求 1、法规目录: (1)RF Output Power (2)Transmit Power Control (TPC) (3)Power Density 2、限值: 二、EIRP测试方法 (1)测试条件 (2&#xff…

扫描线离散化线段树解决矩形面积并-洛谷P5490

https://www.luogu.com.cn/problem/P5490 题目描述 求 n n n 个四边平行于坐标轴的矩形的面积并。 输入格式 第一行一个正整数 n n n。 接下来 n n n 行每行四个非负整数 x 1 , y 1 , x 2 , y 2 x_1, y_1, x_2, y_2 x1​,y1​,x2​,y2​,表示一个矩形的四个…

Java项目之基于ssm的简易版营业厅宽带系统(源码+文档)

项目简介 简易版营业厅宽带系统实现了以下功能: 此营业厅宽带系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发。实现了营业厅宽带系统基础数据的管理&…

从入门到入土,SQLServer 2022慢查询问题总结

列为,由于公司原因,作者接触了一个SQLServer 2022作为数据存储到项目,可能是上一任的哥们儿离开的时候带有情绪,所以现在项目的主要问题就是,所有功能都实现了,但是就是慢,列表页3s打底,客户很生气,经过几周摸爬滚打,作以下总结,作为自己的成长记录。 一、索引问题…

PDF处理控件Aspose.PDF教程:在Python、Java 和 C# 中旋转 PDF 文档

您是否希望快速轻松地在线旋转PDF文档?无论您需要修复文档的方向还是只想重新排列页面,本指南都能满足您的需求。有简单的方法可以解决此问题 - 无论您喜欢在线工具还是编程解决方案。 在本指南中,我们将向您展示如何免费在线旋转 PDF&#…

编译原理:first集和follow

一、First 集(首符号集) 定义: 对于符号(非终结符或终结符)或符号串,First 集是该符号串能够推导出的所有可能开头的终结符的集合。若符号串可以推导出空串(ε),则 ε 也…

python实现简单fast-cgi服务,对接到nginx

python代码 import socket import struct import threading# FastCGI 头格式(8 字节) FCGI_HEADER_FORMAT "!BBHHBx" FCGI_VERSION 1 FCGI_TYPE_BEGIN_REQUEST 1 FCGI_TYPE_PARAMS 4 FCGI_TYPE_STDIN 5 FCGI_TYPE_STDOUT 6 FCGI_TYPE_E…

vue开始时间小于等于结束时间,且开始时间小于等于系统时间,时间格式:年月日时分

// 日期配置 export const DATA_CONFIGS [{itemKey: "startDate",startDateKey: "startDate",endDateKey: "endDate",isStart: true,},{itemKey: "endDate",startDateKey: "startDate",endDateKey: "endDate",is…