Linux网络基础

在这里插入图片描述

一.协议的概念

1.1协议的概念

什么是协议
从应用的角度出发,协议可理解为“规则”,是数据传输和数据的解释的规则。假设,A、B双方欲传输文件。规定:

第一次,传输文件名,接收方接收到文件名,应答OK给传输方;
第二次,发送文件的尺寸,接收方接收到该数据再次应答一个OK;
第三次,传输文件内容。同样,接收方接收数据完成后应答oK表示文件内容接收成功。

由此,无论A、B之间传递何种文件,都是通过三次数据传输来完成。A、B之间形成了一个最简单的数据传输规则。双方都按此规则发送、接收数据。A、B之间达成的这个相互遵守的规则即为协议

这种仅在A、B之间被遵守的协议称之为原始协议。当此协议被更多的人采用,不断的增加、改进、维护、完善。最终形成一个稳定的、完整的文件传输协议,被广泛应用于各种文件传输过程中。该协议就成为一个标准协议。最早的ftp协议就是由此衔生而来。

Tcp协议注重数据的传输Http协议着重于数据的解释。

![2023-09-09T08:42:57.png][1]在这里插入图片描述

1.2典型协议

  1. 物理层和数据链路层:

    • Ethernet(以太网):在局域网中传输数据的常用协议。
    • Wi-Fi:用于无线局域网(WLAN)的协议。
    • ARP(Address Resolution Protocol):用于将 IP 地址解析为物理 MAC 地址的协议。
    • PPP(Point-to-Point Protocol):用于点对点通信的协议,常用于拨号连接、DSL 等。
  2. 网络层:

    • IP(Internet Protocol):用于在网络中路由和传输数据的主要协议。
    • ICMP(Internet Control Message Protocol):用于网络故障排除和错误报告的协议。
    • IGMP(Internet Group Management Protocol):用于在 IP 多播中管理组成员的协议。
  3. 传输层:

    • TCP(Transmission Control Protocol):提供可靠的、面向连接的数据传输。
    • UDP(User Datagram Protocol):提供不可靠的、面向无连接的数据传输。
  4. 应用层:

    • HTTP(Hypertext Transfer Protocol):用于在 Web 中传输超文本的协议。
    • FTP(File Transfer Protocol):用于文件传输的协议。
    • DNS(Domain Name System):用于将域名解析为 IP 地址的协议。
    • SMTP(Simple Mail Transfer Protocol):用于电子邮件的传输。
    • POP3(Post Office Protocol version 3):用于电子邮件的接收。

二.分层模型

在这里插入图片描述

2.1 OSI七层模型

OSI模型(Open Systems Interconnection model)是一种用于描述计算机网络体系结构的概念框架。它将计算机网络通信的不同方面划分为七个不同的层级,每个层级都负责特定的功能。以下是OSI模型的七个层级:

  1. 物理层(Physical Layer):负责传输比特流,描述物理媒介的传输电气和物理特性。

  2. 数据链路层(Data Link Layer):处理帧(Frame)的传输和错误检测,确保可靠的点到点传输。

  3. 网络层(Network Layer):处理网络中的数据包路由选择、转发和控制。

  4. 传输层(Transport Layer):提供端到端的可靠传输服务,并处理数据包的分段和重组。

  5. 会话层(Session Layer):负责建立、管理和终止应用程序会话。

  6. 表示层(Presentation Layer):处理数据的格式和编码,实现在不同系统中的数据格式之间的转换。

  7. 应用层(Application Layer):为用户提供网络应用服务,例如电子邮件、文件传输和远程登录等。

OSI模型提供了一种通用的参考框架,帮助人们理解和描述计算机网络中不同层级的功能。它启发了许多标准和协议的设计,比如TCP/IP协议就是根据OSI模型进行设计的。

需要注意的是,实际上,并不是所有的网络都严格遵循OSI模型的七层结构,而是更常用的TCP/IP模型,将其中的物理层和数据链路层合并为一个层级。但OSI模型仍然是计算机网络中的一个重要概念。

2.2TCP/UDP模型

