首页 > 编程语言 >网络编程基础

网络编程基础

时间:2022-11-15 19:13:17浏览次数:39  
标签:架构 计算机 公网 IP 编程 基础 网络 网络地址 IP地址

内容概要

  • 软件开发架构
  • 架构发展趋势
  • 网络编程简介
  • OSI七层协议
  • 各种重点协议

软件开发架构

软件开发架构规定了程序的请求逻辑、功能分块

1.C/S 架构
	Client:客户端
    Server:服务端
# 我们使用计算机下载下来的app本质是各大互联网公司的客户端软件
# 通过客户端我们就可以体验互联网公司给我们提供的服务
一般情况下客户端与服务端需要互联网,但是单机版本的软件就不需要,因为单机版本相当于将客户端和服务端都在同一台计算机上

客户端就相当于准备消费的客人,服务端就相当于提供服务的店铺
所以作为服务端需要具备多个条件:
'''
1.24小时不间断的提供服务
2.固定的地址
3.能够同时服务多个客人(高并发)
'''
2.B/S 架构
	Browser:浏览器
    Server:服务端/器
# 浏览器可以充当所有服务端的客户端
# B/S架构的本质还是C/S架构
'''
C/S架构 
	优势: 不同公司的客户端是由不同公司独立开发,因此可以高度定制化客户端功能
	劣势: 需要进行下载使用
B/S架构
	优势:不需要下载直接就可以使用
	劣势:无法高度定制化,必须遵循很多规则
'''

架构总结

软件设计的大方向>>>>>>>>统一接口
	ps:  微信小程序  
         支付宝小程序
ATM项目
选课系统项目
本质上也属于软件开发架构的范畴

网络编程简介

1.网络编程的定义:
	网络编程是基于网络编写代码,能够实现数据的远程交互
2.学习网络编程的目的:
	能够开发C/S架构的软件
3.网络编程的起源:
	'''
	最早起源于美国军事领域
	是为了实现计算机之间的数据交互
	当时只能通过硬盘拷贝,不能实现远距离的信息传输
	'''

网络相关专业名词

计算机想要实现数据交互必须要链接到一起

子网掩码与IP

我们在接入网络设备之后需要一个IP去代指这个电脑
IP是一个32位的二进制,为了方便记忆就将他分为了四组,每组8位,通过小数点分开
如:
# 二进制表示:00000000.10010111.11111111.00001111
# 十进制表示:251.151.255.15
网络中的每一台电脑都会有一个IP与之绑定,那么我们就可以通过IP找到相应的电脑

IPv4,长度为 32 位(4 个字节), 格式:A.B.C.D
IPv6,长度为 128 位(16 个字节),用":"分成8段,格式:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX(每个X是一个16进制数)。
  • 网络地址与主机地址
# IP地址可以划分为两个部分,一个是网络地址,一个是主机地址
我们可以通过子网掩码去去确定网络地址和主机地址
'''
  1.  	IP:192.168.1.199      11000000.10101000.00000001.11000111
	子网掩码:255.255.255.0     11111111.11111111.11111111.00000000
此时,网络地址就是前24位 + 主机地址是后8位。你可能见过有些IP这样写 192.168.1.199/24,意思也是前24位是网络地址。

  2.  	IP:192.168.99.254     11000000.10101000.01100011.11111110
	子网掩码:255.255.240.0     11111111.11111111.11111100.00000000
此时,网络地址就是前22位 + 主机地址是后10位。你可能见过有些IP这样写 192.168.99.254/22,意思也是前22位是网络地址。
'''
  • 划分网络地址与主机地址的意义
网络地址相同的IP,也属于同一个网段
在局域网中,只有同一个网段的IP才能相互通信,不同网段IP想要通信需要借助路由器的转发才能通信。

DCHP(动态主机配置协议)

  • 配置主机IP地址
# 在一个局域网内想要给某台电脑分配IP有两种方式:
自动获取,通过DCHP服务自动分配IP、子网掩码、网关
手动设置

