计算机网络中的协议
计算机网络中的协议
“协议” 一词在中文词典的释义为: “共同计议;协商”, 它的近义词是协商、协定. 主要呢, 是为了服务 双方或多方 能够共同实现它们想要的结果所做出的 一致意见
比如咱们可能比较耳熟能详的 “离婚协议”, 它的服务对象就是 “夫妻” 双方, 协商达成一致意见就是男女双方自愿离婚这些内容, 如果抽象成 Code 简单的实现可能是这样的 (造词达人?):
在这个简单的 Code 中, 我把 target(协议的对象) 设置成了用来描述夫妻双方字面量的 联合类型, 意思是
DivorceAgreement(离婚协议)
是服务它们双方的.
/** 离婚协议 */
interface DivorceAgreement {
/** 协议的对象 */
target: '丈夫' | '妻子';
/** 协议的内容 */
content: string;
}
当协议中如果有一方不理解、不同意或者不能够完成协议的时候, 那么通常情况下其他的协议方就会放弃这个协议
网络协议
网络协议和人类的协议类似, 除了约定协议方的实体是某些硬件(比如计算机、手机、Pad、路由器或者其他具有网络能力的设备)或者软件组件. 在网络涉及到两个或多个远程通信实体的所有活动都受协议的制约.
就拿前端同学都比较熟悉的 http
协议来说:
首先计算机会向该 Web 服务器发送一条连接请求报文, 并等待回答.
本地计算机 ----我想要访问某个链接----> Web 服务器
该 Web 服务器收到连接请求报文后, 返回一条连接响应报文.
本地计算机 <----好的我知道了你把具体内容发来把---- Web 服务器
得知请求这个文档没问题了, 计算机就发起一条携带了详细信息的报文, Web 服务器处理这个报文之后返回对应的内容.
本地计算机 ----我想要 🍎 这个图片----> Web 服务器
本地计算机 <---- 🍎 ---- Web 服务器
总结
从上述的http
协议的例子中可以明白, 协议是定义了两个或多个通信实体之间交换的报文的格式和顺序, 以及报文发送和/或接受一条报文或其他事件的时候所采取的动作