中科大计网学习记录笔记(五):协议层次和服务模型

前言:

学习视频:中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》课程
该视频是B站非常著名的计网学习视频,但相信很多朋友和我一样在听完前面的部分发现信息量过大,有太多无法理解的地方,在我第一次点开的时候也有相同的感受,但经过了一段时间项目的学习,对计网有了更多的了解,所以我准备在这次学习的时候做一些记录并且加入一些我的理解,希望能够帮助到大家。
往期笔记可以看专栏中的内容😊😊😊

资料分享:
视频课件分享链接,提取码 pho1
计算机网络(第七版) 自顶向下方法分享链接,提取码 7ln4

1.7 协议层次和服务模型

问题:如何设计和实现计算机网络这个极其复杂的系统?

1.7.1 例子类比

两位异地哲学家的交流

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

模型解析:

根本是为了实现两位哲学家的思想交流,这里采用分层次的解决方法,也就是下层为上层去服务,第一层是秘书,他们负责两位哲学家书信的传递,比如使用马车邮寄信件,第二层是翻译,负责将书信翻译成哲学家能看懂的语言,重复这个过程,最终实现思想交流。

这样的好处就是将复杂的问题拆分开,比较好实现,而且后续拓展较为容易,比如可以将马车更换为邮车等等。

用层次化的方式实现复杂的网络功能:

**PDU(Protocol Data Unit)**是指在通信协议中,用于在不同层次之间传递的数据单元。通信协议按照 OSI 模型(Open Systems Interconnection model)分为七个层次,每个层次负责不同的功能。在每个层次之间传递的数据单元就是 PDU。

  • 将网络复杂的功能分层成功能更明确的层次,每一层实现了其中的一个或者一组紧密相关的功能,功能中有其上层可以使用的功能,也就是提供给上层的服务
  • 本层协议实体相互交互执行本层的协议动作,目的是实现本层的功能,通过接口为上层提供更好的服务。
  • 在本层协议的时候,直接利用了下层的服务
  • 本层的服务 = 借助下层服务实现的本层协议实体之间交互带来的新功能 + 更下层所提供的服务。
1.7.2 服务和服务访问点

服务(Service):低层的实体向上层实体提供其和其对等实体通信的能力

服务访问点(SAP,Service Access Point):上层使用下层的服务通过层间的接口——地点;因为下层不可能只为上层中的一个实体提供服务,所以需要一个标识来找到本次的信息要提供给哪个实体;例如传输层SAP 就是经常提到的端口(port)

  • TCP/IP 协议模型层次:网络接口层、网络层、传输层、应用层
  • 套接字(Socket)是计算机网络中进行进程间通信或主机间通信的一种机制。它提供了一种标准的接口,允许不同计算机上的进程通过网络进行数据交换。套接字是网络编程中重要的概念之一,通常用于实现客户端和服务器之间的通信。

原语(primitive):上层使用下层服务的形式,高层使用底层提供的服务,以及底层向高层提供服务都是通过服务访问原语来进行服务的。可以理解成一个不可再分的基本操作或者指令,是计算机指令集的基本组成成分。

1.7.3 服务的类型

面向连接的服务(Connection-oriented Service)

  • 连接:两个通信实体为进行通信而建立的一种结合

无连接的服务(Connectionless Service)

  • 两个对等层实体在通信前不需要建立一个连接,不预留资源;不需要通信双方都是活跃状态,例如寄信

基本理解即可,具体的会在后面课程中详细讲述

服务和协议的关系与区别

  • 服务:低层实体向上层实体提供它们之间通信的能力
  • 协议:对等层实体之间相互通信过程中遵循的集合

服务与协议的联系

  • 本层协议的实现要依靠与下层的服务
  • 本层实体通过协议为上层提供更好的服务
1.7.4 数据单元

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

理解上图中的概念

  1. SAP:上面提到的服务访问点
  2. IDU:是指在不同层次的通信协议中,数据在相邻层之间传递的单元。
  3. ICI: 是指接口控制信息,它是在通信中用于传递控制信息的部分
  4. SDU: 是指服务数据单元,它是在通信协议的各层之间传递的数据的逻辑单元。在通信协议的更高层次(应用层、表示层、会话层)中,SDU 包含了实际的用户数据以及可能的协议控制信息。
  5. PDU:是指在通信协议中传递的数据的单元,它是通信协议中进行数据传输的最小单位。不同协议层次和不同协议使用不同名称的 PDU。

