当前位置: 首页 > news >正文

网络层协议

OSI七层模型与TCP/IP四层模型

OSI七层模型(概念模型)

OSI七层模型,也被称为开放系统互联参考模型,为计算机网络领域提供了一套标准化的框架。它将数据传输过程划分为七个不同的层次,包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。每一层都负责特定的功能,并通过层与层之间的接口进行交互,确保数据的准确无误传输。这种分层结构不仅简化了网络设计,还为故障排查和系统开发提供了清晰的指南

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 应用层
    提供应用程序接口,直接为用户服务。典型协议包括HTTP、SMTP、FTP等。

  2. 表示层
    负责数据格式转换(如加密/解密、压缩/解压)、编码/解码等。

  3. 会话层
    管理通信会话的建立、维护和终止,例如SSH、RPC等协议。

  4. 传输层
    提供端到端的数据传输服务,确保可靠性(如TCP)或低延迟(如UDP)。

   # 示例:TCP socket连接import socketsock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)sock.connect(("example.com", 80))
  1. 网络层
    负责路由选择和逻辑寻址(如IP协议)。
   IPv4地址示例:192.168.1.1IPv6地址示例:2001:0db8::1
  1. 数据链路层
    处理物理设备间的数据帧传输(如MAC地址寻址)。
   MAC地址格式:00:1A:2B:3C:4D:5E
  1. 物理层
    定义电气、机械特性(如网线、光纤的物理标准)。

TCP/IP四层模型(实际应用)

TCP/IP四层模型是计算机网络领域中另一套重要的参考架构。与OSI七层模型类似,它也致力于为网络系统的设计和开发提供明确的指导。TCP/IP模型将网络通信过程划分为四个主要层次:网络接口层、网络层、传输层和应用层。每一层都负责特定的功能,并通过明确的接口与相邻层次进行交互,确保数据的稳定传输。这种简洁而高效的模型在计算机网络领域得到了广泛的应用和认可。

在这里插入图片描述

  1. 应用层
    合并了OSI的应用层、表示层和会话层功能。

    • 协议示例:HTTP、DNS、SMTP。
  2. 传输层
    与OSI传输层一致,核心协议为TCP和UDP。

   # UDP示例sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)sock.sendto(b"Hello", ("example.com", 53))
  1. 网络层
    核心协议为IP,负责路由和分组转发。

    路由表示例:
    Destination     Gateway         Genmask
    192.168.1.0     0.0.0.0         255.255.255.0
    
  2. 网络接口层
    合并OSI的数据链路层和物理层,处理硬件通信(如以太网、Wi-Fi)。


OSI的七层及TCP/IP五层(网络模型)

OSI参考模型及解释:
在这里插入图片描述
TCP/IP五层协议和OSI的七层协议对应关系如下:
在这里插入图片描述
在每一层都工作着不同的设备,比如我们常用的交换机就工作在数据链路层;一般的路由器是工作于网络层
在这里插入图片描述
在每一层实现的协议不同,即每一层的服务也不同。下面主要列出每层的主要协议
在这里插入图片描述


网络组成关键组件

网卡(网络适配器)
  • 有线网卡:通过RJ45接口连接双绞线。
  • 无线网卡:支持IEEE 802.11标准(如Wi-Fi 6)。
  • 蓝牙适配器:短距离低功耗通信(与Wi-Fi频段不同)。
传输介质
  • 双绞线
    • 常见类别:Cat5e(1Gbps)、Cat6(10Gbps)。
  • 光纤
    • 单模光纤(长距离)、多模光纤(短距离)。
网络设备
  • 交换机
    工作在数据链路层,通过MAC地址转发数据帧。
  • 路由器
    工作在网络层,基于IP地址路由数据包。
  典型路由协议:OSPF、BGP。
  • 调制解调器
    实现数字信号与模拟信号转换(如ADSL调制解调器)。

网络协议

在这里插入图片描述

1. HTTP(HyperText Transfer Protocol,超文本传输协议)

GET /index.html HTTP/1.1
Host: example.com
  • 定义:HTTP是用于在计算机网络中分发超文本信息的基础协议,是万维网(World Wide Web)的核心协议之一。它允许浏览器、服务器和其他应用程序之间的通信。
  • 特点:HTTP是无状态的应用层协议,每个请求和响应都是独立的,服务器不会保存客户端的状态信息。它依赖于底层的传输层协议(通常是TCP)来传输数据。
  • 应用:HTTP最初用于传输HTML文档,但现在几乎可以传输任何类型的数据。

2. HTTPS(Secure Hypertext Transfer Protocol,安全超文本传输协议)

  • 定义:HTTPS是基于HTTP的扩展,通过SSL(安全套接层)/TLS(安全传输层协议)协议加密,提供安全通信通道。
  • 特点:HTTPS解决了HTTP协议的安全性问题,如信息加密传输、报文完整性校验和通信方身份验证。
  • 应用:HTTPS在互联网上得到广泛应用,用于保护用户数据的安全传输,如在线购物、网银交易等。
