TCP/IP参考模型和网络协议

由于国防部担心他们一些重要的主机、路由器和互联网关可能会突然崩溃,所以网络必须实现的另一目标是网络不受子网硬件损失的影响,已经建立的会话不会被取消,而且整个体系结构必须相当灵活。

TCP/IP是一组用于实现网络互连的通信协议。Internet网络体系结构以TCP/IP为核心。基于TCP/IP的参考模型将协议分成四个层次,它们分别是:网络访问层、网际互联层(主机到主机)、传输层、和应用层。这个模型帮助实现不同网络设备和协议之间的互操作性。

1. **应用层**:提供网络服务给用户应用程序,负责数据的格式化、表示和处理,如HTTP、FTP、SMTP等协议。

2. **传输层**:负责端到端的数据传输,确保数据完整性和顺序,主要协议有TCP(面向连接)和UDP(无连接)。

3. **网络层**:负责数据包的路由和转发,确保数据从源主机到达目的主机,主要协议为IP(互联网协议)。

4. **链路层**:负责在物理网络上进行数据传输,处理数据帧的封装和解封装,涉及硬件地址和局域网协议,如Ethernet。

TCP/IP和OSI模型是两种不同的网络通信模型,主要区别如下:

1. **层数**:
   - **OSI模型**:有7层(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层)。
   - **TCP/IP模型**:通常有4层(网络接口层、互联网层、传输层、应用层)。

2. **设计目的**:
   - **OSI模型**:是一个理论模型,旨在提供一个标准化的框架来理解和设计网络协议。
   - **TCP/IP模型**:是一个实际应用模型,基于实际的网络协议(如TCP和IP)而设计。

3. **协议依赖**:
   - **OSI模型**:不依赖于特定的协议,提供了一个通用的框架。
   - **TCP/IP模型**:紧密依赖于TCP和IP协议,强调协议的实际使用。

4. **层间关系**:
   - **OSI模型**:每层都有明确的功能和接口,层与层之间的关系较为严格。
   - **TCP/IP模型**:层与层之间的界限不如OSI模型明确,某些层的功能可能会重叠。

5. **应用广泛性**:
   - **OSI模型**:主要用于教学和理论研究。
   - **TCP/IP模型**:广泛应用于实际的网络通信中,是互联网的基础。

总结:OSI模型是一个理论框架,强调标准化和分层,而TCP/IP模型是一个实际应用框架,基于具体协议。

1. POP3 (Post Office Protocol version 3)

  • 全拼含义: 邮局协议版本3

  • 端口号: 110 (默认),995 (SSL加密)

  • 原理: POP3用于从邮件服务器下载电子邮件到本地客户端。它通常会将邮件从服务器上删除,但也可以配置为保留副本

2. FTP (File Transfer Protocol)

  • 全拼含义: 文件传输协议

  • 端口号: 20 (数据端口),21 (控制端口)

  • 原理: FTP用于在客户端和服务器之间传输文件。它使用两个连接:一个用于控制命令,另一个用于数据传输。

3. HTTP (HyperText Transfer Protocol)

  • 全拼含义: 超文本传输协议

  • 端口号: 80 (默认),443 (HTTPS)

  • 原理: HTTP用于在Web浏览器和Web服务器之间传输超文本(如HTML页面)。它是无状态的,每个请求都是独立的。

4. Telnet

  • 全拼含义: 远程登录协议

  • 端口号: 23

  • 原理: Telnet允许用户通过网络远程登录到另一台计算机,并在远程计算机上执行命令。它不加密数据,因此安全性较低。

5. SMTP (Simple Mail Transfer Protocol)

  • 全拼含义: 简单邮件传输协议

  • 端口号: 25 (默认),587 (加密)

  • 原理: SMTP用于发送电子邮件。它将邮件从客户端传输到邮件服务器,或在不同邮件服务器之间传输。

6. DHCP (Dynamic Host Configuration Protocol)

  • 全拼含义: 动态主机配置协议

  • 端口号: 67 (服务器),68 (客户端)

  • 原理: DHCP自动为网络中的设备分配IP地址和其他网络配置(如子网掩码、默认网关等),简化了网络管理。

