网络编程及并发编程1 11-15 网络编程理论、软件开发架构、网络专业名词、OSI七层协议

内容概要:

  • 计算机网络编程理论
  • 软件开发架构
  • 网络编程前戏
  • 网络相关专业名词
  • OSI七层协议简介
  • OSI七层协议之物理连接层
  • OSI七层协议之数据链路层
  • OSI七层协议之网络层
  • OSI七层协议之传输层

内容详细

计算机网络编程理论

针对软件开发,目前市面上所有的主流软件,基本上都会使用网络进行通信,传输各种数据,作为软件开发人员,掌握网络编程理论和了解网络编程开发架构是必须的

软件开发架构

程序员编写项目前需要遵循的代码层面上的规范(代码运行的流程、环节、步骤..),软件开发架构规定了程序的请求逻辑、功能分块
之前所学的ATM项目和选课系统项目,都采取了三层架构的方式,三层架构中的用户交互层可以理解为客户端软件,而接口层和数据处理层则可以理解为服务端软件,这就是对c/s架构进行一个简单的理解。

1.C/S架构
	Client:客户端
        eg:手机上的各种app:微信、美团、支付宝
 	Server:服务端
        这些软件核心的数据都在它们的服务端中,核心的处理数据的方式也都在服务端的程序中
   特点:可以满足软件高度定制化的要求,而客户端需要用户下载使用
		"""
		我们使用计算机下载下来的一个个app本质是各大互联网公司的客户端软件
		通过这些客户端软件我们就可以体验到各个互联网公司给我们提供的服务
			eg:
				下载淘宝客户端 打开 体验淘宝服务端提供的购物服务
				下载抖音客户端 打开 体验抖音服务端提供的视频服务 
		ps:一般情况下客户端与服务端交互需要互联网 但是有些不需要(因为客户端和服务端都在一台计算机上 eg:单机游戏)
		
		客户端:即将要去消费的客人
		服务端:给客人提供服务的店
		
		作为服务端必备的多个条件
			1.24小时不间断提供服务
			2.固定的地址
			3.能够服务多个客人(高并发)
		"""
2.B/S架构 (本质也是C/S架构)
	Browser:浏览器
         通过浏览器来充当各个服务端的客户端,浏览器也可以访问网页版的服务端(b站、淘宝...)
	Server:服务器/端
        这里的服务器相应的也要与客户端做一定的适配,并不和C/S的服务器相同
   特点:不用下载,只需要网址就能直接访问,但是只能基于浏览器的协议进行编写,会有一些功能上的限制。
		"""
		浏览器可以充当所有服务端的客户端
		
		ps:B/S架构本质还是C/S架构
		"""
 
'''
C/S架构
	优势:不同公司的客户端由不同公司独立开发 可以高度定制化客户端功能
	劣势:需要下载才能使用
B/S架构
	优势:不用下载直接访问
	劣势:无法高度定制化 并且需要遵守很多规则
'''



架构总结:

ATM:三层架构
选课系统:三层架构
本质也属于软件开发架构的范畴

软件设计的大方向>>>:统一接口
   不用上门也能从相同的地方享受不同的服务哦
   eg:
	微信小程序 
	支付宝小程序
    
后续必然是cs和bs交错使用 避免各自的劣势
ps:可以方便用户使用 更重要的是可以给自己圈用户便于后期收割!!!

网络编程前戏

1.什么是网络编程
	基于网络编写代码 能够实现数据的远程交互
2.学习网络编程的目的
	能够开发cs架构的软件,本质是为了解决计算机之间远程数据交互
3.网络编程的起源
	"""
	最早起源于美国军事领域
		想实现计算机之间数据的交互
			最早的时候只能用硬盘拷贝
			之后发明了网络编程
	"""
4.网络编程必备条件
	数据的远程交互
 		1.早期的电话
        	电话线
  		2.早期的大屁股电脑	
        	网线
 		3.笔记本电脑、移动电话
        	网卡
	ps:实现数据的远程交互必备的基础条件是物理连接介质

网络相关专业名词

计算机之间要想实现数据交互必须要'连接'到一起
灵魂和身体上的连接 你懂的

边缘部分:用户直接使用C/S等方式通信
核心部分:为用户服务,包括网络通路、交换机、路由器等设备

1.交换机
	能够将所有接入交换机的计算机彼此互联起来
    
2.广播
	首次查找接入同一个交换机的其他计算机 需要朝交换机里面吼一嗓子
    
 主机之间“一对所有”的通讯模式,网络对其中每一台主机发出的信号都进行无条件复制并转发,所有主机都可以接收到所有信息(不管你是否需要),由于其不用路径选择,所以其网络成本可以很低廉。有线电视网就是典型的广播型网络,我们的电视机实际上是接受到所有频道的信号,但只将一个频道的信号还原成画面。在数据网络中也允许广播的存在,但其被限制在二层交换机的局域网范围内,禁止广播数据穿过路由器,防止广播数据影响大面积的主机。

3.单播
首次被查找的计算机回应查找它的计算机,并附带自己的mac地址,一般配合tcp协议使用,是一种点对点的可靠传输方式

4.广播风暴
	接入同一台交换机的多台计算机同时发广播。广播风暴是一种很严重的网络故障,以预防为主的防治措施应是主要对策
    '''
   以太网通信(mac通信)
	原理:
    	有了交换机后根据电脑的mac地址就可以实现数据交互
           广播:先在交换机中吼 所有接入交换机的设备都能收到
           单播:只有被查找的设备才会回复相应信息
	缺陷:
    	1.mac地址通信仅限于局域网内
        2.接入交换机的设备过多时,可能会造成广播风暴
        	广播风暴:类似于教室中所有人同时讲话 直接裂开'''
