视频学习链接如下:https://www.bilibili.com/video/BV1qf4y1D7NU?p=11&spm_id_from=333.880.my_history.page.click.

数据在各层的组包、解包

组包过程

组包过程就是一层层封装头部的过程。

解包过程

解包过程就是一层层解析头部的过程。

当主机 B 接收到主机 A 的帧数据后,并且当帧数据到达数据链路层,数据链路层便开始解析帧数据中的 MAC 头信息,解析过程是判断 MAC 头中的地址是否与当前主机的 MAC 地址一致。如果一致,就继续处理。此外,链路层也只能查看 MAC 头,而不能查看其他头。

数据链路层处理之后,它会把已经解析的 MAC 头给去掉,剩下的报文(帧数据)到达网络层,网络层只能解析 ip 头,解析过程是判断 ip 头中的地址是否与当前主机的 ip 地址一致。同样的,网络层也只能查看 ip 头,而不能查看其他头。处理完之后,它也会把已经解析的 ip 头给去掉,剩下的报文(帧数据)到达传输层。

传输层只能解析 TCP/UDP 头,解析过程是判断 TCP/UDP 头中的端口号是否与当前主机中正在与之通信的应用程序的端口对应。同样的,传输层也只能查看 TCP/UDP 头,而不能查看其他头(还剩下用户数据)。处理完之后,它也会把已经解析的 TCP/UDP 头给去掉,剩下的报文(帧数据,还剩下用户数据)到达接收应用进程。

数据链路层封包(以太网头部)格式


目的地址是 接收主机 的 MAC 地址
源地址是 发送主机 的 MAC 地址

无线封装头不需要去关心,因为最终会转换为以太网封装头。所以,这里只关心以太网封装头。

下面,来说一说类型这一项,我们看下图

当帧数据到达数据链路层(硬件接口)之后,会有三条路可以走,即ARP、 IP、RARP。这就相当于是一个十字路口,接下来往哪边走就由这个"类型"值来决定。比如类型值为 0x0800,就说明是ip数据报,就应该往网络层走。

网络层封包(ip 头部)格式


上图中,IP 数据报的每一行都是四个字节(32位)。

数据一项则要么是UDP数据报,要么是TCP数据报。

下面,来说一说协议这一项,我们看下图

从上图可以看出,当帧数据到达网络层之后,会有四条路可以走,即ICMP、 TCP、UDP、IGMP。接下来往哪边走就由这个协议来决定。这又相当于是一个十字路口,比如协议值为 6,就说明是TCP数据报,就应该往传输层走。

传输层封包(ip 头部)格式


上图中,UDP 和 TCP 数据报的每一行都是四个字节(32位)。

正是因为 TCP 数据报 的格式参数多,所以才能保证通信的可靠性和准确性。

