美文网首页
TCP滑动窗口

TCP滑动窗口

作者: StevenHD | 来源:发表于2020-12-10 21:39 被阅读0次

一、复习review

1.1 多进程和多线程的对比

  • 多线程模型需要处理SIGPIPE信号,因为多次去写就会触发SIGPIPE信号

  • 多进程的优缺点:一个进程挂掉不会影响其他的进程,稳定;进程之间通信麻烦,需要分配更多的内存

  • 多线程的优缺点:一个线程发生致命错误,整个进程都会退出;线程间通信方便,分配的内存少

  • 资源上限:ulimit -a

1.2 状态

二、TCP流量控制(滑动窗口)

  • MSS:Max Segment Size

三、IO复用Select

  • 对比多线程多进程,活跃的就只是少数的几个
  • N核CPU就开N个进程

多进程和多线程的缺点是大量执行单位之间的频繁切换
轮询的缺点是CPU常常会处于空转占用的状态

  • 反应堆就是IO复用——多个套接字Socket放在一起
  • 反应堆使用FD_SET来表示
select大纲

select是从头开始轮询,时间复杂度是O(n)

四、poll(举手)

  • select中的反应堆和结果反应堆是同一个,所以每次要重新初始化
  • poll中的反应堆和结果反应堆分开了,是2个,所以不用初始化

读事件触发
时间复杂度是O(n)
可以处理的事件个数,基于可以打开的fd的个数:65535(ulimit - a);能同时上万个就很牛逼了

五、epoll

  • 调用一次epoll_ctl()只能处理一个文件描述符,如果想处理2个文件描述符,就需要调用2次epoll_ctl()
  • ET的优点:如果从0变成1,是可以及时反馈的,但是LT就不一定
  • ET的缺点:如果错过了时间点,没有检测到触发,那么就再也检测不到了
  • ONESHOT是只监听一次,触发完就会从那棵树上直接摘下该节点
  • epoll树是平衡二叉树
  • epoll时间复杂度是O(logn),因为本质上就是就绪队列,就像在一个平衡二叉树中查找某个节点
  • epoll的缺点是还要维护一棵树,树中节点的删除,添加都是需要时间的

六、setsockopt

  • 要在bind()之前,socket之后,设置端口复用
图示代码
  • 设置套接字属性就放在socket()刚创建出来的后面

先关闭服务器,再重新用相同的端口是可以的,服务器这个时候属于TIME_WAIT状态

七、域名转换

相关文章

  • TCP/IP 协议(转)

    参考:TCP/IP 协议tcp窗口滑动以及拥塞控制解析TCP之滑动窗口(动画演示)

  • TCP的流量控制与拥塞控制机制

    参考:滑动窗口TCP的流量控制和拥塞控制 1 流量控制 利用滑动窗口机制实施流量控制 TCP协议里窗口机制有2种:...

  • TCP-滑动窗口原理

    1 TCP可靠传输的实现 1.1 以字节为单位的滑动窗口 TCP滑动窗口以字节为单位。如下图: 在网络传输中...

  • TCP滑动窗口

    TCP是以一个段为单位的,如果每次只发一个段进行一次确认应答处理的话,将会导致通信性能的下降,尤其是往返时间较长的...

  • TCP滑动窗口

    https://www.cnblogs.com/alifpga/p/7675850.htmlhttps://www...

  • TCP滑动窗口

    一、复习review 1.1 多进程和多线程的对比 多线程模型需要处理SIGPIPE信号,因为多次去写就会触发SI...

  • TCP 滑动窗口

    在 TCP 中,滑动窗口是一个非常重要的概念,因为是以它为基础来进行流控和拥塞控制。 流量控制,根据接收端可接受的...

  • TCP滑动窗口

    滑动窗口协议 窗口是缓存的一部分,用来暂时存放字节流。发送方和接收方各有一个窗口,接收方通过 TCP 报文段中的窗...

  • TCP 滑动窗口原理

    TCP 滑动窗口 TCP 使用滑动窗口做流量控制与乱序重排 RTT 和 RTO RTT发送一个数据包到收到对应的 ...

  • TCP-连接、断开和滑动窗口简介

    转载:TCP-连接、断开和滑动窗口简介 1.TCP概述TCP(Transmission Control Proto...

网友评论

      本文标题:TCP滑动窗口

      本文链接:https://www.haomeiwen.com/subject/eyttgktx.html