image

内网和公网IP

我们在局域网内为电脑分配的IP都称为'内网IP',基于内网IP可以在一个局域网内进行相互通信(也需要相关的配置)

那么我们如果想通过互联网去进行通信的话,我们就需要借助公网IP

image

  • 第一步:左边公司,去运营商申请公网的固定IP(办理专线宽带时运营商会分配至少1个固定的IP地址),其实运营商就是将你拉的这个专线和固定IP创建绑定关系。(假设公网IP:123.206.15.88)
  • 第二步:配置公网IP与指定服务器的转发规则。
  • 第二步:右边家庭,如果想要访问某个公司服务器上的网网站,只需要执行指定IP:123.206.15.88,运营商就会根据IP找到与之关联的公司专线,并通过公司路由器、防火墙等设备找到指定的服务器。
'''按理说,每个从运营商接入网的用户都可以有一个外网IP,但由于全球用户太多而IP根本就不够分配,所以,运营商网络会进行划分,让多个家庭宽带用户共用一个公网IP(动态,可能每次上网公网IP都不一样)。

让家庭用户想要通过网络访问访问其他IP时,先发给运营商由运营商向外转发到其他IP。

注意:外部用户想要访问家庭宽带的IP时,运营商不会把请求转发到我们的电脑。'''

我们如果想要开发一个可以供全球用户访问的网站,那么我们就需要以下几点

  • 拉专线,申请固定公网IP
  • 买一台服务器(就是性能好的电脑)
  • 公网IP绑定至此服务器
  • 将写好的代码放在服务器上并运行起来

云服务器

  • 云服务器的概念

    简单来说,云服务器就相当于运营商买了很多高性能的服务器(电脑),然后通过租赁这些服务器资源,让用户不需要自己去拉专线、配置网络、买服务器
    

    就相当于高性能的电脑分出很多虚拟机,租赁给用户使用

image

域名

假设你创业开发了一个网站,用户很难记住你的公网IP: 123.203.15.88:82
所以,域名就诞生了,让域名和IP创建对应关系,用户只需要记住域名就可以了,例如:

域名只是与IP创建了对应的关系,但是与端口无关!

在用户在自己的电脑或手机上输入域名去访问时,其实要执行两个步骤:

  • 根据域名寻找IP。(寻找IP)
  • 获得IP之后,再通过IP再去访问指定服务器。

交换机

能够将所有接入交换机的计算机彼此互联起来

广播

首次查找接入同一个交换机的其他计算机,需要朝交换机里面说一声

单播

首次被查找的计算机回应查找它的计算机,并且附带自己的MAC地址

广播风暴

接入同一台交换机的多台计算机同时发广播

局域网

可以简单的理解为有单个交换机组成的网络 在局域网内可以直接使用mac地址通信

广域网

可以简单的理解为范围更大的局域网

互联网

由所有的局域网、广域网连接到一起形成的网络

路由器

不同的局域网计算机之间是无法直接实现数据交互的 需要路由器连接

OSI七层协议简介

'''
OSI七层协议:规定了所有的计算机在远程数据交互的时候必须经过相同的处理流程,在制造过程中必须拥有相同的功能硬件
'''
应用层
表示层
会话层
传输层
网络层
数据链路层
物理连接层
'''常见的是整合之后五层或者四层'''
应用层
传输层
网络层
数据链路层
物理连接层

应用层
传输层
网络层
网络接口层
'''
接收网络消息 数据从下往上传递
发送网络消息 数据由上往下传输
'''

物理链接层

主要用于确保计算机之间的物理链接介质,接收数据(bytes类型、二进制)

数据链路层

1.规定了电信号的分组方式
2.以太网协议
	规定了计算机在出场时都必须有一块网卡,网卡上有遗传数字
    '''
    该数字就相当于计算机的身份证号码是独一无二的
    该数字的特征:12位16进制数据
    	前6位:产商编号
    	后6位:流水线号
    该数字也称为:以太网地址/MAC地址
    '''

