网络编程 lesson1 网络概念

news2024/11/24 15:32:27

目录

网络发展史(了解)

局域网和广域网

局域网

广域网

IP地址

IP地址划分(IPV4)

 IP地址取址范围:

特殊地址

子网掩码

子网号(注意和前面进行区分)

练习

练习1:

练习2:

练习3:

网络模型

体系结构

OSI(理想化的模型)

TCP/IP模型

DOS攻击(恶意网络攻击)(了解)

攻击类型

防御出发点

防御方法

UDP和TCP

TCP:

UDP:


网络发展史(了解)

  1. ARPANET的创建(1969年):建立了分布式网络,为互联网的起源奠定基础。

  2. 商业互联网的兴起(1980年代):互联网开始用于商业目的,万维网的发展使互联网更易用。

  3. 公共互联网的普及(1990年代):互联网在全球范围内普及,Web浏览器的出现促进了用户使用。

  4. 移动互联网的兴起(2000年代):移动通信技术的发展使人们能够通过移动设备访问互联网。

  5. 社交媒体和Web 2.0时代(2000年代):用户生成内容和社交媒体的兴起,用户可以分享内容并与他人互动。

  6. 云计算和大数据时代(2010年代):云计算技术和大数据分析成为互联网的重要组成部分。

  7. 物联网的发展(2010年代):各种设备和物体通过互联网连接和交互,形成物联网。

  8. 5G和物联网的融合(2020年代):5G技术的普及加速了物联网的发展。

  9. 人工智能和边缘计算的兴起:人工智能技术在物联网中发挥着重要作用,边缘计算提供更快速的响应。

  10. 安全和隐私的挑战:网络安全和隐私问题成为发展中亟需解决的重要议题。

局域网和广域网

局域网

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

局域网,就像是小区里的道路,分支多,连接了很多栋楼。

广域网

广域网(Wide Area Network)是相对局域网来讲的,局域网的传输距离比较近,只能是一个小范围的。如果需要长距离的传输,比如某大型企业,总部在北京,分公司在长沙,局域网是无法架设的。

广域网,就像是大马路,分支可能少,但类型多,像国道、省道、高速、小道等,连接了很多大的局域网。

IP地址

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

IP地址划分(IPV4)

二级划分:网络号+主机号=IP

网络号:表示是否在同一网段(局域网)