7. TFTP (Trivial File Transfer Protocol)

  • 全拼含义: 简单文件传输协议

  • 端口号: 69

  • 原理: TFTP是一个简单的文件传输协议,通常用于在网络设备之间传输小文件。它使用UDP协议,不提供认证或加密。

8. SNMP (Simple Network Management Protocol)

  • 全拼含义: 简单网络管理协议

  • 端口号: 161 (查询),162 (陷阱)

  • 原理: SNMP用于管理和监控网络设备(如路由器、交换机等)。它允许网络管理员收集设备的状态信息并对其进行配置。

9. DNS (Domain Name System)

  • 全拼含义: 域名系统

  • 端口号: 53

  • 原理: DNS将人类可读的域名(如www.example.com)转换为机器可读的IP地址(如192.0.2.1),以便在网络上定位资源。

10. TCP (Transmission Control Protocol)

  • 全拼含义: 传输控制协议

  • 端口号: 无固定端口号,根据应用层协议而定

  • 原理: TCP是一种面向连接的协议,提供可靠的数据传输。它通过三次握手建立连接,在建立连接时使用的过程,确保通信双方能够同步序列号并确认彼此的通信能力。确保数据包的顺序和完整性。以下是三次握手的原理和步骤:

三次握手的过程

  1. 第一次握手(SYN)

    • 客户端向服务器发送一个 SYN(Synchronize) 报文,其中包含:

      • 客户端的初始序列号(ISN,Initial Sequence Number)。

      • 其他 TCP 标志位(如窗口大小等)。

    • 客户端进入 SYN_SENT 状态,等待服务器的确认。

  2. 第二次握手(SYN + ACK)

    • 服务器收到客户端的 SYN 报文后,向客户端发送一个 SYN + ACK 报文,其中包含:

      • 服务器的初始序列号(ISN)。

      • 对客户端 SYN 报文的确认号(ACK = 客户端的 ISN + 1)。

    • 服务器进入 SYN_RECEIVED 状态。

  3. 第三次握手(ACK)

    • 客户端收到服务器的 SYN + ACK 报文后,向服务器发送一个 ACK(Acknowledgment) 报文,其中包含:

      • 对服务器 SYN 报文的确认号(ACK = 服务器的 ISN + 1)。

    • 客户端和服务器都进入 ESTABLISHED 状态,连接建立成功。

        

三次握手的原理

  • 同步序列号:三次握手的主要目的是让通信双方同步初始序列号(ISN),确保数据包按顺序传输。

  • 确认通信能力:通过三次交互,双方确认彼此能够正常发送和接收数据。

  • 防止历史连接干扰:如果客户端发送的 SYN 报文因网络延迟而迟到,服务器可以通过第三次握手判断是否为有效连接。


11. UDP (User Datagram Protocol)

  • 全拼含义: 用户数据报协议

  • 端口号: 无固定端口号,根据应用层协议而定

  • 原理: UDP是一种无连接的协议,提供不可靠的数据传输。它不保证数据包的顺序或完整性,但传输速度较快。

 

12. IP (Internet Protocol)

  • 全拼含义: 网际协议

  • 端口号: 无端口号

  • 原理: IP负责在网络中寻址和路由数据包。它为每个设备分配唯一的IP地址,并确保数据包从源地址传输到目标地址。

13. ICMP (Internet Control Message Protocol)

  • 全拼含义: 互联网控制消息协议

  • 端口号: 无端口号

  • 原理: ICMP用于在IP网络中发送错误报告和操作信息。常见的应用包括ping和traceroute。

14. IGMP (Internet Group Management Protocol)

  • 全拼含义: 互联网组管理协议

  • 端口号: 无端口号

  • 原理: IGMP用于管理IP组播组成员。它允许主机加入或离开组播组,并通知路由器组播组成员的变化。

15. ARP (Address Resolution Protocol)

  • 全拼含义: 地址解析协议

  • 端口号: 无端口号

  • 原理: ARP用于将IP地址解析为物理MAC地址,以便在局域网中传输数据帧。

