深入理解传输层协议与套接字编程
1. 传输层协议概述
传输层(L4)协议在网络通信中扮演着至关重要的角色。常见的传输层协议有用户数据报协议(UDP)、传输控制协议(TCP),还有较新的流控制传输协议(SCTP)和数据报拥塞控制协议(DCCP)。其中,UDP和TCP已经使用多年,而SCTP和DCCP则结合了TCP和UDP的特点。
2. 套接字API
操作系统需要为其网络子系统提供入口点和API。Linux内核网络子系统通过标准的POSIX套接字API与用户空间进行交互,该API基于伯克利套接字API,是多个操作系统的行业标准。在Linux中,传输层以上的部分属于用户空间,并且遵循“一切皆文件”的Unix范式,套接字与文件相关联。
以下是可用的套接字类型:
- 流套接字(SOCK_STREAM) :提供可靠的字节流通信通道,例如TCP套接字。
- 数据报套接字(SOCK_DGRAM) :用于交换消息(数据报),提供不可靠的通信通道,因为数据包可能会被丢弃、乱序到达或重复。例如UDP套接字。
- 原始套接字(SOCK_RAW) :直接访问IP层,允许在没有任何特定协议的传输层格式的情况下发送或接收流量。
- 可靠传递消息(SOCK_RDM) :由透明进程间通信(TIPC)使用,最初由爱立信在1996 - 2005年开发,用于集群应用。
- 顺序数据包流(SOCK_SEQPACKET) :类似于SOCK_STREAM类型,也是面
超级会员免费看
订阅专栏 解锁全文

4763

被折叠的 条评论
为什么被折叠?



