计算机网络(1) 网络通信基础,协议介绍,通信框架

news2025/3/13 12:23:05

网络结构模式

C/S-----客户端和服务器
B/S -----浏览器服务器

MAC地址

每一个网卡都拥有独一无二的48位串行号,也即MAC地址,也叫做物理地址、硬件地址或者是局域网地址
MAC地址表示为12个16进制数 如00-16-EA-AE-3C-40 (每一个数可以用四个2进制数表示)

IP地址

IP 地址是一个 32 位的二进制数,通常被分割为 4 个“ 8 位二进制数”(也就是 4 个字节)。
通常用“点分十进制”表示成(a.b.c.d)的形式每一个字母范围是0-255
其中一般最后一个255是广播
A类IP地址: 在 IP 地址的四段号码中,第一段号码为网络号码,剩下的三段号码为本地计算机的号码。

B类IP地址: 在 IP 地址的四段号码中,前两段号码为网络号码。
C类IP地址: 在 IP 地址的四段号码中,前三段号码为网络号码,剩下的一段号码为本地计算机的号码。
D类IP地址: 多播地址,组播地址

特殊网址

  • 每一个字节都为 0 的地址( 0.0.0.0 )对应于当前主机

  • IP 地址中的每一个字节都为 1 的 IP 地址( 255.255.255.255 )是当前子网的广播地址

  • IP 地址中凡是以 11110 开头的 E 类 IP 地址都保留用于将来和实验使用

  • IP地址中不能以十进制 127 作为开头,该类地址中数字 127.0.0.1 ~ 127.255.255.255 用于回路测试,如:127.0.0.1可以代表本机IP地址

子网掩码

子网掩码只有一个作用,就是将某个 IP 地址划分成网络地址主机地址两部分。通过按位与的方式。

网络模型

OSI七层模型

在这里插入图片描述
物数网传会表应
MAC地址在数据链路层寻址
IP在网络层

TCP/IP四层模型

目前的主流协议族
在这里插入图片描述中间这些都是各种各样的协议

四层介绍

  • 应用层:应用层是 TCP/IP 协议的第一层,是直接为应用进程提供服务的
    • 对不同种类的应用程序它们会根据自己的需要来使用应用层的不同协议,邮件传输应用使用了 SMTP 协议、万维网应用使用了 HTTP 协议、远程登录服务应用使用了有 TELNET 协议
    • 应用层还能加密、解密、格式化数据
    • 应用层可以建立或解除与其他节点的联系,这样可以充分节省网络资源
  • 传输层:作为 TCP/IP 协议的第二层,传输层在整个 TCP/IP 协议中起到了中流砥柱的作用。且在运输层中, TCP 和 UDP 也同样起到了中流砥柱的作用
  • 网络层:网络层在 TCP/IP 协议中的位于第三层。在 TCP/IP 协议中网络层可以进行网络连接的建立和终止以及 IP 地址的寻找等功能
  • 网络接口层:在 TCP/IP 协议中,网络接口层位于第四层。由于网络接口层兼并了物理层和数据链路层所以,网络接口层既是传输数据的物理媒介,也可以为网络层提供一条准确无误的线路

协议

  • 应用层协议
    • FTP协议(File Transfer Protocol 文件传输协议)
    • HTTP协议(Hyper Text Transfer Protocol 超文本传输协议)
    • NFS(Network File System 网络文件系统)
  • 传输层协议
    • TCP协议(Transmission Control Protocol 传输控制协议)
    • UDP协议(User Datagram Protocol 用户数据报协议)
  • 网络层协议
    • IP 协议(Internet Protocol 因特网互联协议)
    • ICMP 协议(Internet Control Message Protocol 因特网控制报文协议)
    • IGMP 协议(Internet Group Management Protocol 因特网组管理协议)。
  • 网络接口层协议
    • ARP协议(Address Resolution Protocol 地址解析协议)
    • RARP协议(Reverse Address Resolution Protocol 反向地址解析协议)

UDP协议

在这里插入图片描述

  • 源端口号:发送方端口号
  • 目的端口号:接收方端口号
  • 长度:UDP用户数据报的长度,最小值是8(仅有首部)
  • 校验和:检测UDP用户数据报在传输中是否有错,有错就丢弃

TCP协议

