Skip to main content

web service

IANA

0-1023: 众所周知,永久的分给给固定的应用使用,特权端口;

1024-41951:注册端口,要求不是特别严格,分配给程序注册为某应用使用;3306/tcp, 11211/tcp;

41952+: 客户端程序随机使用的端口,动态端口,或私有端口;其范围定义在 /proc/sys/ipv4/ip_local_prot_range

BSD socket

IPC 一种实现,允许位于不同主机(也可以是同一主机)上的进程之间进行通信

  • Socket API(封装了内核中 socket 通信相关的系统调用)

    • SOCK_STREAM: tcp 套接字
    • SOCK_DGRAM: UDP 套接字
    • SOCK_RAW: raw 套接字
  • 根据套接字所使用的地址格式, Socket Domain

    • AF_INET: Address Family, IPv4
    • AF_INET6: ipv6
    • AF_UNIX: 同一主机上的不同进程间基于 socket 套接字通信使用的一种地址;Unix_SOCK
  • TCP 协议的特性

    • 建立连接:三次握手
    • 将数据打包成段:校验和(CRC32)
    • 确认、重传及超时
    • 排序:数据报文排序
    • 流量控制:滑动窗口算法
    • 拥塞控制:慢启动和拥塞避免算法
  • TCP FSM(tcp有限状态机)

    • CLOSED
    • LISTEN
    • SYN_SENT
    • SYN_RECV
    • ESTABLISHED
    • FIN_WAIT1
    • CLOSE_WAIT
    • FIN_WAIT2
    • LAST_ACK
    • TIMEWAIT
    • CLOSED