TCP/IP模型是一种计算机网络体系结构,也是现代互联网所基于的核心协议体系。相比于OSI模型,TCP/IP模型将网络通信划分为四个层级,具体如下:

  1. 网络接口层(Network Interface Layer):

    • 负责处理物理传输介质和网络设备之间的通信,如以太网、Wi-Fi等。
    • 主要关注数据的包装、传输和接收,以及物理寻址和数据帧的处理。
  2. 网络层(Internet Layer):

    • 使用IP(Internet Protocol)进行数据包的路由和传输。
    • 实现了互联网的核心功能,将数据包从源主机传递到目标主机,途径多个网络节点。
  3. 传输层(Transport Layer):

    • 提供端到端的数据传输服务,主要有TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)。
    • TCP提供可靠的、面向连接的传输,UDP提供不可靠的、无连接的传输。
  4. 应用层(Application Layer):

    • 为用户提供网络应用服务,如HTTP、FTP、SMTP等。
    • 直接面向用户的应用程序,通过应用层协议与下层进行通信。

TCP/IP模型是当前互联网中使用最广泛的网络体系结构,它提供了一种灵活而可扩展的方式来实现网络通信。虽然TCP/IP模型与OSI模型的层级划分不完全相同,但它们共同为网络通信提供了重要的基础。

2.3通信过程

在这里插入图片描述

TCP/IP通信是基于TCP和IP协议的网络通信过程,以下是TCP/IP通信的简要描述:

  1. 建立连接:

    • 在TCP/IP通信中,客户端首先与服务器建立连接,即发起一个连接请求。
    • 客户端发送一个特殊的TCP报文段,称为SYN(同步)段,带有自己的初始序列号。
    • 服务器收到SYN段后,发送一个带有确认和同步标志的TCP报文段(SYN+ACK),将自己的初始序列号返回给客户端。
  2. 数据传输:

    • 在连接建立后,客户端和服务器之间可以开始传输数据。
    • 数据被分割成合适的大小的数据块,称为TCP报文段。
    • TCP协议为每个报文段分配一个序列号,并对每个接收到的报文段进行确认。
  3. 数据的可靠传输和流量控制:

    • 发送方将数据划分为较小的数据块,并为每个数据块分配序列号,并逐个发送。
    • 接收方收到数据后,发送确认报文段(ACK)进行确认。
    • 发送方根据收到的确认进行重发或继续发送下一个数据块。
  4. 连接终止:

    • 通信完成后,客户端或服务器可以发起连接的终止。
    • 发起终止的一方发送一个终止请求报文段,即FIN(结束)报文段。
    • 接收方收到终止请求后,发送确认报文段进行确认。
    • 发起方收到确认后,发送最后的确认报文段,同时关闭连接。

在TCP/IP通信过程中,IP协议负责对数据进行分组和路由传输,将数据从源主机发送到目标主机。而TCP协议负责提供可靠的、面向连接的服务,保证数据的顺序、完整性和可靠性。

需要注意的是,每个通信步骤都可能面临网络延迟、数据丢失或其他错误,因此TCP/IP通信具有一定的容错性和自适应能力,以保证数据的可靠传输。

在这里插入图片描述

在这里插入图片描述

三.协议格式

3.1数据封装

在这里插入图片描述

在TCP/IP网络中,数据的封装是指将要传输的数据逐层封装成不同的协议数据单元(Protocol Data Units,PDU),以便在网络中进行传输。每一层协议都会在数据上添加自己的头部信息,形成一个封装的数据包,然后通过下一层传递。

以下是TCP/IP网络中数据的封装过程:

  1. 应用层封装:

    • 应用层协议(如HTTP、FTP)将上层数据封装成应用层数据报,添加应用层协议头部信息。例如,HTTP数据报中包含HTTP请求或响应的数据。
  2. 传输层封装:

    • 传输层协议(如TCP、UDP)将应用层数据报封装成传输层数据段。
    • TCP会为数据段添加TCP头部信息,包括源端口号、目标端口号、序列号、确认号等。
    • UDP会为数据段添加UDP头部信息,包括源端口号、目标端口号以及长度和校验和等。
  3. 网际层封装:

    • 网际层协议(即IP协议)将传输层数据段封装成IP数据包。
    • IP数据包包含源IP地址、目标IP地址、协议类型及其他相关信息。
  4. 网络接口层封装:

    • 网络接口层协议(如以太网)将IP数据包封装为数据帧。
    • 数据帧包括源和目标MAC(物理)地址和以太网头部信息。

