“TCP/IP五层模型”与“数据包封装和分用”

文章目录

        • 1. OSI七层协议(物数网传会表应)
        • 2.TCP/IP五层模型
        • 3. 数据包封装和分用
          • 封装过程
          • 分用过程

为了方便交流,人类发明了语言,约定了每个汉字符号代表的意思。同理,为了机器之间的交流,我们也需要一些“约定”,我们称这些约定为“协议”。

在互联网中,所有的计算机都是由 路由器和交换机 连接到一起的。计算机之间的传输媒介是光信号和电信号。通过“频率”和“强弱”来表示 0 和 1 这样的信息。要想传递不同的信息,就需要约定好双方的数据格式。

1. OSI七层协议(物数网传会表应)

分层名称 功能 作用
应用层 针对特定应用的协议 针对每个应用的协议:
电子邮件(电子邮件协议),
远程登陆(远程登录协议)
表示层 可确保一个系统的应用层所发送的信息
可以被另一个系统的应用层读取。

设备固有的数据格式和
网络标准数据格式的转化
会话层 通过传输层建立数据传输的通路。
通信管理。负责建立和断开通信连接
(数据流动的逻辑通路)。管理传输层以下的分层
何时建立连接,何时断开连接?保持多久的连接?
传输层 定义了传输数据的协议和端口号。如TCP和UDP。
管理两个节点之间的数据传输。
负责可靠传输(确保数据被可靠地传送到目标地址)
主要是将从下层接收的数据
进行分段和传输,
到达目的地后再进行重组,
常常把这一层数据叫做段
网络层 在位于不同地理位置的网络中的
两个主机系统之间提供连接和路径选择。
即地址管理与路由选择
经过哪个路由传递到目标地址?
数据链路层 定义了如何让格式化数据以帧为单位进行传输,
以及如何让控制对物理介质的访问。
这一层还提供错误检测与纠正,
以确保数据的可靠传输。
数据帧与比特流之间的转换
物理层 主要定义物理设备标准。
如:网线的接口类型、
光纤的接口类型、
各种传输介质的传输速率等。
传输比特流,就是由“0”“1”转化为电路强弱来进行传输、
到达目的地后再转化为1,0。
也就是我们常说数模转换与模数转换,
这一层的数据叫做比特。

2.TCP/IP五层模型

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇,是常用的网络协议,所以要记住每一层及其含义。

TCP/IP协议通讯采用了5层的层级结构,每一层都呼叫它的下一层所提供的的网络来完成自己的需求。

分层名称 描述 设备 常用协议
物理层 负责光/电信号的传递方式,
比如现在以太网通用的网线(双绞线),
早期以太网采用的同轴电缆(现在主要用于有线电视),
光纤,现在的wifi无线网使用电磁波等都属于物理层的概念。
物理层的能力决定了最大传输速率,传输距离,抗干扰性等。
集线器(Hub)工作在物理层 硬件
数据链路层 负责设备之间的数据帧的传送和识别。例如网卡设备的驱动,帧同步(就是说从网线上检测到什么信号算作新帧的开始),冲突检测(如果检测到冲突就自动重发),数据差错校验等工作 交换机(Switch) 以太网,令牌环网,无线LAN等标准
网络层 负责地址管理和路由选择,例如在IP协议中,通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由) 路由器(Router) ARP, IP, ICMP
传输层 负责两台主机之间的数据传输,如传输控制协议(TCP),能够确保数据可靠地从源主机发送到目标主机 TCP, UDP, UDP-Lite,
SCTP, DCCP
应用层 负责应用程序之间沟通,如简单电子邮件传输(SMTP),文件传输协议(FTP),网络远程访问协议(Telnet) DNS, URI,HTML,
HTTP,TLS/SSL,SMTP,
POP,IMAP,MIME,
TELNET,SSH,FTP,
SNMP,MIB,SIP,RIP,LDAP

3. 数据包封装和分用

我们已经了解到TCP/IP四层模型,那么数据在网络中到底是如何传输的呢?比如说A主机现在打算给B主机传输一条消息:“约吗?朋友”,我们直接把这条消息丢到网络中去传输,可以吗?当然是不行。因此我们就需要了解到数据报封装和分用的内容了。

  • 在不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在数据链路层叫做帧(frame)
  • 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation)
  • 首部信息中包含了一些类似于首部有多长,载荷(payload)有多长,上层协议是什么等信息
  • 数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,根据首部中的“上层协议字段”将数据交给对应的上层协议处理。
封装过程

“TCP/IP五层模型”与“数据包封装和分用”_第1张图片
如上图所示:应用层的一段数据,经过逻辑封装,TCP封装,IP封装,帧封装,然后从网卡出去;接收端则是逆过程。其中TCP及以下的封装,一般不需要我们自己动手,仅考虑应用层的封装即可。

对于应用层的封装来说,有两种方法:
1、设置Appl首部。“用户数据”就是你实际要发送的数据,比如我们打算发送一个字符串:”asdfgh”,Appl首部就是你自己设计的一个包结构,比如在Appl首部里面设计一个4个字节的int数据,用来表示后面内容的长度:那么当你发送”asdfgh”的时候,Appl首部里面就是这个字符串的长度6,接收端先接受4个字节,得到长度,再按照长度接受内容。
2、另一种方法是在用户数据末端加上“结束标志”,http协议就是这么干的,用**\r\n\r\n**表示一段内容结束(当然你也可以选择其他的特定字符作为结束标志)。那么当你发送”asdfgh”的时候,其实就是发送”asdfgh\r\n\r\n”,接收端接受数据,遇到\r\n\r\n结束接受一段数据。

分用过程

在这里插入图片描述

你可能感兴趣的:(网络基础)