Day36 网络概述、IP划分、网络模型

文章目录

    • 网络发展史
    • 局域网和广域网
      • 局域网(LAN)
      • 广域网(Wan)
    • 光猫
    • 路由器
  • IP地址
    • 基本概念
    • 地址划分
    • 特殊地址(后续编程使用)
    • IP地址转换
    • 端口
    • 字节序
  • 网络模型
    • 网络模型
    • OSI模型(了解)
    • TCP/IP模型(重点)
    • TCP/UDP
      • TCP
      • UDP

#概述

网络发展史

https://zhidao.baidu.com/question/244362751.html
ARPnet–Internet–移动互联网–物联网–AI

局域网和广域网

局域网(LAN)

局域网的缩写是LAN,local area network,顾名思义,是个本地的网络,只能实现小范围短距离的网络通信。我们的家庭网络是典型的局域网。电脑、手机、电视、智能音箱、智能插座都连在路由器上,可以互相通信。局域网,就像是小区里的道路,分支多,连接了很多栋楼。

广域网(Wan)

广域网(Wide Area Network)是相对局域网来讲的,局域网的传输距离比较近,只能是一个小范围的。如果需要长距离的传输,比如某大型企业,总部在北京,分公司在长沙,局域网是无法架设的。广域网,就像是大马路,分支可能少,但类型多,像国道、省道、高速、小道等,连接了很多大的局域网。

这时需要其它的解决方案。
第一,通过因特网,只需要办一根宽带,就实现了通信,非常方便,现在的宽带价格也比较便宜。
第二,通过广域网专线。
所以为了数据安全,不能连接因特网,需要用一条自己的专用线路来传输数据,这条线路上只有自己人,不会有其他人接入,且距离很远,这个网络就叫 “广域网”。

光猫

光猫是一种类似于基带modem(数字调制解调器)的设备,和基带modem不同的是接入的是光纤专线,是光信号。用于广域网中光电信号的转换和接口协议的转换,接入路由器,是广域网接入。
在这里插入图片描述

路由器

用于连接局域网和外网
路由器需要区分WAN口和LAN口,WAN口是接外网的(从Modem出来的或者从上一级路由器出来的),LAN口是接内网的,现在路由器都带无线功能,本质上无线接入就是LAN。
在这里插入图片描述

IP地址

基本概念

●IP地址是Internet中主机的标识
●Internet中的主机要与别的机器通信必须具有一个IP地址
●IP地址为32位(IPv4)或者128位(IPv6)
●表示形式:常用点分十进制,如192.168.1.109,最后都会转换为一个32位的无符号整数。

地址划分

在这里插入图片描述
主机号的第一个和最后一个都不能被使用,第一个作为网段号,最后一个作为广播地址。
A类:1.0.0.1~126.255.255.254
B类:128.0.0.1~191.255.255.254
C类:192.0.0.1~223.255.255.254
D类(组播地址):224.0.0.1~239.255.255.254

网段号的定义:主机位全为0,代表当前设备所处的网段号
这个需要结合子网掩码来计算,子网掩码规定了哪些是网络号,哪些是主机号
如果子网掩码位是1,那么当前为就是网络号,如果是0,那么当前位是主机号
网段号=IP&子网掩码

特殊地址(后续编程使用)

0.0.0.0:在服务器中,0.0.0.0指的是本机上的所有IPV4地址,如果一个主机有两个IP地址,192.168.1.1 和 10.1.2.1,并且该主机上的一个服务监听的地址是0.0.0.0,那么通过两个ip地址都能够访问该服务。在程序里,用宏定义表示:INADDR_ANY
127.0.0.1:回环地址/环路地址,所有发往该类地址的数据包都应该被loop back。仅作为测试使用,只能实现本机上通信。

IP地址转换

实现了人看的IP(192.168.1.155)和机器内部使用(32位的无符号的整数)的实际IP进行转换。

