流量控制

HTTP/2 新特性总结

和自甴很熟 提交于 2019-12-02 02:08:27
我在想了解HTTP/2的时候,查阅了很多资料,发现这篇很好,是外国的文章.我翻译过来,加入自己的一点理解. HTTP/2 更简单,高效,强大.它在传输层解决了以前我们HTTP1.x中一直存在的问题.使用它可以优化我们的应用.HTTP/2 的首要目标是通过完全的请求,响应多路复用,头部的压缩头部域来减小头部的体积,添加了请求优先级,服务端推送.为了支持这些特性,他需要大量的协议增加头部字段来支持,例如新的流量控制,差错处理,升级机制.而这些是每个web开发者都应该在他们的应用中用到的. HTTP/2并没有在应用中改变HTTP的语义,而是通过在客户端和服务端传输的数据格式(frame)和传输.它通过在新的二进制帧层控制整个过程以及隐藏复杂性,而这不需要改变原来有的东西就可以实现. 1. 设计和技术目标 HTTP是因特网广泛普及和采纳的应用层协议.它的易于实现性同样有了对应用性能方面的影响.HTTP/1.x 需要开启多个连接来实现并发和减少潜在影响.HTTP/1.x 的头部没有压缩,造成不必要的网络拥塞.HTTP/1.x没有应用资源优先级,导致重要Tcp连接的糟糕使用. 它的好处如下; HTTP/2 enables a more efficient use of network resources and a reduced perception of latency by

计算机网络之传输层

时光毁灭记忆、已成空白 提交于 2019-12-02 02:01:21
传输层提供了应用进程间的逻辑通信。 传输层向高层用户屏蔽了下面网络层的核心细节,使应用程序看见的好像在两个传输层实体之间有一条端到端的逻辑通信信道。 传输层是第一个端到端,即主机到主机的层次。 传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。 UDP 和 TCP 的特点 用户数据包协议 UDP(User Datagram Protocol) 传输控制协议 TCP(Transmission Control Protocol) UDP: 是无连接的,尽最大可能交付,没有拥塞控制,面向报文(对于应用程序传下来的报文不合并也不拆分,只是添加 UDP 首部)。 TCP: 是面向连接的,提供可靠交付,有流量控制,拥塞控制,提供全双工通信,面向字节流 (把应用层传下来的报文看成字节流,把字节流组织成大小不等的数据块)。 UDP 首部格式: 首部字段只有 8 个字节,包括源端口、目的端口、长度、检验和。 12 字节的伪首部是为了计算检验和而临时添加的。 TCP 首部格式: 序号 :用于对字节流进行编号,例如序号为 301,表示第一个字节的编号为 301, 如果携带的数据长度为 100 字节,那么下一个报文段的序号应为 401。 确认号 :期望收到的下一个报文段的序号。 因此 B 期望下一个报文段的序号为 701,B 发送给 A 的确认报文段中确认号就为 701。 数据偏移

20170907_我是如何讲清楚TCP协议是如何保证可靠传输的

我怕爱的太早我们不能终老 提交于 2019-12-01 19:50:31
20170907_我是如何讲清楚TCP协议是如何保证可靠传输的 题外话: 1、UDP: (1) UDP ,user datagram protocol, 用户数据报协议 ,不提供复杂的控制机制, 利用IP提供面向无连接的通信服务,并且它是将应用程序发送过来的数据包在收到的那一刻,立即按照原样发送到上的一种机制。 (2)即使在网络拥堵的情况下,UDP也无法进行流量控制等避免网络拥塞的行为。此外,在传输过程中如果出现丢包,UDP也不负责重发,甚至当数据包的到达顺序乱掉之后也没有纠正顺序的功能。因此, 如果需要这些细节控制的话,就需要在采用UDP协议的应用层去作出处理。 (3)由于UDP面向无连接,所以它可以随时向对端发送数据包,再加上UDP本身的处理既简单右高效, 所以UDP经常用于如下几个方面: 数据包总量比较少的通信,比如DNS、SNMP。 视频、音频等对实时性要求比较高的多媒体通信。 广播通信、多播通信。 2、TCP: (1) TCP,控制传输协议 ,和UDP的差别很大, 它充分实现了数据传输时的各种控制功能 : 针对发送端发出的数据包的确认应答信号ACK、、、针对数据包丢失或者出现定时器超时的重发机制、、、针对数据包到达接收端主机顺序乱掉的顺序控制、针对高效传输数据包的流动窗口控制、、、针对避免网络拥堵时候的流量控制、、

TCP/IP协议栈