HTTPS和HTTP的区别
  • HTTPS协议需要到CA申请证书。
  • HTTP是超文本传输协议,信息是明文传输;HTTPS则是具有安全性的ssl加密传输协议。
  • HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
  • HTTP的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP协议安全。

下面就是HTTPS的整个架构,现在的HTTPS基本都使用TLS了,会更加安全。

在这里插入图片描述

3. HTTP/3

  • 定义:HTTP/3是HTTP的第三个主要版本,旨在进一步提高网络性能和安全性。
  • 特点:HTTP/3使用QUIC(Quick UDP Internet Connections)作为底层传输协议,而不是TCP。它支持更快的连接建立、改善移动网络下的连接迁移、更高效的头部压缩和更好的多路复用支持。
  • 应用:HTTP/3正在逐步被现代Web服务器和客户端支持,以提高网络性能和用户体验。
Java 使用 OkHttp 发送 HTTP/3 请求
OkHttp 是一个流行的HTTP客户端库,最新版本已支持HTTP/3。以下是使用OkHttp发送HTTP/3请求的示例代码:import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;public class Http3Example {public static void main(String[] args) {// 创建支持HTTP/3的OkHttpClientOkHttpClient client = new OkHttpClient();// 构建请求Request request = new Request.Builder().url("https://www.example.com")  // 替换为您的目标URL.build();try (Response response = client.newCall(request).execute()) {// 处理响应if (response.isSuccessful()) {System.out.println("响应内容: " + response.body().string());} else {System.out.println("请求失败: " + response.code());}} catch (Exception e) {e.printStackTrace();}}
}

4. TCP(Transmission Control Protocol,传输控制协议)

  • 定义:TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。
  • 特点:TCP通过三次握手建立连接,四次挥手释放连接,提供确认机制、重传机制和流量控制等,确保数据能够按照顺序、无差错、不重复地传输到目的端。
  • 应用:TCP被广泛应用于需要保证数据完整性和顺序性的场景,如网络文件传输、电子邮件传输、网页传输等。
使用 nc 命令发送 TCP 数据包
此脚本通过 nc 命令发送一条 TCP 消息到指定的 IP 地址和端口。#!/bin/bash# 定义目标 IP 和端口
TARGET_IP="192.168.1.1"
TARGET_PORT=1234# 定义要发送的消息
MESSAGE="Hello, TCP!"# 使用 nc 命令发送 TCP 数据包
echo -n "$MESSAGE" | nc -w1$TARGET_IP $TARGET_PORTecho "数据包已发送!"

5. UDP(User Datagram Protocol,用户数据报协议)

  • 定义:UDP是一种面向无连接的传输层协议,也是TCP/IP协议簇的一部分。
  • 特点:UDP传输效率高,对实时性要求较高的数据传输场合比较适用。它不提供数据保证机制,不保证数据包的顺序、完整性和可靠性。
  • 应用:UDP适用于音视频通信、在线游戏、DNS域名解析等实时性要求高的场景。
使用 nc 命令发送 UDP 数据包
此脚本通过 nc 命令发送一条 UDP 消息到指定的 IP 地址和端口。#!/bin/bash# 定义目标 IP 和端口
TARGET_IP="192.168.1.1"
TARGET_PORT=1234# 定义要发送的消息
MESSAGE="Hello, UDP!"# 使用 nc 命令发送 UDP 数据包
echo -n "$MESSAGE" | nc -u -w1$TARGET_IP $TARGET_PORTecho "数据包已发送!"

6. FTP(File Transfer Protocol,文件传输协议)

  • 定义:FTP是一种在互联网上进行文件传输的规则,允许用户通过网络上传、下载文件以及进行文件和目录的管理。
  • 特点:FTP基于客户端-服务器模型,使用两条独立的连接进行通信(一条控制连接和一条数据连接)。
  • 应用:FTP广泛用于文件传输和管理,但需要注意其可能存在的数据泄露风险,因此建议使用SFTP等更安全的协议。
从 FTP 服务器下载单个文件
此脚本将从 FTP 服务器下载一个指定的文件到本地目录。#!/bin/bash# 定义 FTP 服务器信息
FTPSERVER="192.168.1.100"
FTPUSER="ftpuser"
FTPPASSWORD="ftppwd"
REMOTEPATH="/ftphome/downloadData"
LOCALPATH="/local/getDownloadData"
FILENAME="test.txt"# 使用 here document 发送 FTP 命令
ftp -v -n $FTPSERVER << EOF
user $FTPUSER$FTPPASSWORD
binary
cd $REMOTEPATH
lcd $LOCALPATH
get $FILENAME
bye
EOFecho "文件下载完成!"

7. SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)

  • 定义:SMTP是一组用于由源地址到目的地址传送邮件的规则,它帮助计算机在发送或中转信件时找到下一个目的地。
  • 特点:SMTP属于TCP/IP协议族,默认使用TCP端口25。它控制信件的中转方式,确保电子邮件能够准确、快速地送达。
  • 应用:SMTP被广泛应用于电子邮件的发送和接收过程中。