5.局域网
 局域网(Local Area Network,LAN)是指在某一区域内由多台计算机互联成的计算机组
	可以简单的理解为有单个交换机组成的网络
	在局域网内可以直接使用mac地址通信
    
6.广域网
	广域网就可以理解为局域网用路由器连起来形成的更大的局域网
    
7.互联网
	由所有的局域网、广域网连接到一起形成的网络
    
8.路由器
不同的局域网计算机之间是无法直接实现数据交互的 需要路由器连接,路由器就是将多个局域网连接到一起的设备

路由器(Router)又称网关设备(Gateway)是用于连接多个逻辑上分开的网络,所谓逻辑网络是代表一个单独的网络或者一个子网。当数据从一个子网传输到另一个子网时,可通过路由器的路由功能来完成。因此,路由器具有判断网络地址和选择IP路径的功能,它能在多网络互联环境中,建立灵活的连接,可用完全不同的数据分组和介质访问方法连接各种子网,路由器只接受源站或其他路由器的信息,属网络层的一种互联设备。
	

image

OSI七层协议简介

"""
OSI七层协议:规定了所有的计算机在远程数据交互的时候,必须经过相同的处理流程、在制造过程中必须拥有相同的功能硬件
"""
七层协议:

根据不同的处理流程,网络通信被划分为了以下七层:
1.应用层
2.表示层
3.会话层
4.传输层
5.网络层
6.数据链路层
7.物理连接层
ps:应、表、会、传、网、数、物

    
其中,应用层是最接近用户的一层,它可能是一句话、一张图片,一个网页;物理层是一切通信的基础,其形式是二进制的。

发起通信的一方,会逐步的基于这七层协议不断的给我们想要发送的数据打包,数据已经被各种协议包裹后,最终到物理层,然后传送到其他计算机再自下而上不断的按照对应的协议解包,最终还原数据的呈现方式,发送到接收方

每一层的打包结果,都是上面所有层处理结果的总和
每一层的解包结果,都已经解析了下面所有层让其更还原原本的数据
    
    
'''七层协议中最上面三层由于很接近用户,也经常被看做一层,统称应用层
常见的是整合之后五层或者四层'''

五层协议:

应用层(把表示层和会话层合并在应用层中)
传输层
网络层
数据链路层
物理连接层

四层协议:

应用层
传输层
网络层
网络接口层

"""
接收网络消息 数据由下往上传递
发送网络消息 数据由上往下传递
"""

七层结构:
image
image

每层运行常见物理设备:
image

每层运行常见的协议:
image

OSI七层协议之物理连接层

物理层的媒介包括架空明线、平衡电缆、光纤、无线信道等,它为数据端设备建设传输数据的通路,为数据提供传输服务
主要用于确保计算机之间的物理连接介质 接收数据(bytes类型、二进制)

OSI七层协议之数据链路层

1.规定了电信号的分组方式
即发送时将数据处理为二进制数据,接收时能通过首尾一定位数的数据,确定这种处理方式,再反过来处理,得到原本的数据。

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

OSI七层协议之网络层

IP协议:
规定了所有接入互联网的计算机都必须有一个IP地址 类似于身份证号
    
	mac地址:
    物理地址可以看成永远无法修改(一串数字)
	IP地址:
    动态分配的 不同的场所IP是不同的
    
IP地址特征:每个IP都自带定位 
        只有用ip代理才可以隐藏ip(隐藏在朝鲜、阿富汗..)
		 但是ip代理也会被查到  所以可以使用多层代理藏得深点 慢慢找吧
    IPV4:点分十进制
    	最小:0.0.0.0
      最大:255.255.255.255
    ps:随着社会发展 同时能上网的人越来越多 上述地址不够分
        
    IPV6:能够给地球上每一粒沙分一个IP地址 
	 IP地址可以跨局域网传输
ps:IP地址可以用来标识全世界独一无二的一台计算机


    
ARP协议:能够根据IP地址动态解析到一个MAC地址
 	谁正在使用某个IP地址 我们就可以根据IP地址动态解析到使用者的MAC地址

OSI七层协议之传输层

PORT协议(端口协议)
	用来标识一台计算机上面的某一个应用程序
	范围:0-65535
 	特征:动态随机分配 (洗浴中心号码牌)
       但是一些端口会固定分配给一些常见的软件,同一时间同一台计算机端口号不能冲突,我们所写的软件的端口应该放在8000后
	建议: 
       0-1024  		 系统默认需要使用
    	1024-8000 	  常见软件的端口号  
       8000之后的    不常见软件的端口号

    """
    IP+PORT
        IP:用于标识全世界任意一台接入互联网的计算机
        PORT:用于标识一台计算机上的某个应用程序
        IP+PORT:用于标识全世界任意一台接入互联网的计算机上的某一个具体的程序
    """
    
    
URL:统一资源定位符(网址)
    网址本质是有IP和PORT组成的!!!

IP+PORT:
    能够定位全世界独一无二的一台计算机上面的某一个应用程序

域名解析:将网址解析成IP+PORT
    
我们平常见到的网址都是这种格式的
www.baidu.com|www.cnblogs.com/Leethon-lizhilog/

实际上,是为了方便阅读,才将IP:PORT与字符网址对应起来,我们通过DNS服务就可以将域名转换为IP:PORT的格式,从而访问到网络那一端的程序
        
我们之所以不直接使用IP+PORT的原因是太难记 所以发明了域名(网址)

IP:PORT  实际使用冒号连接
    114.55.205.139:80
posted @ 2022-11-15 20:44  热辣香骨鸡  阅读(0)  评论(0)    收藏  举报