网络基础一(协议的概念,网络应用程序设计模式)
协议的概念
什么是协议?
从应用的角度出发,协议可理解为“规则”,是数据传输和数据的解释的规则。
假设,A、B双方欲传输文件。规定:
第一次,传输文件名,接收方接收到文件名,应答OK给传输方;
第二次,发送文件的尺寸,接收方接收到该数据再次应答一个OK;
第三次,传输文件内容。同样,接收方接收数据完成后应答OK表示文件内容接收成功。由此,无论A、B之间传递何种文件,都是通过三次数据传输来完成。A、B之间形成了一个最简单的数据传输规则。
双方都按此规则发送、接收数据。A、B之间达成的这个相互遵守的规则即为协议。这种仅在A、B之间被遵守的协议称之为原始协议。
当此协议被更多的人采用,不断的增加、改进、维护、完善。最终形成一个稳定的、完整的文件传输协议,
被广泛应用于各种文件传输过程中。该协议就成为一个标准协议。最早的ftp协议就是由此衍生而来。
TCP协议注重 数据的传输。http协议着重于 数据的解释。
典型协议
传输层 常见协议有TCP/UDP协议。
应用层 常见的协议有HTTP协议,FTP协议。
网络层 常见协议有IP协议、ICMP协议、IGMP协议。
网络接口层 常见协议有ARP协议、RARP协议。TCP传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议。
UDP用户数据报协议(是OSI参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。
HTTP超文本传输协议 是互联网上应用最为广泛的一种网络协议。
FTP文件传输协议
IP协议是因特网互联协议
ICMP协议是Internet控制报文协议它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。
IGMP协议是 Internet 组管理协议,是因特网协议家族中的一个组播协议。该协议运行在主机和组播路由器之间。
ARP协议是正向地址解析协议,通过已知的IP,寻找对应主机的MAC地址。
RARP是反向地址转换协议,通过MAC地址确定IP地址。
网络应用程序设计模式
C/S模式
传统的网络应用设计模式,客户机(client)/服务器(server)模式。需要在通讯两端各自部署客户机和服务器来完成数据通信。
B/S模式
浏览器()/服务器(server)模式。只需在一端部署服务器,而另外一端使用每台PC都默认配置的浏览器即可完成数据的传输。
**优缺点
对于C/S模式来说,其优点明显。
客户端位于目标主机上可以保证性能,将数据缓存至客户端本地,从而提高数据传输效率。
且,一般来说客户端和服务器程序由一个开发团队创作,所以他们之间所采用的协议相对灵活。
可以在标准协议的基础上根据需求裁剪及定制。例如,腾讯公司所采用的通信协议,即为ftp协议的修改剪裁版。
因此,传统的网络应用程序及较大型的网络应用程序都首选C/S模式进行开发。如,知名的网络游戏魔兽世界。3D画面,数据量庞大,使用C/S模式可以提前在本地进行大量数据的缓存处理,从而提高观感。
C/S模式的**缺点也较突出。
由于客户端和服务器都需要有一个开发团队来完成开发。工作量将成倍提升,开发周期较长。
另外,从用户角度出发,需要将客户端安插至用户主机上,对用户主机的安全性构成威胁。
**这也是很多用户不愿使用C/S模式应用程序的重要原因。
B/S模式相比C/S模式而言,由于它没有独立的客户端,使用标准浏览器作为客户端,
**其工作开发量较小。只需开发服务器端即可。
另外由于其采用浏览器显示数据,因此移植性非常好,不受平台限制。
如早期的偷菜游戏,在各个平台上都可以完美运行。
B/S模式的缺点也较明显。
由于使用第三方浏览器,因此网络应用支持受限。
另外,没有客户端放到对方主机上,缓存数据不尽如人意,从而传输数据量受到限制。应用的观感大打折扣。
第三,必须与浏览器一样,采用标准http协议进行通信,协议选择不灵活。
因此在开发过程中,模式的选择由上述各自的特点决定。根据实际需求选择应用程序设计模式。
网络基础一(协议的概念,网络应用程序设计模式)相关推荐
- Linux网络编程基础1(网络应用程序设计模式,分层模型,协议格式)
Linux网络编程基础(网络应用程序设计模式,socket编程,inet_pton,inet_ntop,服务端创建连接的过程,客户端创建连接的过程,socket函数封装) 1. 网络应用程序设计模式 ...
- linux的基础知识——协议和网络应用程序设计模式
1.什么是协议? 协议,即规则.网络通信中的协议,即数据传输和数据解释的规则. 2.一些典型的协议 传输层:常见的有TCP/UDP协议 应用层:HTTP协议,FTP协议 网络层:IP协议,ICMP协议 ...
- 网络编程 协议和网络应用程序设计模式
协议和网络应用程序设计模式 一.协议 从应用的角度出发,协议可理解为"规则",是数据传输和数据的解释的规则. 假设,A.B双方欲传输文件.规定: 第一次,传输文件名,接收方接收到文 ...
- 网络应用程序设计模式:浅谈CS架构与BS架构
CS架构与BS架构的区别 应用程序 单机程序 网络应用程序 网络应用程序设计模式 CS架构 CS架构优缺点 BS架构 BS架构优缺点 应用程序 应用程序是指为了完成特定任务而被开发运行于操作系统之上的 ...
- 网络基础知识 | 协议 | TCP/IP分层模型
目录 网络基础知识 网络互联 互联网基础知识 网络的构成要素 网卡 中继器 网桥/2层交换机 路由器/3层交换机 4-7层交换机 网关 协议 分组交换协议 谁来规定协议 协议的标准化 协议的分层 分层 ...
- python开发网络小工具_Python 实现简单网络应用程序开发
最后一次更新于 2019/07/10 ICMP Ping 目的 此任务是重新创建第3讲(延迟,丢失和吞吐量)中讨论的ping客户端. Ping 是一个用于在计算机网络中测量延迟和丢失的工具. 在实际应 ...
- 网络基础 IP协议 子网划分 子网汇总 超网 无类间路由超详细介绍
1.10数据封装/解封装过程 1.10.1封装 特点 从四层网上层封装 2.过程 1)在数据后面加FCS校验.data->FCS校验 2)对数据在四层进行封装,通过TCP/UDP.TCP/UDP ...
- (chap1 网络基础知识)一些概念
1. 计算机网络 2. 随处可见的协议 3. 分组交换协议 分组交换是指将大数据分割为一个个叫做包( Packet)的较小单位进行传输的方法.这里所说的包,如同我们平常在邮局里见到的邮包.分组交换就是 ...
- (chap1 web网络基础) HTTP协议相关的各个协议(1)
1. IP ( Internet Protocol ) 协议 作用是把各种数据包传送给对方,其中两个重要条件是IP地址和MAC地址( Media Access Control Address ). 2 ...
最新文章
- cannot find package “github.com/coreos/go-systemd/journal”
- js学习笔记1---使用方法
- 挖掘形态数轴的不确定性
- c++局域网主动ftp_【Jmeter】使用Jmeter对FTP协议的测试
- DB扩展名的数据库文件怎么打开:两种db数据库的打开方式
- java高并发(九)线程封闭
- 这一两天要做的事--关于Altera FPGA首先要搞清楚的几个问题 以及解答
- 51单片机—串口通信
- 服务器网口正在验证身份6,无法使用基本身份验证进行身份验证(示例代码)
- windbg查询内存泄笔记
- 汕尾php培训,系统发生错误
- What are your list of must know programming proverbs ?
- TSP问题-简介与部分解法
- matlab非参数功率普估计,【数字信号处理】--功率谱估计
- 电壁挂炉该如何配电表和电线
- 前端js常用剪贴板(复制粘贴)操作和应用,以及navigator.clipboard新粘贴板API使用
- 揭开LiteOS的神秘面纱
- python策略模式的应用_策略模式-Python四种实现方式
- WIN10极限清理 C盘空间
- Python django 会议室管理系统