16. RARP (Reverse Address Resolution Protocol)

  • 全拼含义: 反向地址解析协议

  • 端口号: 无端口号

  • 原理: RARP用于将物理MAC地址解析为IP地址。它通常用于无盘工作站获取IP地址。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

机器学习-02-机器学习算法思想以及在各行各业的应用

总结 本系列是机器学习课程的第02篇,主要介绍机器学习算法思想以及在各行各业的应用 本门课程的目标 完成一个特定行业的算法应用全过程: 定义问题(Problem Definition) -> 数据收集(Data Collection) -> 数据分割(Data…

无须高配电脑-ChatboxAI 利用SiliconCloud 接入在线deepseek

Deepseek官方api调用 方式收费,官网提供的在线推理又经常出现”服务器繁忙,请稍后再试“的问题。本文借助本地聊会客户端 ChatboxAI, 通过SiliconCloud 平台来接入各种在线大模型,包括Deepseek. ChatboxAI(完全免费) Chatbox AI…

RocketMQ及和Kafka的区别

目录 1 从场景入手2 RocketMQ是什么?3 RocketMQ及和Kafka的区别3.1 在架构上做了减法3.1.1 简化协调节点3.1.2 简化分区3.1.3 底层存储3.1.3.1 Kafka底层存储3.1.3.1 RocketMQ底层存储 3.1.4 简化备份模型3.1.4.1 Kafka备份模型3.1.4.2 RocketMQ备份模型 3.1.5 Rock…

一文深入了解DeepSeek-R1:模型架构

本文深入探讨了 DeepSeek-R1 模型架构。让我们从输入到输出追踪 DeepSeek-R1 模型,以找到架构中的新发展和关键部分。DeepSeek-R1 基于 DeepSeek-V3-Base 模型架构。本文旨在涵盖其设计的所有重要方面。 📝 1. 输入上下文长度 DeepSeek-R1的输入上下文长…

在 PyCharm 中接入deepseek的API的各种方法

在 PyCharm 中接入 DeepSeek 的 API,通常需要以下步骤: 1. 获取 DeepSeek API 密钥 首先,确保你已经在 DeepSeek 平台上注册并获取了 API 密钥(API Key)。如果没有,请访问 DeepSeek 的官方网站注册并申请 …

java每日精进 2.13 Ganache(区块链本地私有化部署)

需求:使用区块链实现数据村存储,记录一些不可篡改的交互信息,网络环境为内外网均需要部署; 1.准备工作(软件安装) 1.1 安装 Node.js 和 npm 1.2 安装 Ganache 地址如下:windows有可视化界面 &a…

【深度学习】多目标融合算法(四):多门混合专家网络MMOE(Multi-gate Mixture-of-Experts)

目录 一、引言 二、MMoE(Multi-gate Mixture-of-Experts,多门混合专家网络) 2.1 技术原理 2.2 技术优缺点 2.3 业务代码实践 2.3.1 业务场景与建模 2.3.2 模型代码实现 2.3.3 模型训练与推理测试 2.3.4 打印模型结构 三、总结 一、…

sqli-labs靶场实录(四): Challenges

sqli-labs靶场实录: Challenges Less54确定字段数获取数据库名获取表名获取列名提取密钥值 Less55Less56Less57Less58爆库构造爆表构造爆列构造密钥提取构造 Less59Less60Less61Less62爆库构造 Less63Less64Less65免责声明: Less54 本关开始上难度了 可以看到此关仅…

使用Redis实现分布式锁,基于原本单体系统进行业务改造

一、单体系统下&#xff0c;使用锁机制实现秒杀功能&#xff0c;并限制一人一单功能 1.流程图&#xff1a; 2.代码实现&#xff1a; Service public class VoucherOrderServiceImpl extends ServiceImpl<VoucherOrderMapper, VoucherOrder> implements IVoucherOrderSe…

Python + WhisperX:解锁语音识别的高效新姿势

大家好&#xff0c;我是烤鸭&#xff1a; 最近在尝试做视频的质量分析&#xff0c;打算利用asr针对声音判断是否有人声&#xff0c;以及识别出来的文本进行进一步操作。asr看了几个开源的&#xff0c;最终选择了openai的whisper&#xff0c;后来发现性能不行&#xff0c;又换了…

【Linux】Ubuntu Linux 系统——Node.js 开发环境

ℹ️大家好&#xff0c;我是练小杰&#xff0c;今天星期五了&#xff0c;同时也是2025年的情人节&#xff0c;今晚又是一个人的举个爪子&#xff01;&#xff01; &#x1f642; 本文是有关Linux 操作系统中 Node.js 开发环境基础知识&#xff0c;后续我将添加更多相关知识噢&a…

Oracle查看执行计划

方式一&#xff08;查看的真实的使用到的索引&#xff09; 1.执行解释计划 2.查看结果 可以看到使用了RANGE SCAN范围扫描的索引 方式二&#xff08;查看的是预测的可能会用到的索引&#xff09; 1.执行解释计划sql explain plan for select * from COURSE where COURSE_…

百度 AI开源!将在6月30日开源文心大模型4.5系列

【大力财经】直击互联网最前线&#xff1a;百度近期动作频频&#xff0c;先是宣布将在未来数月陆续推出文心大模型4.5系列&#xff0c;并于6月30日正式开源。 据大力财经了解&#xff0c;自DeepSeek开源之风盛行全球后&#xff0c;开源闭源路径的选择就成为AI领域的热门话题&a…

【DDD系列-2】风暴出的领域模型

为什么使用DDD​ 三个问题​ 1.为什么我们的系统越做越多&#xff0c;越来越庞大&#xff0c;还需要不断的重构&#xff1f;​ 2.为什么我们的系统业务越来越复杂&#xff0c;服务层的代码越来越多难以维护&#xff0c;不敢维护&#xff1f;​ 3.为什么一旦业务变化或者数据…

基于YALMIP和cplex工具箱的微电网最优调度算法matlab仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 系统建模 4.2 YALMIP工具箱 4.3 CPLEX工具箱 5.完整工程文件 1.课题概述 基于YALMIP和cplex工具箱的微电网最优调度算法matlab仿真。通过YALMIP和cplex这两个工具箱&#xff0c;完成微电网的最优调…

visual studio导入cmake项目后打开无法删除和回车

通过Cmakelists.txt导入的项目做删除和回车无法响应&#xff0c;需要点击项目&#xff0c;然后选择配置项目就可以了

npm安装时无法访问github域名的解决方法

个人博客地址&#xff1a;npm安装时无法访问github域名的解决方法 | 一张假钞的真实世界 今天在用npm install的时候出现了github项目访问不了的异常&#xff1a; npm ERR! Error while executing: npm ERR! /bin/git ls-remote -h -t https://github.com/nhn/raphael.git np…

解锁豆瓣高清海报(三)从深度爬虫到URL构造,实现极速下载

脚本地址: 项目地址: Gazer PosterBandit_v2.py 前瞻 之前的 PosterBandit.py 是按照深度爬虫的思路一步步进入海报界面来爬取, 是个值得学习的思路, 但缺点是它爬取慢, 仍然容易碰到豆瓣的 418 错误, 本文也会指出彻底解决旧版 418 错误的方法并提高爬取速度. 现在我将介绍…

一维差分算法篇:高效处理区间加减

那么在正式介绍我们的一维差分的原理前&#xff0c;我们先来看一下一维差分所应用的一个场景&#xff0c;那么假设我们现在有一个区间为[L,R]的一个数组&#xff0c;那么我要在这个数组中的某个子区间比如[i,m] (L<i<m<R)进行一个加k值或者减去k值的一个操作&#xff…

信息收集-Web应用JS架构URL提取数据匹配Fuzz接口WebPack分析自动化

知识点&#xff1a; 1、信息收集-Web应用-JS提取分析-人工&插件&项目 2、信息收集-Web应用-JS提取分析-URL&配置&逻辑 FUZZ测试 ffuf https://github.com/ffuf/ffuf 匹配插件 Hae https://github.com/gh0stkey/HaE JS提取 JSFinder https://github.com/Threez…