• Click to hide sidebar Click to show sidebar
  • Click to hide sidebar Click to show sidebar
  • 计算机网络 - 笔记

    Notes about Computer Network

    网络 note

    浏览器

    首先解析url

    http方法:

    方法含义
    GET获取指定信息,uri为文件则返回内容,uri为CGI程序,返回输出
    POST客户端向服务端发送表单数据
    HEAD与GET基本相同,只返回http小洗头,获取文件最后更新时间等属性信息
    OPTIONS通知或查询通信选项
    PUT替换uri指定的服务器的文件,若指定的文件不存在则创建
    DELETE删除uri指定的服务器文件
    TRACE将服务器收到的请求行和头部直接返回客户端
    CONNECT使用代理传输加密消息时使用的方法

    http状态码:

    状态码含义
    1xx告知请求处理进度和情况
    2xx成功
    3xx表示需要进一步操作
    4xx客户端错误
    5xx服务器错误

    向DNS服务器查询Web服务器的IP地址

    IP地址,32bit数字,按照8bit一组分为4组

    附加子网掩码,一串与IP地址相同的32bit数字,左边一半都是1,右边一半都是0,子网掩码为1的部分表示网络号,0的部分表示主机号

    可以采用网络号bit数直接表示掩码,主机号全Bit为0则为子网,主机号部分全Bit为1则表示对整个子网进行广播

    向DNS服务器查询IP地址:域名解析,解析器(包含在Socket库中)

    DNS服务器接力查找,通过缓存加快

    委托协议栈发送消息

    • 创建套接字
    • 将管道连接到服务器端的套接字上
    • 收发数据
    • 断开管道并删除套接字

    TCP_IP_layers

    浏览器、邮件等一般应用程序收发数据时用 TCP; DNS 查询等收发较短的控制数据时用 UDP。

    协议栈上半部分TCP, UDP 下半部分用IP协议控制网络包收发操作的部分,IP包括ICMP和ARP协议,前者告知网络包传送过程产生的错误及各种控制信息,ARP根据IP地址查询相应以太网MAC地址

    套接字:OS,给应用程序描述符 连接:通信双方交换控制信息,填充到套接字相应字段

    网络包中控制信息:头部

    连接操作的第一步是在TCP模块处创建表示连接控制信息的头部 通过TCP头部中的发送方和接收方端口号可以找到要连接的套接字

    收发数据:

    协议栈收到数据会存放发送缓冲区,网络包尽量满再进行发送

    网络包容纳数据长度:

    • MTU:网络包最大长度,以太网中一般1500字节,为包含头部的总长度
    • MSS:数据长度(MTU-头部)

    TCP协议头部ACK号,进行丢包核验,若有包没收到则直接重传,只有此步进行错误补偿

    根据ACK返回快慢动态调整等待时间

    利用滑动窗口,不用等待ACK号返回,直接发后续包