TCP/IP:有层次的协议栈

说明

《透视HTTP协议》罗剑锋 (奇虎360技术专家)在极客时间开的一门专栏课,笔者记录一下学习笔记,仅供参考。后端

TCP/IP 网络分层模型

层次图以下:服务器

层次图

第一层:连接层(link layer)

负责在以太网、WiFi 这样的底层网络上发送原始数据包,工做在网卡这个层次,使用 MAC 地址来标记网络上的设备,因此有时候也叫 MAC 层网络

第二层:网际层或者网络互连层(internet layer)

IP 协议就处在这一层。由于 IP 协议定义了IP 地址的概念,因此就能够在连接层的基础上,用 IP 地址取代 MAC 地址,把许许多多的局域网、广域网链接成一个虚拟的巨大网络,在这个网络里找设备时只要把 IP 地址再“翻译”成 MAC 地址就能够了。app

第三层:传输层(transport layer)

保证数据在 IP 地址标记的两点之间“可靠”地传输,是 TCP 协议工做的层次。负载均衡

  • TCP:是一个有状态的协议,须要先与对方创建链接而后才能发送数据,并且保证数据不丢失不重复
  • UDP:则无状态,不用事先创建链接就能够任意发送数据,但不保证数据必定会发到对方。
  • TCP 的数据是连续的字节流有前后顺序,而 UDP 则是分散的小数据包,是顺序发乱序收

第四层:应用层(application layer)

有各类面向具体应用的协议。例如 Telnet、SSH、FTP、SMTP、HTTP学习

MAC 层的传输单位是(frame)。编码

IP 层的传输单位是(packet)。操作系统

TCP 层的传输单位是(segment)。翻译

HTTP 的传输单位则是消息或报文(message)。code

能够统称为数据包

OSI 网络分层模型

OSI,全称是开放式系统互联通讯参考模型Open System Interconnection Reference Model)。

OSI 模型分红了七层,以下图:

OSI 模型

  • 第一层(物理层):网络的物理形式,例如电缆、光纤、网卡、集线器等等
  • 第二层(数据链路层):它基本至关于 TCP/IP 的连接层
  • 第三层(网络层):至关于 TCP/IP 里的网际层
  • 第四层(传输层):至关于 TCP/IP 里的传输层
  • 第五层(会话层):维护网络中的链接状态,即保持会话和同步
  • 第六层(表示层):把数据转换为合适、可理解的语法和语义
  • 第七层(应用层):面向具体的应用传输数据。

两个分层模型的映射关系

大概的一个对应关系:

  • 第一层:物理层,TCP/IP 里无对应
  • 第二层:数据链路层,对应 TCP/IP 的连接层
  • 第三层:网络层,对应 TCP/IP 的网际层
  • 第四层:传输层,对应 TCP/IP 的传输层
  • 第5、6、七层:统一对应到 TCP/IP 的应用层

TCP/IP 实际应用时的会话管理编码转换压缩等和具体应用常常联系的很紧密,很难分开。例如:HTTP 协议就同时包含了链接管理数据格式定义

映射关系

四层负载均衡:就是指工做在传输层上,基于 TCP/IP 协议的特性,例如 IP 地址、端口号等实现对后端服务器的负载均衡。

七层负载均衡:就是指工做在应用层上,看到的是 HTTP 协议,解析 HTTP 报文里的 URI、主机名、资源类型等数据,再用适当的策略转发给后端服务器。

小窍门(不是绝对的):

两个凡是”:凡是由操做系统负责处理的就是四层或四层如下,不然,凡是须要由应用程序(也就是你本身写代码)负责处理的就是七层。

TCP/IP 协议栈的工做方式

协议栈的工做方式

一、HTTP 协议的传输过程就是这样经过协议栈逐层向下,每一层都添加本层的专有数据,层层打包,而后经过下层发送出去。

二、接收数据则是相反的操做,从下往上穿过协议栈,逐层拆包,每层去掉本层的专有头,上层就会拿到本身的数据。

相关文章
相关标签/搜索