嵌入式学习——Linux高级编程复习(网络编程)——day42

1. 协议

        通信双方约定的一套标准称为协议

2. OSI参考模型

        OSI模型是由国际标准化组织(ISO)制定的一个概念性的网络通信模型,它将网络通信的功能分为七个层次,从下至上分别为:

  1. 物理层(Physical Layer)物理介质链接
  2. 数据链路层(Data Link Layer)局域网内的数据传输
  3. 网络层(Network Layer)数据路由(IP地址)
  4. 传输层(Transport Layer)传输数据的方式(TCP、UDP)
  5. 会话层(Session Layer)是否需要建立会话链接
  6. 表示层(Presentation Layer)数据是否加密
  7. 应用层(Application Layer)传输的数据(a.out)

        每个层次都有明确的功能,提供特定的服务,并通过相邻层的接口与其交互。OSI模型为网络通信提供了一个逻辑分层的框架,便于理解、设计和故障排查,但它更多地作为一个理论模型存在,并未直接转化为实际的网络实现。

3. TCP/IP协议簇

        TCP/IP是一个实际使用的、更为实际的网络通信协议集合,它最初由美国国防部研发,用于互联网的通信。TCP/IP模型通常被简化为四层或五层结构,对应OSI模型的部分层次合并,具体为:

  1. 网络接口层(Link Layer) 或 物理层与数据链路层:负责实际的数据传输,包括物理媒介的控制和数据链路的建立。
  2. 网络层(Internet Layer):核心协议为IP(Internet Protocol),负责地址寻址和数据包的路由选择。
  3. 传输层(Transport Layer):主要协议有TCP(Transmission Control Protocol)和UDP(User Datagram Protocol),分别提供面向连接的可靠数据传输服务和无连接的数据传输服务。
  4. 应用层(Application Layer):包含多种协议,如HTTP、FTP、SMTP等,直接为用户提供服务,如文件传输、电子邮件、网页浏览等。

4. 应用层协议——FTP  TFTP  HTTP  SMTP  TELNET

        TCP/IP协议簇(Transmission Control Protocol/Internet Protocol)是一个分层的网络协议模型,它定义了互联网上数据传输的标准规则。应用层处于TCP/IP四层模型的最顶层,直接与用户的应用程序交互,为用户提供各种网络服务。以下是应用层中一些重要协议的详细信息:

4.1 HTTP

        1. 功能

        用于在万维网上传输数据,特别是网页的浏览。HTTP定义了客户端(通常是浏览器)和服务器之间请求与响应的消息格式和交互方式。

        2. 版本

         HTTP/1.0, HTTP/1.1, HTTP/2, HTTP/3。每个新版本都旨在提高效率和性能。

        3. 端口号

        默认80 (HTTP), 443 (HTTPS - 加密的HTTP)。

        端口号:唯一识别同一主机不同进程的号码
               (0 - 65535)(不要使用10000以内的,10000以内的是系统的)

4.2 HTTPS

        1. 功能

        是HTTP的安全版本,通过TLS/SSL协议对通信进行加密,保护数据的安全性和隐私。

        2. 端口

        默认443

4.3 DNS

        1. 功能:

        将人类可读的域名转换为IP地址,也提供其他与域名相关的信息,如MX记录(邮件交换记录)。

        2. 端口

        通常使用53(UDP/TCP)。

4.4 POP3

        1. 功能

         用于从邮件服务器下载邮件到本地客户端,并可选择删除服务器上的副本。

        2. 端口

        默认110 (非SSL), 995 (SSL)。

4.5 FTP

4.6 TFTP

4.7 SMTP

4.8 TELNET

5. 传输层协议——TCP、UDP

