• 如何形象解释TCP可靠性?
    TCP传输信息总是漏掉,然后把漏掉的信息补到下一次发送中该如何处理?TCP协议标准,务必保证将数据按发送时的顺序,提交给接收方的应用程序!因为TCP报文在互联网上穿梭,是坐在IP报文这辆小汽车上运输的。有可能产生10个TCP包裹,也有可能是9个、8个、6个、5个。。。TCP有可能将应用程序一个批次的数据,拆分到另一个批次,或者将两个或多个批次的数据进行合并成一个批次,这都是TCP实现的高度自治!这个TCP包裹穿梭在互联网上时,会发生紊乱,接收方的TCP会依据TCP包裹的编号,重新进行排序,放入TCP缓冲区。
  • 面试官问我:一个 TCP 连接可以发多少个 HTTP 请求?我竟然回答不上来...
    要搞懂这个问题,我们需要先解决下面五个问题:现代浏览器在与服务器建立了一个 TCP 连接后是否会在一个 HTTP 请求完成后断开?一个 TCP 连接中 HTTP 请求发送可以一起发送么?第二个问题一个 TCP 连接可以对应几个 HTTP 请求?了解了第一个问题之后,其实这个问题已经有了答案,如果维持连接,一个 TCP 连接是可以发送多个 HTTP 请求的。但是,HTTP2 提供了 Multiplexing 多路传输特性,可以在一个 TCP 连接中同时完成多个 HTTP 请求。我们可以看一下使用 HTTP2 的效果。Chrome 最多允许对同一个 Host 建立六个 TCP 连接。
  • 竟然还有这种TCP攻击方式?
    服务器没有收到Last_ACK,不会释放TCP连接的状态信息,这将会消耗服务器的内存资源。往往超出上限值时,大概率存在恶意的攻击行为。因为一旦伪造就无法收到服务器的“SYN + ACK”,意味着TCP连接压根不会建立,也不会到达“Last_ACK”这种状态。所以意味着这种攻击力有限。服务器能想到的应对措施是:防火墙代理模式,只有完成三次握手的,才能与服务器通信Cookie,只有携带服务器合法TCP Cookie的,才能与服务器通信很显然,这些措施都是被动防御,在排山倒海的攻击流量面前,会显得苍白无力。
  • 面向前端工程师的Nodejs入门手册(二)
    继上一篇介绍了基于Nodejs的http服务和文件操作的内容后,本篇内容主要介绍前端工程师在日常工作中较少接触到的TCP相关知识内容,从Nodejs的TCP模块入手,通过实例看看TCP是怎么一回事。tcp是一种面向连接的、可靠的、基于字节流的传输层通信协议,TCP层是位于IP层之上,应用层之下的中间层。与我们接触最频繁的http请求就是基于它,相比于http,它没有超时时间,正常情况下它可以一直保持连接。
  • 一次简单的 HTTP 调用,为什么时延这么大?抓个包分析下
    由于工作原因,调用耗时的问题,对我来说,已经见怪不怪了,经常会帮业务解决内部 RPC 框架调用超时的相关问题,但是 HTTP 调用耗时第一次遇到。因此在本地使用 Apache HttpClient 写了个简单 Test 程序,直接调用后端的 HTTP 服务,发现平均耗时在 55ms 左右。主要是本地与测试环境的后端的 HTTP 服务机器跨地区了,ping 时延在 26ms 左右,所以延时增大了。那 TCP 协议层面呢?有网络编程经验的同学一定知道 TCP 什么参数会引起这个现象。为什么加了 TCP_NODELAY ,时延就从39.2ms降低到2.8ms?TCP 协议究竟是怎么发送数据包的?在 Java 中,为 ture 表示关闭 Nagle 算法,为 false 表示打开 Nagle 算法。
  • 面试官问我:一个 TCP 连接可以发多少个 HTTP 请求?我竟然回答不上来...
    先来谈谈第一个问题:现代浏览器在与服务器建立了一个 TCP 连接后是否会在一个 HTTP 请求完成后断开?https://tools.ietf.org/html/rfc2616#section-8.1第二个问题:一个 TCP 连接可以对应几个 HTTP 请求?了解了第一个问题之后,其实这个问题已经有了答案,如果维持连接,一个 TCP 连接是可以发送多个 HTTP 请求的。但是,HTTP2 提供了 Multiplexing 多路传输特性,可以在一个 TCP 连接中同时完成多个 HTTP 请求。我们可以看一下使用 HTTP2 的效果。Chrome 最多允许对同一个 Host 建立六个 TCP 连接。
  • 面试官最爱问你的,网络分层中每一层有哪些内容
    前情回顾你真的懂网络分层模型吗?而且对于每一层的的功能细节方面,比如数据包的组成以及每层包含的一些协议的使用都没有细说,那么这一篇文章将会分享网络分层每层中协议等深入讲解。标头的长度固定为 18 字节,也就是说,一些标头识别信息的大小不能超过 18 字节。数据部分的长度最小至少为 46 个字节,最长 1500 字节。No.3网络层网络层中最重要的一个协议就是 IP 协议,我们一般发送端给服务端发送数据同时要知道两个地址才能准确送达到对方,分别为 IP 地址和 MAC 地址。
  • 面试官问我:一个 TCP 连接可以发多少个 HTTP 请求?我竟然回答不上来...
    要搞懂这个问题,我们需要先解决下面五个问题:现代浏览器在与服务器建立了一个 TCP 连接后是否会在一个 HTTP 请求完成后断开?一个 TCP 连接中 HTTP 请求发送可以一起发送么?第二个问题一个 TCP 连接可以对应几个 HTTP 请求?了解了第一个问题之后,其实这个问题已经有了答案,如果维持连接,一个 TCP 连接是可以发送多个 HTTP 请求的。但是,HTTP2 提供了 Multiplexing 多路传输特性,可以在一个 TCP 连接中同时完成多个 HTTP 请求。我们可以看一下使用 HTTP2 的效果。Chrome 最多允许对同一个 Host 建立六个 TCP 连接。
  • 面试官问我:一个 TCP 连接可以发多少个 HTTP 请求?我竟然回答不上来...
    要搞懂这个问题,我们需要先解决下面五个问题:现代浏览器在与服务器建立了一个 TCP 连接后是否会在一个 HTTP 请求完成后断开?一个 TCP 连接中 HTTP 请求发送可以一起发送么?第二个问题一个 TCP 连接可以对应几个 HTTP 请求?了解了第一个问题之后,其实这个问题已经有了答案,如果维持连接,一个 TCP 连接是可以发送多个 HTTP 请求的。但是,HTTP2 提供了 Multiplexing 多路传输特性,可以在一个 TCP 连接中同时完成多个 HTTP 请求。我们可以看一下使用 HTTP2 的效果。Chrome 最多允许对同一个 Host 建立六个 TCP 连接。
  • 面试官问我:一个 TCP 连接可以发多少个 HTTP 请求?我竟然回答不上来...
    先来谈谈第一个问题:现代浏览器在与服务器建立了一个 TCP 连接后是否会在一个 HTTP 请求完成后断开?https://tools.ietf.org/html/rfc2616#section-8.1第二个问题:一个 TCP 连接可以对应几个 HTTP 请求?了解了第一个问题之后,其实这个问题已经有了答案,如果维持连接,一个 TCP 连接是可以发送多个 HTTP 请求的。但是,HTTP2 提供了 Multiplexing 多路传输特性,可以在一个 TCP 连接中同时完成多个 HTTP 请求。我们可以看一下使用 HTTP2 的效果。Chrome 最多允许对同一个 Host 建立六个 TCP 连接。
  • Linux网络协议之旅,用西游记的故事串联整个网络世界(必看!)
    佛祖所管辖之下,有四个区域Region,称为四大部洲,一是东胜神洲,二是南赡部洲,三是西牛贺洲,四是北俱卢洲。在每个区域Region,为保证真经永固,设置多个藏经楼,称为可用区。神仙体系组织严格,层次分明,不同的接入层神仙交换经文,要通过汇聚层神仙同意,不同的汇聚层神仙交换经文,需要核心层神仙同意。经文的看守要万无一失,因而每一层都是分组看护,互相监督,互相备份,称为堆叠。当然是BGP协议了。边界路由器可以通过BGP协议,将自己数据中心里面的外网IP向外广播,也就是告诉全世界,如果要访问这些外网IP,都来我这里。
  • 42道计算机网络面试高频题+答案,面试官喜欢的答案都在这里!
    而且对于计算机网络和计算机操作系统会因为公司和岗位的不同而有所侧重的,多看看面经就会发现还是有一点规律的,但是这都不是绝对的,最后还要看面你的面试官的喜好。计算机五层网络体系中涉及的协议非常多,下面就常用的做了列举:3、ARP 协议的工作原理?首先,每台主机都会在自己的 ARP 缓冲区中建立一个 ARP 列表,以表示 IP 地址和 MAC 地址的对应关系。网络中所有的主机收到这个 ARP 请求后,会检查数据包中的目的 IP 是否和自己的 IP 地址一致。
  • 简单的 HTTP 调用,为什么时延这么大?
    由于工作原因,调用耗时的问题,对我来说,已经见怪不怪了,经常会帮业务解决内部 RPC 框架调用超时的相关问题,但是 HTTP 调用耗时第一次遇到。因此在本地使用 Apache HttpClient 写了个简单 Test 程序,直接调用后端的 HTTP 服务,发现平均耗时在55ms左右。主要是本地与测试环境的后端的 HTTP 服务机器跨地区了,ping 时延在26ms左右,所以延时增大了。那 TCP 协议层面呢?有网络编程经验的同学一定知道 TCP 什么参数会引起这个现象。为什么加了 TCP_NODELAY ,时延就从39.2ms降低到2.8ms?TCP 协议究竟是怎么发送数据包的?在 Java 中,为 ture 表示关闭 Nagle 算法,为 false 表示打开 Nagle 算法。
  • 聊一聊字节跳动的面试
    如果发送主机在一个特定时间内没有收到接收主机的确认,则发送主机会重传此数据包。接收主机利用序列号对接收的数据进行确认,以便检测对方发送的数据是否有丢失或者乱序等。接收主机一旦收到已经顺序化的数据,它就将这些数据按正确的顺序重组成数据流并传递到高层进行处理。假如短时间关闭又重新实现一个 TCP 还连到了同个端口上,旧连接中尚未消失的数据就会被认为是新连接的数据。在接收端同样也有一个接收窗口,(解释)GBN采用的是累计确认方式,这时候说一下选择重传机制。再说一下 TCP 中既不是 GBN 也不是 SR ,而是 GBN 和 SR 的综合体。
  • 简单聊聊 TCP 的可靠性
    前言传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议,由 IETF 的 RFC 793 定义。TCP 在不可靠的 IP 协议之上实现了可靠性, 从而使得我们不必再去关注网络传输中的种种复杂性,所谓的可靠就是让我们去信任它即可。什么是可靠性其实在RFC 793的1.5 Operation专门对Reliability(可靠性)做了说明。0x01 解决干扰为了能够检测到数据包在传输过程中是否发生了差错,TCP 引入了checksum。除此之外,seq使得 TCP 有能力处理重复数据包的问题(幂等),因为接收方可以根据seq判断出该数据包是不是已经被接收了,这样顺带还解决了数据冗余的问题。
  • 深入理解 web 协议(一)- http 包体传输
    强迫症发作的我决定这一次彻底将web协议搞懂搞透,如果你遇到了和我一样的问题,例如对http的了解,仅限于charles抓个包。实战有助于真正理解协议本身。http 队头拥塞: 主要以若干个实验来理解http 队头拥塞的本质,并给出okhttp与浏览器在策略上的不同。http 包体传输:以若干个实验来理解http 包体传输的过程。http RFC规范中,规定了X-Forwarded-For 用于传递真正的ip地址。在实际生产环境中,我们是可以在http response中将上述经过的代理服务器信息一一返回给客户端的。
  • 详解Java IO的工作机制
    一、Java的I/O类库的基本架构 Java的IO操作类在包java.io下,大概有将近80个类,这些类大概可以分为以下4组: ● 基于字节操作的I/O接口:InputStream 和 OutputStream ● 基于字符操作的I/O接口:Writer 和 Reader ● 基于磁盘操作的I/O接口:File ● 基于网络操作的I/O接口:Socket前两组主要是传输数据的数据格式,后两组主要是传输数据的方式,虽然Socket类并不在java.io包下,但仍然将其划分在一起。
  • 从 Masscan, Zmap 源码分析到开发实践
    理论上的6分钟扫描全网在后面自己写扫描器的过程中,对Masscan的扫描速度产生怀疑,目前Masscan是号称6分钟扫描全网,以每秒1000万的发包速度。Masscan把它叫做C10M问题。多线程输出到文件 Masscan的做法是每个线程将内容输出到不同文件,最后再集合起来。在收到syn和ack后,我们返回一个rst来结束这个连接,如下图所示Masscan和Zmap的扫描原理,就是利用了这一步,因为seq是我们可以自定义的,所以在发送数据包时填充一个特定的数字,而在返回包中可以获得相应的响应状态,即是无状态扫描的思路了。接下来简单看下Masscan中发包以及接收的代码。
  • BBR及其在实时音视频领域的应用
    本次我分享的主题是BBR及其在实时音视频领域的应用,BBR全称是Bottleneck Bandwidth and RTT,它是谷歌在2016年推出的全新网络拥塞控制算法,在此之后大家对于拥塞控制的关注度逐渐提高,越来越多的新算法被推出。本次分享的内容主要包括BBR算法的基本原理以及BBR算法如何应用在网易云信的实时音视频产品中。整个BBR的拥塞控制在启动之后,最终是在Drain和ProbeBW阶段之间切换。
  • 解读HTTP/2与HTTP/3 的新特性(推荐)
    前言HTTP/2 相比于 HTTP/1.1,可以说是大幅度提高了网页的性能,只需要升级到该协议就可以减少很多之前需要做的性能优化工作,当然兼容问题以及如何优雅降级应该是国内还不普遍使用的原因之一。虽然 HTTP/2 提高了网页的性能,但是并不代表它已经是完美的了,HTTP/3 就是为了解决 HTTP/2 所存在的一些问题而被推出来的。
