数据在各层之间的发送过程
从应用层到物理层:
应用层的数据(假设是一个网页),在传输层被分割成许多份(段),每一份在网络层添加上了原ip地址和目标ip地址,变成数据包,然后又加上数据链路层的发送端MAC地址和接收端MAC地址(每一跳都会不断改变),变成数据帧,然后转化为物理层的比特流在物理传输介质上传输。
从物理层到应用层:
另一终端接收到物理层的比特流,先判断数据链路层的接收端MAC地址是不是自己的MAC地址,是的话接收,不是就丢弃,接收后去掉MAC地址部分的数据 ,然后网络层判断目标ip地址是否正确,正确的话去掉ip记录数据,变成数据段,然后由传输层传输,最终在应用层拼接传输层的数据,最终呈现给用户。
注意:
集线器:集线器只负责转发比特流,所以集线器是物理层设备(一层设备);
交换机:交换机根据数据链路层的MAC地址来存储转发数据,所以是数据链路层设备(二层设备);
路由器:路由器根据网络层的ip地址来确定转发路径,所以是网络层设备(三层设备)。
图示演示了数据从一个终端到另一个终端的传输过程:
数据在各层之间的发送过程相关推荐
- Linux网络 - 数据包的发送过程
继上一篇介绍了数据包的接收过程后,本文将介绍在Linux系统中,数据包是如何一步一步从应用程序到网卡并最终发送出去的. 如果英文没有问题,强烈建议阅读后面参考里的文章,里面介绍的更详细. 本文只讨论以 ...
- linux内核网络协议栈--数据包的发送过程(二十一)
继上一篇介绍了数据包的接收过程后,本文将介绍在Linux系统中,数据包是如何一步一步从应用程序到网卡并最终发送出去的. socket层 +-------------+| Application |+- ...
- 深度剖析WinPcap之(九)——数据包的发送过程(8)
1.7.3 发送队列方式的接口实现 1.7.3.1 PacketSendPackets函数 函数发送数据包队列到网络,函数原型如下: INT PacketSendPack ...
- 控制层远程调用业务层_如何应用数据访问服务层分离系统中的业务层和持久层之间耦合关系...
软件项目实训及课程设计指导--如何应用数据访问服务层分离业务层和持久层之间耦合关系 作者已经在本系列文章<软件项目实训及课程设计指导--如何正确地设计J2EE应用系统持久层中的各个组件结构及关系 ...
- MVC常见的控制器,接口,数据层之间的操作
user_books_info 类 namespace CiWong.LearningLevel.Mapping {public class user_books_info{/// <summa ...
- ath9k驱动内的数据发送过程
这是usb接口的wifi驱动 for (n = 0; n < urb->number_of_packets; n++) { len = urb->iso_fr ...
- 拆解 Linux 网络包发送过程
半年前我以源码的方式描述了网络包的接收过程.之后不断有粉丝提醒我还没聊发送过程呢.好,安排! 在开始今天的文章之前,我先来请大家思考几个小问题. 问1:我们在查看内核发送数据消耗的 CPU 时,是应该 ...
- 【网络通信与信息安全】之深入解析两台主机之间的通信过程和原理
一.前言 本文通过在 Docker 容器中执行命令,来深入了解两台主机之间的通信过程.阅读完本文,您将熟悉以下内容: Docker 的基本操作: 创建 socket 并发送 HTTP 请求: 路由表. ...
- 图解分析 Linux 网络包发送过程
大家好,下面的文章转发一个鹅厂同学的文章,这篇文章从应用到内核,写的非常不错,希望大家分析某个技术也可以从这方面入手. ----- 大家好,我是飞哥! 半年前我以源码的方式描述了网络包的接收过程.之后 ...
最新文章
- R语言ggplot2可视化:通过水平半小提琴图(Horizontal Half Violin Plots)和抖动数据点( jittered data)可视化雨云图(Rain Cloud plots)
- python抽奖游戏_python实现转盘效果 python实现轮盘抽奖游戏
- java的注释规范_Java代码注释规范
- ubuntu vim保存退出命令_vim极为详细的教程(一)基本操作
- SAP Marketing Cloud里获取Contact Interaction的postman请求
- 关于双网卡电脑无法加入域或失去与域的联系的方法
- CentOS网络设置 couldn‘t resolve host ‘mirrorlist.centos.org问题解决
- 尚硅谷大数据技术之 DataX—1)概述
- matlab信号分析与处理:时域分析
- 学电脑PHP,如何学电脑
- SQLMap——Tamper学习
- Coldfusion的基础知识
- 异步编程之 Isolate
- Python:代码覆盖率工具coverage
- Thingsboard 物联网平台 CoAP 协议介绍
- Java实现 蓝桥杯 算法训练 未名湖边的烦恼
- 数据挖掘经典书籍推荐
- 联合熵、条件熵、互信息、相对熵、交叉熵的详解
- Zuul Filter的小坑
- vscode 运行C++
热门文章
- [3G/4G]3G/4G模块开发
- docker export import后,导入镜像,启动时的错误,Error response from daemon: No command specified...
- Android浏览图片,点击放大至全屏效果
- 【matplotlib笔记】柱形图、直方图、散点图、饼图以及叠加图绘制
- 【jQuery笔记Part1】05-jQuery解决冲突
- 软件设计师23-存储器系统02
- bug君你好啊之访问servlet时出现此程序可以连接到 Web 服务器,但是因为地址问题无法找到该网页。
- 那年学过的Java笔记三核心类库一
- Flask+Gunicorn(协程)高并发的解决方法探究
- ubuntu18机器学习环境安装基于anaconda