封装和分用

一、封装

A给B发消息

1.应用层(应用程序)

        应用程序从文本输入框获取到用户输入的hello,把这个字符串构造成一个应用层的数据包

例如:qq这样的程序内部就设置了应用层协议。

应用层数据包就是按照这样的应用层协议约定的格式来构造的。

约定的格式如下:

应用程序调用操作系统提供的api,把这个数据包交给传输层。

2.传输层

涉及到的协议:最重要的是TCP和UDP

传输层就是把上述数据作为一个整体,在构造一个传输层的数据包。

假定使用UDP进行通信,就会构造一个UDP的数据包。

形如上述,添加报头的过程就是“封装”,其实就是字符串拼接。

UDP报头可以承载一些关键用来转发数据的信息。(承载的最重要的信息为源端口和目的端口

拼接好传输层数据包后,就要把这个数据包进一步交给下层,网络层继续进行封装。

(交给下层指的是:下层协议提供一组API(函数),上层调用这个API,并把刚才构造好的数据通过参数传过去,下层协议就可以处理这个数据了

3.网络层

涉及到最核心的协议:IP协议

        网络层IP协议:把刚才的传输层的UDP数据包作为一个整体,在拼接上IP协议的报头,构成一个IP数据包。

IP报头承载的最关键的信息为源IP和目的IP

构造完成完整的IP数据包后,IP协议继续调用数据链路层的API,把数据交给数据链路层的协议进行处理。

4.数据链路层

涉及到最核心的协议:以太网(“以太”:表现网络数据传输的介质)

以太网就是日常最常见到的有线网络。

日常使用的网线也叫“以太网线”,网口也叫“以太网口”

以太网数据帧也是以IP数据包作为一个整体,在这个基础上加上帧头和桢尾。

5.物理层

        把上述这样的以太网数据帧,二进制结构(一串0101这样的数据)转换成光信号/电信号/电磁波,然后进行发送。

        经过上述一系列过程,数据就从电脑上发出去了。

二、分用

暂时不考虑中间过程,假定数据包已经到了B的网卡,B的处理过程成为“分用”

1.物理层

B的物理层收到了光信号/电信号/电磁波,就会把这些物理信号转换成数字信号(二进制结构一串0101)得到以太网数据帧,进一步把这个数据帧交给数据链路层

2.数据链路层

发送方和接收方得使用一样的协议来进行。

 

按照以太网数据帧的格式来解析,取出其中的载荷,再交给上层协议。

3.网络层

按照IP协议的格式来解析,取出其中的载荷,再交给上层协议。

4.传输层

按照UDP协议的格式来解析,取出其中的载荷,再交给上层协议。

5.应用层

按照应用程序内部的应用层协议来解析数据

真实情况下,两台主机不会网络直连,而是通过一系列的交换机/路由器来进行数据转发的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值