使用系统自带的mail命令
许多Linux系统自带了mail命令,可以简化邮件发送:# 直接发送邮件
mail -s "Hello from Shell" recipient@example.com <<EOF
This is the email body.
It can span multiple lines.
EOF# 或者使用管道
echo "This is the email body" | mail -s "Subject" recipient@example.com

8. WebSocket

  • 定义:WebSocket是一种在单个TCP连接上进行全双工通讯的协议。
  • 特点:WebSocket协议在2008年诞生,2011年成为国际标准。它实现了浏览器与服务器之间的全双工通信,即服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息。
  • 应用:WebSocket广泛应用于实时通信领域,如在线聊天、实时通知、实时游戏等。
在浏览器中,可以通过 JavaScript 的 WebSocket 构造函数创建 WebSocket 连接。以下是一个基本的客户端实现示例:// 创建 WebSocket 连接
const socket = new WebSocket('ws://localhost:8080');// 连接成功事件
socket.onopen = function() {console.log('WebSocket 连接已建立');socket.send('Hello, Server!'); // 发送初始消息
};// 接收消息事件
socket.onmessage = function(event) {console.log('收到服务器消息:', event.data);// 可以在这里更新页面内容
};// 连接关闭事件
socket.onclose = function() {console.log('WebSocket 连接已关闭');
};// 错误事件
socket.onerror = function(error) {console.error('WebSocket 发生错误:', error);
};// 主动关闭连接
function closeConnection() {socket.close();
}// 发送消息函数
function sendMessage(message) {if (socket.readyState === WebSocket.OPEN) {socket.send(message);} else {console.error('连接未建立,无法发送消息');}
}

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

  • 定义:IP是互联网协议的核心协议之一,负责将数据包从源主机发送到目的主机。
  • 特点:IP使用IP地址来唯一标识网络上的每个设备,并通过路由选择算法将数据包从源地址传输到目的地址。
  • 应用:IP是互联网通信的基础,所有基于互联网的应用都依赖于IP协议进行数据传输。
网络连通性测试
使用 ping 命令测试网络连通性,判断目标设备是否可达。例如:ping 192.168.1.1

10. SSH(Secure Shell,安全外壳协议)

  • 定义:SSH是一种为网络安全通信提供加密传输的协议。
  • 特点:SSH通过加密客户端与服务器之间的通信数据,确保数据传输的安全性和完整性。同时,SSH还提供了身份验证和授权机制,防止未授权访问。
  • 应用:SSH广泛应用于远程登录、远程命令执行、文件传输等场景,是网络安全通信的重要工具之一
使用 ssh 命令在远程服务器上执行单个命令
这是最简单的形式,直接在命令行中指定要执行的命令。# 连接到远程服务器并执行命令,然后自动退出
# 格式: ssh 用户名@远程主机IP "要执行的命令"
ssh user@192.168.1.100 "ls -l /home/user && date"

11.Telnet (Telecommunications Network ,网络协议)

  • 定义:Telnet 是一种用于在网络上提供双向、基于文本通信的协议,主要用于实现远程登录,允许用户通过网络连接到另一台计算机并执行命令,如同直接在该计算机前操作一样。
  • 特点:Telnet 通过 TCP 协议进行通信,提供交互式的文本界面。其显著特点是通信过程以明文形式传输,包括用户名和密码,缺乏加密机制,因此安全性较低。它能够模拟本地终端,实现远程命令的输入和输出交互。
  • 应用:Telnet 曾被广泛用于远程系统管理、访问在线服务和 BBS 系统。此外,它也常被用于网络服务器的简单测试,例如检查特定端口是否开放并接收连接。然而,由于其严重的安全缺陷,现代网络环境中已基本被更安全的 SSH 协议所取代。
Shell 脚本实现 Telnet 客户端#!/bin/bash# 检查是否提供了主机参数
if [ -z "$1" ]; thenecho "使用方法: $0 <主机名或IP>"exit 1
fiHOST=$1# 启动telnet会话
echo "正在连接到 $HOST..."
telnet $HOST# 当telnet会话结束时,显示退出消息
echo "已断开与 $HOST 的连接"

