TCP/IP五层模型、封装和分用

1.网络通信基础

IP地址:表示计算机的位置,分源IP和目标IP;举个例子:买快递,商家从上海发货,上海就是源IP,收货地址是湖北,湖北就是目标IP。

端口号:表示一个具体的应用程序,分源端口和目标端口,如:某个进程或服务的端口号是8080;还是买快递的例子,发货的商家,商家就是源端口号,收货的买家,买家就是目标端口号。

同学们都看过西游记⑧~唐僧每次介绍自己的时候,是这么说的:“贫僧自东土大唐而来,去西天拜佛求经”,这里的贫僧=源端口(我是谁)、东土大唐=源IP(从哪来)、佛祖=目标端口(要找谁)、西天=目标IP(到哪去)

协议:规定数据之间传输的方法/规则,就好比加密通话,说暗号,我不要碟盘了(我没事了),我对别人说:“我不要碟盘了”,对方收到后,通过之前约定的协议,对这句话进行解读,意思就是”我没事了“

2.协议分层

最原始的协议是一大类,复杂难懂,于是进行了分化,分成多种短小的协议,也就是分层,每层有各自代表的意义和作用,上层协议调用下层协议,下层协议服务上层协议,这样学习起来就有迹可循,变得简单易懂。

OSI七层协议模型

七层协议模型是指OSI(Open Systems Interconnection)七层协议模型,它是一种网络协议的分类方法,用于描述计算机网络中不同层次之间的通信协议。**OSI七层协议模型包括:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。**每一层都有其特定的功能和职责,它们之间通过接口进行通信 。七层协议模型过于复杂,实际中并不会有用到,俺就不过多赘述了~

image-20230826134215155

TCP/IP五层/四层协议模型【重点】

计算机网络中的五层协议模型是指TCP/IP五层模型,它是一种网络协议的分类方法,用于描述计算机网络中不同层次之间的通信协议。 TCP/IP五层模型包括:物理层、数据链路层、网络层、传输层、应用层,而四层协议模型只是少了一个物理层。 每一层都有其特定的功能和职责,它们之间通过接口进行通信 。

image-20230826134742912

同学们先看个故事,有助于理解五层协议的功能。

一天,我在tb买了一袋子的抹布,付款后,上海商家准备发货,把快递交给了sf快递公司,该公司准备把这个快递进行运输,运输的路线有:上海=》南京=》湖北 / 上海=》广州=》湖北,具体走哪条路线就是快递公司的事情了,这工作就好比是网络层;而我和商家只管下单接单,发货收货,不在乎这个快递是通过什么路径最终送我手上的,这个就好比是传输层;而在上海发往南京的途中,具体使用的工具是通过卡车还是飞机,这个工作就好比是数据链路层,负责两个相邻的节点进行传输。物理层就好比运输路上的基础设施,比如高速公路、铁路等。

物理层:规定了网络通信中所用到的硬件设备的规格 ,如:网线、LAN口、WAN口…

数据链路层:负责相邻两台设备之间的传输; 这里的相邻指的是:A和B设备都连接C路由,就属于相邻的两台设备。当然也不一定非要连接的是路由,也可以是网线或是其他的设备

网络层:负责规划数据传输的路径,比如:商家把快递发给买家,快递到底怎么到买家手上,这件事就归快递公司自己规划,网络层就类似于快递公司。

传输层:端口与端口之间的传输,不在乎传输过程;比如:商家把快递发给买家,买卖双方不关心快递在路上的过程,只在乎发快递和收快递。

应用层:与应用程序相关,表示 传输的数据,用户拿到这个数据怎么使用,比如:商家把快递(抹布)发给买家,买家收到货后,可以拿来擦地也可以擦桌子,也就是说数据的使用,属于应用层负责。

3. 封装&分用

数据封装:从上层协议往下层协议,层层封装

咱们假设使用QQ双方通信,比如俺发了一条消息为:hello。QQ这个应用程序就会把hello这个字符串构造成一个应用层数据报。

此处假设应用层协议的格式为:发送方QQ号+发送时间+接收方QQ号+发送的消息内容。

构造的应用层数据报:

image-20230826144355781

构造完成后,交给传输层(在系统内核里),传输层进行处理,构造成传输层的数据报, 传输层常用的协议有“UDP和TCP”,假设这里使用的是UDP,则会构造一个UDP数据报,里面包含的有源端口和目标端口等其他的数据,并拼接在应用层数据报的头部,构造完成后是这样的:

image-20230826144919510

之所以拼接报头,一是为了安全,二是为了表明消息要去哪,怎么传输,就好比发快递,要包一层快递盒,在盒子上贴上标签,标签上有收货人的信息,报头就好似一个标签。

传输层构造完成后,再交给网络层,网络层常用的协议有“IP协议”,于是网络层再打包一个IP协议报头,拼接到传输层报头前,IP报头里包含的有源IP和目的IP,构造完成后是这样的:

image-20230826145438833

网络层完成后,再交给数据链路层,此处使用的协议是“以太网协议”,根据已有的数据打包成一个“以太网数据帧”,在已有的数据报前后加上以太网帧头、帧尾。数据链路层构造完成后是这样的:

image-20230826150013627

最后数据链路层把数据交给物理层,物理层把上述的二进制数据转换给光信号/电信号,发送给另一台设备。经过上面的准备,此时才把数据真正的发送出去了。以上过程则称为“封装”。

数据分用:从下层协议往上层协议,层层解析

接收方,接收到我发送的数据后,进行对数据的解析~~~

物理层接收到发送来的光信号/电信号后,进行转换成以太网数据帧,于是又成了这个样子:

image-20230826151224450

再把这个数据交给数据链路层,链路层则会去掉帧头和帧尾,取出中间的载荷,以太网帧头里会记录这个载荷是不是一个IP协议。

数据链路层的解析:

image-20230826151921856

数据链路层把载荷交给网络层,再根据IP协议,解析IP报头,取出载荷(传输层的数据),根据IP报头解析出是TCP还是UDP协议。

网络层的解析:

image-20230826153438927

网络层把解析后的数据交给传输层进行解析,由于网络层根据IP报头里的内容解析出UDP协议,所以传输层根据UDP协议进行解析,取出报头,取出载荷(应用层数据),再把这个载荷交给应用层的程序。UDP报头里包含的有目的端口,根据这个目的端口就可以找到具体的一个应用程序,于是把最后的数据交给对应的应用程序。

传输层的解析:

image-20230826153509055

数据到达了应用层,QQ则会根据规定的应用层协议进行解析数据,最后构造,显示到界面上。

image-20230826154459518

)]

数据到达了应用层,QQ则会根据规定的应用层协议进行解析数据,最后构造,显示到界面上。

在这里插入图片描述

上述这些解析则叫做“分用”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bushi橙子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值