struct in_addr {
    uint32_t s_addr;
};

 //从人看的ip地址转为机器使用的32位
typedef uint32_t in_addr_t;
in_addr_t inet_addr(const char *cp);

//从机器到人
char *inet_ntoa(struct in_addr in);  

例子:
给定一个IP地址,转换为机器的32位无符号整数,然后打印。
打印完后,再转回给人看的IP地址,再打印。

#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

int main(int argc, char const *argv[])
{
    //把人看的转成机器要的,192.168.0.109
    char ip[64] = "192.168.0.109";
    in_addr_t ip32 = inet_addr(ip);
    printf("ip = 0x%x\n", ip32);  //0x6d00a8c0

    //把机器的转成人看
    struct in_addr in;
    in.s_addr = ip32;

    char *p = inet_ntoa(in); 
    printf("p = %s\n", p);  //0x6d00a8c0

    return 0;
}

端口

●为了区分一台主机接收到的数据包应该转交给哪个进程来进行处理,使用端口号来区
●TCP端口号与UDP端口号独立
●端口号一般由IANA (Internet Assigned Numbers Authority) 管理
●端口用两个字节来表示–USHORT
●端口指定需要统一为网络字节序(大端)
众所周知端口:1-1023(1255之间为众所周知端口,2561023端口通常由UNIX系统占用)
注册端口:1024-49151(尽量用5000以上的)
动态或私有端口:49152-65535

字节序

网络中传输一字节以上的带类型的数据(比如short、int),必须使用网络字节序,即大端字节序。
小端序(little-endian) - 低序字节存储在低地址
大端序(big-endian)- 高序字节存储在低地址
面试题:写一个函数,判断当前主机的字节序?

int checkCPU()
{
	union w{
		short a;
		char b;
	}c;
	c.a = 1;
	return (c.b == 1);
}

主机字节序到网络字节序

uint16_t htons(uint16_t hostshort);

网络字节序到主机字节序

uint16_t ntohs(uint16_t netshort);

网络模型

网络模型

●网络采用分而治之的方法设计,将网络的功能划分为不同的模块,以分层的形式有机组合在一起。
●每层实现不同的功能,其内部实现方法对外部其他层次来说是透明的。每层向上层提供服务,同时使用下层提供的服务
●网络体系结构即指网络的层次结构和每层所使用协议的集合
●两类非常重要的体系结构:OSI与TCP/IP

OSI模型(了解)

●OSI模型是一个理想化的模型,尚未有完整的实现
●OSI模型共有七层
●OSI现阶段只用作教学和理论研究
在这里插入图片描述

TCP/IP模型(重点)

在这里插入图片描述
网络接口和物理层:屏蔽硬件差异(驱动),向上层提供统一的操作接口。
网络层:提供端对端的传输,可以理解为通过IP寻址机器。
传输层:决定数据交给机器的哪个任务(进程)去处理,通过端口寻址
应用层:应用协议和应用程序的集合

OSI和TCP/IP模型对应关系图
在这里插入图片描述

TCP/UDP

TCP

TCP(即传输控制协议):是一种面向连接的传输层协议,它能提供高可靠性通信(即数据无误、数据无丢失、数据无失序、数据无重复到达的通信)。
适用场景
适合于对传输质量要求较高的通信
在需要可靠数据传输的场合,通常使用TCP协议
登录账户、文件传输等

UDP

UDP(User Datagram Protocol)用户数据报协议,是不可靠的无连接的协议。在数据发送前,不需要进行连接,可以进行高效率的数据传输。
适用场景
发送小尺寸数据(如对DNS服务器进行IP地址查询时)
适合于广播/组播式通信中。
音频、视频聊天等

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python中的模块包第三方库详解

模块&包 模块 一个.py文件就是一个模块&#xff0c;里面是一些函数和变量&#xff0c;需要的时候可以导入。 模块命名规范: 1.以英文开头&#xff0c;不出现中文 2.模块名不应与系统内置函数重名 包 包本身就是一个文件夹&#xff0c;如果文件夹内有__init__.py文件&…

