web性能权威指南学习笔记

TCP(传输控制协议)

三次握手

三次握手

  • SYN
    客户端选择一个随机序列号x,并发送一个SYN分组
  • SYN ACK
    服务器给x加1,并选择自己的一个随机序列号y,追加自己的标志和选项
  • ACK
    客户端给x和y加1,并发送给我收期间的最后一个ACK分组。

    流量控制

    流量控制是一种预防发送端过多想接收端发送数据的机制。
    通告接受窗口(rwnd)

    RFC窗口缩放

    慢启动

    • cwnd拥塞窗口大小
      发送端对从客户端接受确认(ACk)之前可以发送数据量的限制

    拥塞预防

    必须调整窗口大小,以避免造成更多的包丢失。
    PRR:TCP比例降速

    带宽延迟积(BDP)

    数据链路的容量与其端到端延迟的乘积

    队首阻塞

    在这里插入图片描述

    针对TCP优化建议

    • TCP三次握手增加了整整一次往返时间
    • TCP慢启动将被应用到每个新连接
    • TCP流量及拥塞控制会影响所有连接的吞吐量
    • TCP的吞吐量由当前拥塞窗口大小控制

    服务器配置调优

    • 增大TCP的初始化拥塞窗口
      加大起始窗口,可以让TCP在第一次王反就传输较多数据。
    • 慢启动重启
      在连接空闲时禁用慢启动可以改善损失发送数据的长TCP连接的性能
    • 窗口缩放(RFC 1323)
      启用窗口缩放可以增大最大接收窗口大小
    • TCP快速打开

    UDP(用户数据报协议)

    分组

    分组可以用来只带任何格式化的数据块

    数据报

    数据包通常只用来描述那些通过不可靠的服务传输的分组,既不保证送达,也不发送失败通知。

    WebRTC(Web实时通信)

    P2P(Peer-to-Peer,端到端)

    无协议服务

    四个字段:源端口、目标端口、分组长度、校验和
    UDP首部-8字节UDP首部(8字节)
    • 不保证消息交付
      不确认、不重传,不潮湿
    • 不保证交付顺序
      不设置包序号,不重拍,不会发生队首阻塞
    • 不跟踪连接状态
      不必建立连接或重启状态机
    • 不需要拥塞控制
      不内置客户端或网络反馈机制
      UDP是一个简单、无状态协议,数据报必须封装在IP分组中,应用程序必须读取完整的消息,数据报不能分片

NAT(网络地址转换器)-- RFC 1631

IP网络地址转换器
表中包含本地IP和端口到全球唯一(外网)IP的端口和映射

NAT穿透

实现端到端的双向通信
必须知道外网IP地址和目标端口,NAT转换表中也要有一个条目可以将其转换为内部主机的IP地址和端口号
在这里插入图片描述

穿透技术(STUN、TURN、ICE)

STUN

可以让应用程序发现网络中的地址转换器,发现之后进一步取得为当前连接分配的外网 IP 地址
和端口(图 3-5)。
这个协议需要一个已知的第三方 STUN 服务器支持,该服务器必须架设在公网上。
在这里插入图片描述

TURN

TURN 可以在最坏的情况下跳过 UDP 而切换到 TCP。
TURN 中的关键词当然是中继(relay)。这个协议依赖于外网中继设备(图 3-6)在
两端间传递数据。
在这里插入图片描述

ICE

5245)。ICE 规定了一套方法,致力于在通信各端之间建立一条最有效的通道(图 3-7):能直连就直连,必要时 STUN 协商,再不行使用 TURN。
在这里插入图片描述

传输层安全(TLS)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值