2. 计算机网络中各个层次间是如何配合工作的

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

小智: 大鹏哥,上次你给我讲了网络分层,还有各个层次间的作用,可是我还是没搞清楚他们之间是如何配合一起工作的呢?

协议报文

大鹏:别急,在搞清楚这个问题之前,我们得先了解另外一个在网络中非常重要的概念——报文文是各种网络协议一起配合完成网络通信的最终实体,不管是哪种网络协议,不管协议多么复杂,也不管两台主机要互相发送什么内容,最终在网络当中传输的都是一个一个的协议报文。就像人说话,说的内容用文字记录,网络协议的内容是用报文来记录的。要搞清楚网络中各个层次之间配合工作的机制,通过看每层协议的报文就很可以很直观的理解了。

上节我们说到,数据链路层使用以太网协议,使用的标识是网卡的mac,那以太网的报文头长啥样呢?

以太网报文头

看起来是不是很简单呢?源MAC地址表示发出报文的电脑的MAC,目的MAC地址表示要发往目的设备的MAC,最后还有一个协议号。小智,考考你,你觉得这个协议号表示什么?

小智: 呃,额,会不会就是说这个是网络层的ip协议啊?

大鹏: 不错不错,看来你已经想明白了,确实,这个协议号就是用来标识网络层ip协议的,通过协议号,数据链路层和网络层就关联起来了。

我们再来看看网络层,下面这张图是网络层ip协议的报文头:

ip报文头

这个看起来就有点复杂了,我们先不用关注每个字段它有什么用,我们可以看到报文头里面有源IP地址,目的IP地址,这个表示要通信的源主机IP地址和目的主机IP地址,里面也有一个协议字段,跟以太网协议类似,这个协议号表示的是传输层协议号,就是传输层的tcp/udp协议,通过协议号,网络层和传输层就关联起来了。

再来看传输层,传输层有两个重要的协议,一个是tcp,一个是udp。tcp报文头是这样的:

tcp报文头

udp的报文头是这样的:

udp报文头

看起来不比IP头简单,对不对?不过也不急,我们还是先看下现在重点要看的字段,什么字段呢?当然是源端口和目的端口了,源端口和目的端口分别表示的是通信源主机使用的端口号和目的主机的端口号,上节我们提到了端口号的作用,端口号它表示应用层是哪个软件要进行通信,通过端口号,传输层和应用层关联起来了。

在实际使用中,比如QQ通信,整个协议报文就是长这个酱紫啦:

整个报文

从这个协议报文我们可以看到,除了物理层,其它四个层次在网络报文中都有体现。

小智: 嗯嗯,原来层次之间就是通过报文头部里面的字段来指示上层是什么网络协议呀,大鹏哥,那你能再给我讲讲计算机是怎么一层层封装整个报文的吗?

协议报文的封装和解封装

大鹏: 这个问题呢,我们可以从两个方向来看,一个是计算机主动往外发信息,一个是计算机收到发给它的信息。我们先说计算机往外发信息,报文是怎么封装的。

首先我们得知道发信息的主体是谁?上一节其实说过,计算机通信,最终还是操作系统上面软件的通信,还是以上节的例子QQ来说,我们通过QQ给好友发送一条消息,比如“你好”两个字,那么通信报文实际要包含的内容就是“你好”,对端电脑上的QQ要解析出“你好”两个字,还得依赖于应用层协议的规则,这个规则在这里就是QQ的应用层协议QICQ,QICQ把“你好”两个字封装好,应用层就处理完了。

接着就交给传输层处理了,应用层只需要告诉传输层我使用的是传输层的什么协议,比如QICQ使用的是udp协议,以及要使用的端口就行了,至于里面传输的内容“你好”,传输层是不关心的;

接着就到网络层了,网络层只需要知道传输层使用的是udp就行了,它更关心的是我该使用哪个源IP地址发出去,我要去往的目的IP是谁,传输什么内容,网络层也是不关心的;

对数据链路层,它也只需要知道上面使用的是ip协议,它更关心的是我该使用哪个源MAC发出去,我要去往的目的MAC是谁。

所以,计算机发消息的报文封装过程,就像俄罗斯套娃,一层套一层,层层封装,每层封装的都是自己的报文头,需要关心的是自己上层使用的是什么协议,至于里面传输的具体内容,它是不关心的

我们再来说说QQ好友收到消息的过程,收消息相对于发消息的报文封装,它是一个反向的过程,开始收到的是一个完整的报文,每经过一层,这一层就把自己的头部剥掉,到QQ这里,它把QICQ协议的头剥掉,用户界面最终看到的就是“你好”两个字

