TCPIP协议知识点
时间: 2024-12-26 09:13:23 浏览: 18
### TCP/IP 协议基础概念
#### 一、TCP/IP 分层模型概述
TCP/IP协议族是一个四层的概念性框架,每一层负责不同的通信功能。这四个层次分别是链路层、网络层、传输层和应用层[^1]。
- **链路层**:也称为数据链路层或网络接口层,主要职责是定义物理标准、帧格式化、错误检测等功能。
- **网络层**:此层的核心任务是在源主机与目标主机之间转发IP数据包,并实现路由选择的功能。它包含了诸如IP(Internet Protocol)、ICMP(Internet Control Message Protocol)等重要协议[^3]。
- **传输层**:提供了端到端的数据传送服务,确保消息能够可靠地到达目的地。该层有两个主要成员——TCP(Transmission Control Protocol)用于保障可靠性;而UDP(User Datagram Protocol)则侧重于速度而非绝对准确性[^2]。
- **应用层**:位于最顶层的应用程序直接面向用户提供各种具体的服务,比如HTTP(S)、FTP、SMTP等等。
#### 二、TCP 连接的建立与终止过程
对于基于TCP的应用来说,在发送实际有效载荷之前先要经历三次握手的过程来初始化一条新的连接:
1. 客户端向服务器发起SYN请求;
2. 服务器回应ACK确认并附带自己的SYN同步信号;
3. 最终由客户端再次发出ACK完成整个流程的确立。
当会话结束时,则需经过四次挥手才能彻底断开链接,这是因为双方都需要单独通知对方不再有新数据待传,并等待接收方确认收到所有已发信息。
#### 三、IPv4 地址分配方式简介
传统的IPv4采用的是分类编址方案,即A类、B类及C类地址范围划分。然而随着互联网规模不断扩大,这种固定模式逐渐暴露出资源浪费等问题。因此出现了CIDR (Classless Inter-Domain Routing),也就是所谓的无类别域间路由技术,允许更加灵活高效地管理和利用有限的公网IP空间[^4]。
```python
def calculate_ip_range(ip_address, prefix_length):
"""
计算给定前缀长度下的IP地址区间
参数:
ip_address (str): IP地址字符串形式
prefix_length (int): 子网掩码位数
返回值:
tuple: 包含起始IP和结束IP组成的元组
"""
from ipaddress import IPv4Network
network = IPv4Network(f"{ip_address}/{prefix_length}", strict=False)
return str(network.network_address), str(network.broadcast_address)
print(calculate_ip_range('192.0.2.0', 24))
```
阅读全文
相关推荐

















