socket 到底是个啥

socket 到底是个啥

💡 原文中文,约4100字,阅读约需10分钟。
📝

内容提要

本文介绍了socket的概念和底层实现,包括网络通信连接、使用场景和底层设计。socket是用于不同主机程序之间的网络通信连接的套接字,通过socket可以与服务器建立连接并传输数据。文章还讨论了IP地址和端口号的定位、不同的网络协议以及对应的数据结构,以及将socket封装成文件和提供API接口的方式。最后,文章总结了socket是操作系统内核提供的一种数据结构,用于实现网络传输功能,并提供了对应的API接口供应用程序调用。

🎯

关键要点

  • socket是用于不同主机程序之间的网络通信连接的套接字。
  • socket的表现方式由四元组(ip地址:端口)组成。
  • socket的使用场景包括在两台电脑之间传输数据。
  • 服务端通过bind()、listen()、accept()方法等待连接,客户端通过connect()方法发起连接。
  • socket的底层设计涉及到ip地址和端口号的定位。
  • ip地址用于定位电脑,端口号用于定位进程。
  • socket数据结构包含ip和port字段,维护网络协议及场景。
  • 不同的网络协议(如TCP和UDP)对应不同的通信方式和场景。
  • sock是基础结构,inet_sock和tcp_sock等是其扩展,用于实现不同协议的功能。
  • socket需要在内核中实现,以便与硬件网卡交互。
  • 用户态程序通过API接口调用内核中的socket功能。
  • socket提供的接口包括send、recv、bind、listen和connect等。
  • socket是操作系统内核提供的一种数据结构,用于实现网络传输功能。
  • socket分为Internet socket和UNIX Domain socket,前者基于IP协议,后者基于本地文件系统。
➡️

继续阅读