聊聊什么是协议?
从应用程序角度出发,协议可以理解为 “规则”,是数据传输
和数据解释
的规则。
举个例子, A、B 双方欲传输文件。规定:
第一次,传输文件名,接收方接收到文件名,应答OK给传输方;
第二次,发送文件的尺寸,接收方接收到该数据再次应答一个OK;
第三次,传输文件内容。同样,接收方接收数据完成后应答OK表示文件内容接收成功。
由此,无论A、B之间传递何种文件,都是通过三次数据传输来完成。A、B之间形成了一个最简单的数据传输规则。双方都按此规则发送、接收数据。A、B之间达成的这个相互遵守的规则即为协议。
这种仅在A、B之间被遵守的协议称之为原始协议
。当此协议被更多的人采用,不断的增加、改进、维护、完善。最终形成一个稳定的、完整的文件传输协议,被广泛应用于各种文件传输过程中。该协议就成为一个标准协议。最早的FTP协议
就是由此衍生而来。
TCP协议
注重数据传输
。HTTP协议
着重于数据解释
。
典型协议
TCP传输控制协议
(Transmission Control Protocol) 是一种 面向连接 的、可靠的 、基于 字节流 的传输层通信协议
。
UDP用户数据报协议
(User Datagram Protocol) 是OSI参考模型
中一种 无连接传输层协议
,提供 面向事务 、简单、不可靠信息 传送服务。
HTTP超文本传输协议
(Hyper Text Transfer Protocol) 是互联网上应用最为广泛的一种网络协议
。
FTP文件传输协议
(File Transfer Protocol)
IP协议
是 因特网互联协议(Internet Protocol)
ICMP协议
是 Internet控制报文协议(Internet Control Message Protocol) 它是TCP/IP协议
族的一个 子协议 ,用于在IP主机
、路由器
之间传递控制消息。
IGMP协议
是 Internet 组管理协议(Internet Group Management Protocol),是因特网协议
家族中的一个组播协议
。该协议运行在 主机 和 组播路由器 之间。
ARP协议
是 正向地址解析协议(Address Resolution Protocol),通过已知的IP,寻找对应主机的MAC地址
。
RARP
是反向地址转换协议
,通过 MAC地址 确定 IP地址。
网络应用程序设计模式
C/S 模式
客户机 client / 服务器 server
(需要在通讯两端各自部署客户机和服务器来完成数据通信。)
优点 :
- 协议选用灵活 (自定义协议, 协议由服务端和客户端商定即可)
- 缓存数据 (数据可缓存到本地, 如App应用 可缓存到手机)
缺点 :
- 对用户安全构成威胁 (需要将客户端安插到用户主机上)
- 开发工作量大, 调试困难 (需要客户端和服务端的开发人员, 且调试时候也是如此)
B/S 模式
浏览器 browser / 服务器 server
(只需在一端部署服务器,而另外一端使用每台PC都默认配置的浏览器即可完成数据的传输)
优点 :
- 开发工作量小, 调试方便 (只需开发服务器端即可, 且调试时候只需要PC端浏览器即可)
- 跨平台 (采用浏览器显示数据, 所以不受平台限制)
缺点 :
- 使用第三方浏览器, 网络应用受限制
- 缓存数据不尽人意 (由于客户端没有放到对方主机上, 从而传输数据量受到限制)
- 采用标准HTTP协议进行通信 (必须与浏览器一样, 协议选择不灵活)
评论一下?