TCP/IP协议分层模型以及数据的封装和分用

网络基础概述

计算机与网络设备要相互通信,双方就必须基于相同的方式。比如,如何探测到通信目标、由哪一边先发起通信、使用哪种语言进行通信、怎样结束通信等规则都需要事先确定。不同的硬件、操作系统之间的通信,所有的这一切都需要一种规则。而我们就把这种规则称为协议

我们通常使用的网络(包括互联网)是在 TCP/IP 协议族的基础上运作,或者说 TCP/IP 协议族是一个包含了一系列构成互联网基础的相关网络协议的集合。简单的说,TCP/IP 是在 IP 协议的通信过程中,使用到的协议的统称

TCP/IP 分层模型

TCP/IP 协议族里重要的知识点之一就是 TCP/IP 分层模型。 把 TCP/IP 层次化是有好处的。比如,如果互联网只由一个协议统筹,某个地方需要改变设计时,就必须把所有部分整体替换掉。而分层之后只需把变动的层替换掉即可。把各层之间的接口部分规划好之后,每个层次内部的设计就能够自由改动了

层次化之后,设计也变得相对简单了。处于应用层上的应用可以只考虑分派给自己的任务,而不需要弄清对方在地球上哪个地方、对方的传输路线是怎样的、是否能确保传输送达等问题

分层模型显示协议如何在每个层上工作,以及层如何与它们上方或下方的层交互。因此,这对于后来学习的人来说,能够更好地理解各种协议以及它们如何相互协作

在现代计算机网络中,常备使用的分层模型是两个

  • OSI 模型(开放式通信系统互联参考模型),是国际标准化组织(ISO)提出的一个试图使各种计算机在世界范围内互连为网络的标准框架,简称 OSIOSI 是制定的适用于全世界计算机网络的统一标准,是一种理想状态,因此它的结构复杂,层次间存在严格的调用关系,一共有七层模型
  • TCP/IP 模型(传输控制协议/互联网协议),它使用更少的四层模型,是目前应用最广泛的协议,已成为事实上的国际标准

TCP/IP 四层模型和 OSI 七层模型有比较明确对应的关系

在这里插入图片描述

TCP/IP 协议族各层的作用如下

应用层

  • 预存了各类通用的应用服务,保证用户(应用程序)能够正常运行。不同的的应用程序会根据自己的需要来使用应用层的不同协议
  • 文件传输可以使用 FTP 文件传输协议;万维网请求-响应传输超文本可以使用 HTTP超文本传输协议,平时浏览网页时都是用这个协议;远程登录服务可以使用 TELNET 协议,用户可在本地计算机上控制远程主机(Web 服务器);用户发送电子邮件可以使用SMTP 简单邮件传输协议;从服务器接收电子邮件可以使用 POP3 邮局协议;用户想要通过域名方便的访问服务器则可以使用 DNS 域名系统服务

传输层

  • 传输层主要对上层应用层的应用程序提供处于网络连接中的两台计算机之间的数据传输
  • 在传输层主要包括两个性质不同的协议:TCP 传输控制协议和 UDP 用户数据报协议

网络层

  • 该层主要负责通过 IP 寻找地址和路由选择。或者说,与对方计算机之间通过多台计算机或网络设备进行传输时,网络层所起的作用就是在众多的选项内选择一条传输路线。比如路由器就工作在网络层
  • 包括 IP 协议,即互联网协议,以及它的子协议 ICMPInternet 控制报文协议

数据链路层

包括了数据链路层和物理层。负责物理层面上的互联的、节点间的通信传输,包括查找物理(MAC)地址,数据成帧,规定了电平、速度和电缆针脚,最终通过物理介质传输比特流

分层信息传输

利用 TCP/IP 协议族进行网络通信时,会通过分层顺序与对方进行通信。发送端从应用层往下走,接收端则从数据链路层往上走

HTTP 举例来说明,首先作为发送端的客户端在应用层 (HTTP 协议)发出一个想看某个 Web 页面的 HTTP 请求。接着为了传输方便,在传输层(TCP 协议)把从应用层处收到的数据(HTTP 请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层。在网络层(IP 协议),增加作为通信目的地的 MAC 地址后转发给链路层。这样一来,发往网络的通信请求就准备齐全了。接收端的服务器在链路层接收到数据,按序往上层发送,一直到应用层。当传输到应用层,才能算真正接收到由客户端发送过来的 HTTP请求

在这里插入图片描述

数据的封装和分用

实际上,当应用程序用 TCP 传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络,其中每一层对收到的数据都要增加一些首部信息(以太网包括尾部),这个过程称作封装

在这里插入图片描述

  • 每一层数据是由上一层数据+本层首部信息组成的,其中每一层的数据,称为本层的协议数据单元,即 PDU
  • 应用层:用户数据在应用层中会被加密、编码传输
  • 传输层:在传输层中,经过 TCP 协议封装的数据将会加上 TCP 首部,此时的 PDU被称为 TCP 报文段或简称为 TCP 段。经过 UDP 协议封装的数据将会加上 UDP 首部,此时的 PDU 被称为 UDP 数据报。该层的数据单元也可以统称为断。TCP/UDP 首部主要包含源进程端口号和目的进程端口号
  • 网络层:经过 IP 协议封装的 PDU 被称为 IP 数据报,也被称为包。IP 首部主要包含源 IP 地址和目的 IP 地址,以及上层传输层协议的类型
  • 链路层:链路层中 PDU 被进一步封装为帧,传输媒介不同,帧的类型也不同,比如通过以太网传输的就是以太网帧,而令牌环网上传输的则是令牌环帧。以太网帧首部主要包含源 MAC 地址和目的 MAC 地址,以及帧类型(用于确定上层协议类型)。最终,帧被以比特流的形式通过物理传输介质进行传输给目的主机,此时数据传输的单位就是比特

当目的主机收到一个以太网数据帧时,并且通过匹配帧中的 MAC 地址发现目的地就是本机,那么数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议。这个过程称作分用

在这里插入图片描述
参考:https://blog.csdn.net/weixin_43767015/article/details/112095658

猜你喜欢

转载自blog.csdn.net/weixin_38192427/article/details/114992477
今日推荐