可紊 提交于 2019-11-30 06:15:52
文章目录 一、参考书籍 二、必须掌握的内容 1.TCP/IP协议体系的认知 2.数据链路层 3.网络层 4.传输层 5.应用层 三、常见面试题目 1.分层的概念 2.数据链路层 3.网络层 (1)IP协议 (2)ICMP协议 四、传输层 1.UDP协议 2.TCP协议 五、应用层 1.DNS 2.http基本格式 六、参考 一、参考书籍 (1)TCP/IP详解 卷1:协议 (2)计算机网络:自顶向下方法 二、必须掌握的内容 1.TCP/IP协议体系的认知 (1)分层。一部分处于用户态,一部分处于内核态。数据链路层,网络层,传输层封装于操作系统内核态。应用层存在于操作系统的用户空间,包括DNS,FTP,HTTPs,HTTP,工作中接触较多的是应用层的部分。但其它层的原理必须理解,面试考察。 (2)层与层之间下层对上层是透明的,传输在每一层是对等的。 2.数据链路层 (1)以太网帧的格式。 (2)MTU(最大传输单元)的概念。 (3)ARP协议和RARP协议(地址协议和逆地址协议,网卡MAC地址和IP地址互查机制)(网络层和链路层的中间层)ARP报文格式,查询原理,缓存机制 3.网络层 (1)掌握IP首部格式:如16位分片标识、DF不分片标志、MF更多分片标志、13位片偏移、8位生存时间TTL、16位的首部检验和等等。 (2)掌握如何IP分片:如总长大于MTU值,画分片情况

爆锤TCP/UDP

