网络编程 lesson1 网络概念

2023-10-30 18:20
文章标签 概念 编程 网络 lesson1

本文主要是介绍网络编程 lesson1 网络概念,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

网络发展史(了解)

局域网和广域网

局域网

广域网

IP地址

IP地址划分(IPV4)

 IP地址取址范围:

特殊地址

子网掩码

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

练习

练习1:

练习2:

练习3:

网络模型

体系结构

OSI(理想化的模型)

TCP/IP模型

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

攻击类型

防御出发点

防御方法

UDP和TCP

TCP:

UDP:

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-->MACRARP:反向地址转换协议 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方式进行实时数据传输

TCP比UDP可靠的原因

  1. 可靠的数据传输机制
  2. 三次握手,四次挥手的链接管理
  3. 拥塞控制
  4. 有序交付数据
  5. 错误检测和纠正

这篇关于网络编程 lesson1 网络概念的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/309740

相关文章

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

poj 3181 网络流,建图。

题意: 农夫约翰为他的牛准备了F种食物和D种饮料。 每头牛都有各自喜欢的食物和饮料,而每种食物和饮料都只能分配给一头牛。 问最多能有多少头牛可以同时得到喜欢的食物和饮料。 解析: 由于要同时得到喜欢的食物和饮料,所以网络流建图的时候要把牛拆点了。 如下建图: s -> 食物 -> 牛1 -> 牛2 -> 饮料 -> t 所以分配一下点: s  =  0, 牛1= 1~

poj 3068 有流量限制的最小费用网络流

题意: m条有向边连接了n个仓库,每条边都有一定费用。 将两种危险品从0运到n-1,除了起点和终点外,危险品不能放在一起,也不能走相同的路径。 求最小的费用是多少。 解析: 抽象出一个源点s一个汇点t,源点与0相连,费用为0,容量为2。 汇点与n - 1相连,费用为0,容量为2。 每条边之间也相连,费用为每条边的费用,容量为1。 建图完毕之后,求一条流量为2的最小费用流就行了

poj 2112 网络流+二分

题意: k台挤奶机,c头牛,每台挤奶机可以挤m头牛。 现在给出每只牛到挤奶机的距离矩阵,求最小化牛的最大路程。 解析: 最大值最小化,最小值最大化,用二分来做。 先求出两点之间的最短距离。 然后二分匹配牛到挤奶机的最大路程,匹配中的判断是在这个最大路程下,是否牛的数量达到c只。 如何求牛的数量呢,用网络流来做。 从源点到牛引一条容量为1的边,然后挤奶机到汇点引一条容量为m的边

【编程底层思考】垃圾收集机制,GC算法,垃圾收集器类型概述

Java的垃圾收集(Garbage Collection,GC)机制是Java语言的一大特色,它负责自动管理内存的回收,释放不再使用的对象所占用的内存。以下是对Java垃圾收集机制的详细介绍: 一、垃圾收集机制概述: 对象存活判断:垃圾收集器定期检查堆内存中的对象,判断哪些对象是“垃圾”,即不再被任何引用链直接或间接引用的对象。内存回收:将判断为垃圾的对象占用的内存进行回收,以便重新使用。

Go Playground 在线编程环境

For all examples in this and the next chapter, we will use Go Playground. Go Playground represents a web service that can run programs written in Go. It can be opened in a web browser using the follow

【VUE】跨域问题的概念,以及解决方法。

目录 1.跨域概念 2.解决方法 2.1 配置网络请求代理 2.2 使用@CrossOrigin 注解 2.3 通过配置文件实现跨域 2.4 添加 CorsWebFilter 来解决跨域问题 1.跨域概念 跨域问题是由于浏览器实施了同源策略,该策略要求请求的域名、协议和端口必须与提供资源的服务相同。如果不相同,则需要服务器显式地允许这种跨域请求。一般在springbo

深入理解RxJava:响应式编程的现代方式

在当今的软件开发世界中,异步编程和事件驱动的架构变得越来越重要。RxJava,作为响应式编程(Reactive Programming)的一个流行库,为Java和Android开发者提供了一种强大的方式来处理异步任务和事件流。本文将深入探讨RxJava的核心概念、优势以及如何在实际项目中应用它。 文章目录 💯 什么是RxJava?💯 响应式编程的优势💯 RxJava的核心概念