5.1 UDP——用户数据报协议

        1. 定义

        UDP(User Datagram Protocol,用户数据报协议)是互联网协议套件中传输层的一个重要协议,它提供了一种无连接、不可靠、面向数据报的服务。与TCP(传输控制协议)相比,UDP更简单,开销更低,适用于对实时性和效率要求较高的应用场景。

        2. 基本特征

        (1)无连接

        UDP在数据传输前不需要建立连接,发送数据前无需握手过程,减少了通信前的延迟,使得数据能够迅速发送出去。

        (2)尽最大努力交付

        UDP不保证数据包一定能够到达目的地,也不保证数据包的顺序和重复处理,数据传输的可靠性由上层协议或应用程序自己来保证。

        (3)面向数据报

        UDP以数据报为单位进行传输,每个数据报都是独立的,包含完整的源地址、目的地址和数据,适合一次性传输少量数据或者对实时性要求高的数据。

        (4)头部开销小

        UDP的头部只有8个字节,相比TCP的头部要简单得多,这使得UDP传输的效率更高。

        (5)多播和广播支持

        UDP协议天然支持多播和广播,能够向多个目标地址同时发送数据,适用于需要一对多通信的场景,如视频直播、在线游戏等。

        3. 报文结构

        (1)源端口

        标识发送端的端口号,用于接收方回复

        (2)目的端口

        标识接收端的端口号,决定数据发送到哪个应用。

        (3)长度

        整个UDP报文的长度,包括头部和数据部分

        (4)校验和

        提供基本的错误检测,确保数据报在传输过程中没有被破坏。虽然简单,但并非所有实现都强制要求计算校验和。

        4. 应用场景

        (1)实时性要求高的应用

        如在线游戏、VoIP(网络电话)、视频会议等,这些应用需要即时响应,可以容忍一定程度的数据丢失。

        (2)广播或多播

        如系统广播消息、视频直播、股票报价等,这些服务需要将数据同时发送给多个接收者。

        (3)DNS查询

        虽然DNS也支持TCP,但大部分查询使用UDP,因为查询请求和响应都很小,且对实时性有一定要求。

        (4)数据包大小受限的环境

        在带宽有限或网络条件较差的环境下,UDP较小的头部开销和无连接特性使其更为高效。

        

5.2 TCP——传输控制协议

        1. 定义

        TCP(Transmission Control Protocol,传输控制协议)是互联网协议套件中的一种面向连接的、可靠的、基于字节流的传输层通信协议。

        2. TCP的特点和功能

        (1)面向连接

        在数据传输之前,TCP要求通信双方先通过三次握手建立连接。这确保了双方准备好进行数据传输,并为双方分配必要的资源。

        (2)可靠性

        TCP通过一系列机制确保数据的可靠传输,包括序列号、确认应答、重传机制、错误校验等。序列号用来标识发送的数据段,确保数据按顺序到达;确认应答(ACK)机制让接收方确认收到的数据;如果数据段丢失或损坏,发送方会重新发送。

        (3)流量控制

        TCP使用滑动窗口协议来控制发送方的速率,以防止接收方被过快的数据流淹没。接收方会告诉发送方其接收缓冲区的可用空间大小,发送方据此调整发送速率。

        (4)拥塞控制

        TCP还通过慢启动、拥塞避免、快速重传和快速恢复等算法来动态调整数据的发送速率,以应对网络拥塞的情况。

        (5)全双工通信

        TCP允许数据同时在两个方向上传输,即通信双方可以同时发送和接收数据,提高了通信效率。

        (6)基于字节流

        TCP将数据视为无结构的字节流,没有消息边界的概念。发送方可以连续不断地发送数据,接收方也可以按任意大小读取数据。

        3. TCP头部结构

        TCP头部包含了控制信息,用于指导数据的传输和确认过程,主要包括:

        (1)源端口号和目的端口号

        标识通信双方的应用进程

        (2)序号

        发送数据段中的第一个字节的编号,用于数据排序和重传控制。

        (3)确认号

        期望从对方接收到的下一个数据段的序号,用于确认数据接收。

        (4)头部长度

        (5)保留位

        (6)标志位

        (7)窗口大小

        (8)校验和

        (9)紧急指针

        4. 连接管理

        (1)三次握手

        建立连接时,客户端发送SYN包到服务器,服务器回应SYN+ACK包,客户端再回ACK包,完成连接建立。

        (4)四次挥手

        关闭连接时,一方发送FIN包,对方回应ACK,然后对方发送FIN包,最后收到ACK,连接彻底关闭。

        5. 应用场景

        TCP因其可靠性和有序性,适用于那些对数据完整性要求高的应用,如Web浏览(HTTP)、文件传输(FTP)、电子邮件(SMTP/POP3/IMAP)、远程登录(SSH)等。尽管TCP提供高度可靠性,但相比UDP(User Datagram Protocol),其开销更大,延迟较高,不适合实时性要求极高的应用,如在线游戏、VoIP等。

        6. 特点总结

                    1.安全、可靠
                    2.数据量大
                    3.占用资源开销大

        7. 连接流程总结

                三次握手建立链接
                数据传输过程中双方通过序列号和确认号保障数据传输完整性
                四次挥手结束链接

