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层(网络接口层、互联网层、传输层、应用层)。

  1. **设计目的**:
  • **OSI模型**:是一个理论模型,旨在提供一个标准化的框架来理解和设计网络协议。

  • **TCP/IP模型**:是一个实际应用模型,基于实际的网络协议(如TCP和IP)而设计。

  1. **协议依赖**:
  • **OSI模型**:不依赖于特定的协议,提供了一个通用的框架。

  • **TCP/IP模型**:紧密依赖于TCP和IP协议,强调协议的实际使用。

  1. **层间关系**:
  • **OSI模型**:每层都有明确的功能和接口,层与层之间的关系较为严格。

  • **TCP/IP模型**:层与层之间的界限不如OSI模型明确,某些层的功能可能会重叠。

  1. **应用广泛性**:
  • **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地址。

相关推荐
冷白白37 分钟前
【Qt】信号和槽机制
服务器·c++·qt
魔法小匠1 小时前
Go 模块化开发入门(go mod 深度解析)
服务器·golang·go·模块化·go mod
岑梓铭2 小时前
计算机网络第九章——数据链路层《概念、组帧、差错控制、可靠传输...》
网络·网络协议·计算机网络·考研·408
小馒头学python2 小时前
【算法学习】蓝耘云智算|利用DeepSeek R1模型提升数据结构与算法学习效率
服务器·数据结构·python·学习·算法
兀行者(做个有情怀的java程序员)3 小时前
Java网络编程入门
java·网络
幻想趾于现实5 小时前
C#中的序列化和反序列化
服务器·c#
ziyu_jia6 小时前
WebSocket 握手过程
网络·websocket·网络协议
粉03216 小时前
linux基于 openEuler 构建 LVS-DR 群集--一、用命令行完成 二、使用脚本完成
linux·服务器·lvs
知识点集锦7 小时前
代发考试战报:2月5号最近考过的思科和华为考试战报
网络·学习·安全·华为·云计算