网络层

IP协议:规定了所有接入互联网的计算机必须有一个IP地址,类似于子身份证号码
	MAC地址是物理地址,无法进行修改
    IP地址是动态分配的 在不同的场地,IP地址也会发生改变
IP地址特征:
	IPV4:点分十进制
    范围:
    0.0.0.0
    255.255.255.255
	IPV6:能够给地球上每一粒沙分一个IP地址 
	IP地址可以跨局域网传输
# IP地址可以用来标识全世界独一无二的一台计算机

image

传输层

PORT协议(端口协议)
	用来识别一台计算机上面的某一个应用程序
    范围:0-65535
    特征:动态分配
建议:
0-1024  # 系统默认需要使用
1024-8000  # 创建软件的端口号
使用8000之后的端口号

URL:统一资源定位符(网址)
	网址本质上是有IP和PORT组成的!!!
    
IP+PORT:能够定位全世界独一无二的一台计算机上面的某一个应用程序

域名解析:将网址解析成IP+PORT

我们之所以不直接使用IP+PORT的原因是太难记 所以发明了域名(网址)

IP:PORT  实际使用冒号连接
    114.55.205.139:80

标签:架构,计算机,公网,IP,编程,基础,网络,网络地址,IP地址
From: https://www.cnblogs.com/ddsuifeng/p/16893544.html

相关文章

  • 网络编程(其一)
    软件开发架构规定了程序的请求逻辑、功能分块1。c/s架构 client:客户端 Server:服务端"""我们使用计算机下载下来的一个个app本质是各大互联网......
  • 网络编程
    网络编程软件开发框架软件开发框架可以看做是围墙,在围墙围起来的空间范围内对程序的功能进行了划分,规定程序各个功能模块之间运行的逻辑以及请求逻辑在我们之前所编写的......
  • 计算机网络基础与网络编程基础
    目录计算机网络基础软件开发架构架构总结:架构发展趋势网络编程前戏OSI七层协议osi七层协议:规定了所有计算机在远程数据交互的时候必须警告相同的处理流程、在制造过程中必......
  • 07基础元器件-压敏电阻
     一、原理压敏电阻的工作原理:压敏电阻相当于一个可变电阻,它是并联于电路中。当电路正常工作时,它的阻抗很大,漏电流很小,相当于开路,对电路几乎没有影响。但当一个很高的突......
  • 网络编程,osi七层协议
    软件开发架构规定了程序的请求逻辑,功能分开分为两种:1.C/S架构 客户端(Client)类似于我们下载的app,给客户提供软件体验,可以理解成要去消费的客户服务端......
  • 网络编程
    网络编程软件开发架构1.C/S架构C:Client客户端S:Server服务端客户端指代的是手机端的APP和电脑上的各种软件,我们可以通过这些软件来进行各种各样的操......
  • 初识RocketMQ基础概念(一)
    20年入职ryx公司后,刚好接触到一个线上问题,遂开了一个研究课题,一场针对ApacheRocketMQ的无烟战争正式打开。一开始刚接触这玩意,只是通过百度搜索简单了解下,后来发现很多文......
  • 网络编程:软件开发架构、架构总结、网络编程前戏、OSI七层协议简介、OSI七层协议之物
    目录软件开发架构架构总结网络编程前戏OSI七层协议简介OSI七层协议之物理连接层OSI七层协议之数据链路层网络相关专业名词OSI七层协议之网络层OSI七层协议之传输层软件开......
  • 软件工程实验二—电梯编程
    #include<stdio.h>#include<windows.h>typedefstructelevator{ intstaus;//三种状态:静止,上行,下行 inttype;//三种类型:双,单,全 intfloor;//此时停在的楼层数 intbeixuy......
  • 道长的算法笔记:基础最短路模型
    #include<bits/stdc++.h>usingnamespacestd;typedefpair<int,int>ii;//移动轨迹向量化intadd[3]={+1,-1,0};intmul[3]={0,0,1};intvist[10000......