嵌入式网络的基础知识 -- 数据包的组装、拆解、各头部格式相关推荐

  1. 网络基础:数据包,通信

    网络基础 TCP/IP四层模型 TCP/IP网路协议栈分为: 应用层(Application) 传输层(Transport) 网络层(Network) 链路层(Link) 一般在应用开发过程中,讨论最 ...

  2. java 网络爬虫 正则表达式_【干货】Java网络爬虫基础知识

    原标题:[干货]Java网络爬虫基础知识 引言 Java 网络爬虫具有很好的扩展性可伸缩性,其是目前搜索引擎开发的重要组成部分.例如,著名的网络爬虫工具 Nutch 便是采用 Java 开发,该工具以 ...

  3. 网络服务器最基本的是文件,你可能想知道的15个网络常用基础知识

    原标题:你可能想知道的15个网络常用基础知识 网络是一个复杂的系统,涉及知识很多.现在腾正小超人给大家分享15个常用的网络基础知识: 1) 如何查看本机所开端口 用netstat -a -n命令查看! ...

  4. Linux网络编程基础知识

    Linux网络编程基础知识 1. 协议的概念 1.1 什么是协议 1.2 典型协议 2 网络应用程序设计模式 2.1 C/S模式 2.2 B/S模式 2.3 优缺点 3 分层模型 3.1 OSI七层模 ...

  5. 网络技术入门(一):网络技术基础知识系统归结

    <网络技术入门>系列文章,分别从宏观硬件和微观数据传输角度说明网络传输过程.请期待后续系列文章. 自己写文章习惯性在每一个小节上做总结,有时候方便理解可以先看总结的内容. 本章主要是总结性 ...

  6. 2017年软考网络管理员基础知识考试内容

    软考网络管理员考试采用笔试形式,实行全国统一大纲.统一试题.统一时间.统一标准.统一证书的考试方式.下面有希赛小编为大家整理了2017年网络管理员基础知识考试内容.供大家参考!       网络管理员 ...

  7. Java 网络编程基础知识

    Java 网络编程基础知识 基础概念 计算机网络的基本概念 ​ 网络:多台计算机使用网络设备互联在一起,计算机之间可以进行通信,这样就组成了一个计算机网络. ​ 网络设备:集线器(HUB),路由器,交 ...

  8. JNI学习开始篇 基础知识 数据映射及学习资料收集

    JNI学习开始篇 基础知识 数据映射及学习资料收集 JNI介绍 JNI(Java Native Interface) ,Java本地接口. 用Java去调用其他语言编写的程序,比如C或C++. JNI ...

  9. 网络协议基础知识大全

    网络协议 计算机网络体系结构 OSI七层模型 TCP/IP模型 ☆ TCP/IP协议族 TCP和UDP 地址和端口号 端口号的确定 端口号与协议 TCP/IP TCP三次握手 ☆ 三次握手的原因 TC ...

最新文章

  1. MFCC特征参数提取(一)(基于MATLAB和Python实现)
  2. iOS - NSUserDefaults 实现数据的持久化保存
  3. C# 构造函数中调用虚函数
  4. iptables基础篇
  5. 外媒对中国量子计算机,中国超算世界第一,美国却研发出量子计算机,外媒:秒杀中国超算...
  6. html ajax 菊花,Ajax加载菊花loding效果
  7. 互联网晚报 | 1月16日 星期日 | 微信新增语音播放暂停功能;小米MIUI“纯净模式”上线;全国首例“刷单案”宣判...
  8. android键盘覆盖edittext_“新”意满满 :联想小新Pad Pro搭载磁吸键盘及支架套装初体验...
  9. java nginx 重启吗_Nginx的启动、停止、平滑重启
  10. [转载] [转载] python set集合如何有序输出_python set集合的用法
  11. angularjscheckbox全选_Vue Checkbox全选和选中的方法
  12. python怎么看待_如何看待将Python作为少儿编程的基础语言?
  13. WordPress和October
  14. 自己写jquery表单验证
  15. php视频边下边播,PHP + NGINX 控制视频文件播放,并防止文件下载
  16. WAMP安装与基础配置
  17. 新版升级 DAEMON Tools v4.10 X86 32 Bits (with SPTD 1.50)
  18. 若依对接企业微信JS-DK
  19. Proxifier安装与使用
  20. pc/mobile前端一键复制粘贴

热门文章

  1. 07.合成复用原则(Composite/Aggregate Reuse Principle,CARP)
  2. 大厂如何开发和部署前端代码?淘宝8年案例解读
  3. 使用shareSDK调用QQ好友分享遇到的问题
  4. 2022爱分析・工业互联网实践报告
  5. bitwise oracle,linq – 与NHibernate和Oracle的Bitwise AND
  6. 温莎计算机应用硕士是针对国际学生的吗,专业推荐 | 加拿大留学,温莎大学英语计算机专业了解一下...
  7. java对接钉钉发送消息通知
  8. 【Java实战篇】SpringBoot+MyBatis快速实现登录注册
  9. 不用身份证刷手就能坐飞机,掌静脉还能被应用在哪里领域?
  10. 如何用云服务器进行深度学习