PDU 的主要作用是 通过协议栈的各层传递数据,并在每一层添加相应的控制信息。当数据通过协议栈向下传递时,每一层都会封装上层的 PDU,添加自己的头部信息,形成新的 PDU。当数据向上传递时,每一层都会解封装下层的 PDU,提取控制信息,并将数据传递给上一层。

上层(第 n 层)的 SDU 作为下一层(n - 1 层)要传递的数据,下层对这个 SDU 进行拓展,加上本层的头部(Header)形成本层的 PDU,而这个 PDU 又作为更下一层(n - 2 层)的 SDU,是一个相对的概念。

1.7.5 分层处理实现复杂系统的好处
  • 概念化:结构清晰,便于标示网络组件,以及描述其相互关系
    • 分层参考模型
  • 结构化:模块化更易于维护和系统升级
    • 改变某一层服务的实现不影响系统中的其他层次
      • 对于其他层次而言是透明的
    • 如改变登机程序并不影响系统的其它部分
      • 改变2个秘书使用的通信方式不影响2个翻译的工作
      • 改变2个翻译使用的语言也不影响上下2个层次的工作
  • 缺点:拆分成子系统会导致效率较低
1.7.6 Internet 协议栈

Internet 协议栈是指构成互联网体系结构的协议集合,它定义了在计算机网络中信息如何在不同层次进行传输和处理。

提到模型,首先要区分开 OSI 模型 和 TCP/IP 模型

  • OSI 模型(开放系统互联模型)是由国际标准化组织(ISO)制定的,其设计目的是为了提供一个通用的框架能够帮助理解和设计各种计算机网络协议

  • OSI 模型并没有在实际互联网中得到广泛的应用,但它仍然在学术界和标准化文档中被用作理论基础,以便更好地理解网络协议的功能和交互。

  • 物理层、数据链路层、网络层、传输层、会话层、表示层、应用层

  • TCP/IP 模型是在实际互联网的发展中形成的,最初是由美国国防部的研究项目 ARPANET 的设计所推动的。它以更简洁的四层结构描述了互联网协议的体系结构,包括链路层、网络层、传输层和应用层。TCP/IP 模型更贴近实际应用和互联网的发展,因此 在实际网络设计和实施中更为常见

  • 链路层、网络层、传输层、应用层

可以理解为 TCP/IP 模型是在 OSI 模型上发展而来的,且是更偏向于实践的模型,而作为一个通用的规范,OSI 在学习上也有很大的价值。

这里继续记录郑老师课上使用的模型,可以看作是上面两个的结合

  1. 应用层:为人类用户或者其他应用进程提供网络服务的服务,是计算机网络存在的目的。
    • 上面存在的协议包括:FTP(文件传输的协议), SMTP(用于电子邮件的协议), HTTP(用于在客户端和服务器之间传递超文本文档的协议),DNS(是用于将域名映射到 IP 地址的分布式数据库系统)等
  2. 传输层:在网络层提供端到端通信的基础上,细分为进程到进程,将不可靠的通信变为可靠的通信
    • 上面存在的协议包括:TCP(面向连接)、UDP(面向无连接)等
  3. 网络层:为数据报从源主机到目标主机 选择路由,提供端到端的通信,不可靠
    • 上面存在的协议包括:IP、路由协议等等
  4. 链路层:相邻两个网络节点的数据传输,提供点到点的数据通信,而非端到端的
    • 上面存在的协议包括:点对点协议PPP,802.11(wifi),Ethernet
  5. 物理层:在线路上传输以 bit 为单位的数据

继续在传输过程中看这些层次的作用

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在传输的过程中会经过交换机和路由器

  • 交换机主要工作在数据链路层(第二层),通过学习和转发 MAC 地址来实现局域网内部的设备通信。交换机的作用是根据目标设备的 MAC 地址进行内部局域网内的帧转发。
  • 路由器主要工作在网络层(第三层),通过学习和转发 IP 地址来实现不同网络之间的数据包路由。路由器的作用是根据目标设备的 IP 地址进行不同网络之间的数据包转发。

路由算法就是在路由器上执行的,为了确定到达目标位置的路径,需要借助网络层,而交换机是负责局域网的数据传输,只需要解封到链路层负责端到端的传输,这里有部分关于路由器和交换机的补充知识,了解即可。

