【Linux:网络基础】

news/2024/11/1 17:40:50/

网络协议:

协议实际上可以称为一种“约定”,通过网络通信中的数据约定,不同主机必须遵循相同的网络协议才可以实现通信。

协议即为通信双方都认识的结构化的数据类型

协议分层

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

OSI

网络中分层有:OSI七层模型和TCP/IP五层模型

  • 网络从逻辑上分为了七层结构,每一层都有相关的,相对应的物理设备
  • OSI七层模型是一种框架性的设计方法

而工程实践中只有五层协议,也就是TCP/IP

TCP/IP五层模型

TCP/IP 是一组协议的代名词,它还包括许多协议,组成了 TCP/IP 协议簇 .
TCP/IP 通讯协议采用了 5 层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求

 

由于物理层我们考虑的比较少. 因此很多时候也可以称为 TCP/IP四层模型 

为什么要有TCP/IP?

每一个计算机内部都有自己的协议,而网络通信最大的特点就是主机之间的距离变远了,而距离变远则会带来一系列新的问题,而解决新问题就需要新的协议

  • TCP/IP协议本质是一种解决方案
  •  TCP/IP协议能分层,前提是问题是分层的

 

网络传输流程:

首先知道主机之间是如何进行通信的?

报文=报头+有效载荷,主机之间通信通过识别报文一层一层的往下解包实现,每一台主机都有一个唯一的标识:mac地址

mac地址:

  • MAC地址用来识别数据链路层中相连的节点;
  • 长度为48, 6个字节. 一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)
  • 在网卡出厂时就确定了, 不能修改. mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 能会冲突; 也有些网卡支持用户配置mac地址)

mac地址通信: 

  • 在以太网中,任何时刻都只能有一台机器向网络中发送数据
  • 如果多台机器发送数据,就会发生数据干扰,统称为数据碰撞
  • 所有发送数据的主机都需要进行数据检测和碰撞避免 

  • 用户A发送数据,数据一层一层的往下包装为报头
  • 到达网卡后发送给B
  • B通过网卡把数据推送进底层,一层一层的向上解包拿取数据
  • 这种通信方式可以视为一种栈结构,封装的过程为栈的入栈,解包的过程为弹栈 
  • 因此tcp/ip也叫做网络协议栈

IP与MAC地址的区别:

  • IP在整个路由地址中是一直不变的
  • Mac地址一直改变
  • 目的IP是一种长远目标,而Mac是下一阶段目标,目的IP是路径选择的重要依据,mac地址是局域网转发的重要依据 

http://www.ppmy.cn/news/1543644.html

相关文章

部署Prometheus、Grafana、Zipkin、Kiali监控度量Istio

1. 模块简介 Prometheus 是一个开源的监控系统和时间序列数据库。Istio 使用 Prometheus 来记录指标,跟踪 Istio 和网格中的应用程序的健康状况。Grafana 是一个用于分析和监控的开放平台。Grafana 可以连接到各种数据源,并使用图形、表格、热图等将数据…

Vision - 开源视觉分割算法框架 Grounded SAM2 配置与推理 教程 (1)

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/143388189 免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。 Ground…

供应商图纸外发:如何做到既安全又高效?

供应商跟合作伙伴、客户之间会涉及到图纸外发的场景,这是一个涉及数据安全、效率及合规性的重要环节。供应商图纸发送流程一般如下: 1.申请与审批 采购人员根据需要提出发放图纸的申请并提交审批; 采购部负责人审批发放申请,确…

C语言用GNU源码编译建构系统工具(GNU BUILD SYSTEM)编译创建动态库

C语言用GNU源码编译建构系统工具(GNU BUILD SYSTEM)编译创建动态库 首先看一下这篇博文:C语言数据结构之顺序结构(Sequence)此次目的是将sequence.c改造一下,创建为一个动态链接库同时打包一个可发布的源码…

angular登录按钮输入框监听

说明:angular实现简单的登录页面,监听输入框的值,打印出来,按钮监听,打印数据 效果图: step1:E:\projectgood\ajnine\untitled4\src\app\app.config.ts import { ApplicationConfig, provideZoneChangeDetection } …

技术干货|HyperMesh CFD功能详解:虚拟风洞 Part 1

虚拟风洞VWT 从2023版本开始,虚拟风洞VWT(Virtual Wind Tunnel)模块合并到HyperMesh CFD中。 用户在VWT模块中完成LBM求解器ultraFluidX的前处理设置,导出参数文件XML和模型文件STL,并在GPU服务器上提交计算。 VWT目前…

2024Selenium自动化常见问题!

"NoSuchElementException"异常: 确保使用了正确的选择器来定位元素。可以使用id、class、XPath或CSS选择器等。 可以尝试使用find_elements方法来查找元素列表,并检查列表的长度来判断元素是否存在。 使用显式等待(WebDriverWait…

fetch: 取消请求、读取流、获取下载进度...

引言 Fetch API 提供了一个获取资源的接口(包括跨网络通信)。对于任何使用过 XMLHttpRequest 的开发者来说, 对于 Fetch 应该都能轻松上手, 而且新的 API 提供了更强大和灵活的功能集… 本文主要就是记录下, 在使用 Fetch 期间可能会碰到的几个小案例… 一、取消请求 在前端…