安防摄像头(IPC)的步进马达及IR-CUT驱动国产芯片——D6212

应用领域 安防摄像头&#xff08;IPC&#xff09;的步进马达及IR-CUT驱动。 02 功能介绍 D6212内置8路带有续流二极管的达林顿驱动管阵列和一个H桥驱动&#xff0c;单芯片即可实现2个步进电机和一个IR-CUT的直接驱动&#xff0c;使得电路应用非常简单。单个达林顿管在输入电…

跨域报错(预请求(OPTIONS)的问题)

查原因 是预请求(OPTIONS)的问题 解决方法&#xff08;后端改&#xff09; 指路博客.NET处理VUE OPTIONS请求问题_.net option请求-CSDN博客

Latte:一个类似Sora的开源视频生成项目

前段时间OpenAI发布的Sora引起了巨大的轰动&#xff0c;最长可达1分钟的高清连贯视频生成能力秒杀了一众视频生成玩家。因为Sora没有公开发布&#xff0c;网上对Sora的解读翻来覆去就那么多&#xff0c;我也不想像复读机一样再重复一遍了。 本文给大家介绍一个类似Sora的视频生…

C++的类与对象(三)

目录 类的6个默认成员函数 构造函数 语法 特性 析构函数 特性 类的6个默认成员函数 问题&#xff1a;一个什么成员都没的类叫做空类&#xff0c;空类中真的什么都没有吗&#xff1f; 基本概念&#xff1a;任何类在什么都不写时&#xff0c;编译器会自动生成以下六个默认…

别再为微信登录烦恼!Xinstall的Universal Links让你秒速直达APP!

微信登录Universal Links校验不通过&#xff1f;无法直达APP场景页面&#xff1f;别担心&#xff0c;Xinstall来帮你解决这一难题&#xff01; 随着移动互联网的迅猛发展&#xff0c;App已成为我们日常生活中不可或缺的一部分。而微信&#xff0c;作为拥有十亿用户的社交巨头…

STM32FreeRTOS信号量(STM32cube高效开发)

一、信号量 &#xff08;一&#xff09;信号量概括 信号量是操作系统中重要的一部分&#xff0c;信号量是一种解决同步问题的机制&#xff0c;可以实现对共享资源的有序访问。 FreeRTOS 提供了多种信号量&#xff0c;按信号量的功能可分为二值信号量、计数型信号量、互斥信…

FreeRTOS操作系统学习——FreeRTOS工程介绍

FreeRTOS工程介绍 核心文件 FreeRTOS的最核心文件只有2个&#xff1a; FreeRTOS/Source/tasks.cFreeRTOS/Source/list.c 文件功能如下图&#xff1a; 头文件相关 内存管理文件 文件在 Middlewares\Third_Party\FreeRTOS\Source\portable\MemMang 下&#xff0c;它也是放…

uniapp直接连接wifi(含有ios和安卓的注意事项)

前言 小程序中直接连接wifi-----微信小程序 代码 启动 //启动wifistartWifi() {return new Promise((resolve, reject) > {uni.startWifi({success: (res) > {console.log(启动wifi 成功, res)resolve(true)},fail: (err) > {console.error(启动wifi 失败, err)uni.s…

【教程】uni-app iOS打包解决profile文件与私钥证书不匹配问题

摘要 当在uni-app中进行iOS打包时&#xff0c;有时会遇到profile文件与私钥证书不匹配的问题。本文将介绍如何解决这一问题&#xff0c;以及相关的技术细节和操作步骤。 引言 在uni-app开发过程中&#xff0c;iOS打包是一个常见的操作。然而&#xff0c;有时会出现profile文…

SEMICON专题直播预告|一起聊聊半导体测试