主机号:标识在本网段内唯一的ID(不能重复

 IP地址取址范围:

根据上图,共32位,可分为4组,每组8个0,去掉特殊地址如下

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
E类:保留待用   11110

特殊地址

0.0.0.0
在服务器中,0.0.0.0指的是本机上的所有IPV4地址
127.0.0.0
回环地址/环路地址,所有发往该类地址的数据包都应该被loop back
255.255.255.255
全网广播地址

子网掩码

子网掩码(Subnet Mask)是一个32位的二进制数字,用于将IP地址分割成网络部分和主机部分。

常用的子网掩码如下

255.0.0.0A类
255.255.0.0B类
255.255.255.0C类

子网掩码 & ip地址 = 网络地址 (网段)

例:255.255.255.0 & 192.168.5.16 = 192.168.5.0

~子网掩码 & ip地址 = 主机地址

例:0.0.0.255 & 192.168.5.16 = 0.0.0.16

子网号(注意和前面进行区分)

当人数为700人时,用C类不够分配,用D类又太多,使用子网号可以重新划分网段

三级划分:网络号+子网号+主机号=IP

上面的公式不难看出:网络号+子网号=网段

练习

练习1:

某公司有四个部门:行政、研发1、研发2、营销,每个部门各30台计算机接入公司局域网交换机,如果要在192.168.1.0网段为每个部门划分子网,子网掩码应该怎么设置,每个子网的地址范围分别是什么?(4个部门之间不能通信)
192.168.1.00  00 0000 - 11 1111      192.168.1.1   - 192.168.1.62  
192.168.1.01  00 0000 - 11 1111      192.168.1.65  - 192.168.1.126
192.168.1.10  00 0000 - 11 1111      192.168.1.129 - 192.168.1.190
192.168.1.11  00 0000 - 11 1111      192.168.1.193 - 192.168.1.254

共26个1,6个0,子网掩码为255.255.255.255.192

练习2

已知一个子网掩码号为255.255.255.192,问,最多可以连接多少台主机?

对于n个主机位,最多可以连接的主机数量为2的n次方减去2。减去2是因为网络地址和广播地址不能分配给主机。

255.255.255.192的主机位是6位既2^6-2,最多62台

练习3:

有两台电脑主机,在最少浪费IP地址的情况下。将172.16.14.4与172.16.13.2划归为同一网段,则子网掩码应该设置为?
14的二进制为1110
13的二进制为1101
掩码号为:1111 1111 1111 1111 1111 1100 0000 0000
掩码为:255.255.252.0

网络模型

体系结构

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

OSI(理想化的模型)

  1. OSI模型是一个理想化的模型,尚未有完整的实现
  2. OSI模型共有七层
  3. OSI现阶段只用作教学和理论研究

OSI模型

OSI模型是最理想的模型

物理层:传输的是bit流(0与1一样的数据),物理信号,没有格式

链路层:格式变为帧(把数据分成包,一帧一帧的数据进行发送)

网络层:路由器中是有算法的,ip,(主机到主机)(路由的转发)

传输层:端口号,数据传输到具体那个进程程序(端到端)

会话层:通信管理,负责建立或者断开通信连接

表示层:确保一个系统应用层发送的消息可以被另一个系统的应用层读取,编码转换,数据解析,管理数据加密,解密;

应用层:指定特定应用的协议,文件传输,文件管理,电子邮件等。

TCP/IP模型

注意:TCP和IP是属于不同协议栈层的,只是这两个协议属于协议族里最重要的协议,所以协议栈或者模型以之命名了。

   

网络接口和物理层:屏蔽硬件差异(驱动),向上层提供统一的操作接口。

网络层:提供端对端的传输,可以理解为通过IP寻址机器。

传输层:决定数据交给机器的哪个任务(进程)去处理,通过端口寻址

应用层:应用协议和应用程序的集合

网络接口和物理层:
	ppp:拨号协议(老式电话线上网方式)
	ARP:地址解析协议  IP-->MAC
	RARP:反向地址转换协议 MAC-->IP
网络层:	
	IP(IPV4/IPV6):网间互连的协议
	ICMP:网络控制管理协议,ping命令使用
	IGMP:网络分组管理协议,广播和组播使用
传输层:
	TCP:传输控制协议
	UDP:用户数据报协议
应用层:
	SSH:加密协议
	telnet:远程登录协议
	FTP:文件传输协议
	HTTP:超文本传输协议
	DNS:地址解析协议
	SMTP/POP3:邮件传输协议

DOS攻击(恶意网络攻击)(了解)

DOS (Denial of Service) 攻击是一种恶意的网络攻击,旨在使目标系统无法正常运行或提供服务。DOS 攻击通常通过超载目标系统的资源,例如带宽、处理能力或存储空间,以造成系统崩溃或无法响应正常请求。

攻击类型

  1. Flooding 攻击:攻击者发送大量的请求或数据包来淹没目标系统。常见的 Flooding 攻击包括 SYN Flood(利用 TCP 协议的三次握手过程),UDP Flood(发送大量的 UDP 数据包),以及 ICMP Flood(发送大量的 ICMP Echo 请求)。

  2. 资源耗尽攻击:攻击者利用目标系统的漏洞或弱点,以消耗其资源。例如,Ping of Death 攻击利用 ICMP 协议中的漏洞发送超大尺寸的数据包,导致目标系统崩溃。

  3. 应用层攻击:攻击者利用目标系统的应用层漏洞或弱点,以使系统无法处理正常请求。例如,HTTP Flood 攻击利用大量的 HTTP 请求耗尽服务器资源。

  4. 分布式拒绝服务攻击(DDoS 攻击):DDoS 攻击与 DOS 攻击类似,但涉及多个来源的攻击流量。攻击者控制多个被感染的计算机或"僵尸"计算机,形成一个"僵尸网络"(botnet),并协同发动攻击。这使得攻击更难以防御,因为攻击流量来自多个来源。

防御出发点

  1. 网络流量监控:实时监测网络流量,及时检测异常流量模式,以便快速识别和应对攻击。

  2. 防火墙和过滤器设置:使用防火墙和流量过滤器来阻止来自恶意源的流量,限制对网络资源的访问。

  3. 负载均衡:通过在多台服务器之间分配负载,确保系统资源被合理使用,从而减轻攻击对单一服务器的影响。

  4. 入侵检测和入侵防御系统:使用入侵检测和入侵防御系统来检测和应对可能的攻击行为。

  5. 流量清洗服务:使用专门的流量清洗服务提供商,通过过滤流量并仅传递合法请求,从而减轻 DOS 攻击对网络的影响。

防御方法

  1. 限制并发连接:配置服务器或网络设备,限制每个IP地址或来源的并发连接数。这可以防止单个攻击者占用过多的资源。

  2. 增加带宽和硬件资源:通过增加网络带宽和服务器硬件资源,使系统更能承受攻击造成的负载。

  3. 配置反向代理:使用反向代理服务器来过滤和分发流量。反向代理可以识别和拦截恶意请求,从而减轻对后端服务器的影响。

  4. 使用入侵防御系统(IDS)和入侵防火墙(IPS):IDS和IPS系统可以监控网络流量,并检测和阻止恶意活动和攻击尝试。

  5. 使用内容分发网络(CDN):CDN将内容缓存到分布在全球各地的服务器上,可以分散流量并减轻DOS攻击对源服务器的影响。

  6. 配置正确的超时和连接限制:在服务器上配置适当的超时和连接限制,以防止恶意连接长时间占用系统资源。

  7. 更新和修补漏洞:及时更新服务器和应用程序的补丁,以修复已知的安全漏洞,并减少受攻击的风险。

  8. 网络流量分析和日志记录:监控和分析网络流量和服务器日志,以便及时发现和应对异常活动。

  9. 合作与协同防御:与网络服务提供商(ISP)和其他相关组织合作,共享攻击信息和采取集中的防御措施。

UDP和TCP

UDP和TCP协议相同点:都是传输层协议

TCP:

是一种面向连接的传输层协议,它能提供高可靠性通信(即数据无误、数据无丢失、
数据无失序、数据无重复到达的通信)

适用情况:
 1、适合于对传输质量要求较高,以及传输大量数据的通信。
 2、在需要可靠数据传输的场合,通常使用TCP协议
 3、MSN/QQ等即时通讯软件的用户登录账户管理相关的功能通常采用TCP协议

UDP:

UDP(User Datagram Protocol)用户数据报协议,是不可靠的无连接的协议。在数据发送前,因为不需要进行连接,所以可以进行高效率的数据传输。

适用情况:
1、发送小尺寸数据(如对DNS服务器进行IP地址查询时)
2、在接收到数据,给出应答较困难的网络中使用UDP。
3、适合于广播/组播式通信中。
4、MSN/QQ/Skype等即时通讯软件的点对点文本通讯以及音视频通讯通常采用UDP协议
5、流媒体、VOD、VoIP、IPTV等网络多媒体服务中通常采用UDP方式进行实时数据传输

 

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

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

相关文章

MySQL 数据库之 MMM 高可用架构构建

一、MMM 概述 1. 什么是 MMM   MMM(Master-Master replication manager for MySQL,MySQL 主主复制管理器)是一套支持双主故障切换和双主日常管理的脚本程序。MMM 使用 Perl 语言开发,主要从来监控和管理 MySQL Master-Master&a…

工厂模式中简单工厂模式、工厂方法模式、抽象工厂模式的分析与总结

工厂模式 工厂模式有许多变体,其中最常见的有三种 简单工厂模式工厂方法模式抽象工厂模式 简单工厂代码分析 UML图中我们可以清晰的看到代码结构 ,首先我们创建一个Car的汽车接口,定制汽车的基本规范,汽车可以的方法是可以跑,所以我们定义了一个抽象的run方法. 定义汽车接口…

【sed编辑器】

目录 一、sed编辑器二、sed的命令格式操作命令1.1、命令演示 二、替换三、插入 一、sed编辑器 1、sed是一种流编辑器,流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。 2、sed编辑器可以根据命令来处理数据流中的数据,这些命令要么…

OSC Liblo Window10配置

OpenSoundControl一种网络通讯协议,想了解详情的自行打开网站。 liblo 是最知名的OSC库, 功能完整,用 C 和 LGPL 许可编写。 下载请前往GitHub库。 解压后安装过程如下,需要用到CMake: 1.选择源代码文件和构建工程的文…

一文读懂“生成式 AI”

一、前言 本文基于谷歌的:《Introduction to Generative AI》 并且借助 ChatGPT 整理而成,帮助大家理解生成式 AI 这个概念。 主要包括 4 个部分: 生成式 AI 的定义生成式 AI 的工作原理生成式 AI 模型的分类生成式 AI 的应用 二、生成式…

【数据结构】双向带头循环链表的实现

目录 全部代码 图例(双向带头循环链表) 各个功能的实现 创建该链表的节点 创建初始链表 链表的头插 链表的尾插 链表的随机插入 链表的头删 链表的尾删 链表的随机删除 链表的销毁 链表是否为空的判断 链表节点的创建 总结 全部代码 typ…

命令行更新Windows

命令行更新Windows powershell命令行更新安装 Windows Update module for Windows Powershell连接到 Windows Update 服务器并下载更新安装下载好的 Windows Update 更新 cmd执行Windows update更新检查更新下载 Windows Update 更新安装更新安装更新后重新启动设备 win10以下版…

Python中Pandas库的相关操作

目录 Pandas库 常用操作 创建DataFrame 查看数据 数据选择和过滤 数据排序和排名 缺失数据处理 数据聚合和分组 数据的合并和连接 Pandas库 Pandas是Python中常用的数据处理和分析库,它提供了高效、灵活且易于使用的数据结构和数据分析工具。 1.Series&a…

实例35---字符串反转,如将字符串 “www.runoob.com“ 反转为 “moc.boonur.www“。

文章目录 前言一、题目描述 二、题目分析 三、解题 1.解题方法一--- for循环来将字符的下标数值进行对每一个字符进行交换 ---程序运行代码 2.解题方法二------ 指针 ------ 程序运行代码(1)程序运行代码优化 总结 前言 本系列为C语言菜鸟100道基础经典例题详解刷题系列。点滴…

微服务:服务发现

1. 服务发现 eureka、nacos、Consul、etcd 和 zk 都是主流的服务发现工具,而 Dubbo 和 Polaris Mesh 则是基于服务发现的 RPC 框架。 它们的主要区别在于: eureka 是 Netflix 开源的一个服务发现组件,支持高可用和数据同步,具有…

如何使用Linkage Mapper揭示栖息地变化的故事

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Linkage Mapper解密数字世界链接 文章目录 引言1.1 定义和作用1.2 Linkage Mapper的历史和发展2.1 揭示栖息地变化的重要性2.2 Linkage Mapper的优势和不足

Windows下载安装RocketMq

Windows下载安装RocketMq 下载安装包启动NAMESERVER 和 BROKER启动NAMESERVER启动BROKER 安装可视化插件 下载安装包 RockitMQ官网下载地址:https://rocketmq.apache.org/release-notes/ 解压到指定的文件夹下 先配置JAVA_HOME 配置ROCKETMQ_HOME环境变量 …

使用Maple的Python API :OpenMaple(Windows下的解决方案)

在Maple 2023(按照软件文档,Maple 2018及以上版本均适用;我目前测试的版本为2023)的安装目录下,有软件附带的解释器,如D:\Program Files\Maple 2023\Python.X86_64_WINDOWS\Python.exe。这一Python解释器的…

Python中NumPy库的相关操作

目录 NumPy库 常用操作 创建数组 数组属性 索引和切片 数组运算 数组重塑 NumPy库 NumPy(Numerical Python)是Python中常用的数值计算库,它提供了高性能的多维数组对象和对数组进行操作的函数。 1.多维数组对象(ndarray&…

Java 课程设计 —— 扫雷

一、团队课程设计博客链接: https://www.cnblogs.com/luomeili/p/10280310.html 二、个人负责模块或任务说明: 模块:文件操作 Minefield 类实现 三、自己的代码提交记录截图 四、自己负责模块或任务详细说明 1.Minefield 类实现 Minefie…

Java中的CountDownLatch和CyclicBarrier有什么作用?

在Java并发编程中,CountDownLatch和CyclicBarrier是两个非常有用的工具,它们可以帮助我们更加方便地进行线程通信和协作。在本文中,我将从面试的角度,详细讲解Java中的CountDownLatch和CyclicBarrier的概念、作用和实现方式&#…

基于卷积的图像分类识别(六):DenseNet FractalNet

系列文章目录 本专栏介绍基于深度学习进行图像识别的经典和前沿模型,将持续更新,包括不仅限于:AlexNet, ZFNet,VGG,GoogLeNet,ResNet,DenseNet,SENet,MobileN…

如何搭建自己的git服务器

GitHub,Gitee 想来大家都用过,我们的代码就是托管在这些平台上的。因此,你可能好奇为什么我们不自己搭建一个 git 呢服务器?下面,就开始教大家如何一步步搭建自己的 git 服务器(试验成功的那一刻还是很让人…

Java 中 ArrayList 和 LinkedList 有什么区别

在Java中,ArrayList和LinkedList是两种常见的集合类。它们都实现了List接口,提供了类似数组的功能,可以存储任意类型的对象。虽然它们都可以实现相同的功能,但是它们的底层实现方式有所不同,因此在性能和用途上也存在一…

dom4j解析XML文件

主要为了讲解Mybatis中如何用dom4j解析XML,这里当作dom4j解析.XML文件的练习 引入mybatis配置文件和一个.xml文件 都是.xml <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN…