c语言之网络初识

news/2025/3/25 20:32:37/

一、网络由来

冷战时期,美国设立的DARPA(国防高级研究项目局 Defense Advance Research Project Agency)要实现各大型设备电脑进行资源共享,并且不会互相影响(一个毁则全毁,分散并联式)ARPA网络 由此诞生,其使用的NCP协议只允许使用于军事中,因此,它不支持不同类型的操作系统、不同类型的计算机之间的通信,不支持纠错功能

二、TCP/IP/UDP

为了实现不同封包交换网络之间的通讯,TCP网络协议由Vintin Cerf 和Robert Kahn 在1973年开发成功。1974年TCP又被分为了TCP和IP协议,TCP协议专门解决数据之间的错误分析处理,而IP协议专门为不同网络的识别与互联
在这个过程中又加入了UDP协议(User Datagram Protocol),以解决TCP发送数据进行错误后重发以导致的网络延迟比较严重的问题,这样对于实时性有了保证。

可靠性要求相对较低的通信,采用UDP + IP协议来通信。对于可靠性要求比较高的,采用TCP + IP协议来通信

在这里插入图片描述

Tips:
电脑之间的通信其实是网卡之间的通信

三、IP地址简介

我们的IP地址由 网络主机号 两部分组成, 其中网络号用来标识一个逻辑网络,主机号用来标识我们网络中的一台主机

一个主机至少有一个IP地址,并且这个IP地址是全网唯一的。

点分十进制法
IP地址使用32位的二进制数表示,但是不容易记忆。为了方便记忆,将32位二进制码划分为4个字节,每个字节转化成相应的十进制数,字节之间用“.”来分隔,这种表示方法,称之为“点分十进制”表示法。如图
在这里插入图片描述

分类 :IP 地址分为四类,分别是A类、 B 类、 C 类、 D 类(还有一个保留的 E 类)

在这里插入图片描述

网关、子网掩码和DNS服务器

子网掩码

子网掩码是一个32位地址,是与IP地址结合使用的一种技术。它的主要作用有两个,一是用于屏蔽 IP 地址的一部分以区分网络标识和主机标识;二是用于将一个大的IP网络划分为若干小的子网络

网关

从一个网络向另一个网络发送信息,必须经过一道“关口”,这道关口就是网关。网关实质上是一个网络通向其他网络的IP地址。

DNS

实际生活中,如果通过点分十进制的 IP 地址来进行通信,十分不方便,尤其是在大规模的网络环境中,很容易记混淆。因此,就有了DNS 服务器, 它是把我们便于理解的域名转化成相应的IP地址。它的作用就是解析域名
常用的DNS服务器: 114.114.114.114 或 8.8.8.8

例如:
通过ping命令,查看本地机器是否能够访问百度(183.2.172.185)在这里插入图片描述


http://www.ppmy.cn/news/1582519.html

相关文章

使用brower use AI 代理自动控制浏览器完成任务

第一步:终端运行命令下载 brower use pip install browser-use 第二步: 终端运行命令下载playwright playwright install 第三步:新建test.py代码,粘贴复制以下代码 import asyncio import osfrom dotenv import load_doten…

个人学习编程(3-22) leetcode刷题

连续子数组:(难) 示例 1: 输入: nums [0,1] 输出: 2 说明: [0, 1] 是具有相同数量 0 和 1 的最长连续子数组。 示例 2: 输入: nums [0,1,0] 输出: 2 说明: [0, 1] (或 [1, 0]) 是具有相同数量0和1的最长连续子数组。 需要理解的知识&a…

JVM垃圾回收笔记01-垃圾回收算法

文章目录 前言1. 如何判断对象可以回收1.1 引用计数法1.2 可达性分析算法查看根对象哪些对象可以作为 GC Root ?对象可以被回收,就代表一定会被回收吗? 1.3 引用类型1.强引用(StrongReference)2.软引用(SoftReference…

实验10决策树

实验10决策树 一、实验目的 (1)理解并熟悉决策树算法思想和原理; (2)熟悉决策树算法的数学推导过程; (3)能运用决策树算法解决实际问题并体会算法的效果; (4…

基于Spring Boot的健身房管理系统的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…

ArrayList<E>案例//定义一个方法,将价格低于3000的手机信息返回

import java.util.ArrayList;public class ArrayListphone {public static void main(String[] args){//定义一个方法,将价格低于3000的手机信息返回Phone p1new Phone("小米",1000);Phone p2new Phone("苹果",8000);Phone p3new Phone("锤…

安装了pytorch,但VScode运行的时候报错,显示无torch模块

一开始import torch下面提示无模块,CtrlShiftP → 输入 Python: Select Interpreter重新选择编译环境后波浪线没了,但是运行的时候报错没有torch这个模块,网上参考了下博客,找到解决办法 1、首先,在vscode中操作如下步…

使用uniapp的vite版本进行微信小程序开发,在项目中使用mqtt连接、订阅、发布信息

1、保证在微信公众平台配置socket合法域名 2、项目中使用mqtt 建议在package.json中配置"mqtt": “4.1.0”,使用这个版本的依赖 页面中引入mqtt并配置连接 // ts-ignoreimport * as mqtt from mqtt/dist/mqtt.js; //要使用这里面的const state reacti…