在这里插入图片描述

  • 源端口号:发送方端口号
  • 目的端口号:接收方端口号
  • 序号:本报文段的数据的第一个字节的序号
  • 确认号:期望收到对方下一个报文段的第一个数据字节的序号
  • 头部长度(数据偏移):TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远,即首部长度。单位:32位,即以 4 字节为计算单位???
  • 保留:占 6 位,保留为今后使用,目前应置为 0
  • 紧急 URG :此位置 1 ,表明紧急指针字段有效,它告诉系统此报文段中有紧急数据,应尽快传送
  • 确认 ACK:仅当 ACK=1 时确认号字段才有效,TCP 规定,在连接建立后所有传达的报文段都必须把 ACK 置1
  • 推送 PSH:当两个应用进程进行交互式的通信时,有时在一端的应用进程希望在键入一个命令后立即就能够收到对方的响应。在这种情况下,TCP 就可以使用推送(push)操作,这时,发送方TCP 把 PSH 置 1,并立即创建一个报文段发送出去,接收方收到 PSH = 1 的报文段,就尽快地(即“推送”向前)交付给接收应用进程,而不再等到整个缓存都填满后再向上交付
  • 复位 RST:用于复位相应的 TCP 连接
  • 同步 SYN:仅在三次握手建立 TCP 连接时有效。当 SYN = 1 而 ACK = 0 时,表明这是一个连接请求报文段,对方若同意建立连接,则应在相应的报文段中使用 SYN = 1 和 ACK = 1。因此,SYN 置1 就表示这是一个连接请求或连接接受报文
  • 终止 FIN:用来释放一个连接。当 FIN = 1 时,表明此报文段的发送方的数据已经发送完毕,并要求释放运输连接
  • 窗口:指发送本报文段的一方的接收窗口(而不是自己的发送窗口)
  • 校验和:校验和字段检验的范围包括首部和数据两部分,在计算校验和时需要加上 12 字节的伪头部
  • 紧急指针:仅在 URG = 1 时才有意义,它指出本报文段中的紧急数据的字节数(紧急数据结束后就是普通数据),即指出了紧急数据的末尾在报文中的位置,注意:即使窗口为零时也可发送紧急数据
  • 选项:长度可变,最长可达 40 字节,当没有使用选项时,TCP 首部长度是 20 字节

IP协议

在这里插入图片描述

  • 版本号:IP 协议的版本。通信双方使用过的 IP 协议的版本必须一致,目前最广泛使用的 IP 协议版本号为 4(即IPv4)
  • 头部长度:单位是 32 位(4 字节)
  • 服务类型:一般不适用,取值为 0
  • 总长度:指首部加上数据的总长度,单位为字节
  • 标识(identification):IP 软件在存储器中维持一个计数器,每产生一个数据报,计数器就加 1,并将此值赋给标识字段
  • 标志(flag):目前只有两位有意义
    • 标志字段中的最低位记为 MF。MF = 1 即表示后面“还有分片”的数据报。MF = 0 表示这已是若干数据报片中的最后一个
    • 标志字段中间的一位记为 DF,意思是“不能分片”,只有当 DF = 0 时才允许分片
  • 片偏移:指出较长的分组在分片后,某片在源分组中的相对位置,也就是说,相对于用户数据段的起点,该片从何处开始。片偏移以 8 字节为偏移单位
  • 生存时间:TTL,表明是数据报在网络中的寿命,即为跳数限制,由发出数据报的源点设置这个字段。路由器在转发数据之前就把 TTL 值减一,当 TTL 值减为零时,就丢弃这个数据报,常见为64和128
  • 协议:指出此数据报携带的数据时使用何种协议,以便使目的主机的 IP 层知道应将数据部分上交给哪个处理过程,常用的 ICMP(1),IGMP(2),TCP(6),UDP(17),IPv6(41)
  • 首部校验和:只校验数据报的首部,不包括数据部分
  • 源地址:发送方 IP 地址
  • 目的地址:接收方 IP 地址

以太网帧协议

在这里插入图片描述
类型:

  • 0x800表示 IP
  • 0x806表示 ARP
  • 0x835表示 RARP

ARP协议

在这里插入图片描述

  • 硬件类型:1 表示 MAC 地址
  • 协议类型:0x800 表示 IP 地址
  • 硬件地址长度:6
  • 协议地址长度:4
  • 操作
    • 1 表示 ARP 请求
    • 2 表示 ARP 应答
    • 3 表示 RARP 请求
    • 4 表示 RARP 应答

封装

