计算机网络(二)-- 应用层

套接字 - 网络应用

  • 客户 / 服务器

    • 标准协议
      • 公开地
    • 专用协议
      • 应用层协议没有公开,独立开发者创建
  • 开发流程

    • 连接类型: TCP / UDP
      • 确定应用程序是运行在TCP上还是运行在UDP上
      • 确定与协议关联的端口号(专用协议,要避开公共端口)

应用程序、运输层、套接字

  • 应用程序

    • 位于应用层(最上层)
    • 用户直接使用的软件程序,是“用户态进程”
    • 比如浏览器、微信、你写的 Python 脚本,它的任务是产生数据(比如“发送这条消息”)
  • 运输层

    • 位于运输层(中间层)
    • 操作系统内核的一部分,操作系统启动时就加载在内核里的一组函数和资源
    • 是操作系统提供的一种服务(不是“用户态进程”)
    • 建立端口到端口的通信,进行数据分段、流量控制和差错控制,(比如 TCP 的可靠传输,UDP 的快速传输)
  • 套接字 (Socket)

    • 应用程序 、运输层 之间的接口

套接字,应用场景

  • 进程间(网络)通信
    • 主机 A 上的 浏览器进程(应用层) 与 主机 B 上的 Web服务器 进程(应用层)
    • 把浏览器所在主机的用户态数据,通过内核运输层、网络层发送出去,最终到达服务器主机的内核,再通过服务器的套接字交给服务器进程
  • 进程 / 内核 间(本机)通信
    • 称为 “系统调用”
    • 应用程序进程(用户态)与 操作系统内核的运输层模块(内核态)
    • 应用程序调用 send() 函数时,数据通过套接字文件描述符,从用户态内存复制到内核态内存,然后由内核的 TCP/IP 协议栈继续处理。
    • 是一种 “用户态-内核态” 的边界通信
posted on 2026-02-25 19:34  中年二班  阅读(9)  评论(0)    收藏  举报