6. 网络层协议

6.1 定义

        网络层(Network Layer)是OSI模型和TCP/IP模型中的第三层,主要负责数据包的路由选择和转发,确保数据能够从源主机传输到目标主机。网络层协议关注的是将数据从一个网络传递到另一个网络,这是通过逻辑寻址和路径选择来实现的。

6.2 分类

        以下是几种常见的网络层协议分类

        1. IP(Internet Protocol,互联网协议)

        (1)IPv4

        目前互联网上最广泛使用的版本,提供32位地址空间,采用点分十进制表示法。支持无连接的数据报服务,不保证数据包的顺序和可靠性。

        (2)IPv6

        为了解决IPv4地址耗尽问题而设计的新版本,提供128位地址空间,拥有更大的地址容量、更好的安全性以及改进的路由和配置选项。

        2. ICMP(Internet Control Message Protocol,互联网控制消息协议)

        3. IGP(Interior Gateway Protocol,内部网关协议)

        4. EGP(Exterior Gateway Protocol,外部网关协议)

        5. NDP(Neighbor Discovery Protocol,邻居发现协议)

        6. MPLS(Multiprotocol Label Switching,多协议标签交换)

6.3 IPv4协议

        1. 定义

        IPv4(Internet Protocol version 4,互联网协议第4版)是互联网协议的一个版本,它是目前互联网上最广泛使用的网络层协议。

        2. 地址结构与表示

        IPv4使用32位(4字节)的地址空间,这允许有大约42亿(232232)个唯一的地址。IPv4地址通常以点分十进制表示法表示,即四个十进制数字,每个数字范围从0到255,数字之间以点(.)分隔。例如,192.168.1.1 是一个常见的IPv4地址。

        IP:192.168.0.189        管理员模式

        IP地址 = 网络位 + 主机位

        网络位:IP地址所在的网段

        主机位:在局域网内的主机编号

        子网掩码:搭配IP地址使用,区分IP地址中的网络位和主机位

                          子网掩码是1的部分对应IP地址网络位
                          子网掩码是0的部分对应IP地址主机位

        网段号:网络位不变,主机位全为0的IP地址192.168.0.0

        广播号:网络位不变,主机位全为1的IP地址(给广播号发送一个信息,所有的IP地址都能搜到)192.168.0.255

        3. 地址分类

        IPv4地址被划分为五类,A、B、C、D、E类,其中A、B、C类为主要分配给主机和网络使用的地址,D类用于多播,E类保留用于特殊用途。每类地址的网络号和主机号部分的长度不同,决定了网络规模的大小。

        (1)A类:1.0.0.0 - 126.255.255.255

        管理大规模网络

       子网掩码:255.0.0.0

        (2)B类:128.0.0.0 - 191.255.255.255

        管理大中规模网络

        子网掩码:255.255.0.0

        (3)C类:192.0.0.0 - 223.255.255.255

         管理中小规模网络

        子网掩码:255.255.255.0

        (4)D类:224.0.0.0 - 239.255.255.255

        用于组播传输(给一组人传输数据)

        (5)E类:240.0.0.0 - 255.255.255.254

        用于科研实验

        补充:

        (1)公有IP地址:能够直接上网的IP地址(路由器)
                 私有IP地址:不能直接上网的IP地址(个人主机)

        (2)MAC地址:网卡地址  物理地址(此地址不会重复,是唯一的)

        (3)IP地址是为了找某一个网段、MAC地址是为了找在局域网中找到某一个主机

                  端口号:唯一识别同一主机不同进程的号码
                  (0 - 65535)(不要使用10000以内的,10000以内的是系统的)

        (4)

        

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

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

