- 数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,根据首部中的 “上层协议字段” 将数据交给对应的上层协议处理
文章插图
问题:
- 每一协议层的数据包是什么?
- 协议的共性是什么?
- 如何解决将数据包中的报头和有效载荷分离的问题?
?2.自定义描述符字段 。报头中添加一个字段,表示报头的长度 。
数据封装的过程:
文章插图
局域网通信局域网内的主机是通过路由器和交换机连接在一起的,局域网内的两台主机通信本质就是两个协议栈之间在进行通信,下面是两台主机通过TCP/IP协议进行文件传输的过程:
文章插图
数据在自身协议栈自顶向下进行封装:
- 数据包交给应用层,应用层添加上对应的应用层协议报头,然后把整个数据包向下交付给传输层
- 传输层再添加上对应的传输层协议报头,然后把整个数据包向下交付给网络层
- 网络层再添加上对应的网络层协议报头,然后把整个数据包向下交付给数据链路层
- 数据链路层再添加上对应的数据链路层协议报头,然后把整个数据包通过网络交付给对端数据链路层
- 数据链路层将数据包的报头和有效载荷进行解包分离,然后将有效载荷交付给上层的网络层
- 网络层将数据包的报头和有效载荷进行解包分离,然后将有效载荷交付给上层的传输层
- 传输层将数据包的报头和有效载荷进行解包分离,然后将有效载荷交付给上层的应用层
- 应用层将数据包的报头和有效载荷进行解包分离,将最后的数据进行相关处理然后交付给用户
1.局域网中,所有的主机可以直接通信,它们是如何确定数据是发给哪一台主机,目标主机又是如何确认数据是发给自己的?
在数据链路层,有一个MAC地址(48位),网卡硬件地址或者序列号,是全球唯一的,用来标识主机的唯一性 。每一台主机都要一个MAC地址,且都知道,发送方将数据发出去,这个数据里面包含目标主机的MAC地址信息,每个主机都可以收到这一份数据,且用自己的MAC地址与数据中的目标主机MAC地址进行比较,如果不同,表明该数据不是发给自己的,就将数据丢掉,相同就表明该数据是发给自己的,就收下 。
2.局域网中,如何将数据发送给所有主机?
主机发送数据是,将MAC地址设置为一个广播地址,这样所有的主机都认为这个数据是发给自己的
3.局域网通信原理
局域网中,有多台主机直接通信,有可能会发生数据碰撞,这样就会影响其它主机间的通信,所以一个局域网可以看作是一个碰撞域 。碰撞后的数据就是垃圾数据量,局域网中的所有主机都可以收到发出去的数据,包括发数据的主机本身也是如此,该主机会将收到的数据和此前发出去的数据进行对比,如果不同,代表此前发出去的数据发生了碰撞,这就是碰撞检测数据发生碰撞后,发送方不会立即将数据进行重写发送,而是等一段数据,在重新发生,这就是碰撞避免算法,也是碰撞避免的一种机制所以说,局域网的数据通信时在一个碰撞域中不断地碰撞,然后进行碰撞检测,碰撞避免 。局域网通信的本质就是基于碰撞域、碰撞检测和碰见避免实现通信,局域网内主机越多,碰撞几率越多,交换机在局域网中的作用就是划分碰撞域,解决碰撞问题,降低碰撞几率
经验总结扩展阅读
- 腌豇豆的腌制方法和盐的比例
- php注解使用示例
- 1 onps栈移植说明——onps栈的配置及裁剪
- netty系列之: 在netty中使用 tls 协议请求 DNS 服务器
- 使用LabVIEW实现基于pytorch的DeepLabv3图像语义分割
- 含钾高的食物有哪些
- 我的Spark学习笔记
- 万姓男孩名字2024年7月4日出生的生辰八字五行查询
- 梭子蟹的黄为什么是苦的
- 邹姓男孩名字2024年4月19日出生的生辰八字五行查询