网络编程
【1】网络开发架构
( 1 ) C / S 架构
C : client (客户端)
S: server (服务端)
APP - 就是服务端
C/S 架构通过客户端软件和服务器之间的交互,实现了前端界面和后端业务逻辑的分离,提供了一种稳定、可靠的架构模式。
( 2 ) B / S 架构
B : brower(网页端)
S: server (服务端)
打开QQ音乐----> 向QQ音乐发起请求
将资源在本地的浏览器进行渲染
B/S 架构通过浏览器和服务器之间的交互,实现了前端界面和后端业务逻辑的分离,提供了一种灵活、可扩展的架构模式。
( 3 ) B / S 架构 和 C / S机构 的优缺点
B / S 架构
维护和升级方式简单 : 我只需要更新服务器的资源就可以了
成本也比较低, 选择性也很多
服务数据太多了, 负载严重
C / S 架构
服务器压力有所减轻, 把一部分资源分跟客户端保存
数据的存储和管理比较透明,APP逆向
成本较高,维护费力
C / S 架构是主流趋势
【2】互联网协议
(1)什么是网络编程
网络编程的研究前提就是基于互联网
网络编程就是基于互联网写代码
(2)网络编程的媒介
网络编程的媒介是计算机网络。
而网络协议和网络编程框架和库则是实现网络编程的基础。
【3】OSI七层协议
网络通信协议标准
应用层:负责处理特定的应用程序协议,包括电子邮件、文件传输、远程登录。
表示层:负责数据的表示和编码,在不同系统中传输前将数据进行转换和压缩等操作。
会话层:负责建立、管理和终止会话,包括数据交换的同步和检查点的创建与恢复等功能。
传输层:负责端到端的数据传输,提供可靠数据传输服务,包括流量控制、拥塞控制、错误恢复和数据重传等功能。
网络层:负责实现不同计算机之间的数据包转发和路由器选择,并提供逻辑寻址和拥塞控制等功能。
数据链路层:通过帧来传输数据,负责数据的可靠传输。
物理层:负责在物理媒介上传输比特流,包括传输介质、物理接口和电气特征
优点:
易于理解和实现:由于OSI模型具有清晰的分层结构,因为易于理解和实现
可扩展性好:由于这个体系结构明确地定义了不同的层次和协议,因此它具有很好的可扩展性,可以随时添加新的协议和服务。
提高了协议的互操作性:由于OSI模型对不同协议提供了明确的指导,所以它可以促进不同厂商和供应商的设备之间的互操作性。
降低了复杂性:与其他体系结构相比,OSI模型具有更少的复杂性,因为每个层次的功能都是固定的。
缺点:
过于理论化:OSI模型过于理论化,导致它在实际实现中的使用受到限制。缺乏灵活性:由于OSI模型在每一层都定义了特定的功能,因此缺乏灵活性,不能完全适应不同网络环境的要求。
太过繁琐:由于OSI模型分为7层,因此在实际应用中会导致协议的复杂性和资源消耗增加。
实现代价高:由于OSI模型需要使用大量的协议和设备来实现各个层次之间的通信,因此实现代价很高。
【4】TCP五层协议
应用层:负责处理网络应用程序之间的通信。
传输层:传输层协议提供端到端的同学协议,确保数据在网络上可靠传输。
网络层:处理数据在网络中的传输和路由。
数据链路层:在物理网络上提供了可靠的数据传输。它将数据包封装成帧,通过物理介质进行传输。
物理层:负责在物理媒介上传输比特流,包括传输介质、物理接口和电气特征
优点:
简单明了:TCP/IP五层协议简单明了,易于理解和实现。
开放性强:TCP/IP协议是一种开放式标准,具有很好的兼容性和可扩展性。
稳定可靠:TCP协议提供了可靠的数据传输服务,保证数据的完整性和可靠性。
灵活性高:TCP/IP协议支持多种不同的应用程序,如电子邮件、文件传输、网页浏览等。
安全性高:TCP/IP协议提供了一些安全机制,如IPSec、SSL等,保证数据的安全性和私密性。
缺点:
复杂性较高:TCP/IP协议的实现比较复杂,需要深入了解网络协议的原理和相关技术。性能有限:TCP协议为了保证数据的可靠性,会引入一定的延迟和开销,对实时性要求较高的应用程序不太适合。
安全性不足:TCP/IP协议中的一些安全机制容易受到攻击,需要采取额外的措施来保证安全性。
可靠性有限:TCP/IP协议虽然提供了可靠的数据传输服务,但在网络拥塞时会出现丢包和延迟等问题,需要采取一些手段来解决。
不适合大规模部署:由于TCP/IP协议没有很好地考虑网络管理和维护的问题,因此在大规模的网络部署中可能会出现一些问题。
【5】以太网协议
规范了我们上网的标准
是一种广泛的有线局域网技术之一,用于在计算机网络中进行数据通信。
它定义了计算机之间的物理层和数据链路层的通信规则和格式。
以太网协议的特点:
灵活性,高速性,简单性,可靠性,容错性,扩展性,可靠性
【6】IP协议
是一种网络通信协议
TCP/IP 协议是网络层协议,它负责将数据包将数据包从源地址传输到目的的地址
它定义了数据在互联网上如何传输和路由
IP协议的特点:无链接性,简单灵活,分组传输,路由选择,IP地址,版本号,协议类型
【7】Mac地址
网卡
它又称物理地址,是指网络设备(如计算机、路由器、交换机、网卡)在制造时分配的全球唯一的地址
查找名为“物理地址”或“MAC地址”的字段
【8】广播
同一个局域网内进行数据交互
【9】TCP协议
流式协议
可靠,基于一条通道进行传输的,只有符合规范才会允许建立通道
(1)三次握手
1.客户端向服务端发送连接请求(带着客户端的标识 aaa)2.服务端接收到客户端的连接请求,向客户端回请求(带着服务端的标识和客户端的标识 bbb)
3.客户端和服务端进行建立连接
(2)四次挥手
1.客户端向服务端发送断开请求2.服务端接受到客户端的请求,继续处理完没有完成的数据
3.向客户端发送断开请求
4.客户端接收到服务端的断开请求,断开连接
【10】UDP协议
报式协议
UDP协议是在传输层的协议
特点:
无连接性:UDP在发送数据之前不需要建立连接。简单快速:UDP的协议头部相对较小。通信开销夜宵,因此传输相对较快。
不可靠性:UDP不提供可靠性保证,数据包的传输顺序不被保证。
支持广播和多播:可以连接局域网的所有设备进行广播
适用于实时应用:
【11】socket协适用于实时应用议
如何建立TCP连接 / UDP连接
什么是socket:
Scoket是可以理解为一种抽象端点,它可以用来建立网络连接、发送和接收数据。
Scocket是一种用于实现网络通信的编程接口,它允许应用程序通过网络在不同的计算机之间进行数据传输和同学。