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地址。

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

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

相关文章

网络安全 | 安全信息与事件管理(SIEM)系统的选型与实施

网络安全 | 安全信息与事件管理(SIEM)系统的选型与实施 一、前言二、SIEM 系统的功能概述2.1 数据收集与整合2.2 实时监控与威胁检测2.3 事件响应与自动化2.4 合规性管理 三、SIEM 系统选型的关键因素3.1 功能需求评估3.2 可扩展性与性能3.3 易用性与可维…

Java中的分布式(概念说明)

1. 分布式的基本概念 1.1 什么是分布式系统? 分布式系统(Distributed System):由多台服务器(或节点)协同工作,对外提供一个整体服务。不同节点之间通过网络通信来协同处理请求或共享数据&…

简单了解应用层DNS协议

DNS(Domain Name System)协议是用于将人类可读的域名(如www.example.com)转换为计算机可识别的IP地址(如192.0.2.1)的系统。 TCP/IP中使用IP地址来确定网络上的一台主机,但是IP地址不方便人们记…

Windows 找不到文件gpedit.msc,没有组策略编辑器,解决办法附上

windows10和11都通用。是不是有人告诉你家庭版本没有gpedit.msc,没有组策略编辑器?这压根就是某软玩的小把戏。Win10/11家庭版可通过修改文件后缀新建bat脚本,添加组策略包,以管理员身份运行后,输入gpedit.msc即可打开…

“PEP 8: W292 no newline at end of file“报错 IntelliJ IDEA自动添加空行问题

"PEP 8: W292 no newline at end of file"报错 IntelliJ IDEA自动添加空行问题 在使用IntelliJ IDEA的过程中,经常会发现不管是对于代码文件或者纯文本文件,在保存时中会在文件末尾加上一个空行,提交GIT对比检查时,总是…

线性数据结构解密:数组的定义、操作与实际应用

系列文章目录 01-从零开始掌握Python数据结构:提升代码效率的必备技能! 02-算法复杂度全解析:时间与空间复杂度优化秘籍 03-线性数据结构解密:数组的定义、操作与实际应用 文章目录 系列文章目录前言一、数组的定义与特点1.1 数组…

docker-compose.yml 详细教学

目录 文件结构 版本 服务(Services) 示例 文件结构 docker-compose.yml 文件通常包含以下几部分: version:指定 Docker Compose 文件的版本。services:定义应用程序中的服务,每个服务对应一个容器。vo…

spring 学习 (注解)

目录 前言 常用的注解 须知 1 Conponent注解 demo(案例) 2 ControllerServiceRepository demo(案例) 3 ScopeLazyPostConstructPreDestroy demo(案例) 4 ValueAutowiredQualifierResource demo(案例) 5 Co…

【设计模式】【行为型模式】迭代器模式(Iterator)

👋hi,我不是一名外包公司的员工,也不会偷吃茶水间的零食,我的梦想是能写高端CRUD 🔥 2025本人正在沉淀中… 博客更新速度 👍 欢迎点赞、收藏、关注,跟上我的更新节奏 🎵 当你的天空突…

C语言-------结构体(1)

数据类型 (1)基本数据类型 整型 浮点型 字符型 (2)构造类型 数组 结构体 结构体: 用来处理,现实生活中,更复杂的数据的描述 用来 描述复杂数据的 一种用户自定义的数…

【centos7】安装redis

rpm链接:http://rpms.famillecollet.com/enterprise/remi-release-7.rpm 下载remi源 wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm 安装remi源 rpm -ivh remi-release-7.rpm 查找remi源中redis的版本 yum --enablereporemi list redis …

获取整十分钟时间戳的多种方法详解

在数据处理、定时任务等场景中,经常需要获取当前时间的整十分钟时间戳。本文将介绍两种常用方法,并拓展其他实现思路,帮助你灵活应对不同需求。 方法一:datetime模块计算法 原理:通过截断分钟数实现时间对齐。 代码实…

AcWing 798. 差分矩阵

题目来源: 找不到页面 - AcWing 题目内容: 输入一个 n 行 m 列的整数矩阵,再输入 q 个操作,每个操作包含五个整数 x1,y1,x2,y2,c,其中 (x1,y1) 和 (x2,y2)表示一个子矩阵的左上角坐标和右下角坐标。 每个操作都要将…

【Python爬虫①】专栏开篇:夯实Python基础

【Python爬虫】专栏简介:本专栏是 Python 爬虫领域的集大成之作,共 100 章节。从 Python 基础语法、爬虫入门知识讲起,深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑,覆盖网页、图片、音频等各类数据爬取&#xff…

数仓:核心概念,数仓系统(ETL,数仓分层,数仓建模),数仓建模方法(星型模型,雪花模型,星座模型)和步骤

数仓建模的核心概念 事实表(Fact Table): 存储业务过程的度量值(如销售额、订单数量等)。 通常包含外键,用于关联维度表。 维度表(Dimension Table): 存储描述性信息&…

【靶机渗透实战】AI:WEB:1

靶机下载官网AI: Web: 1 ~ VulnHub 靶机描述 Difficulty: IntermediateNetwork: DHCP (Automatically assign)Network Mode: NATThis box is designed to test skills of penetration tester. The goal is simple. Get flag from /root/flag.txt. Enumerate the box, get low…

MATLAB中contains函数用法

目录 语法 说明 示例 查找文本 使用模式进行搜索 匹配列表中的任何文本 忽略大小写 确定字符向量中是否包含子字符串 contains函数的功能是确定字符串中是否有模式。 语法 TF contains(str,pat) TF contains(str,pat,IgnoreCase,true) 说明 如果 str 包含指定的模…

【limit 1000000,10 加载很慢该怎么优化?】

在 SQL 数据库中,使用 LIMIT 子句进行分页查询时,如果偏移量(offset)很大,查询性能可能会变得非常差。 这是因为数据库需要扫描和跳过大量的记录才能到达所需的起始位置,然后再取出所需的记录数。 例如,LIMIT 1000000, 10 表示跳过前 100 万条记录,然后取接下来的 10…

Python基于 Flask 创建简单Web服务并接收文件

在全部网口上创建web服务, 监听8080端口关闭debug模式GET时返回HTML界面, 用于提交文件POST到 /upload 时, 从接收的 file 变量中读取文件, 并传递给 opencv 解析为 image 对象 from flask import Flask, request, redirect, url_for import os import cv2 import numpy impor…

zookeeper的zkCli.sh登录server报错【无法正常使用】

如果zookeeper使用zkCli.sh登录的时候老是频闪,没有办法正常使用,大概率是与java的版本不兼容 [zookeeperPostgreSQL bin]$ ./zkCli.sh Connecting to localhost:2181 2025-02-05 19:23:53,933 [myid:] - INFO [main:Environment100] - Client envir…