协议报文封装解封装的过程,我画了下面这张图,这样看起来就一目了然了。

小智: 大鹏哥,现在我算是明白每个层次是怎么玩的了,好像也没那么复杂啊,就是每个层次有个报文头,然后封装解封装。

大鹏:你可别高兴地太早,到现在我们也只是从整体上对网络通信的流程以及报文封装有了个大致的了解,对于每一层深层次的工作机制的研究还没开始呢。

小智:好吧,我想着也不会这么简单,不过有我大鹏哥这么通俗易懂的讲解,我一点都不担心我整不明白啦,哈哈。

大鹏:你可别太指望我,说了这么多,要想真正转化为自己的东西,还得多多思考才是呢。

小智:嗯嗯,我知道啦!

获取更多电子书资料电子书资料汇总,请关注我的公众号:【程序员小智和大鹏】,回复“电子书”获取。

在这里插入图片描述

公开OICQ所有通讯协议 公开OICQ所有通讯协议 作者:腾讯发布日期:2002-3-2上传日期:2002-3-10来源:OICQ服务器 OICQ服务器系统通讯协议 协议说明: 协议由报文头(T)+发送者(T)+接收者(T)+报文类型(T)+报文长度(L)+报文内容组成 发送者和接收者是系统内的程序种类,OICQ服务器0x01,传真服务器0x02,WEB服务器0x03,打印服务器是0x04,聊天服务器是0x 阅读详情

相关推荐

计算机网络知识预览

文章目录计算机网络第一章概念1.1、计算机网络的功能1). 数据通信:2. 资源共享3). 分布式处理4). 提高可靠性5). 负载均衡1.2计算机网络组成1).组成部分1.3、工作方式1).边缘部分:2.核心部分:1.4、功能组成1)通信子网:2)资源子网:1.5、计算机网络的分类1) 按分布范围2) 按使用者来分3) 按交换技术分4)按拓扑结构来分5) 按传输技术分1.6、计算机网络的几...

Test_Simon的博客 813

通俗易懂讲解计算机网络五层模型是如何相互协作的

正文 上面说了一些题外话,哈哈。下面我们开始今天的知识点。 互联网相隔n公里路的两台计算机,是如何进行数据的传送的呢?在成千上万台的计算机中,一台计算机是如何正确着找到另外一个计算机,并把数据传给它的呢? 学过计算机网络的同学可能知道,在这互联网中,计算机计算机之的数据传送,主要是基于各种“协议”串联起来的。不过今天要讲的,并不会详细去讲各种协议,而是通过各种简化之后,让你大概知道数据之...

帅地 1万+

计算机网络技术》第三章课后习题答案(全)

计算机网络技术》第三章课后习题答案(全)

weixin_44932459的博客 1万+

从密码学的角度看腾讯QQ通信协议

0.分析目的 制作一款命令行QQ软件。可以在命令行下登录qq,以及处理一些简单的文本消息。 1.怎么通信 A->server server->B 2.采用何种协议 QICQ:用于更新数据库中的状态(在线,离线,隐身…), 传递对称加密的密钥(sessionkey)。 UDP:data本身是经过加密的。用上一步得到的sessionkey进行加密。 3.攻击者的角度 唯密文攻击 ...

u010563350的博客 3011

计算机网络体系结构层关系一句话表述

OSI模型将计算机网络分成7个层次 物理层–数据链路层网络层–传输层–会话层–表示层–应用层 *每一层, 通过层接口, 基于相应的网络协议在享用下一层的服务的基础上, 结合本层的功能, 为上一层提供服务. ...

nameYX的博客 2615

网络知识梳理--OSI七层网络TCP/IP五层网络架构及二层/三层网络

作为一个合格的运维人员,一定要熟悉掌握OSI七层网络和TCP/IP五层网络结构知识。 废话不多说!下面就逐一展开对这两个网络架构知识的说明:一、OSI七层网络协议OSI是Open System Interconnect的缩写,意为开放式系统互联。 OSI参考模型各个层次的划分遵循下列原则:1)根据不同层次的抽象分层2)每层应当有一个定义明确的功能3)每层功能的选择应该有助于制定...

weixin_30877227的博客 755

计算机网络:自顶向下方法】期末复习总结(USTC 2020秋 zq班)

计算机网络课程期末复习总结

Blue00356的博客 6884

计算机网络】网络基础(必备基础常识概览)

本文是计算机网络系列的第一篇文章,将会从基础的开始,本文主要来介绍一些,计算机网络的一些基础常识,以便后续的学习和理解;

2202_75605090的博客 1369