爷,独闯天下 提交于 2019-11-29 22:17:44
TCP/UDP TCP: 传输控制协议(英语:Transmission Control Protocol,缩写为TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。 UDP: 用户数据报协议(英语:User Datagram Protocol,缩写为UDP),又称使用者资料包协定,是一个简单的面向数据报的传输层协议,正式规范为RFC 768。 前言: 关于TCP和UDP这两个协议是面试中非常常见的问题,本文讨论以下几个问题: 什么是TCP 什么是UDP TCP和UDP的异同点 TCP和UDP的应用场景 1. TCP和UDP的异同点 1.1 相同点 UDP和TCP同属于传输层的协议 1.2 不同点 TCP面向字节流,而UDP面向数据报。 解释: TCP收发的是一堆数据,是一个数据流,而每次取多少由主机决定; 而UDP发的是数据报,客户发送多少就接收多少 TCP是面向连接的,而UDP不是面向连接的。 解释: TCP是面向连接的,也就是说,在连接持续的过程中,socket中收到的数据都是由同一台主机发出的,因此,知道保证数据是有序的到达就行了,至于每次读取多少数据自己看着办。 而UDP是无连接的协议,也就是说,只要知道接收端的IP和端口,且网络是可达的,任何主机都可以向接收端发送数据。 TCP是可靠的,而UDP是不可靠的。 解释:

快速了解TCP的流量控制与拥塞控制

霸气de小男生 提交于 2019-11-29 18:18:49
有关TCP你不能不知道的三次握手和四次挥手问题, 点我跳转 流量控制 1. 滑动窗口 数据的传送过程中很可能出现接收方来不及接收的情况,这时就需要对发送方进行控制以免数据丢失。利用滑动窗口机制可以很方便地在TCP连接上对发送方的流量进行控制。TCP的窗口单位是字节,不是报文段,发送方的发送窗口不能超过接收方给出的接收窗口的数值。 TCP规定,即使设置为零窗口,也必须接收以下几种报文段: 零窗口探测报文段 确认报文段 携带紧急数据的报文段 确认丢失和确认迟到 持续计时器 存在这样一种情况:发送方接收到零窗口报文之后将发送窗口设置为0,停止发送数据。但等到接收方有足够缓存,发送了非零窗口大小的报文,但是这个报文中途丢失,那么发送方的发送窗口就一直为0导致死锁。 为此,TCP为每一个连接设有一个持续计时器(Persistence Timer):当TCP连接的一方收到对方的零窗口通知时就启动持续计时器。若持续计时器时间到期,就发送一个零窗口探测报文段(携有1字节的数据),那么收到这个报文段的一方就在确认这个探测报文段时给出了现在的窗口值。若窗口仍然是零,则收到这个报文段的一方就重新设置持续计时器;若窗口不是零,则死锁的僵局就可以打破了。 2. 延迟ACK 如果TCP对每个数据包都发送一个ACK确认,那么只是一个单独的数据包为了发送一个ACK代价比较高,所以TCP会延迟一段时间

基于.NET CORE微服务框架 -谈谈surging API网关

南笙酒味 提交于 2019-11-29 09:31:32
1、前言 对于最近surging更新的API 网关大家也有所关注,也收到了不少反馈提出是否能介绍下Api网关,那么我们将在此篇文章中谈谈surging Api 网关 开源地址: https://github.com/dotnetcore/surging 2. API网关 简介 API 网关是服务提供者的访问入口,主要起到隔离外部访问与内部系统的作用。它主要解决服务消费者的身份认证、监控、负载均衡、缓存、限流等问题。 API网关的流行,源于近几年的大型互联网的兴起,从以前的单体应用,到垂直应用架构,再到现在的微服务架构,而微服务的出现,让API网关成为微服务的标配组件 作用和价值 对于API网关主要起到以下作用: 系统隔离:隔离外部访问与内部系统 业务解耦:解耦各层的相互依赖,快速应对业务变化,使得微服务能够独立灵活部署,统一管理 灵活配置:对于微服务水平和垂直扩展能顺利进行而搭设的工作平台,平台能对于服务进行灵活配置。 系统隔离 内部服务与外网都是隔离的,为了安全考虑,应用服务都是运行在内网,不允许外部访问,这时候API网关通过身份验证、数据安全、容错降级等规则,对访问进行了初步的过滤,从而达到灵活动态配置,保证了数据的安全性和系统的可靠性。 系统模块的解耦 微服务所面向的角色包括服务提供者,服务消费者,服务运维等,各个角色都有各自的述求,为了满足各个角色的需求和依赖关系

TCP怎么保证证包有序传输的,TCP的慢启动,拥塞避免,快速重传,快速恢复

不羁岁月 提交于 2019-11-29 04:10:24
TCP提供了最可靠的数据传输,它给发送的每个数据包做顺序化(这看起来非常烦琐),然而,如果TCP没有这样烦琐的操作,那么,可能会造成更多的麻烦。如造成数据包的重传、顺序的颠倒甚至造成数据包的丢失。 那么,TCP具体是通过怎样的方式来保证数据的顺序化传输呢? 主机每次发送数据时,TCP就给每个数据包分配一个序列号并且在一个特定的时间内等待接收主机对分配的这个序列号进行确认,如果发送主机在一个特定时间内没有收到接收主机的确认,则发送主机会重传此数据包。接收主机利用序列号对接收的数据进行确认,以便检测对方发送的数据是否有丢失或者乱序等,接收主机一旦收到已经顺序化的数据,它就将这些数据按正确的顺序重组成数据流并传递到高层进行处理。 具体步骤如下: (1)为了保证数据包的可靠传递,发送方必须把已发送的数据包保留在缓冲区; (2)并为每个已发送的数据包启动一个超时定时器; (3)如在定时器超时之前收到了对方发来的应答信息(可能是对本包的应答,也可以是对本包后续包的应答),则释放该数据包占用的缓冲区; (4)否则,重传该数据包,直到收到应答或重传次数超过规定的最大次数为止。 (5)接收方收到数据包后,先进行CRC循环冗余校验(Cyclic Redundancy Check, CRC)校验,如果正确则把数据交给上层协议,然后给发送方发送一个累计应答包,表明该数据已收到

TCP之滑动窗口----流量控制

房东的猫 提交于 2019-11-28 21:55:39
1.什么是滑动窗口 指的是接收方能接收数据的能力,即:接收缓冲区大小 2.滑动窗口的作用 为了实现流量控制 3.滑动窗口的处理 如果对方返回的窗口大小win为0的话,表示对方暂时不能接收数据,并会给对方发送一个探测报文,直到对方回复的报文窗口win大小不为0 如果对方返回的窗口大小win不为0,则表示可以发送数据,数据内容为[ack,ack+win窗口) 假设网络是理想的,不拥塞,只要发了数据,对方一定能收到 4.滑动窗口与拥塞窗口的区别 滑动窗口:指的是接收方的能力 拥塞窗口:发送方一次想发多少字节的数据 来源: https://blog.csdn.net/Hh20161314/article/details/100133597

计算机网络

萝らか妹 提交于 2019-11-28 21:35:24
关于 TCP 并发连接的几个思考题与试验 TCP 源端口号与目的端口号: 源端口号与目的端口号, 加上IP首部的源IP地址和目的IP地址唯一确定一个TCP连接 序号: 一次TCP通信(从TCP连接建立到断开)过程中某一个传输方向上的字节流编号 确认号: 仅当ACK标志位1时有效. 表示期望下一个字节的序号 头部长度: 标识TCP头部有多少个32bit(4字节). 因为4位最大能表示15, 所以TCP头部长度是60字节 保留位: 6位, 必须全为0 6个标志位: URG: 紧急指针是否有效 ACK: 确认序号是否有效 PSH: 接收方应尽快将这个报文段从TCP接收缓冲区中读走 RST: 表示要求对方中心建立连接. 称携带RST标志的TCP报文为复位报文段 SYN: 请求建立连接. 称携带SYN标志的TCP报文为同步报文段 FIN: 表示通知对方本端要关闭连接. 称携带FIN标志的TCP报文为结束报文段 16位窗口大小: 通过窗口大小来达到流量控制 检验和: 由发送端填充, 接收端对TCP报文执行CRC算法以检验TCP报文在传输过程中是否损坏. TCP特点: 基于字节流 --> 边界问题, 粘包问题 面向连接 可靠传输 缓冲传输 全双工 流量控制 --> 窗口机制 选项与填充(选项为4字节整数倍, 否则用0填充) 最常见的可选字段是最长报文大小MSS(Maximum Segment