计算机网络

套接字

套接字(Socket)是计算机网络中用于 实现设备间通信的编程接口,可以理解为网络数据传输的“端点”。它是操作系统提供的底层工具,允许不同设备(或同一设备上的不同程序)通过 IP地址 + 端口号 的组合进行数据交换。

核心概念

  1. 通信端点
    • 每个套接字对应一个唯一的网络地址(IP + 端口),例如: 192.168.1.100:8080(本机IP + Web服务端口) 104.18.21.34:443(远程服务器IP + HTTPS端口)
  2. 协议支持
    • 支持多种网络协议:
      • TCP(传输控制协议):面向连接,数据可靠传输(如网页浏览)。
      • UDP(用户数据报协议):无连接,速度快但不可靠(如视频直播)。
      • 原始套接字(Raw Socket):直接处理底层协议(如ICMP、自定义协议)。
  3. 跨平台性
    • 不同操作系统实现类似接口(如Windows的Winsock、Linux的BSD Socket)。

核心功能

  1. 建立连接
    • TCP:通过三次握手建立连接(客户端-服务器模型)。
    • UDP:无需预先连接,直接发送数据。
  2. 数据传输
    • 发送数据:send()(TCP)或 sendto()(UDP)。
    • 接收数据:recv()(TCP)或 recvfrom()(UDP)。
  3. 地址绑定
    • 服务器通过 bind() 绑定IP和端口,监听客户端请求(如Web服务器监听80端口)。

原始套接字

标准套接字