网络层协议
OSI七层模型与TCP/IP四层模型OSI七层模型概念模型OSI七层模型也被称为开放系统互联参考模型为计算机网络领域提供了一套标准化的框架。它将数据传输过程划分为七个不同的层次包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。每一层都负责特定的功能并通过层与层之间的接口进行交互确保数据的准确无误传输。这种分层结构不仅简化了网络设计还为故障排查和系统开发提供了清晰的指南。应用层提供应用程序接口直接为用户服务。典型协议包括HTTP、SMTP、FTP等。表示层负责数据格式转换如加密/解密、压缩/解压、编码/解码等。会话层管理通信会话的建立、维护和终止例如SSH、RPC等协议。传输层提供端到端的数据传输服务确保可靠性如TCP或低延迟如UDP。# 示例TCP socket连接importsocket socksocket.socket(socket.AF_INET,socket.SOCK_STREAM)sock.connect((example.com,80))网络层负责路由选择和逻辑寻址如IP协议。IPv4地址示例192.168.1.1 IPv6地址示例2001:0db8::1数据链路层处理物理设备间的数据帧传输如MAC地址寻址。MAC地址格式00:1A:2B:3C:4D:5E物理层定义电气、机械特性如网线、光纤的物理标准。TCP/IP四层模型实际应用TCP/IP四层模型是计算机网络领域中另一套重要的参考架构。与OSI七层模型类似它也致力于为网络系统的设计和开发提供明确的指导。TCP/IP模型将网络通信过程划分为四个主要层次网络接口层、网络层、传输层和应用层。每一层都负责特定的功能并通过明确的接口与相邻层次进行交互确保数据的稳定传输。这种简洁而高效的模型在计算机网络领域得到了广泛的应用和认可。应用层合并了OSI的应用层、表示层和会话层功能。协议示例HTTP、DNS、SMTP。传输层与OSI传输层一致核心协议为TCP和UDP。# UDP示例socksocket.socket(socket.AF_INET,socket.SOCK_DGRAM)sock.sendto(bHello,(example.com,53))网络层核心协议为IP负责路由和分组转发。路由表示例 Destination Gateway Genmask 192.168.1.0 0.0.0.0 255.255.255.0网络接口层合并OSI的数据链路层和物理层处理硬件通信如以太网、Wi-Fi。OSI的七层及TCP/IP五层(网络模型)OSI参考模型及解释:TCP/IP五层协议和OSI的七层协议对应关系如下:在每一层都工作着不同的设备比如我们常用的交换机就工作在数据链路层一般的路由器是工作于网络层在每一层实现的协议不同即每一层的服务也不同。下面主要列出每层的主要协议网络组成关键组件网卡网络适配器有线网卡通过RJ45接口连接双绞线。无线网卡支持IEEE 802.11标准如Wi-Fi 6。蓝牙适配器短距离低功耗通信与Wi-Fi频段不同。传输介质双绞线常见类别Cat5e1Gbps、Cat610Gbps。光纤单模光纤长距离、多模光纤短距离。网络设备交换机工作在数据链路层通过MAC地址转发数据帧。路由器工作在网络层基于IP地址路由数据包。典型路由协议OSPF、BGP。调制解调器实现数字信号与模拟信号转换如ADSL调制解调器。网络协议1. HTTPHyperText Transfer Protocol超文本传输协议GET /index.html HTTP/1.1 Host: example.com定义HTTP是用于在计算机网络中分发超文本信息的基础协议是万维网World Wide Web的核心协议之一。它允许浏览器、服务器和其他应用程序之间的通信。特点HTTP是无状态的应用层协议每个请求和响应都是独立的服务器不会保存客户端的状态信息。它依赖于底层的传输层协议通常是TCP来传输数据。应用HTTP最初用于传输HTML文档但现在几乎可以传输任何类型的数据。2. HTTPSSecure Hypertext Transfer Protocol安全超文本传输协议定义HTTPS是基于HTTP的扩展通过SSL安全套接层/TLS安全传输层协议协议加密提供安全通信通道。特点HTTPS解决了HTTP协议的安全性问题如信息加密传输、报文完整性校验和通信方身份验证。应用HTTPS在互联网上得到广泛应用用于保护用户数据的安全传输如在线购物、网银交易等。HTTPS和HTTP的区别HTTPS协议需要到CA申请证书。HTTP是超文本传输协议信息是明文传输HTTPS则是具有安全性的ssl加密传输协议。HTTP和HTTPS使用的是完全不同的连接方式用的端口也不一样前者是80后者是443。HTTP的连接很简单是无状态的HTTPS协议是由SSLHTTP协议构建的可进行加密传输、身份认证的网络协议比HTTP协议安全。下面就是HTTPS的整个架构现在的HTTPS基本都使用TLS了会更加安全。3. HTTP/3定义HTTP/3是HTTP的第三个主要版本旨在进一步提高网络性能和安全性。特点HTTP/3使用QUICQuick UDP Internet Connections作为底层传输协议而不是TCP。它支持更快的连接建立、改善移动网络下的连接迁移、更高效的头部压缩和更好的多路复用支持。应用HTTP/3正在逐步被现代Web服务器和客户端支持以提高网络性能和用户体验。Java使用OkHttp发送HTTP/3请求OkHttp是一个流行的HTTP客户端库最新版本已支持HTTP/3。以下是使用OkHttp发送HTTP/3请求的示例代码importokhttp3.OkHttpClient;importokhttp3.Request;importokhttp3.Response;publicclassHttp3Example{publicstaticvoidmain(String[]args){// 创建支持HTTP/3的OkHttpClientOkHttpClientclientnewOkHttpClient();// 构建请求RequestrequestnewRequest.Builder().url(https://www.example.com)// 替换为您的目标URL.build();try(Responseresponseclient.newCall(request).execute()){// 处理响应if(response.isSuccessful()){System.out.println(响应内容: response.body().string());}else{System.out.println(请求失败: response.code());}}catch(Exceptione){e.printStackTrace();}}}4. TCPTransmission Control Protocol传输控制协议定义TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。特点TCP通过三次握手建立连接四次挥手释放连接提供确认机制、重传机制和流量控制等确保数据能够按照顺序、无差错、不重复地传输到目的端。应用TCP被广泛应用于需要保证数据完整性和顺序性的场景如网络文件传输、电子邮件传输、网页传输等。使用nc命令发送 TCP 数据包 此脚本通过nc命令发送一条 TCP 消息到指定的 IP 地址和端口。#!/bin/bash# 定义目标 IP 和端口TARGET_IP192.168.1.1TARGET_PORT1234# 定义要发送的消息MESSAGEHello, TCP!# 使用 nc 命令发送 TCP 数据包echo-n$MESSAGE|nc-w1$TARGET_IP$TARGET_PORTecho数据包已发送5. UDPUser Datagram Protocol用户数据报协议定义UDP是一种面向无连接的传输层协议也是TCP/IP协议簇的一部分。特点UDP传输效率高对实时性要求较高的数据传输场合比较适用。它不提供数据保证机制不保证数据包的顺序、完整性和可靠性。应用UDP适用于音视频通信、在线游戏、DNS域名解析等实时性要求高的场景。使用nc命令发送 UDP 数据包 此脚本通过nc命令发送一条 UDP 消息到指定的 IP 地址和端口。#!/bin/bash# 定义目标 IP 和端口TARGET_IP192.168.1.1TARGET_PORT1234# 定义要发送的消息MESSAGEHello, UDP!# 使用 nc 命令发送 UDP 数据包echo-n$MESSAGE|nc-u-w1$TARGET_IP$TARGET_PORTecho数据包已发送6. FTPFile Transfer Protocol文件传输协议定义FTP是一种在互联网上进行文件传输的规则允许用户通过网络上传、下载文件以及进行文件和目录的管理。特点FTP基于客户端-服务器模型使用两条独立的连接进行通信一条控制连接和一条数据连接。应用FTP广泛用于文件传输和管理但需要注意其可能存在的数据泄露风险因此建议使用SFTP等更安全的协议。从 FTP 服务器下载单个文件 此脚本将从 FTP 服务器下载一个指定的文件到本地目录。#!/bin/bash# 定义 FTP 服务器信息FTPSERVER192.168.1.100FTPUSERftpuserFTPPASSWORDftppwdREMOTEPATH/ftphome/downloadDataLOCALPATH/local/getDownloadDataFILENAMEtest.txt# 使用 here document 发送 FTP 命令ftp-v-n$FTPSERVEREOF user$FTPUSER$FTPPASSWORDbinary cd$REMOTEPATHlcd$LOCALPATHget$FILENAMEbye EOFecho文件下载完成7. SMTPSimple Mail Transfer Protocol简单邮件传输协议定义SMTP是一组用于由源地址到目的地址传送邮件的规则它帮助计算机在发送或中转信件时找到下一个目的地。特点SMTP属于TCP/IP协议族默认使用TCP端口25。它控制信件的中转方式确保电子邮件能够准确、快速地送达。应用SMTP被广泛应用于电子邮件的发送和接收过程中。使用系统自带的mail命令 许多Linux系统自带了mail命令可以简化邮件发送# 直接发送邮件mail-sHello from Shellrecipientexample.comEOF This is the email body. It can span multiple lines. EOF# 或者使用管道echoThis is the email body|mail-sSubjectrecipientexample.com8. WebSocket定义WebSocket是一种在单个TCP连接上进行全双工通讯的协议。特点WebSocket协议在2008年诞生2011年成为国际标准。它实现了浏览器与服务器之间的全双工通信即服务器可以主动向客户端推送信息客户端也可以主动向服务器发送信息。应用WebSocket广泛应用于实时通信领域如在线聊天、实时通知、实时游戏等。在浏览器中可以通过 JavaScript 的 WebSocket 构造函数创建 WebSocket 连接。以下是一个基本的客户端实现示例// 创建 WebSocket 连接constsocketnewWebSocket(ws://localhost:8080);// 连接成功事件socket.onopenfunction(){console.log(WebSocket 连接已建立);socket.send(Hello, Server!);// 发送初始消息};// 接收消息事件socket.onmessagefunction(event){console.log(收到服务器消息:,event.data);// 可以在这里更新页面内容};// 连接关闭事件socket.onclosefunction(){console.log(WebSocket 连接已关闭);};// 错误事件socket.onerrorfunction(error){console.error(WebSocket 发生错误:,error);};// 主动关闭连接functioncloseConnection(){socket.close();}// 发送消息函数functionsendMessage(message){if(socket.readyStateWebSocket.OPEN){socket.send(message);}else{console.error(连接未建立无法发送消息);}}9. IPInternet Protocol互联网协议定义IP是互联网协议的核心协议之一负责将数据包从源主机发送到目的主机。特点IP使用IP地址来唯一标识网络上的每个设备并通过路由选择算法将数据包从源地址传输到目的地址。应用IP是互联网通信的基础所有基于互联网的应用都依赖于IP协议进行数据传输。网络连通性测试 使用 ping 命令测试网络连通性判断目标设备是否可达。例如 ping 192.168.1.110. SSHSecure Shell安全外壳协议定义SSH是一种为网络安全通信提供加密传输的协议。特点SSH通过加密客户端与服务器之间的通信数据确保数据传输的安全性和完整性。同时SSH还提供了身份验证和授权机制防止未授权访问。应用SSH广泛应用于远程登录、远程命令执行、文件传输等场景是网络安全通信的重要工具之一使用ssh命令在远程服务器上执行单个命令 这是最简单的形式直接在命令行中指定要执行的命令。# 连接到远程服务器并执行命令然后自动退出# 格式: ssh 用户名远程主机IP 要执行的命令sshuser192.168.1.100ls -l /home/user date11.Telnet Telecommunications Network 网络协议定义Telnet 是一种用于在网络上提供双向、基于文本通信的协议主要用于实现远程登录允许用户通过网络连接到另一台计算机并执行命令如同直接在该计算机前操作一样。特点Telnet 通过 TCP 协议进行通信提供交互式的文本界面。其显著特点是通信过程以明文形式传输包括用户名和密码缺乏加密机制因此安全性较低。它能够模拟本地终端实现远程命令的输入和输出交互。应用Telnet 曾被广泛用于远程系统管理、访问在线服务和 BBS 系统。此外它也常被用于网络服务器的简单测试例如检查特定端口是否开放并接收连接。然而由于其严重的安全缺陷现代网络环境中已基本被更安全的 SSH 协议所取代。Shell 脚本实现 Telnet 客户端#!/bin/bash# 检查是否提供了主机参数if[-z$1];thenecho使用方法:$0主机名或IPexit1fiHOST$1# 启动telnet会话echo正在连接到$HOST...telnet$HOST# 当telnet会话结束时显示退出消息echo已断开与$HOST的连接12.TFTP定义TFTPTrivial File Transfer Protocol是简单文件传输协议用于小规模、低开销的文件传输。特点TFTP是一个非常简单的协议只支持文件传输的基本功能没有复杂的认证和安全机制。它使用UDP作为传输层协议默认端口为69。应用TFTP适用于嵌入式设备固件升级、初始化设置加载等场景因其简单高效而被广泛应用。13.SMTP定义SMTPSimple Mail Transfer Protocol是简单邮件传输协议用于发送电子邮件。特点SMTP是一个基于文本的协议负责将邮件从一个邮件服务器传递到另一个邮件服务器直到最终送达收件人的邮箱。它默认使用端口25支持基本的身份验证和加密选项。应用SMTP是电子邮件系统的核心组成部分几乎所有的电子邮件客户端和服务都依赖于SMTP来进行邮件的发送。14.POP3定义POP3Post Office Protocol version 3是邮局协议的第3个版本用于从邮件服务器检索电子邮件。特点POP3允许用户从远程服务器下载邮件到本地计算机并提供离线阅读的功能。它与IMAP相比更侧重于邮件的下载和删除操作而不是邮件的管理和维护。应用POP3适用于那些不需要在多个设备间同步邮件的用户他们更喜欢将邮件下载到本地并进行管理。15.IMAP定义IMAPInternet Message Access Protocol是互联网邮件访问协议用于管理和检索电子邮件。特点IMAP允许用户在服务器上直接操作和管理邮件包括读取、移动、标记和删除等。它与POP3不同之处在于IMAP不会自动下载所有邮件到本地而是让用户选择性地同步邮件。应用IMAP适用于需要在多个设备间同步邮件的用户如智能手机、平板电脑和桌面电脑上的邮件客户端。16.DHCP定义DHCPDynamic Host Configuration Protocol是动态主机配置协议用于自动分配IP地址和其他网络参数给网络设备。特点DHCP简化了网络管理员的任务无需手动配置每台设备的IP地址。它支持租约机制可以定期更新或释放IP地址资源。应用DHCP广泛应用于局域网环境中特别是对于那些经常变化的设备和移动设备如笔记本电脑、手机和平板电脑。17.SNMP定义SNMPSimple Network Management Protocol是简单网络管理协议用于监控和管理网络设备。特点SNMP提供了一个标准的方法来收集和组织来自各种网络设备的信息并通过管理站进行集中式管理。它支持三种操作模式轮询、中断和委托。应用SNMP被广泛应用于数据中心、企业网络和电信运营商的网络管理系统中用于故障检测、性能分析和配置管理等目的。

相关新闻