From c5c96add961f02e610d7991b7ce836de2bb4642e Mon Sep 17 00:00:00 2001 From: Snailclimb Date: Sun, 1 Dec 2019 13:09:46 +0800 Subject: [PATCH] =?UTF-8?q?Update=20=E3=80=90=E7=9C=9F=E5=AE=9E=E9=9D=A2?= =?UTF-8?q?=E8=AF=95=E7=BB=8F=E5=8E=86=E3=80=91=E6=88=91=E6=89=80=E7=BB=8F?= =?UTF-8?q?=E5=8E=86=E7=9A=84=E9=98=BF=E9=87=8C=E4=B8=80=E4=BA=8C=E9=9D=A2?= =?UTF-8?q?=E6=80=BB=E7=BB=93(=E9=99=84=E8=AF=A6=E8=A7=A3).md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...åŽ†çš„é˜¿é‡Œä¸€äºŒé¢æ€»ç»“(附详解).md | 55 ++++++++++++++++++- 1 file changed, 53 insertions(+), 2 deletions(-) diff --git a/docs/essential-content-for-interview/real-interview-experience-analysis/ã€çœŸå®žé¢è¯•ç»åŽ†ã€‘æˆ‘æ‰€ç»åŽ†çš„é˜¿é‡Œä¸€äºŒé¢æ€»ç»“(附详解).md b/docs/essential-content-for-interview/real-interview-experience-analysis/ã€çœŸå®žé¢è¯•ç»åŽ†ã€‘æˆ‘æ‰€ç»åŽ†çš„é˜¿é‡Œä¸€äºŒé¢æ€»ç»“(附详解).md index d1deecf5..a66f7bfa 100644 --- a/docs/essential-content-for-interview/real-interview-experience-analysis/ã€çœŸå®žé¢è¯•ç»åŽ†ã€‘æˆ‘æ‰€ç»åŽ†çš„é˜¿é‡Œä¸€äºŒé¢æ€»ç»“(附详解).md +++ b/docs/essential-content-for-interview/real-interview-experience-analysis/ã€çœŸå®žé¢è¯•ç»åŽ†ã€‘æˆ‘æ‰€ç»åŽ†çš„é˜¿é‡Œä¸€äºŒé¢æ€»ç»“(附详解).md @@ -1,9 +1,13 @@ -本文的内容都是根æ®è¯»è€…投稿的真实é¢è¯•ç»åŽ†æ”¹ç¼–è€Œæ¥ï¼Œé¦–次å°è¯•è¿™ç§é£Žæ ¼çš„æ–‡ç« ï¼ŒèŠ±äº†å‡ å¤©æ™šä¸Šæ‰æ€»ç®—å†™å®Œï¼Œå¸Œæœ›å¯¹ä½ æœ‰å¸®åŠ©ã€‚æœ¬æ–‡ä¸»è¦æ¶µç›–下é¢çš„内容: +本文的内容都是根æ®è¯»è€…投稿的真实é¢è¯•ç»åŽ†æ”¹ç¼–è€Œæ¥ï¼Œé¦–次å°è¯•è¿™ç§é£Žæ ¼çš„æ–‡ç« ï¼ŒèŠ±äº†å‡ å¤©æ™šä¸Šæ‰æ€»ç®—写完,希望对你有帮助。 + +æœ¬æ–‡ä¸»è¦æ¶µç›–下é¢çš„内容: 1. 分布å¼å•†åŸŽç³»ç»Ÿï¼šæž¶æž„图讲解; 2. 消æ¯é˜Ÿåˆ—相关:削峰和解耦; 3. Redis 相关:缓存穿é€é—®é¢˜çš„解决; -4. 一些 Java 基础问题; +4. 一些基础问题: + - 网络相关:1.æµè§ˆå™¨è¾“å…¥URLå‘生了什么? 2.TCPå’ŒUDP区别? 3.TCP如何ä¿è¯ä¼ è¾“å¯é æ€§? + - Java 基础: 䏋颿˜¯æ­£æ–‡ï¼ @@ -148,3 +152,50 @@ 更多关于布隆过滤器的内容å¯ä»¥çœ‹æˆ‘的这篇原创:[《ä¸äº†è§£å¸ƒéš†è¿‡æ»¤å™¨ï¼Ÿä¸€æ–‡ç»™ä½ æ•´çš„æ˜Žæ˜Žç™½ç™½ï¼ã€‹](https://github.com/Snailclimb/JavaGuide/blob/master/docs/dataStructures-algorithms/data-structure/bloom-filter.md) ,强烈推è,个人感觉网上应该找ä¸åˆ°æ€»ç»“的这么明明白白的文章了。 +**é¢è¯•官:** 好了好了。项目就暂时问到这里å§ï¼ä¸‹é¢æœ‰ä¸€äº›æ¯”较基础的问题我简å•地问一下你。内心os: éš¾ä¸æˆè¿™å®¶ä¼™æ»¡å£é«˜å¹¶å‘,连最基础的东西都ä¸ä¼šå§ï¼ + +**我:** å¥½çš„å¥½çš„ï¼æ²¡é—®é¢˜ï¼ + +**é¢è¯•官:** æµè§ˆå™¨è¾“å…¥URLå‘生了什么? + +**我:**内心 osï¼šâ€œå¾ˆå¸¸é—®çš„ä¸€ä¸ªé—®é¢˜ï¼Œå»ºè®®æ‹¿å°æœ¬æœ¬è®°å¥½äº†ï¼å¦å¤–ï¼Œç™¾åº¦å¥½åƒæœ€å–œæ¬¢é—®è¿™ä¸ªé—®é¢˜ï¼ŒåŽ»ç™¾åº¦é¢è¯•å¯è¦æå‰å¤‡å¥½è¿™é“题的功课哦ï¼ç›¸ä¼¼é—®é¢˜ï¼šæ‰“开一个网页,整个过程会使用哪些å议?â€ã€‚ + +> å›¾è§£ï¼ˆå›¾ç‰‡æ¥æºï¼šã€Šå›¾è§£HTTP》): +> +> +> +> 总体æ¥è¯´åˆ†ä¸ºä»¥ä¸‹å‡ ä¸ªè¿‡ç¨‹: +> +> 1. DNSè§£æž +> 2. TCP连接 +> 3. å‘é€HTTP请求 +> 4. æœåС噍处ç†è¯·æ±‚并返回HTTP报文 +> 5. æµè§ˆå™¨è§£æžæ¸²æŸ“é¡µé¢ +> 6. è¿žæŽ¥ç»“æŸ +> +> 具体å¯ä»¥å‚考下é¢è¿™ç¯‡æ–‡ç« ï¼š +> +> - [https://segmentfault.com/a/1190000006879700](https://segmentfault.com/a/1190000006879700) + +**é¢è¯•官:** TCPå’ŒUDP区别? + +**我:** + +> ![TCPã€UDPå议的区别](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-11/tcp-vs-udp.jpg) +> +> UDP åœ¨ä¼ é€æ•°æ®ä¹‹å‰ä¸éœ€è¦å…ˆå»ºç«‹è¿žæŽ¥ï¼Œè¿œåœ°ä¸»æœºåœ¨æ”¶åˆ° UDP 报文åŽï¼Œä¸éœ€è¦ç»™å‡ºä»»ä½•确认。虽然 UDP 䏿供å¯é äº¤ä»˜ï¼Œä½†åœ¨æŸäº›æƒ…况下 UDP ç¡®æ˜¯ä¸€ç§æœ€æœ‰æ•ˆçš„工作方å¼ï¼ˆä¸€èˆ¬ç”¨äºŽå³æ—¶é€šä¿¡ï¼‰ï¼Œæ¯”如: QQ 语音〠QQ 视频 ã€ç›´æ’­ç­‰ç­‰ +> +> TCP æä¾›é¢å‘连接的æœåŠ¡ã€‚åœ¨ä¼ é€æ•°æ®ä¹‹å‰å¿…须先建立连接,数æ®ä¼ é€ç»“æŸåŽè¦é‡Šæ”¾è¿žæŽ¥ã€‚ TCP ä¸æä¾›å¹¿æ’­æˆ–å¤šæ’­æœåŠ¡ã€‚ç”±äºŽ TCP è¦æä¾›å¯é çš„,é¢å‘连接的传输æœåŠ¡ï¼ˆTCPçš„å¯é ä½“现在TCP在传递数æ®ä¹‹å‰ï¼Œä¼šæœ‰ä¸‰æ¬¡æ¡æ‰‹æ¥å»ºç«‹è¿žæŽ¥ï¼Œè€Œä¸”在数æ®ä¼ é€’时,有确认ã€çª—å£ã€é‡ä¼ ã€æ‹¥å¡žæŽ§åˆ¶æœºåˆ¶ï¼Œåœ¨æ•°æ®ä¼ å®ŒåŽï¼Œè¿˜ä¼šæ–­å¼€è¿žæŽ¥ç”¨æ¥èŠ‚çº¦ç³»ç»Ÿèµ„æºï¼‰ï¼Œè¿™ä¸€éš¾ä»¥é¿å…增加了许多开销,如确认,æµé‡æŽ§åˆ¶ï¼Œè®¡æ—¶å™¨ä»¥åŠè¿žæŽ¥ç®¡ç†ç­‰ã€‚è¿™ä¸ä»…使å议数æ®å•元的首部增大很多,还è¦å ç”¨è®¸å¤šå¤„ç†æœºèµ„æºã€‚TCP 一般用于文件传输ã€å‘é€å’ŒæŽ¥æ”¶é‚®ä»¶ã€è¿œç¨‹ç™»å½•等场景。 + +**é¢è¯•官:** TCP如何ä¿è¯ä¼ è¾“å¯é æ€§? + +**我:** + +> 1. 应用数æ®è¢«åˆ†å‰²æˆ TCP 认为最适åˆå‘é€çš„æ•°æ®å—。 +> 2. TCP ç»™å‘é€çš„æ¯ä¸€ä¸ªåŒ…è¿›è¡Œç¼–å·ï¼ŒæŽ¥æ”¶æ–¹å¯¹æ•°æ®åŒ…进行排åºï¼ŒæŠŠæœ‰åºæ•°æ®ä¼ é€ç»™åº”用层。 +> 3. **校验和:** TCP å°†ä¿æŒå®ƒé¦–部和数æ®çš„æ£€éªŒå’Œã€‚这是一个端到端的检验和,目的是检测数æ®åœ¨ä¼ è¾“过程中的任何å˜åŒ–。如果收到段的检验和有差错,TCP 将丢弃这个报文段和ä¸ç¡®è®¤æ”¶åˆ°æ­¤æŠ¥æ–‡æ®µã€‚ +> 4. TCP 的接收端会丢弃é‡å¤çš„æ•°æ®ã€‚ +> 5. **æµé‡æŽ§åˆ¶ï¼š** TCP 连接的æ¯ä¸€æ–¹éƒ½æœ‰å›ºå®šå¤§å°çš„缓冲空间,TCP的接收端åªå…许å‘é€ç«¯å‘é€æŽ¥æ”¶ç«¯ç¼“å†²åŒºèƒ½æŽ¥çº³çš„æ•°æ®ã€‚当接收方æ¥ä¸åŠå¤„ç†å‘逿–¹çš„æ•°æ®ï¼Œèƒ½æç¤ºå‘逿–¹é™ä½Žå‘é€çš„速率,防止包丢失。TCP 使用的æµé‡æŽ§åˆ¶å议是å¯å˜å¤§å°çš„æ»‘动窗å£å议。 (TCP 利用滑动窗å£å®žçްæµé‡æŽ§åˆ¶ï¼‰ +> 6. **拥塞控制:** 当网络拥塞时,å‡å°‘æ•°æ®çš„å‘é€ã€‚ +> 7. **ARQå议:** 也是为了实现å¯é ä¼ è¾“的,它的基本原ç†å°±æ˜¯æ¯å‘å®Œä¸€ä¸ªåˆ†ç»„å°±åœæ­¢å‘é€ï¼Œç­‰å¾…对方确认。在收到确认åŽå†å‘下一个分组。 +> 8. **è¶…æ—¶é‡ä¼ ï¼š** 当 TCP å‘出一个段åŽï¼Œå®ƒå¯åŠ¨ä¸€ä¸ªå®šæ—¶å™¨ï¼Œç­‰å¾…ç›®çš„ç«¯ç¡®è®¤æ”¶åˆ°è¿™ä¸ªæŠ¥æ–‡æ®µã€‚å¦‚æžœä¸èƒ½åŠæ—¶æ”¶åˆ°ä¸€ä¸ªç¡®è®¤ï¼Œå°†é‡å‘这个报文段。 \ No newline at end of file