应用程序数据在发送到物理网络上之前,将沿着协议栈从上往下依次传递。每层协议都将在上层数据的基础上加上自己的头部信息(有时还包括尾部信息),以实现该层的功能,这个过程就称为封装

在这里插入图片描述

分用

当帧到达目的主机时,将沿着协议栈自底向上依次传递。各层协议依次处理帧中本层负责的头部数据,以获取所需的信息,并最终将处理后的帧交给目标应用程序。这个过程称为分用。
分用时靠头部信息中的类型字段实现的
在这里插入图片描述

封装分用示意图:

请添加图片描述
图中以QQ发消息为例,发送nihao
传输层以UDP协议的源端口和目的端口
然后网络层加IP协议头,
最后就是以太网帧协议头和尾

需要注意的是,我们是通过IP地址寻找MAC地址的,如果本机存储过IP地址对应的MAC地址,那么就直接可以在以太网帧头这里写上目的端的物理地址。但如果不知道的话,就通过ARP协议获取MAC
通过IP获取MAC,时ARP,通过MAC获取IP,是RARP
在这里插入图片描述

一开始源机器会给所有局域网的及其发一个arp请求,其他机器会根据自己的IP去对应,对上了就ARP应答,从而获取。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【音视频】ffplay常用命令

一、 ffplay常用命令 -x width:强制显示宽度-y height:强制显示高度 强制以 640*360的宽高显示 ffplay 2.mp4 -x 640 -y 360 效果如下 -fs 全屏显示 ffplay -fs 2.mp4效果如下: -an 禁用音频(不播放声音)-vn 禁…

使用 AIStor、MLflow 和 KServe 将模型部署到 Kubernetes

在之前几篇关于 MLOps 工具的文章中,我展示了有多少流行的 MLOps 工具跟踪与模型训练实验相关的指标。我还展示了他们如何使用 MinIO 来存储作为模型训练管道一部分的非结构化数据。但是,一个好的 MLOps 工具应该做的不仅仅是管理您的实验、数据集和模型…

NO.26十六届蓝桥杯备战|字符数组七道练习|islower|isupper|tolower|toupper|strstr(C++)

P5733 【深基6.例1】自动修正 - 洛谷 小写字母 - 32 大写字母 大写字母 32 小写字母 #include <bits/stdc.h> using namespace std;const int N 110; char a[N] { 0 };int main() {ios::sync_with_stdio(false);cin.tie(nullptr);cin >> a;int i 0;while (a…

数据安全VS创作自由:ChatGPT与国产AI工具隐私管理对比——论文党程序员必看的避坑指南

文章目录 数据安全VS创作自由&#xff1a;ChatGPT与国产AI工具隐私管理对比——论文党程序员必看的避坑指南ChatGPTKimi腾讯元宝DeepSeek 数据安全VS创作自由&#xff1a;ChatGPT与国产AI工具隐私管理对比——论文党程序员必看的避坑指南 产品隐私设置操作路径隐私协议ChatGPT…

乐鑫打造全球首款 PSA Certified Level 2 RISC-V 芯片

乐鑫科技 (688018.SH) 荣幸宣布 ESP32-C6 于 2025 年 2 月 20 日获得 PSA Certified Level 2 认证。这一重要突破使 ESP32-C6 成为全球首款基于 RISC-V 架构获此认证的芯片&#xff0c;体现了乐鑫致力于为全球客户提供安全可靠、性能卓越的物联网解决方案的坚定承诺。 PSA 安全…

Flink深入浅出之03:状态、窗口、checkpoint、两阶段提交

Flink是一个有状态的流&#xff0c;&#x1f445;一起深入了解这个有状态的流 3️⃣ 目标 掌握State知识掌握Flink三种State Backend掌握Flink checkpoint和savepoint原理了解Flink的重启策略checkpointtwo phase commit保证E-O语义 4️⃣ 要点 &#x1f4d6; 1. Flink的St…

DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)示例3: 行选择

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…

Django下防御Race Condition

目录 漏洞原因 环境搭建 复现 A.无锁无事务时的竞争攻击 B.无锁有事务时的竞争攻击 防御 A.悲观锁加事务防御 B.乐观锁加事务防御 总结 漏洞原因 Race Condition 发生在多个执行实体&#xff08;如线程、进程&#xff09;同时访问共享资源时&#xff0c;由于执行顺序…

失踪人口回归,最近接了一个私活,提升了很多。