封装的过程是由发送端进行的,每一层协议都会在数据上添加相应的头部信息,形成一个完整的封装数据包。在传输过程中,这些封装的数据包会逐层解析,每个协议层都会处理相应的头部信息,然后将数据传递给高层协议,最终到达目标主机。

3.2以太网帧格式

在这里插入图片描述

以太网帧协议:根据mac地址,完成数据包传输
ARP协议:根据ip地址获得mac地址

3.3ARP数据报格式

在这里插入图片描述

ARP表(Address Resolution Protocol Table),也称为ARP缓存或ARP映射表,是在操作系统或网络设备中存储IP地址与MAC地址之间映射关系的表格。

ARP表用于在发送数据时,根据目标IP地址获取对应的MAC地址,从而实现在链路层上的直接通信。当设备收到一个数据包时,它首先检查目标IP地址是否存在于自己的ARP表中,如果存在就直接使用相应的MAC地址,如果不存在则使用ARP请求来获取目标设备的MAC地址,并将其添加到ARP表中,以便后续通信使用。

ARP表中的每一项通常包含以下信息:

  • IP地址:设备的IP地址。
  • MAC地址:与IP地址对应的物理地址(MAC地址)。
  • 接口:设备与网络通信的接口,如以太网接口。

ARP表是动态生成和维护的,它会随着网络中设备的通信不断更新。通常,ARP表中的条目会有一个存活时间(TTL)限制,超过一定时间没有使用就会被删除或更新。

可以使用命令行工具(如Windows的arp -a命令或Linux的arp -n命令)来查看设备上的当前ARP表内容。

总的来说,ARP表是用于存储IP与MAC地址之间映射关系的表格,它在实现网络通信时起着重要作用。

3.4 IP段格式

在这里插入图片描述

下面是IPv4数据报的格式,整理成表格形式:

字段长度(位)描述
版本4IP协议的版本号(通常为4,表示IPv4)
首部长度4IP头部的长度(单位为4字节,最小值为5,表示20字节的IP头部)
区分服务8数据报的服务质量要求,如优先级、延迟、带宽等
总长度16整个IP数据报的长度(包括IP头部和数据部分的字节数)
标识16用于唯一标识一个IP数据报的片段
标志3指示IP数据报的分片状态
片偏移13分片数据的相对于原始数据的偏移量(以8字节为单位)
生存时间8数据报在网络中的最大生存时间(跳数)
协议8标识上层协议(如TCP、UDP)或其他协议的类型
头部校验和16校验IP头部的完整性
源IP地址32源主机的IP地址
目标IP地址32目标主机的IP地址
选项可变用于扩展IP头部的功能
数据部分可变承载上层协议的数据

3.5TCP数据报格式

在这里插入图片描述

IP地址:可以在网络环境中,唯一标识一台主机。
端口号:可以网络的一台主机上,唯一标识一个进程。
IP地址+端口号:可以在网络环境中,唯一标识一个进程。
TCP(Transmission Control Protocol)数据报是TCP协议在网络通信中传输数据的基本单位。TCP数据报由TCP头部和数据部分组成。

下面是TCP数据报的基本格式:

字段长度(字节)描述
源端口号2发送端口号
目标端口号2接收端口号
序列号4用于对TCP数据包进行排序和重组。表示从发送端发出的第一个数据字节的序号。
确认号4表示期望收到的下一个数据字节的序号,用于确认已收到的数据。
数据偏移4表示TCP头部的长度,以32位字中的偏移量数表示。最小值为5,表示20字节的TCP头部。
保留3保留字段,保留将来使用
控制标志9用于控制TCP连接的状态和操作,包括ACK、SYN、FIN等标志。
窗口大小2表示接收方缓冲区的大小,用于流量控制和拥塞控制。
校验和2用于校验TCP头部和数据部分的完整性。
紧急指针2表示紧急数据的位置。紧急数据是指优先于正常数据进行传输和处理的数据。
选项和填充可变可选字段,用于某些特殊功能和额外的控制选项。
数据部分可变承载应用层数据。

TCP数据报是TCP协议进行可靠数据传输的基本单位。TCP通过序列号、确认号、校验和等机制来保证数据的可靠性和正确性。同时,TCP还支持流量控制、拥塞控制、连接管理等功能。

四.C/S和B/S模型比对

在这里插入图片描述

