计算机网络基础知识点【1】
文章目录
- 计算机网络
- 第一章 计算机网络参考模型
- 1.计算机网络为什么需要分层?
- 1.1 分层思想
- 1.2 分层好处
- 2.OSI七层模型
- 2.1 OSI七层模型总结
- 2.2 OSI七层工作原理
- 2.3 数据封装与解封装
- 2.4 计算机网络常用协议
- 3.TCP/IP参考模型
- 3.1 什么是TCP/IP协议
- 3.2 TCP/IP协议族的组成
- 3.3 OSI模型 vs TCP/IP模型
- 4.补充知识点
- 4.1 SCTP流控制协议
- 4.2 端到端和点到点有何区别?
计算机网络
第一章 计算机网络参考模型
1.计算机网络为什么需要分层?
1.1 分层思想
-
将复杂的流程分解为几个功能相对单一的子过程
-
整个流程更加清晰,复杂问题简单化
-
更容易发现问题并针对性的解决问题
1.2 分层好处
1)各层之间是独立的
某一层并不需要知道它的下一层是如何实现的,而仅仅需要知道该层通过层间的接口(即界面)所提供的服务。
(2)灵活性好
当任何一层发生变化时,只要层间接口关系保持不变,则在这层以上或以下各层均不受影响。
(3)结构上可分割开
各层都可以采用最合适的技术来实现。
(4)易于实现和维护
这种结构使得实现和调试一个庞大而又复杂的系统变得易于处理。
(5)能促进标准化工作
每一层的功能及其所提供的服务都已有了精确的说明。
2.OSI七层模型
2.1 OSI七层模型总结
OSI七层模型功能总结如下所示:
OSI模型特点如下:
(1)OSI模型每层都有自己的功能集;
(2)层与层之间相互独立又相互依靠;
(3)上层依赖于下层,下层为上层提供服务。
2.2 OSI七层工作原理
物理层:是参考模型的最低层,为数据端设备提供传输数据的通路,传输数据的单位是“比特流”,主要设备:中继器、集线器等;
数据链路层:在物理层的基础上,建立数据链路连接,将比特流转变为逻辑传输线路,传输的数据单位是“帧”,并具有差错校验和数据传输排序功能,主要设备:交换机等;
网络层:就是管理连接方式和逻辑地址的选择,逻辑地址即IP地址,以数据包的形式传输,主要设备:路由器;
传输层:用协议端口号服务进程,为用户提供可靠的服务端口,并且进行流控,及时将网络进行中断,也可以保证数据不用重复上传,只需上传未成功部分,以数据段的形式传输,主要设备:防火墙;
会话层:在两者服务之前需要提前建立连接,即会话层,并且管理、终止会话;
表示层:定义传递信息的语法和语义,如代码转换、格式变换等,使不同的终端可以表示;
应用层:直接面向用户的程序或者服务。
2.3 数据封装与解封装
假设终端设备PC1发送邮件给终端设备PC2
数据封装过程:首先PC1发送的邮件数据经过应用层封装,此时的数据称为协议数据单元PDU,应用层将封装好的数据传递给传输层进行处理,传输层收到消息后添加UDP报文头或者TCP报文头,指定源端口号和目的端口号,此时的数据称为数据段segment,传输层将封装好的数据传递给网络层处理,网络层收到消息后添加IP报文头,指定源IP地址和目的IP,此时的数据称为数据包Packet,网络层将封装好的数据传递给数据链路层处理,数据链路层收到消息后添加以太网数据帧报文头,指定源MAC地址和目的MAC地址,这时的数据称为数据帧Frame,数据链路层封装好的数据传递给物理层处理,最后帧被转为比特流,通过网络介质传输到PC2。
数据封装过程如下图所示:
**数据解封装过程:**终端设备PC2收到PC1发送的数据后对报文自底向上逐层进行解封装,PC2通过传输介质收到PC1发到的比特流,首先将比特流转换为数据帧得到源MAC为PC1数据链路层封装的目的MAC地址为PC2的数据帧;由于目的MAC是终端设备PC2自身,因此接收该数据帧并将该数据帧解封装,上传给网络层处理,网络层收到源IP为PC1、目的IP为PC2的数据包;由于目的IP与自身相同,因此接收该数据包,并将IP报文头解封装传递给传输层处理,传输层收到源端口号为PC1、目的端口号为PC2的数据段;由于目的端口是自己,因此接收数据段并将UDP报文或IP报文头解封装,传递给应用层处理,应用层收到数据后解封装就可以得到PC1发来的邮件信息。
数据解封装过程如下图所示:
**总结:**封装和解封装的概念可以使用生活中寄快递取快递的事情进行类比,中间的传输介质就是物流公司,寄快递的时候把物品包装起来,取快递的时候需要拆包裹,分别对应的就是数据的封装和解封装过程,源/目的端口号类比寄件人/收件人、源/目的MAC地址类比寄件人地址/收件人地址。
2.4 计算机网络常用协议
计算机网络常用协议名称及端口号汇总如下所示:
各层常用协议:
-
物理层:IEEE 802.3有线局域网、IEEE802.11无线局域网标准
-
数据链路层:
点对点协议(Point-to-Point Protocol) PPP协议是目前广域网上应用最广泛的协议之一,它的优点在于简单、具备用户验证能力、可以解决IP分配等。 -
网络层:IP协议:(Internet Protocol,网际协议),而IP协议由以下四个子协议构成;
(1)ARP(地址解析协议): 根据IP地址获取物理MAC地址
(2)RARP(逆地址解析协议): 是根据物理MAC地址获取IP地址的协议
(3)ICMP(网际控制报文协议):ping 网络连通性检测
(4)IGMP(网际组管理协议):组播协议,该协议运行在主机和组播路由器之间
单播:1对1发消息
组播:只对一部分人发消息
广播:对所有人发消息 -
传输层:TCP(传输控制协议)是可靠协议,安全性高、速度慢;UDP(用户数据报协议)是不可靠协议,安全性不高,速度快。
-
应用层:主要包括以下11中协议
(1)HTTP(超文本传输协议):是一个简单的请求-响应协议,现在主要的场景是web服务,就是网页的传输,使用TCP的80端口
(2)HTTPs:是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性,使用TCP的443端口
(3)FTP文件传输协议:FTP(file File Transfer Protocol)提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限,使用TCP的21端口(4)SMTP简单邮件传输协议:一组用于从源地址到目的地址传送邮件的规则,并且控制信件的中转方式,用于邮件的发送,使用TCP的25端口
(5)POP3邮局协议版本3:用于邮件的接收,使用TCP的110端口
(6)telnet远程登陆协议:一种字符模式的终端服务,可以使用户通过网络进入远程主机或网络设备,然后对远程主机或设备进行操作,使用TCP的23端口
(7)ssh安全的远程登陆协议,使用TCP的22端口(8)TFTP简单文件传输协议:是一个小而易于实现的文件传送协议,TFTP只支持文件传输,不支持交互,没有庞大的命令集。也没有目录列表功能,以及不能对用户进行身份鉴别,使用UDP的69端口
(9)SNMP简单网络管理协议:是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,使用UDP的161端口(10)DNS 域名解析系统:将域名和IP地址相互映射,使用TCP和UDP的53端口
(11)DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码,分配ip地址,使用UDP的67和68端口
3.TCP/IP参考模型
3.1 什么是TCP/IP协议
TCP/IP(传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。
3.2 TCP/IP协议族的组成
3.3 OSI模型 vs TCP/IP模型
OSI参考模型 与TCP/IP模型的区别如下所示:
相同点:
(1)OSI 参考模型与 TCP/IP 参考模型都采用了层次结构。
(2) 都能够提供面向连接和无连接两种通信服务机制。
不同点:
(1)OSI采用七层模型; TCP/IP 是四层或五层结构。
(2)TCP/IP 参考模型没有对网络接口层进行细分,只是一些概念性的描述; OSI 参考模型对服务和协议做了明确的区分。
(3)OSI 参考模型虽然网络划分为七层,但实现起来较困难。TCP/IP 参考模型作为一种简化的分层结构是可以的。
(4)TCP/IP 协议去掉表示层和会话层的原因在于会话层、表示层、应用层都是在应用程序内部实现的,最终产出的是一个应用数据包,而应用程序之间是几乎无法实现代码抽象共享的,这也就造成 OSI 设想中的应用程序维度的分层是无法实现的。
4.补充知识点
4.1 SCTP流控制协议
SCTP(Stream Control Transmission Protocol)流控制传输协议,是对TCP和UDP协议的提升,既提供了UDP协议不可靠的消息传输方式,同时又具有TCP协议的可靠性、顺序传输和拥塞控制功能,并且还提供了多宿主和冗余路径的功能,从而提高弹性和可靠性。TCP和UDP最大的不同是TCP是可靠的,TCP提供了通过 Internet 可靠地传输数据的方法。但是TCP为了保证可靠的数据传输,对传输做了一些限制,如严格要求数据传输的顺序,需要额外为数据流添加标记、优化并合并数据包,容易收到DOS攻击。
SCTP的两大特点:
(1)面向消息的Message-based
(2)传输系列消息
如何理解TCP和SCTP包的不同?
当客户端以TCP协议向服务器端发送多条消息时,为了提升传输效率,TCP会将这些不同作用小的数据放到同一个TCP包中。在服务器端接收的过程中也是一次收取这个TCP包中的所有数据,然后由应用程序本身来进行TCP包中底层数据的拆分。
对于SCTP包来说,一个SCTP包中可以包含多个data chunks,不同的data chunks可以包含不同用户的不同消息,因为SCTP包已经对不同的消息进行了区分,所以对于服务器端的读取来说就相对容易很多。
4.2 端到端和点到点有何区别?
- 网络层及以下的通信为点对点通信,主要解决主机到主机的通信问题。
- 传输层的通信为端到端通信,为应用层实体(进程)提供端到端的通信功能,保证了数据包的顺序传送及数据的完整性。
相关文章:

计算机网络基础知识点【1】
文章目录计算机网络第一章 计算机网络参考模型1.计算机网络为什么需要分层?1.1 分层思想1.2 分层好处2.OSI七层模型2.1 OSI七层模型总结2.2 OSI七层工作原理2.3 数据封装与解封装2.4 计算机网络常用协议3.TCP/IP参考模型3.1 什么是TCP/IP协议3.2 TCP/IP协议族的组成…...
c++ 中标准库类型 string 详解
👁🗨👁🗨 前言 标准库类型string 表示可变长的字符序列,使用string 类型必须首先包含string 头文件。string 定义在命名空间std 中。 定义和初始化 string 对象 首先说明如何初始化对象是由类本身决定的࿰…...
Html新增属性之拖拽(drag)
元素在拖放过程中触发的事件 HTML5中,只要将元素的 draggable 属性设置为 true 就可以实现拖放功能,在拖放过程中,触发了多个事件,如下: dragstart:事件主体是被拖放元素,在开始拖放被拖放元素时触发。dra…...

C/C++开发,无可避免的多线程(篇二).thread与其支持库
一、原子类型与原子操作 1.1 原子类型与操作介绍 在前一篇博文中,多线程交互示例代码中,给出了一个原子类型定义: // 原子数据类型 atomic_llong total {0}; 那么什么事原子数据类型呢,和c的基础数据类型有什么不同呢:…...

mysql数据库之表级锁
表级锁,每次操作锁住整张表。锁定粒度大,发生所冲突的概率最高,并发度最低。应用在myisam、innodb、bdb等存储引擎中。 一、表级锁分类。 1、表锁 2、元数据锁(meta data lock,MDL) 3、意向锁 二、表锁…...

Python - Pandas - 数据分析(2)
Pandas数据分析2前言常用的21种统计方法describe():numeric_only:偏度skewness:功能:含义:计算公式:演示:峰度值:用途:数值:计算公式:演示&#x…...
我的十年编程路 2019年篇
随着2018年,三星天津研究院的裁撤,我选择了到广州的三星研究院工作,与最心爱的她开始一起生活。 这一年的开始,我注册了博客园。和2014年类似,在刚注册不久,我写了一篇题为《全新开始,全心出发…...

(蓝桥真题)剪格子(搜索+剪枝)
样例1输入: 3 3 10 1 52 20 30 1 1 2 3 样例1输出: 3 样例2输入: 4 3 1 1 1 1 1 30 80 2 1 1 1 100 样例2输出: 10 分析:这道题目我们直接从(1,1)点开始进行dfs搜索即可,但是需要注意一点的是我们搜…...

Kalman Filter in SLAM (3) ——Extended Kalman Filter (EKF, 扩展卡尔曼滤波)
文章目录1. 线性系统的 Kalman Filter 回顾2. Extended Kalman Filter 之 DR_CAN讲解笔记2.1. 非线性系统2.2. 非线性系统线性化2.2.1. 状态方程f(xk)f(x_k)f(xk)在上一次的最优估计状态x^k−1\hat{x}_{k-1}x^k−1处线性化2.2.2. 观测方程h(xk)h(x_k)h(xk)在这一次的预测…...
关于vertical-align的几问
vertical-align属性可以给我讲解一下吗? 当使用table-cell布局或inline元素时,可以使用CSS的vertical-align属性控制元素的垂直对齐方式。该属性可应用于元素本身以及其父元素(例如,td、th、tr和table)。 以下是vertic…...

【拜占庭将军问题】这一计谋,可以让诸葛丞相兴复汉室
我们都知道,诸葛亮第一次北伐是最可能成功的,魏国没有防备,还策反了陇西,陇西有大量的马匹可以装备蜀国骑兵,可惜街亭一丢,那边就守不住了 当时我不在,只能作诗一首~ 如果穿越过去,…...

【Linux】 -- make/Makefile
目录 Linux项目自动化构建工具 – make/Makefile 背景 依赖关系和依赖方法 多文件编译 项目清理 make原理 Linux项目自动化构建工具 – make/Makefile 背景 一个工程的源文件不计其数 按照其类型、功能、模块分别放在若干个目录当中 Makefile定义了一系列的规则来指定&…...

Forter 对支付服务商应对欺诈的四个建议和Gartner的两个关键结论
Gartner新版2023年度《线上欺诈检测市场指南》发布恰逢其时-企业正面临来自专业黑产和欺诈者与日俱增的压力。而在2023年,许多商户将调整反欺诈策略,对拒付率和转化率进行更严格的监测,以最大限度减少损失并增加营收。以下是Gartn…...
ANR系列(二)——ANR监听方案之IdleHandler
前言 关于IdleHandler,比较多同学错误地认为,这个Handler的作用是主线程空闲状态时才执行它,那么用它做一些耗时操作也没所谓。可是IdleHandler在主线程的MessageQueue中,执行queueIdle()默认当然也是执行在主线程中的࿰…...
数学小课堂:数学和自然科学的关系(数学方法,让自然科学变成科学体系。)
文章目录 引言I 数学方法,让自然科学变成科学体系。1.1 天文学1.2 博物学1.3 化学1.4 医药学1.5 物理学II 自然科学的升华过程III 数学方法的意义引言 19世纪初,英国人把采用实验的方法,系统地构造和组织知识,解释和预测自然的学问称为科学。 科学研究的是自然现象和自然…...

[蓝桥杯 2020 省 A1] 分配口罩
思路比较容易想到,因为口罩全部只有15批,因此直接暴力dfs搜索即可 //dfs #include<bits/stdc.h> using namespace std; int ans 9999; int num[] {9090400, 8499400, 5926800, 8547000, 4958200, 4422600, 5751200, 4175600, 6309600, 5865200, …...

第五章:C语言数据结构与算法之双向带头循环链表
系列文章目录 文章目录系列文章目录前言一、哨兵位的头节点二、双向链表的结点三、接口函数的实现1、创建结点2、初始化3、尾插与尾删4、头插与头删5、打印6、查找7、随机插入与随机删除8、判空、长度与销毁四、顺序表和链表的对比1. 不同点2. 优缺点五、缓存命中1、缓存2、缓存…...

一文带你了解,前端模块化那些事儿
文章目录前端模块化省流:chatGPT 总结一、参考资料二、发展历史1.无模块化引出的问题:横向拓展2.IIFE3.Commonjs(cjs)4.AMD引出的问题:5.CMD6.UMD7.ESM往期精彩文章前端模块化 省流:chatGPT 总结 该文章主要讲述了前端模块化的发展历史和各个…...
(六十五)大白话设计索引的时候,我们一般要考虑哪些因素呢?(中)
今天我们继续来说一下,在设计索引的时候要考虑哪些因素。之前已经说了,你设计的索引最好是让你的各个where、order by和group by后面跟的字段都是联合索引的最左侧开始的部分字段,这样他们都能用上索引。 但是在设计索引的时候还得考虑其他的…...

Spring事务管理
文章目录1 事务1.1 需求1.2 原因分析1.3 错误解决1.4 yml配置文件中开启事务管理日志1 事务 1.1 需求 当部门解散了不仅需要把部门信息删除了,还需要把该部门下的员工数据也删除了。可当在删除员工数据出现异常时,就不会执行删除员工操作,出…...

基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...
站群服务器的应用场景都有哪些?
站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...

Qemu arm操作系统开发环境
使用qemu虚拟arm硬件比较合适。 步骤如下: 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载,下载地址:https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...
Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成
一个面向 Java 开发者的 Sring-Ai 示例工程项目,该项目是一个 Spring AI 快速入门的样例工程项目,旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计,每个模块都专注于特定的功能领域,便于学习和…...

Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案
在大数据时代,海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构,在处理大规模数据抓取任务时展现出强大的能力。然而,随着业务规模的不断扩大和数据抓取需求的日益复杂,传统…...

springboot 日志类切面,接口成功记录日志,失败不记录
springboot 日志类切面,接口成功记录日志,失败不记录 自定义一个注解方法 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/***…...
Python竞赛环境搭建全攻略
Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型(算法、数据分析、机器学习等)不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...
上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式
简介 在我的 QT/C 开发工作中,合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式:工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...