相关文章

百度一下首页制作(HTML+CSS)

部分代码展示&#xff1a; <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>百度一下&#xff0c;你就知道</title><style type"text/css">/*清除元素默认性质*/body { margin: 0;padding: 0;list-…

前端传进来的单选值是0,到了后端加了个逗号

如上图所示&#xff0c;标记的var的值org和id的值orgOrNot不能一样&#xff0c;如果一样&#xff0c;通过id获取&#xff08;#(“#orgOrNot”).find(“option:selected”).val()&#xff09;时候就会出现这种情况 改成如下情况&#xff0c;区别开id

BC-Linux 8.6最小化安装的服务器启用GNOME图形化界面

本文记录了BC-Linux 8.6最小化安装的服务器如何启用GNOME图形化界面的过程。 一、服务器环境 1、系统版本 [rootlocalhost ~]# cat /etc/os-release NAME"BigCloud Enterprise Linux" VERSION"8.6 (Core)" ID"bclinux" ID_LIKE"rhel fe…

在VScode中创建PHP环境

一、下载PHP Server 和 PHP Debug这两个扩展 二、下载完成之后&#xff0c;在VScode中&#xff0c;打开我们写代码的文件 这里是我事先创建好的一些文件&#xff0c;本次环境搭建只需要创建一个.php后缀的文件即可。 先选中.php文件&#xff0c;再点击文件。 点击首选项&#x…

【课程系列05】某心科技AI大模型微调实战营-应用篇

网盘链接 链接: https://pan.baidu.com/s/1oARULXsXn8frkqq4ZKHBLA --来自百度网盘超级会员v6的分享 课程收获 课程内容涉及大模型的介绍、Transformer、Encoder、高级微调技术、Alpaca、AdaLoRA、QLoRA、Prefix Tuning和Quantization等主题 课程截图

龙芯LS2K0300久久派上手体验

介绍 芯片 龙芯2K0300芯片是一款基于LA264处理器核的多功能SoC芯片&#xff0c;可广泛适用于工业控制、通信设备、信息家电和物联网等领域&#xff1b;该芯片采用高集成度设计&#xff0c;可提供丰富的功能接口&#xff0c;满足多场景应用需求&#xff0c;同时支持低功耗技术…

VMware 虚拟机共享宿主机文件夹

一、背景 在虚拟机中&#xff0c;需要写文件到宿主机的文件系统中 宿主机的文件共享给虚拟机使用 这些场景就涉及到VM的虚拟机怎么访问宿主机的磁盘文件夹 二、软件背景 宿主机&#xff1a;window机器&#xff0c;本文是win7 虚拟软件&#xff1a;VMware12.5.6&#xff0…

基于自编码器的滚动轴承异常检测方法(NASA-IMS数据,Python)

代码较为简单。 import numpy as np import pandas as pd from tensorflow import keras from tensorflow.keras import layers from matplotlib import pyplot as plt df_stats_Ch1_test2 pd.read_csv("estadisticos_test2_ch1.csv" , sep ,) X_Ch1 df_stats_Ch…

移植案例与原理 - HDF驱动框架-驱动配置(2)

1.2.7 节点复制 节点复制可以实现在节点定义时从另一个节点先复制内容&#xff0c;用于定义内容相似的节点。语法如下&#xff0c;表示在定义"node"节点时将另一个节点"source_node"的属性复制过来。 node : source_node示例如下&#xff0c;编译后bar节点…

​海康威视 isecure center 综合安防管理平台任意文件上传漏洞