C/S模型的优点:

  • 客户端具备较强的交互性和处理能力,可以提供更复杂的用户界面和功能。
  • 数据处理和计算任务分布在客户端和服务器之间,可以实现更高的系统性能和效率。
  • 可以在客户端存储敏感数据,提供更高的安全性。

C/S模型的缺点:

  • 需要在客户端安装专用的应用程序,增加了部署和维护的成本。
  • 对于不同操作系统的客户端,需要分别开发和维护相应的客户端应用程序。
  • 对于大规模的用户访问,可能需要投入更多的资源来支持并发请求。

B/S模型的优点:

  • 不需要安装专用的客户端应用程序,只需具备浏览器即可访问应用程序和服务。
  • 可以跨平台使用,减少了客户端兼容性和更新的问题。
  • 服务器负责数据处理和存储,保持数据的一致性和集中管理。
  • 提供了可伸缩性和容易维护的特点,可以支持大规模用户访问。

B/S模型的缺点:

  • 浏览器作为界面,对于某些复杂交互和功能可能不够灵活。
  • 依赖于网络连接,对于网络传输的延迟和稳定性有一定的影响。
  • 需要在服务器上进行大量的计算和数据处理,可能对服务器的资源需求有一定要求。

综合来看,C/S模型适合需要复杂交互和处理能力的应用,而B/S模型适合需要跨平台、易于维护和大规模部署的应用。选择哪种模型取决于具体的应用需求和性能要求。

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

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

相关文章

合宙Air724UG LuatOS-Air LVGL API控件-截屏(Screenshots)

