CMU CSAPP笔记 第十一章

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/winter_wu_1998/article/details/81912949

基本网络知识

  • 网络系统层次

    • LAN(局域网)
      • Ethernet(以太网)
    • WAN(广域网)
      这里写图片描述

    这里写图片描述

  • 数据的传输过程
    这里写图片描述

这里写图片描述

  • TCP/IP协议

    • IP
      • 基本的命名方法和递送机制
      • IPv4和IPv6
        • 最初的互联网协议使用32位地址,称位IPv4,而IPv6有128位地址
      • IP地址通常以一种点分十进制来表示
        • 128.2.194.242就是地址0x8002c2f2
    • UDP
      • 不可靠数据报协议
      • 使得包可以在进程间而不是主机间传递
    • TCP
      • 提供进程间可靠的双向链接
  • 域名

    • 通过一个叫做DNS的分布式数据库来维护
    • 将IP地址与域名映射
      • 一个IP地址可以映射到多个域名,一个域名也可以映射到多个IP地址
      • 每个主机都有本地域名localhost
      • 通过Linux下的nslookup命令可以查看域名对应的IP地址

这里写图片描述

Socekt

  • socket(套字节)
    • 套字节地址:IP地址:端口
      • 例如199.16.156.198:80
    • 端口分为临时端口和知名端口
      • WEB服务器端口通常为80,电子邮件端口为25
      • 端口为16bit整数
  • socket接口
    • socket从Linux程序角度来看就是一个file descriptor
    • 地址结构
      这里写图片描述

这里写图片描述

  • 服务器和客户端的连接过程
    • 服务器和客户端都调用socket函数创建文件描述符
    • 服务器调用bind函数准备连接
    • 由于默认socket描述符用于客户端,服务器调用listen函数将其转变为监听描述符,这个描述符服务器自开机运行只创建一次
    • 最后调用accept函数等待服务器请求到达,返回已连接描述符,这个描述符每当一个服务器和客服端连接就创建一个
      • 区分监听和已连接的目的是创建并发服务器,同时处理多个客户端
    • 同时客户端(用户)调用connect函数准备连接,打开clientfd描述符
  • 如图, 可以用open_clientfd和open_listenfd函数封装这些函数

这里写图片描述

WEB服务器

  • web服务器向客户端提供的内容
    • 每条服务器返回的内容都和他管理的某个文件相关联,这些文件都有一个唯一的名字URL
      • 客服端使用到端口前的部分,服务器使用端口后的部分
      • 默认端口为80
      • 端口后不加后缀默认为补全缺失的 ‘/’ 并取出网站的主页
    • 静态内容
    • 动态内容

HTTP事务

  • HTTP请求
    • 首先要连接服务器和客户端
    • 格式:method URI version
    • method一般为 GET
    • URI为URL端口后面的部分
    • version为HTTP版本,一般为HTTP/1.0或HTTP\1.1
  • HTTP响应的常见状态码

这里写图片描述

  • 传递动态内容
    • ?分割文件名和参数
    • 每个参数用 & 隔开
    • 举例: GET /adder?1500&213 HTTP/1.1

猜你喜欢

转载自blog.csdn.net/winter_wu_1998/article/details/81912949
CMU