文章目录 前言声明一、漏洞描述二、影响版本三、漏洞复现四、修复方案 前言 海康威视是以视频为核心的智能物联网解决方案和大数据服务提供商,业务聚焦于综合安防、大数据服务和智慧业务。 海康威视其产品包括摄像机、多屏控制器、交通产品、传输产品、存储产品、门禁产品、消…

项目五 OpenStack镜像管理与制作

任务一 理解OpenStack镜像服务 1.1 •什么是镜像 • 镜像通常 是指一系列文件或一个磁盘驱动器的精确副本 。 • 虚拟机 所使用的虚拟磁盘&#xff0c; 实际上是 一种特殊格式的镜像文件 。 • 云 环境下尤其需要 镜像。 • 镜像 就是一个模板&#xff0c;类似于 VMware 的虚拟…

DDoS攻击增速惊人,谈谈防御DDoS攻击的几大有效方法

过去的十年里&#xff0c;DDoS攻击是计算机科学领域中最“头疼”的问题之一。Gcore发现&#xff0c;DDoS攻击增速惊人&#xff0c;2021年DDoS攻击峰值流量为300Gbps&#xff0c;2022年增至650 Gbps&#xff0c;2023 年Q3-Q4季度增至1600 Gbps (1.6 Tbps)。企业如果没有采取足够…

产品Web3D交互展示有什么优势?如何快速制作?

智能互联网时代&#xff0c;传统的图片、文字、视频等产品展示方式&#xff0c;因为缺少互动性&#xff0c;很难引起用户的兴趣&#xff0c;已经逐渐失去了宣传优势。 Web3D交互展示技术的出现&#xff0c;让众多品牌和企业找到了新的方向&#xff0c;线上产品展示不在枯燥无趣…

最小公倍数的求法

什么是最小公倍数&#xff1f; 最小公倍数是指两个或多个整数共有的最小正整数倍数。 如何求一组数据的最小公倍数&#xff08;Least Common Multiple&#xff0c;简称LCM&#xff09;&#xff1f; LCM 这组数据的公倍数 这组数据的最大公约数 (Greatest Common Divis…

前端页面实现【矩阵表格与列表】

实现页面&#xff1a; 1.动态表绘制&#xff08;可用于矩阵构建&#xff09; <template><div><h4><b>基于层次分析法的权重计算</b></h4><table table-layout"fixed"><thead><tr><th v-for"(_, colI…

可视化表单拖拽生成器优势多 助力流程化办公!

当前&#xff0c;很多企业需要实现流程化办公&#xff0c;进入数字化转型时期。要想实现这一目标&#xff0c;就需要借助更优质的平台产品。低代码技术平台是得到企业喜爱的发展平台&#xff0c;拥有可视化操作、灵活、高效、更可靠等优势特点&#xff0c;在推动企业实现流程化…

记录vue一个echarts页面 柱状图加平均分横线 双柱状图 横向双柱状图

<template><div class"app-container"><el-form :model"queryParams" ref"queryForm" size"small" v-show"showSearch" label-width"85px"><el-form-item label"园所名称" prop&q…

Vue发送http请求

1.创建项目 创建一个新的 Vue 2 项目非常简单。在终端中&#xff0c;进入您希望创建项目的目录(我的目录是D:\vue)&#xff0c;并运行以下命令&#xff1a; vue create vue_test 2.切换到项目目录&#xff0c;运行项目 运行成功后&#xff0c;你将会看到以下的编译成功的提示…

使用二进制安装安装docker

在一些情况下无法使用yum安装docker下面写了一个使用二进制安装docker的文档 官网下载地址https://download.docker.com/linux/static/stable/x86_64/ 可以按需求下载 wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.10.tgz 下载包 tar xf dcker…

要改Google签名?这些你足够了解吗!

大家好&#xff0c;我是小编阿文。欢迎您关注我们&#xff0c;经常分享有关Android出海&#xff0c;iOS出海&#xff0c;App市场政策实时更新&#xff0c;互金市场投放策略&#xff0c;最新互金新闻资讯等文章&#xff0c;期待与您共航世界之海。 老项目keystore签名信息包含国…