网络编程!

news2024/9/28 5:35:01

网络编程

【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是一种用于实现网络通信的编程接口,它允许应用程序通过网络在不同的计算机之间进行数据传输和同学。

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

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

相关文章

昇思学习打卡-8-计算机视觉/FCN图像语义分割

目录 FCN介绍FCN所用的技术训练数据的可视化模型训练模型推理FCN的优点和不足优点不足 FCN介绍 FCN主要用于图像分割领域,是一种端到端的分割方法,是深度学习应用在图像语义分割的开山之作。通过进行像素级的预测直接得出与原图大小相等的label map。因…

【JavaScript 算法】快速排序:高效的排序算法

🔥 个人主页:空白诗 文章目录 一、算法原理二、算法实现三、应用场景四、优化与扩展五、总结 快速排序(Quick Sort)是一种高效的排序算法,通过分治法将数组分为较小的子数组,递归地排序子数组。快速排序通常…

近期几首小诗汇总-生活~卷

生活 为生活飘零,风雨都不阻 路见盲人艰,为她心点灯 贺中科大家长论坛成立十五周年 科学家园有喜贺 园外丑汉翘望中 曾一学子入我科 正育科二盼长大 憧憬也能入此家 与科学家论短长 园外翘首听高论 发现有隙入此坛 竟然也能注册成 入园浏览惶然立 此贴…

使用ffmpeg将一个目录下的mkv格式的视频文件转换成mp4格式

最近学剪辑,从BT种子下载的素材资源都是mkv格式的,不能直接导入到视频剪辑软件中。这种情况下需要用一些格式转换工具进行转换,也可以使用ffmpeg进行编辑。 ffmpeg是一个命令行工具,用来对本地的音频视频软件进行编辑。ffmpeg我也…

【服务器】端口映射

文章目录 1.端口映射的概念1.1 端口映射的类型1.2 端口映射的应用场景1.3 示例 2.为什么要进行端口映射呢?3.原理3.1【大白话】原理解释3.2 原理图 4.代码 1.端口映射的概念 端口映射(Port Mapping),也称为端口转发(P…

萝卜快跑:未来出行的双刃剑

欢迎来到 破晓的历程的 博客 ⛺️不负时光,不负己✈️ 在这个日新月异的科技时代,无人驾驶技术正以前所未有的速度改变着我们的出行方式。萝卜快跑,作为自动驾驶出租车领域的佼佼者,其出现无疑为城市交通注入了新的活力&#xff…

[微信小程序知识点]自定义组件-拓展-外部样式类

使用组件时,组件使用者可以给组件传入css类名,通过传入的类名修改组件的样式 。 如果需要使用外部样式类修改组件的样式,在Component中需要用extemalClassess定义若干个外部样式类。 具体用法如下: (1)在Components文件里创建custom06组件 (…

谷粒商城实战笔记-26-分布式组件-SpringCloud-Gateway网关核心概念原理

微服务架构中,API网关扮演着至关重要的角色,它不仅作为微服务间的通信桥梁,还负责安全、监控、限流等职责。 一,网关的发展历程 SpringCloud的网关经历了两代的迭代和更替。 第一代网关是早期的Zuul,由 Netflix 开发…

【密码学】数字签名

一、数字签名的基本概念 数字签名是一种用于验证电子文档完整性和身份认证的密码学技术。它通过使用公钥加密体系中的私钥对文档的一部分(通常是文档的摘要)进行加密,从而创建一个“签名”。这个签名可以附在文档上,或作为一个单独…

巧用 VScode 网页版 IDE 搭建个人笔记知识库!

[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路 ] 巧用 VScode 网页版 IDE 搭建个人笔记知识库! 描述:最近自己在腾讯云轻量云服务器中部署了一个使用在线 VScode 搭建部署的个人Markdown在线笔记,考虑到在线 VScode 支持终…

C++笔试真题

可变分区管理方案 最佳适应:空闲区按容量递增最坏适应:空闲区按容量递减首先适应:空闲区按地址递增 C的结构体中有构造函数。 Linux新建用户或组 useradd:命令用于建立用户账号usermod:修改用户账号groupadd&#…

Spire.PDF for .NET【文档操作】演示:C#/VB.NET:压缩 PDF 文档

大型 PDF 文件处理起来很麻烦,占用宝贵的存储空间并减慢传输和上传速度。压缩 PDF 文档是一种简单有效的方法,可以减少文件大小并针对各种用途进行优化。通过压缩 PDF,您可以更轻松地通过电子邮件或云存储平台共享它们,加快下载速…

用Apipost压力测试接口

用Apipost压力测试接口 1.点击自动化测试 2.选择要测试的接口 3.如果没有接口,就先在api调试中添加要测试的接口 4.根据自己的需求设置相应的参数,这里我压测10次 5.这样就可以压测接口了,非常nice

接口幂等性和解决方案

针对前端重复发起相同请求的解决方案: 注意: Redis保证了在相同key的情况下,只会保留一条数据,这就保证了多次请求只会消费一条数据。 并且需要注意的是,生成/获取token和携带token发送请求的过程需要是两个不同的过…

showdoc sqli to rce漏洞利用思考

漏洞版本 sqli <3.2.5 phar 反序列化 <3.2.4 漏洞分析 前台sqli 补丁 https://github.com/star7th/showdoc/commit/84fc28d07c5dfc894f5fbc6e8c42efd13c976fda 补丁对比发现&#xff0c;在server/Application/Api/Controller/ItemController.class.php中将$item_id变量…

Java--抽象类

1.抽象--abstract 2.不能对抽象类进行实例化&#xff0c;也就是不能new这个抽象类 3.抽象类的应用&#xff0c;就是在class前加入abstract这个单词&#xff0c;同理抽象方法也是在void前加入abstract 4.在抽象类中可以写普通方法&#xff0c;但抽象方法只能写在抽象类中 5.…

Linux账号和权限管理详解

Linux系统中安装和管理程序 太详细了 &#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的…

婚恋交友语音交友小程序APP系统开发

在数字化时代&#xff0c;婚恋交友的方式也日益多样化。传统的相亲、朋友介绍等方式已经无法满足现代人快节毒的生活需求&#xff0c;更多的人开始选择通过线上平台寻找自己的另-婚恋交友语音交友小程序APP应运而生&#xff0c;为单身男女提供了个便捷、高效的交友平台。本文将…

vue使用quill编辑器自定义附件上传方法,并根据上传附件名称生成链接

1、附件上传 需求&#xff1a; 在编辑器中上传word,pdf,excel等附件后&#xff0c;能根据上传附件的名称生成link链接&#xff0c;在展示页面能实现点击链接下载或预览附件&#xff0c;效果图如下: 实现方法&#xff1a; quill编辑器自身带有link&#xff0c;但不满足需求&…

探索【Python面向对象】编程:新时代的高级编程范式详解

目录 1. 面向对象编程概念&#xff08;OOP&#xff09; 1.1 什么是类和对象&#xff1f; 1.2 类的定义 1.3 类和对象的关系 1.4 小李的理解 2. 抽象 2.1 抽象的概念 2.2 抽象类和方法 2.3 小李的理解 3. 类和实例 3.1 类的定义和实例化 3.2 类的属性和方法 3.3 小…