上图是本项目用到的所有技术栈 这个项目分为四端(前端) App(只做安卓不上架) 技术栈ReactNative TS Socket.io scss桌面端(只做Win) 技术栈 Electron TS Vue3 Socket.ioweb端技术栈 Vue3 TS ElementPlus Day.js Unocss Vite Axios Pinia Md5 Echarts less小程序技术栈 Uniapp…

HarmonyOS 应用程序包结构 (编译态)

不同类型的Module编译后会生成对应的HAP、HAR、HSP等文件&#xff0c;开发态视图与编译态视图的对照关系如下&#xff1a; 从开发态到编译态&#xff0c;Module中的文件会发生如下变更&#xff1a; ets目录&#xff1a;ArkTS源码编译生成.abc文件。resources目录&#xff1a;A…

原生iOS集成react-native (react-native 0.65+)

由于官方文档比较老&#xff0c;很多配置都不能用&#xff0c;集成的时候遇到很多坑&#xff0c;简单的整理一下 时间节点:2021年9月1日 本文主要提供一些配置信息以及错误信息解决方案&#xff0c;具体步骤可以参照官方文档 原版文档&#xff1a;https://reactnative.dev/docs…

Doris vs ClickHouse 企业级实时分析引擎怎么选?

Apache Doris 与 ClickHouse 同作为OLAP领域的佼佼者&#xff0c;在企业级实时分析引擎该如何选择呢。本文将详细介绍 Doris 的优势&#xff0c;并通过直观对比展示两者的关键差异&#xff0c;同时分享一个企业成功用 Doris 替换 ClickHouse 的实践案例&#xff0c;帮助您做出明…

【Multipath】使用(FC)访问远程存储设备

文章目录 一、硬件与环境准备二、扫描设备1.宽幅扫描2.窄幅扫描&#xff1a;根据HCTL去扫3.查看远程端口&#xff08;第一次扫描后会出现&#xff09;4.查看FC远程存储设备软链接&#xff08;块设备&#xff09;5.根据HCTL查看FC块设备6.根据块设备wwn查找多路径设备 一、硬件与…

豆包大模型 MarsCode AI 刷题专栏 001

001.找单独的数 难度&#xff1a;易 问题描述 在一个班级中&#xff0c;每位同学都拿到了一张卡片&#xff0c;上面有一个整数。有趣的是&#xff0c;除了一个数字之外&#xff0c;所有的数字都恰好出现了两次。现在需要你帮助班长小C快速找到那个拿了独特数字卡片的同学手上…

用Ruby的Faraday库来进行网络请求抓取数据

在 Ruby 中&#xff0c;Faraday 是一个非常强大的 HTTP 客户端库&#xff0c;它可以用于发送 HTTP 请求并处理响应。你可以使用 Faraday 来抓取网页数据&#xff0c;处理 API 请求等任务。下面我将向你展示如何使用 Faraday 库进行网络请求&#xff0c;抓取数据并处理响应。 1.…

计算机视觉深度学习入门(2)

卷积运算 Dense层与卷积层的根本区别在于&#xff0c;Dense层从输入特征空间中学到的是全局模式&#xff08;比如对于MNIST数字&#xff0c;全局模式就是涉及所有像素的模式&#xff09;​&#xff0c;而卷积层学到的是局部模式&#xff08;对于图像来说**&#xff0c;局部模式…

计算机毕业设计Python+DeepSeek-R1大模型医疗问答系统 知识图谱健康膳食推荐系统 食谱推荐系统 医疗大数据(源码+LW文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

nginx服务器实现上传文件功能_使用nginx-upload-module模块

目录 conf文件内容如下html文件内容如下上传文件功能展示 conf文件内容如下 #user nobody; worker_processes 1;error_log /usr/logs/error.log; #error_log /usr/logs/error.log notice; #error_log /usr/logs/error.log info;#pid /usr/logs/nginx.pid;even…

ReferenceError: assignment to undeclared variable xxx

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 &#x1f35a; 蓝桥云课签约作者、…

im即时聊天客服系统SaaS还是私有化部署:成本、安全与定制化的权衡策略

随着即时通讯技术的不断发展&#xff0c;IM即时聊天客服系统已经成为企业与客户沟通、解决问题、提升用户体验的重要工具。在选择IM即时聊天客服系统时&#xff0c;企业面临一个重要决策&#xff1a;选择SaaS&#xff08;软件即服务&#xff09;解决方案&#xff0c;还是进行私…