站点工具

用户工具


轻松理解四层模型

近期直播课讲解Http专题,写篇文章做个记录,便于回顾。

引言

做前端不可不知道Http,学习Http又往往涉及诸如“协议”、“应用层”、“传输层”、“三步握手”、“四步挥手”、“报文”等概念,同时这也是面试经常会涉及的问题。本文将对这些概念做个通俗的介绍,尽可能的让大家对网络协议有更深的理解。

TCP/IP协议族四层模型

数据从网络中一个终端上的应用程序传送到另外一个终端的应用程序,中间需要经历很多过程,有多方参与对数据进行层层封装、转发。我们把这个流程在逻辑上进行分成层,每一层根据本层的规章制度(协议)各司其职。TCP/IP协议族可以分为四层:应用层传输层网络层数据链路层

和其它讲四层网络模型的文章类似,我们先通过一个例子做类比。穿梭到大明,我们以大明和琉球国皇室书信往来为例(纯属虚构)。首先我们先列出几种角色。

  1. 皇室成员。比如皇帝或者太后,负责信件内容、格式。对于皇室成员来说,只需要关心信的内容是什么、信的格式是什么、书信往来的礼仪规范是什么。比如,信的开头必须是:“来自大明王朝皇帝”,对方收信后必须要回信,回信开头必须是:“琉球王今收到来信”。当然,不同到皇室成员写信有不同的规矩,比如皇太后之间到书信交流又是另外的格式。
  2. 通政司。职责是通过流程制度确保信件能可靠交付,同时确保信件能安全抵达对应到人手中,避免出现本来是送给琉球国太后却送错到琉球国皇后手中的情况。为了可靠交付,通政司定了些规矩:在每次皇室成员有书信要发之前,通政司提前和对方国家通政司发函互通以确保保线路可靠(防止出现送信路线中断或者对方国家皇帝出巡无法收信的情况,弄丢了皇帝的信可是要掉脑袋的)。当皇室信件送过之后,通政司再互相发送信函告知此次会话结束。除了这些规矩,通政司还负责对所有的信件进行编号,加上标记区分信件类型,填写收信人信息等(比如确定信件是发给对方国家皇帝还是皇太后)。还是那句话,皇帝皇太后只负责写信,其它一切闲杂琐事都交给通政司去办。
  3. 驿站。职责是规划线路,确保信能送到琉球国皇宫。不管是通政司为了预先发的试探信还是皇室发的内容信,在经手通政司之后都会转叫给驿站。驿站也有自己的一套规则和方法:比如在信件上填写完整的收发地地址,制定规划目的地线路的方案等。
  4. 信使。信使的工作是养马驯马,把送信的命令变成马儿能听懂的指令,让马儿乖乖送信。

为了权责分明,我们对上面的几种角色的职能起草几个规范文档:皇室成员写信规范、通政司业务流程规范、驿站工作流程规范、信使职能规范。其实皇室成员代表计算机上的各种应用,不同的皇室成员写信使用不同的规矩和规范。与之对应的是不同的应用使用不同的应用层协议,如HTTP协议、FTP协议、POP3协议等。通政司代表传输层协议的实现,通政司的规矩规范代表传输层协议,如TCP、UDP等。驿站的职能规范代表网络层协议,如IP协议。信使等职能规范代表数据链路层协议,如以太网协议。

这里的协议,我们可以理解为规范、规矩、规则、约定。比如作为学生想发表论文必须遵守论文的规范(包含摘要、背景、实现、文献),否则老师不认可。 想发表专利必须遵守专利的书写规范,否则专利局不收。协议不是一个软件,不要把HTTP当成一个软件或者一段程序代码。

这里面的层,我们可以理解为管理层,每个管理层有自己的职能。围绕当前职能会起草多个规章协议(比如通政司会有针对皇室信件安全但繁复的书信投送流程,也有针对皇宫普通宫女的简单书信投送流程)。这些规章协议会有对应的实施者贯彻实施。每一层只需关心自己职能范围的事即可,不用操心其它层级能否完成任务以及具体如何实施。

应用层协议

与网络相关的程序通过网络与其他程序通信使用的数据格式规范。比如浏览器向服务器发请求获取网页数据,此时发送的请求报文(皇室信件)就需要遵循HTTP协议(按HTTP协议的要求填写字段)。常见的应用层协议有:

  • HTTP(80端口),主要用于普通浏览。
  • HTTPS(443端口),HTTP协议的安全版本。
  • FTP(20和21端口),用于文件传输。
  • POP3(110端口),收邮件用。
  • SMTP(25端口),用来发送电子邮件。
  • SSH(22端口),用于加密安全登陆用。
  • DHCP(67端口,动态主机配置协议),动态配置IP地址。
  • DNS,用于完成地址查找,邮件转发等工作(运行在TCP和UDP协议上)。
  • SNMP,用于网络信息的收集和网络管理。
  • ARP,用于动态解析以太网硬件的地址。

解决诸如端到端可靠性(数据是否已经到达目的地)和保证数据按照正确的顺序到达这样的问题。TCP、UDP都是传输层协议。

解决在一个单一网络上传输数据包的问题。IP协议是网络层协议。

数据链路层协议

它是数据包从一个设备的网络层传输到另外一个设备的网络层遵循的规范。比如以太网协议、Wi-Fi协议。

PS:关于TCP报文格式、TCP协议三步握手、四步挥手、HTTP持久连接、HTTP管线化会在后面的文章陆续讲解。

饥人谷一直致力于培养有灵魂的编程者,打造专业有爱的国内前端技术圈子。如造梦师一般帮助近千名不甘寂寞的追梦人把编程梦变为现实,他们以饥人谷为起点,足迹遍布包括facebook、阿里巴巴、百度、网易、京东、今日头条、大众美团、饿了么、ofo在内的国内外大小企业。 了解培训课程:加微信 xiedaimala03,官网:https://jirengu.com

本文作者:饥人谷若愚老师

若愚 · 2023/02/09 11:26 · 轻松理解四层模型.txt