• socket简介


    套接字(Socket)实质上就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,为应用层进程利网络协议交换数据提供了相应机制。套接字出于承上启下的作用,向上连接应用进程,向下则连接网络协议栈,不仅是应用程序通过网络协议进行通信的接口,也是应用程序与网络协议栈进行交互的接口。

    一、套接字类型(socket类型)⭐⭐⭐

    1.1 流式套接字(SOCK_STREAM) TCP

    针对于TCP协议。
    提供了一个面向连接、可靠的数据传输服务,数据无差错、无重复的发送且按发送顺序接收。内设置流量控制,避免数据流淹没慢的接收方。数据被看作是字节流,无长度限制

    1.2 数据报套接字(SOCK_DGRAM) UDP

    针对于UDP协议。
    提供无连接服务。数据包以独立数据包的形式被发送,不提供无差错保证,数据可能丢失或重复,顺序发送,可能乱序接收。

    1.3 原始套接字(SOCK_RAW)

    可以对较低层次协议如IP、ICMP直接访问。

    二、Socket的位置

    image.png

    三、端口号

    3.1 概念

    • 为了区分一台主机接收到的数据包应该转交给哪个进程来进行处理,使用端口号来区分
    • TCP端口号与UDP端口号独立
    • 端口号一般由IANA (Internet Assigned Numbers Authority) 管理
    • 端口用两个字节来表示 2byte

    3.2 划分

    1. 众所周知端口:1 ~ 1023(1 ~ 255之间为众所周知端口,256~1023端口通常由UNIX系统占用)
    2. 已登记端口:1024~49151
    3. 动态或私有端口:49152~65535

    拓展:套接字表示方法

    套接字的表示方法是点分十进制的IP地址后加上端口号,两者之间用冒号或逗号分隔开,即:
    套接字(Socket):(IP地址:端口号)
    例如:IP地址为192.168.112.20,端口号为23,则可得到套接字为(192.168.112.20:23)

  • 相关阅读:
    玩转gpgpu-sim 04记—— __cudaRegisterBinary() of gpgpu-sim 到底做了什么
    C++笔记
    Matlab图像处理-区域描述
    qt5 窗口启动居中显示
    2023工博会,正运动开放式激光振镜运动控制器应用预览(三)
    网卡mac地址的设置
    易语言软件定制软件开发脚本开发协议软件电脑网站APP应用视频制作工程制作
    从 DMAIC 方法论说起,记一个长链接 bug 的排查全过程
    TLSR825x之BDT烧录固件
    如何使用cmd运行java程序
  • 原文地址:https://blog.csdn.net/weixin_43624626/article/details/133658015