2024年3月20日&#xff0c;全球最大规模半导体嘉年华——SEMICON China 2024将在上海新国际博览中心盛大启幕&#xff0c;作为半导体测试领域的领军企业&#xff0c;加速科技即将重装亮相此次盛会&#xff08;N2馆N2327&#xff09;。 在正式开展之前&#xff0c;加速科技将举…

2024年最受欢迎的15款缺陷管理工具

本文整理分享了15款再2024年受欢迎的bug&#xff08;缺陷&#xff09;跟踪管理工具&#xff1a;1.PingCode&#xff1b;2.Worktile&#xff1b;3.SpiraTeam&#xff1b;4. Jira Software&#xff1b;5. BugHerd&#xff1b;6. Zoho Projects&#xff1b;7.SmartSheet&#xff1…

腾讯云服务器5年优惠活动价格表(2核4G和4核8G)

腾讯云服务器网整理五年云服务器优惠活动 txyfwq.com/go/txy 配置可选2核4G和4核8G&#xff0c;公网带宽可选1M、3M或5M&#xff0c;系统盘为50G高性能云硬盘&#xff0c;标准型S5实例CPU采用主频2.5GHz的Intel Xeon Cascade Lake或者Intel Xeon Cooper Lake处理器&#xff0c;…

5G网络深度覆盖提升感知优化案例

随着5G业务的发展&#xff0c;用户感知尤为重要&#xff0c;随着人们的生活水平不断提高&#xff0c;对网络使用的要求也越来越高&#xff0c;用户感知更加重要&#xff0c;数据业务已超越语音业务成为流量和收入的主体&#xff0c;信号质量的决定作用更明显。5G TDD的频谱大带…

【CSP试题回顾】202203-2-出行计划

CSP-202203-2-出行计划 关键点&#xff1a;前缀和数组&#xff08;高频考点&#xff09; 详见&#xff1a;【CSP考点回顾】前缀和数组 解题思路 解法利用差分数组技巧&#xff0c;使得更新时间区间的操作和查询操作的时间复杂度都是 O(1)&#xff0c;整体算法的时间复杂度主…

2024年最全洗地机选购攻略盘点丨希亦、小米、云鲸、海尔洗地机哪款值得入手?

在现代家居清洁中&#xff0c;洗地机是不可或缺的得力助手&#xff0c;它融合了吸尘、拖地等多种功能。面对市场上琳琅满目的洗地机品牌和型号&#xff0c;选择一个可靠的品牌至关重要。优质的品牌能够提供高品质的产品&#xff0c;使您的清洁工作更加轻松高效。本文将向您推荐…

基于多时间尺度的植被干旱响应特征与机制分析

随着全球气候变暖的趋势愈发明显&#xff0c;干旱事件不仅发生的频率增加&#xff0c;其持续时间和影响范围也在不断扩大。干旱对生态环境造成了严重破坏&#xff0c;导致生物多样性减少、土地退化和水资源短缺&#xff1b;对农业生产而言&#xff0c;干旱会导致作物减产甚至绝…

回溯算法04-组合总数(Java)

4.组合总数 题目描述 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 &#xff0c;并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个 数字可以…

一张图串起来springcloud alibaba以及其他组件的作用,欢迎各位巨佬指正

一般来说&#xff0c;用一个gateway或者一个nginx应该够用&#xff0c;但是加上去好像也无妨 针对秒杀场景&#xff0c;有几种常见的解决方案&#xff1a; 基于Redis的缓存方案&#xff1a; 预热缓存&#xff1a;在秒杀开始前&#xff0c;将商品库存等信息提前加载到Redis缓存…

OSI七层模型/TCP四层模型

协议&#xff1a; 协议是双方共同指定的一组规则&#xff0c;在网络通信中表示通信双方传递数据和解释数据的一组规则。 从A上传文件到服务器B,需要在A和B之间制定一个双方都认可的规则&#xff0c;这个规则就叫文件传输协议&#xff0c;该协议是ftp协议的一个初级版本&#…