12.TFTP

  • 定义:TFTP(Trivial File Transfer Protocol)是简单文件传输协议,用于小规模、低开销的文件传输。
  • 特点:TFTP是一个非常简单的协议,只支持文件传输的基本功能,没有复杂的认证和安全机制。它使用UDP作为传输层协议,默认端口为69。
  • 应用:TFTP适用于嵌入式设备固件升级、初始化设置加载等场景,因其简单高效而被广泛应用。

13.SMTP

  • 定义:SMTP(Simple Mail Transfer Protocol)是简单邮件传输协议,用于发送电子邮件。
  • 特点:SMTP是一个基于文本的协议,负责将邮件从一个邮件服务器传递到另一个邮件服务器,直到最终送达收件人的邮箱。它默认使用端口25,支持基本的身份验证和加密选项。
  • 应用:SMTP是电子邮件系统的核心组成部分,几乎所有的电子邮件客户端和服务都依赖于SMTP来进行邮件的发送。

14.POP3

  • 定义:POP3(Post Office Protocol version 3)是邮局协议的第3个版本,用于从邮件服务器检索电子邮件。
  • 特点:POP3允许用户从远程服务器下载邮件到本地计算机,并提供离线阅读的功能。它与IMAP相比,更侧重于邮件的下载和删除操作,而不是邮件的管理和维护。
  • 应用:POP3适用于那些不需要在多个设备间同步邮件的用户,他们更喜欢将邮件下载到本地并进行管理。

15.IMAP

  • 定义:IMAP(Internet Message Access Protocol)是互联网邮件访问协议,用于管理和检索电子邮件。
  • 特点:IMAP允许用户在服务器上直接操作和管理邮件,包括读取、移动、标记和删除等。它与POP3不同之处在于,IMAP不会自动下载所有邮件到本地,而是让用户选择性地同步邮件。
  • 应用:IMAP适用于需要在多个设备间同步邮件的用户,如智能手机、平板电脑和桌面电脑上的邮件客户端。

16.DHCP

  • 定义:DHCP(Dynamic Host Configuration Protocol)是动态主机配置协议,用于自动分配IP地址和其他网络参数给网络设备。
  • 特点:DHCP简化了网络管理员的任务,无需手动配置每台设备的IP地址。它支持租约机制,可以定期更新或释放IP地址资源。
  • 应用:DHCP广泛应用于局域网环境中,特别是对于那些经常变化的设备和移动设备,如笔记本电脑、手机和平板电脑。

17.SNMP

  • 定义:SNMP(Simple Network Management Protocol)是简单网络管理协议,用于监控和管理网络设备。
  • 特点:SNMP提供了一个标准的方法来收集和组织来自各种网络设备的信息,并通过管理站进行集中式管理。它支持三种操作模式:轮询、中断和委托。
  • 应用:SNMP被广泛应用于数据中心、企业网络和电信运营商的网络管理系统中,用于故障检测、性能分析和配置管理等目的。
http://www.xdnf.cn/news/888841.html

相关文章:

  • 【电赛培训课程】运算放大器及其应用电路设计
  • DNS攻击类型有哪些?如何应对DNS攻击威胁?
  • 网络包在 Linux 中的处理流程
  • echarts在uniapp中使用安卓真机运行时无法显示的问题
  • C及C++编译链接过程详解
  • c++ Base58编码解码
  • 【华为云Astro-服务编排】服务编排中图元的使用与配置
  • 【Android基础回顾】四:ServiceManager
  • gc2053驱动学习笔记
  • CppCon 2015 学习:Concurrency TS Editor’s Report
  • nvidia系列教程-Usb otg模式修改为host模式
  • 从理论崩塌到新路径:捷克科学院APL Photonics论文重构涡旋光技术边界
  • 设计模式-2 结构型模式
  • 轻触开关是什么?
  • Web前端之隐藏元素方式的区别、Vue循环标签的时候在同一标签上隐藏元素的解决办法、hidden、display、visibility
  • 国产录播一体机:科技赋能智慧教育信息化
  • el-draw的文件列表和清单内容布局实现
  • 兰亭妙微 | 医疗软件的界面设计能有多专业?
  • 软件测试全攻略:Postman工具的使用
  • 将 WTL 向导集成到 Visual Studio 2022 的完整教程
  • HBuilder 发行Android(apk包)全流程指南
  • MySQL 的锁机制【深度全面】
  • windows命令行面板升级Git版本
  • 4G 模块工作原理及应用场景
  • 【AI News | 20250605】每日AI进展
  • 使用Node.js分片上传大文件到阿里云OSS
  • Gemini开源项目DeepResearch:基于LangGraph的智能研究代理技术原理与实现
  • freeRTOS 消息队列之一个事件添加到消息队列超时怎么处理
  • 【threejs】每天一个小案例讲解
  • Dubbo Logback 远程调用携带traceid