协议的概念

什么是协议?

从应用的角度出发,协议可理解为“规则”,是数据传输和数据的解释的规则。
假设,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协议进行通信,协议选择不灵活。

因此在开发过程中,模式的选择由上述各自的特点决定。根据实际需求选择应用程序设计模式。

网络基础一(协议的概念,网络应用程序设计模式)相关推荐

  1. Linux网络编程基础1(网络应用程序设计模式,分层模型,协议格式)

    Linux网络编程基础(网络应用程序设计模式,socket编程,inet_pton,inet_ntop,服务端创建连接的过程,客户端创建连接的过程,socket函数封装) 1. 网络应用程序设计模式 ...

  2. linux的基础知识——协议和网络应用程序设计模式

    1.什么是协议? 协议,即规则.网络通信中的协议,即数据传输和数据解释的规则. 2.一些典型的协议 传输层:常见的有TCP/UDP协议 应用层:HTTP协议,FTP协议 网络层:IP协议,ICMP协议 ...

  3. 网络编程 协议和网络应用程序设计模式

    协议和网络应用程序设计模式 一.协议 从应用的角度出发,协议可理解为"规则",是数据传输和数据的解释的规则. 假设,A.B双方欲传输文件.规定: 第一次,传输文件名,接收方接收到文 ...

  4. 网络应用程序设计模式:浅谈CS架构与BS架构

    CS架构与BS架构的区别 应用程序 单机程序 网络应用程序 网络应用程序设计模式 CS架构 CS架构优缺点 BS架构 BS架构优缺点 应用程序 应用程序是指为了完成特定任务而被开发运行于操作系统之上的 ...

  5. 网络基础知识 | 协议 | TCP/IP分层模型

    目录 网络基础知识 网络互联 互联网基础知识 网络的构成要素 网卡 中继器 网桥/2层交换机 路由器/3层交换机 4-7层交换机 网关 协议 分组交换协议 谁来规定协议 协议的标准化 协议的分层 分层 ...

  6. python开发网络小工具_Python 实现简单网络应用程序开发

    最后一次更新于 2019/07/10 ICMP Ping 目的 此任务是重新创建第3讲(延迟,丢失和吞吐量)中讨论的ping客户端. Ping 是一个用于在计算机网络中测量延迟和丢失的工具. 在实际应 ...

  7. 网络基础 IP协议 子网划分 子网汇总 超网 无类间路由超详细介绍

    1.10数据封装/解封装过程 1.10.1封装 特点 从四层网上层封装 2.过程 1)在数据后面加FCS校验.data->FCS校验 2)对数据在四层进行封装,通过TCP/UDP.TCP/UDP ...

  8. (chap1 网络基础知识)一些概念

    1. 计算机网络 2. 随处可见的协议 3. 分组交换协议 分组交换是指将大数据分割为一个个叫做包( Packet)的较小单位进行传输的方法.这里所说的包,如同我们平常在邮局里见到的邮包.分组交换就是 ...

  9. (chap1 web网络基础) HTTP协议相关的各个协议(1)

    1. IP ( Internet Protocol ) 协议 作用是把各种数据包传送给对方,其中两个重要条件是IP地址和MAC地址( Media Access Control Address ). 2 ...

最新文章

  1. cannot find package “github.com/coreos/go-systemd/journal”
  2. js学习笔记1---使用方法
  3. 挖掘形态数轴的不确定性
  4. c++局域网主动ftp_【Jmeter】使用Jmeter对FTP协议的测试
  5. DB扩展名的数据库文件怎么打开:两种db数据库的打开方式
  6. java高并发(九)线程封闭
  7. 这一两天要做的事--关于Altera FPGA首先要搞清楚的几个问题 以及解答
  8. 51单片机—串口通信
  9. 服务器网口正在验证身份6,无法使用基本身份验证进行身份验证(示例代码)
  10. windbg查询内存泄笔记
  11. 汕尾php培训,系统发生错误
  12. What are your list of must know programming proverbs ?
  13. TSP问题-简介与部分解法
  14. matlab非参数功率普估计,【数字信号处理】--功率谱估计
  15. 电壁挂炉该如何配电表和电线
  16. 前端js常用剪贴板(复制粘贴)操作和应用,以及navigator.clipboard新粘贴板API使用
  17. 揭开LiteOS的神秘面纱
  18. python策略模式的应用_策略模式-Python四种实现方式
  19. WIN10极限清理 C盘空间
  20. Python django 会议室管理系统

热门文章

  1. 游戏、脑洞大开1(密码简单破译)
  2. IDEA插件之 CodeGlance
  3. JAVA 常用框架和工具
  4. 遥感影像滤波处理软件 — timesat3.2
  5. vijos p1460——拉力赛
  6. 飞信SDK内容【转载】
  7. ASP.NET 中处理页面“回退”的方法
  8. java版本号管理_微服务项目中如何管理依赖版本号?
  9. android linux截图库,Android中截图(surfaceView)源码
  10. 易语言自定义数据类型转c,一步一步跟我学易语言之自定义数据类型