活跃用户
《中国银行保险报》是中国银行保险监督管理委员会主管唯一工作日报。
专注于.NET Core的技术传播。在这里你可以谈微软.NET,Mono的跨平台开发技术。在这里可以让你的.NET项目有新的思路,不局限于微软的技术栈,横跨Windows,Linux 主流平台
这里有技术、算法、职场、感悟、面经、资源,一线大厂干货,10万 + 程序员都在看,做一个有趣的帮助程序员成长的公众号,每天早上8点20,第一时间与你相约。
《前端剑解》 —— 是由海之林技术团队维护的前端公众号,关注前端技能的发展;【前端面试每日3+1】 —— 365天,每天早上5点发布面试题(html, css, js, 软技能),以面试题来驱动学习,提倡每日学习与思考,每天进步一点!
号主是来自后厂村的十年资深架构师,技术leader,著有两本技术畅销书,多个业界顶级技术大会的特邀演讲嘉宾和出品人。除了分享技术干货,还关注程序员的技术生活、职场晋升、逆袭成长,助力10万+程序员崛起。
Flink/Spark/Hadoop/数仓开发,干货,面试,资料下载,源码解读等
《科技日报》是富有鲜明科技特色的综合性日报,是面向国内外公开发行的中央主流新闻媒体,是党和国家在科技领域的重要舆论前沿,是广大读者依靠科技创造财富、提升文明、刷新生活的服务平台,是中国科技界面向社会、连接世界的明亮窗口。
华为技术有限公司官方微信帐号
每天分享 Java技术栈 干货,路虽远,行则必至。
“早春江上雨初晴,杨柳丝丝夹岸莺。画舫烟波双桨急,小桥风浪一帆轻”,这是机器通过学习中华诗词然后以”早春“为题所写的一首诗。很多人非常恐惧AI的发展对人类的冲击,但我坚信AI会让世界变得更加美好,生活是美好的,所以我们一起,勇敢AI吧!
一个专注侃侃计算机视觉方向的公众号。计算机视觉、图像处理、机器学习、深度学习、C/C++、Python、诗和远方等。
程序员职业规划:职场晋升之路;探讨程序员转化转管理之路。程序员学习管理之道:团队管理、项目管理、管理工具的推荐和使用经验。
乔哥是百度java工程师,专注Java相关技术:Java面试、Spring全家桶、微服务、Mysql、集群、分布式、中间件、Linux、网络、多线程等,致力于Java全栈开发!
西安交大品牌讲座“学而讲坛”创始人和负责人,致力于打造一个跨界融合的学术共同体。北大文学博士,西安交大国家大学生文化素质教育基地副主任,人文学院高培中心主任,著有《陕西文化产业实战研究》、《视觉素养导论》、《艺术导论》、《读图范式》等。
专注于分享互联网技术文章。笔者待过BAT等一线互联网公司,文笔流畅,酷爱写作与编码,期待你的关注!