[应用相关] 网络编程基础

[复制链接]
szt1993 发表于 2025-8-19 15:30 | 显示全部楼层 |阅读模式
一、网络编程基础概念
网络编程的本质是让不同计算机上的进程通过网络交换数据。其核心依赖两个关键体系:

1. 协议栈:TCP/IP模型
计算机网络通过分层协议实现通信,实际应用中以TCP/IP四层模型为核心:

链路层:处理硬件设备(如网卡)的物理数据传输(如以太网帧)。
网络层:负责跨网络的数据包路由(核心协议:IP协议,定义数据包格式和地址)。
传输层:提供端到端的通信服务(核心协议:TCP、UDP)。
应用层:定义具体业务规则(如HTTP、FTP,由开发者实现)。
Socket接口主要工作在传输层和网络层,屏蔽了底层硬件和路由细节,让开发者可直接通过“端口+IP”定位目标进程。



 楼主| szt1993 发表于 2025-8-19 15:30 | 显示全部楼层
2. 核心协议:TCP与UDP

传输层的两个核心协议决定了通信方式的差异:



TCP(传输控制协议):



面向连接:通信前需通过“三次握手”建立连接,结束后“四次挥手”释放连接。

可靠传输:通过确认机制、重传机制、流量控制保证数据不丢失、不重复、按序到达。

字节流:数据以连续字节流形式传输(无边界)。

适用场景:文件传输、网页访问等需可靠数据的场景。

UDP(用户数据报协议):



无连接:直接发送数据,无需建立连接。

不可靠传输:不保证数据到达,可能丢失、乱序。

数据报:数据以独立“数据包”形式传输(有边界)。

适用场景:视频通话、实时游戏等对延迟敏感的场景。


 楼主| szt1993 发表于 2025-8-19 15:30 | 显示全部楼层
3. Socket(套接字)

Socket是操作系统提供的网络通信抽象,本质是一个“文件描述符”(类似文件句柄),通过它可读写网络数据。



每个Socket绑定一个IP地址+端口号,唯一标识网络中的一个进程(IP定位计算机,端口定位进程)。

分类:根据传输层协议,分为流式套接字(SOCK_STREAM,基于TCP) 和数据报套接字(SOCK_DGRAM,基于UDP)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

344

主题

2836

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部