关于路由器和交换机的工作

  • 在交换机中,决定数据包转发的主要因素是目标设备的 MAC 地址。交换机通过学习源 MAC 地址和构建一个 MAC 地址表,根据目标 MAC 地址来决定将数据包转发到哪个端口。这个过程是根据数据链路层的信息(MAC 地址)进行的,而不涉及网络层(IP 地址)的路由决策。交换机在同一局域网内实现设备之间的高效通信。
  • 而在路由器中,决定数据包转发的主要因素是目标设备的 IP 地址。路由器使用路由表来查找目标 IP 地址,并决定将数据包转发到哪个输出端口。这个过程是根据网络层的信息(IP 地址)进行的,涉及到不同网络之间的路由决策。路由器用于连接不同网络,实现跨网络的数据包传输。

关于 MAC 的确定

  • 在同一局域网内,如果目标主机位于源主机所在的子网,源主机可以通过 ARP(地址解析协议)查询目标主机的 IP 地址对应的 MAC 地址,然后将目标 MAC 地址写入数据包的目标 MAC 地址字段。
  • 如果目标主机位于不同的网络,源主机会将数据包的目标 MAC 地址设置为它直接连接到的路由器的 MAC 地址。这个路由器通常是源主机发送数据包经过的第一个路由器,即默认网关。路由器会负责将数据包从源主机的子网传递到目标主机所在的子网。
  • 在目标主机所在的子网内,路由器会将目标 MAC 地址替换为目标主机的真实 MAC 地址。这是通过路由器在两个子网之间进行 MAC 地址转换的过程,通常称为 NAT(Network Address Translation)。
1.7.7 各层次的协议数据单元