截屏(Screenshots) 分 享导出pdf 截屏功能,core版本号要>3211 示例代码 -- 创建图片控件img lvgl.img_create(lvgl.scr_act(), nil)-- 设置图片显示的图像lvgl.img_set_src(img, "/lua/test.png")-- 图片居中lvgl.obj_align(…

QT基础教学(QMainWindow)

文章目录 前言一、QMainWindow介绍二、代码示例三、QMainWindow高级用法总结 前言 之前我们都是在QWidget中来进行学习的,那么今天我将为大家讲解一下QMainWindow。 一、QMainWindow介绍 QMainWindow是Qt框架提供的一个重要的窗口类,用于创建具有标准…

c语言输出杨辉三角

#include<stdio.h> int main() {int x 0; //表示杨辉三角的的大小int y 1;printf("请输入x的值: ");scanf("%d", &x);for (int i 0; i < x; i) {for (int j 0; j < i; j) {if (j 0 || i 0) {y 1;}else {y y * (i - j 1) / j;}pri…

c#动态保留小数位数的数值格式化方法实例----从小数点后非零数字保留两位进行四舍五入

c#动态保留小数位数的数值格式化方法实例----从小数点后非零数字保留两位进行四舍五入 1、功能介绍2、代码案例3、输出结果4、封装扩展方法5、控制台调用 6、其他方法地址 1、功能介绍 1. 输入的数字是整数&#xff0c;则直接返回整数部分的字符串表示。 2. 如果输入的数字是…

SpringBoot集成Apache RocketMQ详解

文章目录 0. 前言1. Spring Boot 集成Apache RocketMQ详细步骤1.1.添加依赖1.2.配置RocketMQ1.3.创建消息生产者&#xff08;Producer&#xff09;1.4.创建消息消费者&#xff08;Consumer&#xff09; 2. 测试验证3. 常见报错4. 参考文档5. 源码地址 0. 前言 上个章节我们学习…

4G版本云音响设置教程腾讯云平台版本

文章目录 4G本云音响设置教程介绍一、申请设备三元素1.腾讯云物联网平台2.创建产品3.设置产品参数4.添加设备5.获取三元素 二、设置设备三元素1.打开MQTTConfigTools2.计算MQTT参数3.使用USB连接设备4.设置参数 三、腾讯云物联网套件协议使用说明1.推送协议信息2.topic规则说明…

JDK16特性

文章目录 一、JAVA16概述二、语法层面变化1.密封类&#xff08;第二次预览&#xff09;2.instanceof 的模式匹配3.记录类习惯4基于值的类的警告 三、API层面变化1 Vector API&#xff08;孵化器&#xff09; 四、其他变化1.启用 C14 语言功能2.从 Mercurial 迁移到 Git3.ZGC&am…

Microsoft Excel 101 简介

什么是 Microsoft Excel&#xff1f; Microsoft Excel 是一个电子表格程序&#xff0c;用于记录和分析数值数据。 将电子表格想像成构成表格的列和行的集合。 字母通常分配给列&#xff0c;数字通常分配给行。 列和行相交的点称为像元。 单元格的地址由代表列的字母和代表行的…

【C++】LeetCode 160 相交链表

今天再写一道算法题&#xff08;这两周都写算法题有点摆烂&#xff09; 题目 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1…

安防监控/视频汇聚/云存储/AI智能视频分析平台EasyCVR下级海康设备无法级联是什么原因?

安防视频监控平台/视频集中存储/云存储/磁盘阵列EasyCVR可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。 有用户反馈&…

[JAVAee]spring-Bean对象的执行流程与生命周期

执行流程 spring中Bean对象的执行流程大致分为四步: 启动Spring容器实例化Bean对象Bean对象注册到Spring容器中将Bean对象装配到所需的类中 ①启动Spring容器,在main方法中获取spring上下文对象并配备spring. import demo.*;import org.springframework.context.Applicati…

pt26django教程

admin 后台数据库管理 django 提供了比较完善的后台管理数据库的接口&#xff0c;可供开发过程中调用和测试使用 django 会搜集所有已注册的模型类&#xff0c;为这些模型类提拱数据管理界面&#xff0c;供开发者使用 创建后台管理帐号: [rootvm mysite2]# python3 manage.…

LeetCode 753. 破解保险箱【欧拉回路,DFS】困难

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…

如何从第一性原则的原理分解数学问题

如何从第一性原则的原理分解数学问题 摘要&#xff1a;牛津大学入学考试题目展示了所有优秀数学家都使用的系统的第一原则推理&#xff0c;而GPT4仍然在这方面有困难 作者&#xff1a;Keith McNulty 我们中的许多人都熟悉直角三角形的边的规则。根据毕达哥拉斯定理&#xff0c;…

2023年墨西哥 SP/BMV IPC 研究报告

第一章 指数概况 1.1 指数基本情况 墨西哥 S&P/BMV IPC 指数衡量在墨西哥证券交易所 (Bolsa Mexicana de Valores, BMV)上市&#xff0c;规模最大、流动性最高的股票表现。提供一个覆盖墨西哥股市的广泛、具有代表性且可轻易复制的指数。根据多元化要求&#xff0c;按市值…

【深度学习】 Python 和 NumPy 系列教程(廿五):Matplotlib详解:3、多子图和布局:subplot()函数

目录 一、前言 二、实验环境 三、Matplotlib详解 1、2d绘图类型 2、3d绘图类型 3、多子图和布局 1. subplot()函数 简单示例 一、前言 Python是一种高级编程语言&#xff0c;由Guido van Rossum于1991年创建。它以简洁、易读的语法而闻名&#xff0c;并且具有强大的功能…

多表查询——“MySQL数据库”

各位CSDN的uu们好呀&#xff0c;今天&#xff0c;小雅兰的内容是MySQL数据库中的多表查询啦&#xff0c;这个内容确实是一个难点&#xff0c;下面&#xff0c;让我们进入多表查询的世界吧&#xff01;&#xff01;&#xff01; 一个案例引发的多表连接 多表查询分类讲解 SQL9…

精品SpringCloud的高校招生信息管理系统-微服务分布式

《[含文档PPT源码等]精品基于SpringCloud实现的高校招生信息管理系统-微服务-分布式》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程等 软件开发环境及开发工具&#xff1a; 开发语言&#xff1a;Java 框架&#xff1a;springcloud JDK版本&#x…

FL Studio v21.1.1.3750 Producer Edition inc crack官方中文免费激活版功能介绍及百度网盘下载

FL Studio v21.1.1.3750 Producer Edition inc crack官方中文免费激活版是一款功能强大的软件音乐制作环境或数字音频工作站&#xff08;DAW&#xff09;。它代表了25多年的创新发展&#xff0c;在一个软件包中拥有您所需的一切&#xff0c;以创作、编排、录制、编辑、混音和掌…

Linux命令200例:dip用于用户与远程主机建立通信连接

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;CSDN领军人物&#xff0c;全栈领域优质创作者✌。CSDN专家博主&#xff0c;阿里云社区专家博主&#xff0c;2023年6月csdn上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师&#xff0…