网络编程之网络编程预备知识

article/2025/8/23 19:21:27

网络编程预备知识

1. 网络编程

1.1 网络通信

通信/通讯需要具备两个基本条件:

  • 物理媒介(物理层面)
    • 网线,光纤
  • 协议(软件层面)
  • 网络通信协议

1.2 网络协议层次模型

层次:把不同的功能封装成不同功能模块。
为什么叫做层次

在这里插入图片描述

  • 因为被封装的模块只能按照已有顺序进行调用,不能越级调用

    • 模块(用户层)----
      B 模块(OS层)----
      C 模块(硬件层)
      A模块不能直接调用C模块,只能通过先调用B模块的接口,通过B模块的接口来调用C
      

    在这里插入图片描述

1.2.1 OSI七层模型
  • 应用层
  • 表示层
  • 会话层
  • 传输层
  • 网络层
  • 数据链路层
  • 硬件层
1.2.2 TCP/IP四层模型
  • 应用层

    • 应用协议:http , https , tftp , ftp , DNS , QQ, BT协议,
  • 传输层

    • 主要作用:解决数据如何传输的问题

    • 协议:TCP,UDP

      • TCP Transmission Control protocol 传输层控制协议

        • 是一种面向连接的传输层协议,它可以提供高可靠的通信。

          • 高可靠的通信:即数据无误、数据无丢失、数据无失序、数据无重复到达的一种通信
        • 建立连接/断开连接

          • 三次握手和四次挥手

          在这里插入图片描述

        • 重发机制 :在 数据传输阶段,如果发送方没有在一定时间内收到接收方的确认应答(ACK),就会重新发送之前发送的数据报文,以确保数据能够可靠地到达接收方

        • “面向连接”: 意味着在正式通信之前发送,方和接收方需要先建立一条虚拟的连接通道(使用三次握手),通信结束后再拆除这条连接(使用四次挥手)

      • UDPUser Datagram Protocol 用户数据报协议

      • 它是不可靠的无连接协议。

        • 在数据发送之前,因为不需要进行连接就可以直接发送数
      • “实时应用”

    • 在这里插入图片描述

  • 网络层

  • IPIP地址(网卡的逻辑上的编号)

    • ICMP
    • IGMP
  • 设备驱动与硬件层

    • 硬件:
      • 网卡
      • 网线
    • MAC 协议
      • MAC地址(网卡的物理地址 48bits

1.3 网络数据怎么传输

分层传输:

  • 封包过程
  • 拆包过程

在这里插入图片描述

1.4 某硬件的功能

  • 路由器:主要功能“路由

    • 选择网络数据包的下一站。
  • 网关:连接两个或以上网络

  • 交换机(switch):

    • 扩展网口
    • 有源:增强信号
  • 猫(modern):调制解调器

    • adsl
    • 光纤

2. 互联网地址(IP地址)

互联网:internet
互联网上的每一个接口(网卡)都必须要有一个唯一的internet地址(也叫:IP地址)。协议上的逻
辑地址。
进行通信的时候,用到这个IP地址唯一标识一台主机(一个网卡)
IPV4地址:

  • 32bits IP地址

IPV6地址:

  • 128bits IP地址

IPV4地址有32bits,怎么区分?
一般将一个IPV4网络地址分为两步:

  • 按照日常生活中的电话号码类似:

    • 区号
    • 主机号
    • 0731-888888 : 0731区号、888888主机号
  • IPV4地址的32bits

    • 网段号:用来标识某个网段

      • IPV4地址用连续高位表示网段号
    • 主机号:用来标识特定网段中的特定主机的

      • IPV4地址用连续底位表示主机号
  • IPV4地址:32bits用点分式来表示一个IP地址

    • 每8个bit位为一组,中间用.进行分割
      • 比如:
1010010 01001001 10001100 00000010 --> 不是给人看 给计算机看的
210.73.140.2 -->给人看的,点分式字符串

2.1 IPV4地址分类

  • A类地址:最高位bit位为0,网络号7bits,主机号24bits

    • IPV4地址的范围:0.0.0.0 ~ 127.255.255.255

    • 00000000 00000000 00000000 00000000 00000000 00000000 ---> 0.0.0.0
      01111111 11111111 11111111 11111111 11111111 11111111 ---> 
      127.255.255.255
      
    • 私有地址范围:10.0.0.0~10.255.255.255

  • B类地址:最高位bit位为10,网络号14bits,主机号16bits

    • IPV4地址的范围:128.0.0.0 ~ 191.255.255.255

    • 10000000 00000000 00000000 00000000 00000000 00000000 ---> 128.0.0.0
      10111111 11111111 11111111 11111111 11111111 11111111 ---> 
      191.255.255.255
      
    • 私有地址范围:172.16.0.0~172.31.255.255

  • C类地址:最高位bit位为110,网络号21bits,主机号8bits

    • IPV4地址的范围:192.0.0.0 ~ 223.255.255.255
    • 私有地址范围:192.168.0.0~192.168.255.255
    • D类地址:最高位bit位为1110,(多播组号28bit)
    • 224.0.0.0 ~ 239.255.255.255
    • E类地址:最高位bit位为11110(留待使用)
    • 240.0.0.0 ~ 247.255.255.255

    在设置一个IP地址,还是可以指定这个地址中哪些bits位是网段号、哪些是主机号。
    netmask(子网掩码):就是用来指定一个IP中,哪些是网段号,哪些是主机号
    netmask子网掩码:为1的bit位就是网段号,为0的bit位就是主机号

    netmask : 255.255.254.0
    192.168.1.4192.168.2.5 是不是同一个网段 ×不是同一个网段
    11111111 11111111 11111110 00000000 子网掩码
    xxxxxxxx xxxxxxxx 00000001 xxxxxxxx 192.168.1.4
    xxxxxxxx xxxxxxxx 00000010 xxxxxxxx 192.168.2.5

    IP地址是用来唯一的表示网络上的一台主机的,一台主机可能有多个网络应用程序。

2.2 端口号

TCP和UDP采用16bits的端口用来标识应用程序
`IP地址只能唯一标识网络中的主机,但是每台主机上面的网络应用不止一个。既然有多个应用在跑。
从传输层角度划分:

  • TCP应用
  • UDP应用

TCP和UDP的应用端口号是独立。
一台主机的网络应用由:IP地址+传输层协议(TCP/UDP)+端口号进行确定。
端口号由IANAinternet Assigned Number Authority)管理
比较出名端口:1~1023

  • ftp : 21
  • http :80
  • 注册端口:1024~49151
  • 动态和私有端口:49152~6553

http://www.hkcw.cn/article/OyQNfCvekN.shtml

相关文章

Spring Boot+Activiti7入坑指南初阶版

介绍  Activiti 是一个轻量级工作流程和业务流程管理 (BPM) 平台,面向业务人员、开发人员和系统管理员。其核心是一个超快且坚如磐石的 Java BPMN 2 流程引擎。它是开源的,并根据 Apache 许可证分发。Activiti 可以在任何 Java 应用程序、服务器、集群或云中运行。它与 Spri…

信创改造选择C86,相比于ARM架构有什么优势?

随着信息技术应用创新(信创)产业的快速发展,信创改造已成为我国信息技术产业升级的重要方向。信创改造的核心目标是实现信息技术的自主可控,保障国家信息安全,同时推动国产软硬件在各行业的广泛应用。 2025年作为信创产…

20250529-C#知识:运算符重载

C#知识:运算符重载 运算符重载能够让我们像值类型数据那样使用运算符对类或结构体进行运算,并且能够自定义运算逻辑。 1、运算符重载及完整代码示例 作用是让自定义的类或者结构体能够使用运算符运算符重载一定是public static的可以把运算符看成一个函…

【AI面试秘籍】| 第24期:Transformers / LLM的词表应该选多大?

在构建和训练Transformers以及大型语言模型 (LLM) 时,词表 (Vocabulary) 大小的选择是一个至关重要且常常令人困惑的问题。它不仅直接影响模型的性能,还关系到模型的计算效率和内存占用。那么,当面试官抛出这个问题时,我们应该如何…

一文清晰理解目标检测指标计算

一、核心概念 1.交并比IoU 预测边界框与真实边界框区域的重叠比,取值范围为[0,1] 设预测边界框为,真实边界框为 公式: IoU计算为两个边界框交集面积与并集面积之比,图示如下 IoU值越高,表示预测边界框与真实边界框的对…

一文讲懂fork函数(c语言linux)

c语言的fork函数是拿来创建子进程的, 进程 pcb(process control block) 代码和数据 子进程中的代码和数据与父进程的一致(共享父进程的代码和数据),没有自己的代码和数据. 如果父进程或者子进程要修改数据,操作系统就会把要修改的数据拷贝一份新的,让目标进程修改这份拷贝…

LVDS系列14:Xilinx Ultrascale系可编程输入延迟(四)

本节讲解Ultrascale IDELAYE3的TIME模式仿真;  TIME模式下参数和时序: 必须例化IDELAYCTRL,IDELAYCTRL时钟频率与REFCLK_FREQUEMCY参数相同; 有温度电压补偿,EN_VTC在修改抽头值时拉低,修改完毕后拉高&a…

RTX腾讯通停服后,有哪些兼容Linux及移动端的升级途径?

一、RTX腾讯通停服后的核心挑战 1.国产系统与移动端适配中断 RTX腾讯通停更后无法适配统信UOS、银河麒麟等国产操作系统,原有Windows版本在Linux内核环境下运行异常,且缺乏Android、iOS移动端支持,阻碍跨平台协作。 2.大规模组织架构同步失…

美团启动618大促,线上消费节被即时零售传导到线下了?

首先,从市场推广与消费者吸引的角度来看,美团通过联合众多品牌开展大规模促销活动,并发放高额优惠券包,旨在吸引更多消费者参与购物。这种策略有助于提高平台的活跃度和交易量,同时也能够增强用户粘性。对于消费者而言…

TDengine 运维——巡检工具(安装前预配置)

背景 TDengine 的安装部署对环境系统有一定的依赖和要求,安装部署前需要进行环境预配置操作,本文档旨在说明安装前预配置工具在安装 TDengine 前对环境的预配置内容和工具的使用方法。 预配置工具使用方法 工具支持通过 help 参数查看支持的语法 Usa…

收集飞花令碎片——C语言(数组+函数)

C语言的函数(Function)是程序的基本构建块,用于封装一段可重用的代码,完成特定任务。函数可以提高代码的模块化、可读性和复用性。 目录 函数库函数标准库头文件自定义函数(1)基本语法(2&#x…

2013-2021年各省电子商务数据

2013-2021年各省电子商务数据 1、时间:2013-2021年 2、来源:国家统计局、各省年鉴 3、指标:统计年度、地区代码、地区名称、电子商务销售额 4、范围:31省 5、指标说明:电子商务销售额是指通过电子商务平台进行商品…

企业级开发的 “技术主权保卫战”:iVX 源码自主性实践指南

在数字化转型的浪潮中,技术主权已成为企业核心竞争力的关键组成部分。iVX 作为全栈可视化开发平台,通过源码自主性实践,为企业构建了从开发工具到行业落地的全栈解决方案,在安全架构、国产替代、合规优势三大领域实现了技术突破与…

Python-12(函数)

函数的主要功能是可以打包代码,最大程度的实现代码的重用,减少冗余代码,可以将不同功能的代码进行封装,从而降低结构的复杂度,提高代码的可读性。 创建和调用函数 使用def语句来定义函数。 def myFunc():print(&quo…

罗德里格斯公式动图演示

一. 罗德里格斯公式形式: R o t ( ω ^ , θ ) e [ ω ] ^ θ I s i n θ [ ω ^ ] ( 1 − c o s θ ) [ ω ^ ] 2 Rot(\hat{\bold{\omega}}, \theta)e^{\hat{\bold{[\omega]}}_{\times} \theta}\bold{I}sin\theta[\hat{\bold{\omega}}]_{\times}(1-cos\theta)[\hat{\bo…

多家医院回应药企向上百名医生行贿 调查正在进行中

近日,一则关于某药企被举报向四川多家医院上百名医生行贿的消息引发广泛关注。举报材料中提及了四川省内包括成都市、绵阳市、广安市在内的多个城市的37家医疗机构。达州市第一人民医院工作人员表示,举报信中提到的医生并不在院方员工名单中,且该院去年才成立,往年员工名单…

高密爆炸警钟长鸣:AI为化工安全戴上“智能护盾”

一、高密爆炸:一声巨响,撕开化工安全“伤疤” 2025年5月27日,山东高密友道化学有限公司的车间爆炸声,像一把利刃划破了化工行业的平静。剧烈的冲击波将车间夷为平地,黑色蘑菇云腾空而起,刺鼻的化学气味弥漫…

微软 Azure AI Foundry(国际版)十大重要更新

2025 年被广泛视为 “AI 智能体元年”。在过去半年,微软密集发布众多创新技术,构建起从基础设施层、开发工具层到场景应用层的完整技术矩阵,加速推动诸多具备自主决策能力的 “超级助理” 智能体落地,形成完整的 AI 赋能生态&…

撒贝宁在广东水陆两栖过端午,广东过端午到底有多嗨?

撒贝宁在广东水陆两栖过端午。“龙舟漂移”惊险刺激,荔枝让苏轼灵感迸发,还有机器人参与的赛博端午节……广东过端午到底有多嗨?撒贝宁近日现身佛山叠滘,沉浸式体验龙舟季活动。在蜿蜒狭窄的河道上,他勇敢挑战龙舟漂移,完成高难度C弯动作时,自信高呼粤语有各位大哥在这里…

【HarmonyOS 5】鸿蒙中的UIAbility详解(二)

【HarmonyOS 5】鸿蒙中的UIAbility详解(二) 一、前言 今天我们继续深入讲解UIAbility,根据下图可知,在鸿蒙中UIAbility继承于Ability,开发者无法直接继承Ability。只能使用其两个子类:UIAbility和Extensi…