网络基础概念应用:深入理解计算机网络

本篇文章介绍了计算机网络的基础概念,包括网络分层模型、协议的作用设计、数据封装解包、Socket 编程基础以及传输层协议 TCP 和 UDP 的基本特性。通过这些内容,我们可以更好地理解计算机网络工作原理,并能够在实际应用中进行网络编程。网络的发展让我们的世界更加紧密地联系在一起,从局域网到广域网,再到今天的互联网,无数的协议和标准支撑起了这一复杂而强大的系统。希望这篇文章能为你揭开计算机网络的神秘面纱,激发你对网络编程和分布式系统的兴趣。

2406_83947720的博客 2787

计算机网络的概念、组成、功能和分类

目录 计算机网络的概念 计算机网络的功能 1.数据通信(连通性) 2.资源共享 3.分布式处理 4.提高可靠性 5.负载均衡 计算机网络的组成 1.组成部分 2.工作方式 3.功能组成 计算机网络的分类 1.按分布范围 2.按使用者 3.按交换技术 4.按拓扑结构 5.按传输技术 计算机网络:是一个将分散的、具有独立功能的计算机系统,通过通信设备线路连接起来,由功能完善的软件实现资源共享和信息传递的系统 (1)计算机系统(端系统):如手机、电脑 (2)通信设备:..

muacxj的博客 4197

软件设计师——计算机网络学习笔记

计算机网络是软件设计师必须掌握的核心内容之一,涉及网络协议、体系结构、数据传输和安全等方面。OSI七层模型和TCP/IP四层模型是理论基础。

沐小侠 1184

【网络编程】计算机网络基础知识总结 | 运输层 |TCP协议

【网络编程】计算机网络基础知识总结 | 运输层 |TCP协议

weixin_46274756的博客 1405

Linux笔记---计算机网络概述

再由不同厂商生产。

2302_80372340的博客 1274

计算机网络导论课后答案,课后练习题参考答案 计算机网络导论.doc

课后练习题参考答案计算机网络导论1. 人类的信息文明史分那几个阶段?它的发展有什么特点?1)语言的产生:从简单的声音交换信息,到使用更复杂的语言来交换信息。2)文字的产生:使用一些特定的符号来表达确定的信息。3)印刷术的产生:使用可以存放大量信息的书本,信息可以被高效率的复制,信息的传播速度明显提高。4)电话电报技术的产生:电报解决了信息不能够远距离高速传送的问题,但传送信息要进行特定的编码,而电...

weixin_29483277的博客 581

计算机网络实验四协议分析心得,计算机网络学习心得体会范文

计算机网络,是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。下面是学习啦带来的计算机网络学习心得体会范文,欢迎查看。计算机网络学习心得体会范文一:通过为期一个学期的选修课程的学习,作为一个涉及计算机网络不深的我来说收益匪浅。那么以下就是在此次学习过程中我所总结出来的关于计算...

weixin_33737167的博客 2984

计算机网络 自顶向下方法 学习笔记 第一章

计算机网络自顶向下方法学习笔记 参考中科大郑老师B站视频网课

南花醉笔丶的博客 2410

计算机网络课程优势,计算机网络课程教学大纲.doc

国家开放大学(中央广播电视大学)计算机科学技术专业(本科)计算机网络课程教学大纲第一部分 大纲说明一、课程的性质任务《计算机网络》是计算机科学技术专业(本科)的一门统设必修课。本课程的大纲设置参考了国内知名大学远程教学的教学计划以及国内外Andrew S. Tanenbaum 《Computer Networks》、Lisa Stefanik《计算机网络实用教程》和谢希仁《计算机网络》等教材...

weixin_35778245的博客 254

计算机网络第一章 概论

计算机网络自顶向下书籍中科大B站课程笔记

Ricardo1998的博客 699

计算机网络的发展之OSI参考模型的详介(一)

一名菜鸟学习编程技术,记录所学知识并分享给大家,希望大家多多支持。 一、 计算机网络的发展 1、计算机网络的发展,分为以下四个阶段: 远程终端联机阶段 计算机网络阶段 计算机网络互联阶段 信息高速公路阶段 1.1 远程终端联机阶段 在远程终端联机阶段,最初是一台主机连接若干终端,后来引入通信控制机CCP,由CCP负责主机终端的通信。这一时期,具有代表意义的系统是:1963年,美国使用的飞机...

qq_44723773的博客 5811
上一篇: 计算机网络到底讲了些什么
下一篇: 3. 计算机MAC寻址的这些细节,你真的懂了吗
编程十万问
博客等级 码龄7年 2360粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值