网络基础(1)

网络基础

协议

定义:减少通信的成本,用于快速共识

**本质:**一种约定

计算机之间,如何实现约定呢?

通过OSI(国际标准化组织),OSI标准,不产生代码

协议分层

协议本质上也是软件,在设计上为了更好地进行模块化,解耦合,也是被设计成为层次结构的

所有软件都是层次的,模块化的

网络协议就是分层的

结论1:两种视角,普通用户,工程师

*结论2:*同层之间,在"直接"通信

结论3:分层之后,可以无障碍替换任意一层

计算机角度,操作系统角度,如何理解协议呢?为什么要有TCP/IP协议?

本地通信VS网络通信

本地通信:所有的设备是通过"线"连接起来。所以,在计算机内部冯诺依曼体系本身就是一个网络结构

网络通信:多台主机,通过网络通信,本质也是设备到设备,其中唯一的区别:距离变长了

这样引发了新的问题:

问题 方法
如何处理数据 应用层
数据丢失怎么办 传输层
怎么定位目标主机的问题 互联网层
怎么解决当下立即要去哪里的问题 网卡层

TCP/IP协议本质:是一种网络长距离通信的解决方案

什么是TCP/IP协议?

(1) TCP/IP协议本质上是一种解决方案

(2)TCP/IP协议能分层,前提是问题就能够分层

TCP/IP协议与操作系统的关系

使用者 操作系统 网络
用户 1)指令操作2)开发操作3)管理操作 网络协议层
用户操作接口 1)shell外壳2)lib3)部分指令 应用层
system call 系统调用接口 传输层(TCP)
操作系统 1)内存管理2)进程管理3)文件管理4)驱动管理 网络层(IP)
驱动程序 1)网卡驱动2)硬盘驱动3)其他驱动 数据链路层
底层硬件 1)网卡2)硬盘3)其他 网卡

注意点:

1)所有的主机上面安装的操作系统可以不同,事实也就是不同,但是所有的主机上面的协议栈必须按照标准进行相同的实现,这就是为什么不同的主机,可以互相通信的秘密

2)TCP/IP必须实现在内核中,无论操作系统再怎么不同,这部分必须遵守,必须是一样的

3)网卡就是底层硬件,数据链路层在驱动程序中,网络层和传输层被集中在内核中,应用层就在操作系统上层,由用户实现

所以究竟什么是协议?

协议的本质:就是约定好的结构体

因为协议是分层的,所以每层都有双方都有协议,同层之间,可以互相认识对方对的协议

相关推荐
nbsaas-boot27 分钟前
SQL Server 窗口函数全指南(函数用法与场景)
开发语言·数据库·python·sql·sql server
东方佑28 分钟前
递归推理树(RR-Tree)系统:构建认知推理的骨架结构
开发语言·r语言·r-tree
Warren9831 分钟前
Java Stream流的使用
java·开发语言·windows·spring boot·后端·python·硬件工程
伍哥的传说1 小时前
Radash.js 现代化JavaScript实用工具库详解 – 轻量级Lodash替代方案
开发语言·javascript·ecmascript·tree-shaking·radash.js·debounce·throttle
算法_小学生1 小时前
支持向量机(SVM)完整解析:原理 + 推导 + 核方法 + 实战
算法·机器学习·支持向量机
一只小bit2 小时前
Linux网络:阿里云轻量级应用服务器配置防火墙模板开放端口
linux·网络·阿里云
xidianhuihui2 小时前
go install报错: should be v0 or v1, not v2问题解决
开发语言·后端·golang
架构师沉默2 小时前
Java优雅使用Spring Boot+MQTT推送与订阅
java·开发语言·spring boot
iamlujingtao2 小时前
js多边形算法:获取多边形中心点,且必定在多边形内部
javascript·算法
算法_小学生2 小时前
逻辑回归(Logistic Regression)详解:从原理到实战一站式掌握
算法·机器学习·逻辑回归