也就是上面说的 PAU,是每层中传递的数据

  • 应用层:报文(message)
  • 传输层:报文段(segment):TCP段,UDP数据报
  • 网络层:分组packet(如果无连接方式:数据报 datagram)
  • 数据链路层:帧(frame)
  • 物理层:位(bit

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/369353.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何计算两个指定日期相差几年几月几日

一、题目要求 假定给出两个日期,让你计算两个日期之间相差多少年,多少月,多少天,应该如何操作呢? 本文提供网页、ChatGPT法、VBA法和Python法等四种不同的解法。 二、解决办法 1. 网页计算法 这种方法是利用网站给…

69.请描述Spring MVC的工作流程?描述一下 DispatcherServlet 的工作流程?

69.请描述Spring MVC的工作流程?描述一下 DispatcherServlet 的工作流程? 核心架构的具体流程步骤如下: 首先用户发送请求——>DispatcherServlet,前端控制器收到请求后自己不进行处理,而是委托给其他的解析器进行…

day30 window对象——BOM、定时器setTimeout

目录 JavaScript的组成BOM定时器——延时函数两种定时器对比:执行的次数 JavaScript的组成 ECMAScript: 规定了js基础语法核心知识。比如:变量、分支语句、循环语句、对象等等 Web APIs : DOM 文档对象模型, 定义了一套操作HTML文档的APIBOM…

【Iot】什么是串口?什么是串口通信?串口通信(串口通讯)原理,常见的串口通信方式有哪些?

串口通信原理 1. 串口2. 串口通信4. 波特率与比特率5. 帧格式3. 串口通讯的通讯协议3.1. RS2323.2. RS485 总结 1. 串口 串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。 串口可…

CICD注册和使用gitlab-runner常见问题

1、现象 fatal: unable to access https://github.com/homebrew/brew/: 2、解决 git config --global --unset http.proxy git config --global --unset https.proxy 查看gitlab-runner是否成功: userusers-MacBook-Pro ~ % gitlab-runner -h 查看gitlab-run…

Vue.js设计与实现(霍春阳)

Vue.js设计与实现 (霍春阳) 电子版获取链接:Vue.js设计与实现(霍春阳) 编辑推荐 适读人群 :1.对Vue.js 2/3具有上手经验,且希望进一步理解Vue.js框架设计原理的开发人员; 2.没有使用过Vue.js,但对Vue.js框架设计感兴趣…

Loki使用指南

转载至我的博客 https://www.infrastack.cn ,公众号:架构成长指南 与其他日志系统相比, Loki 的使用方式是有一定差异性的,需要用不同的思维方式。本文分享一下这些差异以及我们应该如何使用 作为 Loki 用户或操作人员&#xff0…

Leetcode—37. 解数独【困难】

2024每日刷题&#xff08;111&#xff09; Leetcode—37. 解数独 实现代码 class Solution { public:bool isValid(vector<vector<char>>& board, int row, int col, char c) {for(int i 0; i < 9; i) {if(board[row][i] c || board[i][col] c || boar…

最新GPT4.0使用教程,AI绘画,GPT语音对话使用,DALL-E3文生图

一、前言 ChatGPT3.5、GPT4.0、GPT语音对话、Midjourney绘画&#xff0c;文档对话总结DALL-E3文生图&#xff0c;相信对大家应该不感到陌生吧&#xff1f;简单来说&#xff0c;GPT-4技术比之前的GPT-3.5相对来说更加智能&#xff0c;会根据用户的要求生成多种内容甚至也可以和…

界面控件DevExpress ASP.NET Spreadsheet组件 - 轻松集成电子表格功能!(一)

DevExpress ASP. NET Spreadsheet组件允许您轻松地将电子表格功能合并到任意ASP. NET应用程序&#xff0c;它可以加载、转换和保存工作簿到XLS-XLSx二进制文件格式&#xff0c;还可以导出和导入XLSX、CSV和TXT文件。 P.S&#xff1a;DevExpress ASP.NET Web Forms Controls拥有…

STM32--SPI通信协议(1)SPI基础知识总结

前言 I2C (Inter-Integrated Circuit)和SPI (Serial Peripheral Interface)是两种常见的串行通信协议&#xff0c;用于连接集成电路芯片之间的通信&#xff0c;选择I2C或SPI取决于具体的应用需求。如果需要较高的传输速度和简单的接口&#xff0c;可以选择SPI。如果需要连接多…

开关电源学习之Buck电路

一、引言 观察上方的电路&#xff0c;当开关闭合到A点时&#xff0c;电流流过电感线圈&#xff0c;形成阻碍电流流过的磁场&#xff0c;即产生相反的电动势&#xff1b;电感L被充磁&#xff0c;流经电感的电流线性增加&#xff0c;在电感未饱和前&#xff0c;电流线性增加&…

零基础Vue框架上手;git,node,yarn安装

项目搭建环境&#xff1a; git安装&#xff1a;Git - 安装 Git (git-scm.com)&#xff08;官网&#xff09; 下载路径&#xff1a;Git - Downloading Package (git-scm.com)&#xff1b;根据自己电脑下载相对应的安装包 ​ 点next ​ 点next&#xff0c;点到最后安装就行。…

航母编队反无人机蜂群作战能力需求分析

源自&#xff1a;指挥控制与仿真 作者&#xff1a;樊辉锦、巫银花、毕月、苏泽亚 “人工智能技术与咨询” 发布 声明:公众号转载的文章及图片出于非商业性的教育和科研目的供大家参考和探讨&#xff0c;并不意味着支持其观点或证实其内容的真实性。版权归原作者所有&#xf…

【DBF格式转换器.exe】

一、概要 DBF文件是一种数据库文件格式&#xff0c;通常用于存储表格数据。这种文件格式曾经被广泛使用&#xff0c;尤其是在一些较旧的数据库系统中。然而&#xff0c;随着时间的推移&#xff0c;其他更现代的文件格式&#xff0c;如XLS&#xff08;Excel&#xff09;、CSV、D…

红日靶场1搭建渗透

环境搭建 下载好镜像文件并解压&#xff0c;启动vmware 这里我用自己的win7 sp1虚拟机作为攻击机&#xff0c;设置为双网卡NAT&#xff0c;vm2 其中用ipconfig查看攻击机ip地址 设置win7 x64为双网卡&#xff0c;vm1&#xff0c;vm2 设置win08单网卡vm1&#xff0c;win2k3为单…

Leetcode—32. 最长有效括号【困难】(动态规划及ranges::max()使用)

2024每日刷题&#xff08;110&#xff09; Leetcode—32. 最长有效括号 栈实现代码 class Solution { public:int longestValidParentheses(string s) {stack<int> st;st.push(-1);int n s.size();int maxn 0;for(int i 0; i < n; i) {if(s[i] () {st.push(i);}…

《幻兽帕鲁》好玩吗?幻兽帕鲁能在Mac上运行吗?

最近一款叫做《幻兽帕鲁》的新游戏走红&#xff0c;成为了Steam游戏平台上&#xff0c;连续3周的销量冠军&#xff0c;有不少Mac电脑用户&#xff0c;利用Crossover成功玩上了《幻兽帕鲁》&#xff0c;其实Crossover已经支持很多3A游戏&#xff0c;包括《赛博朋克2077》《博德之…

XUbuntu22.04之两款实用画笔工具(二百一十)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

开发智能化企业培训平台:教育系统源码的创新方法

在传统的企业培训模式中&#xff0c;往往面临着效率低下、内容过时以及难以个性化的问题。为了解决这些挑战&#xff0c;采用智能化技术成为了企业培训领域的热门趋势。通过开发智能化企业培训平台&#xff0c;可以提高培训效果、降低成本&#xff0c;并更好地满足员工多样化的…