![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络编程
飞飛飛
比你优秀的人还在努力!
展开
-
网络编程懒人入门(一):快速理解网络通信协议(上篇)
转载自http://www.52im.net/thread-1095-1-1.html1、正文引言我们每天使用互联网,你是否想过,它是如何实现的?全世界几十亿台电脑,连接在一起,两两通信。上海的某一块网卡送出信号,洛杉矶的另一块网卡居然就收到了,两者实际上根本不知道对方的物理位置,你不觉得这是很神奇的事情吗?互联网的核心是一系列协议,总称为"互联网协议"(Internet Pro...转载 2019-04-17 09:55:49 · 477 阅读 · 0 评论 -
不为人知的网络编程(七):如何让不可靠的UDP变的可靠?
转载自http://www.52im.net/thread-1293-1-1.html1、前言最近和很多实时音视频领域的朋友交流中都有谈论到 RUDP(Reliable UDP),这其实是个老生常谈的问题,RUDP 在很多著名的项目上都有使用,例如 Google 的 QUIC 和WebRTC。在 UDP 之上做一层可靠,很多朋友认为这是很不靠谱的事情,也有朋友认为这是一个大杀器,可以解...转载 2019-04-25 09:30:27 · 530 阅读 · 0 评论 -
不为人知的网络编程(六):深入地理解UDP协议并用好它
转载自http://www.52im.net/thread-1024-1-1.html1、前言很早就计划写篇关于UDP的文章,尽管UDP协议远没TCP协议那么庞大、复杂,但是要想将UDP描述清楚,用好UDP却要比TCP难不少,于是文章从下笔写到最终写成,断断续续拖了好几个月。本文接系列文章的上篇《不为人知的网络编程(五):UDP的连接性和负载均衡》,将从实践出发,讨论如何深入地理解U...转载 2019-04-24 13:16:19 · 217 阅读 · 0 评论 -
不为人知的网络编程(五):UDP的连接性和负载均衡
转载自http://www.52im.net/thread-1018-1-1.html1、前言很早就计划写篇关于UDP的文章,尽管UDP协议远没TCP协议那么庞大、复杂,但是要想将UDP描述清楚,用好UDP却要比TCP难不少,于是文章从下笔写到最终写成,断断续续拖了好几个月。说起网络 socket,大家自然会想到 TCP ,用的最多也是 TCP,UDP 在大家的印象中是作为 TCP ...转载 2019-04-24 13:10:34 · 220 阅读 · 0 评论 -
不为人知的网络编程(四):深入研究分析TCP的异常关闭
转载自http://www.52im.net/thread-1014-1-1.html1、前言研究测试TCP断开和异常的各种情况,以便于分析网络应用(比如tconnd)断网的原因和场景,帮组分析和定位连接异常掉线的问题,并提供给TCP相关的开发测试人员作为参考。各个游戏接入都存在一定的掉线问题,而且有的游戏项目的掉线比例还比较高,现在腾讯互娱自研游戏的网络接入基本上都用的是tconn...转载 2019-04-24 13:03:09 · 289 阅读 · 0 评论 -
不为人知的网络编程(三):关闭TCP连接时为什么会TIME_WAIT、CLOSE_WAIT
转载自http://www.52im.net/thread-1007-1-1.html1、前言最近一段时间一直在学习阅读mina和nio的源码,也发现了一些问题无法解决,然后重读了一下tcp协议,收获颇多。(这就是带着问题去读书的好处)这次就和大家分享一下我们的netframework服务总会抛出一个“connet reset by peer”的原因吧。通过抓包工具分析,主动关闭方直接发...转载 2019-04-23 14:04:18 · 201 阅读 · 0 评论 -
不为人知的网络编程(二):浅析TCP协议中的疑难杂症(下篇)
转载自http://www.52im.net/thread-1004-1-1.html1、前言本文接上篇《不为人知的网络编程(一):浅析TCP协议中的疑难杂症(上篇)》,我们提到第6个疑问:TCP的头号疼症TIME_WAIT状态,下面我们继续这个问题的解答。2、TIME_WAIT的快速回收和重用2.1 TIME_WAIT快速回收linux下开启TIME_WAIT快速回收需要同...转载 2019-04-23 13:17:43 · 253 阅读 · 0 评论 -
不为人知的网络编程(一):浅析TCP协议中的疑难杂症(上篇)
转载自http://www.52im.net/thread-1003-1-1.html1、前言说到TCP协议,相信大家都比较熟悉了,对于TCP协议总能说个一二三来,但是TCP协议又是一个非常复杂的协议,其中有不少细节点让人头疼点。本文就是来说说这些头疼点的,浅谈一些TCP的疑难杂症。那么从哪说起呢?当然是从三次握手和四次挥手说起啦,可能大家都知道TCP是三次交互完成连接的建立,四次交互来...转载 2019-04-23 13:04:17 · 146 阅读 · 0 评论 -
网络编程懒人入门(八):手把手教你写基于TCP的Socket长连接
转载自http://www.52im.net/thread-1722-1-1.html1、引言好多小白初次接触即时通讯(比如:IM或者消息推送应用)时,总是不能理解Web短连接(就是最常见的HTTP通信了)跟长连接(主要指TCP、UDP协议实现的socket通信,当然HTML5里的Websocket协议也是长连接)的区别,导致写即时通讯这类系统代码时往往找不到最佳实践,搞的一脸蒙逼。...转载 2019-04-18 14:13:24 · 325 阅读 · 0 评论 -
脑残式网络编程入门(五):每天都在用的Ping命令,它到底是什么?
转载自http://www.52im.net/thread-1973-1-1.html1、前言对于网络编程熟手来说,在测试和部署网络通信应用(比如IM聊天、实时音视频等)时,如果发现网络连接超时,第一时间想到的就是使用Ping命令Ping一下服务器看看通不通。甚至在有些情况下通过图形化的Ping命令工具对目标网络进行长测(比如:《两款增强型Ping工具:持续统计、图形化展式网络状况 [...转载 2019-04-22 10:12:23 · 257 阅读 · 0 评论 -
脑残式网络编程入门(二):我们在读写Socket时,究竟在读写什么?
转载自http://www.52im.net/thread-1732-1-1.html1、引言本文接上篇《脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手》,继续脑残式的网络编程知识学习 ^_^。套接字socket是大多数程序员都非常熟悉的概念,它是计算机网络编程的基础,TCP/UDP收发消息都靠它。我们熟悉的web服务器底层依赖它,我们用到的MySQL关系数据库、Re...转载 2019-04-22 09:50:25 · 122 阅读 · 0 评论 -
脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手
转载自http://www.52im.net/thread-1729-1-1.html1、引言网络编程中TCP协议的三次握手和四次挥手的问题,在面试中是最为常见的知识点之一。很多读者都知道“三次”和“四次”,但是如果问深入一点,他们往往都无法作出准确回答。本篇文章尝试使用动画图片的方式,来对这个知识点进行“脑残式”讲解(哈哈),期望读者们可以更加简单、直观地理解TCP网络通信交互的本...转载 2019-04-22 09:45:09 · 133 阅读 · 0 评论 -
网络编程懒人入门(九):通俗讲解,有了IP地址,为何还要用MAC地址?
转载自http://www.52im.net/thread-2067-1-1.html1、前言标题虽然是为了解释有了 IP 地址,为什么还要用 MAC 地址,但是本文的重点在于理解为什么要有 IP 这样的东西。本文对读者的定位是知道 MAC 地址是什么,IP 地址是什么。2、关于作者翟志军,个人博客地址:https://showme.codes/,Github:https://g...转载 2019-04-22 09:36:31 · 175 阅读 · 0 评论 -
网络编程懒人入门(七):深入浅出,全面理解HTTP协议
转载自http://www.52im.net/thread-1677-1-1.html1、前言HTTP(全称超文本传输协议,英文全称HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。对于移动端即时通讯(尤其IM应用)来说,现今主流的数据通信...转载 2019-04-17 13:42:49 · 142 阅读 · 0 评论 -
网络编程懒人入门(五):快速理解为什么说UDP有时比TCP更有优势
转载自http://www.52im.net/thread-1277-1-1.html1、前言对于即时通讯开者新手来说,在开始着手编写IM或消息推送系统的代码前,最头疼的问题莫过于到底该选TCP还是UDP作为传输层协议。本文延续《网络编程懒人入门》系列文章的风格,通过快速对比分析 TCP 和 UDP 的区别,来帮助即时通讯初学者快速了解这些基础的知识点,从而在IM、消息推送等网络通信应用...转载 2019-04-17 11:46:54 · 135 阅读 · 0 评论 -
网络编程懒人入门(四):快速理解TCP和UDP的差异
转载自http://www.52im.net/thread-1160-1-1.html1、前言对于即时通讯开者新手来说,在开始着手编写IM或消息推送系统的代码前,最头疼的问题莫过于到底该选TCP还是UDP作为传输层协议。本文延续《网络编程懒人入门》系列文章的风格,通过快速对比分析 TCP 和 UDP 的区别,来帮助即时通讯初学者快速了解这些基础的知识点,从而在IM、消息推送等网络通信应用...转载 2019-04-17 10:35:20 · 128 阅读 · 0 评论 -
网络编程懒人入门(三):快速理解TCP协议一篇就够
转载自http://www.52im.net/thread-1107-1-1.html1、前言TCP 是互联网的核心协议之一,鉴于它的重要性,本文将单独介绍它的基础知识,希望能加深您对TCP协议的理解。老规矩,为了让文字尽量通俗易懂、不浪费你的脑细胞,本文尽量点到为止,不对理论进行深入挖掘,如需深入理论细节,请参见下方参考资料中有关TCP协议的详细介绍和学习文章。群神镇楼:2...转载 2019-04-17 10:26:50 · 126 阅读 · 0 评论 -
网络编程懒人入门(二):快速理解网络通信协议(下篇)
转载自http://www.52im.net/thread-1103-1-1.html1、前言本文上篇《快速理解网络通信协议(上篇)》分析了互联网的总体构思,从下至上,每一层协议的设计思想。基于知识连贯性的考虑,建议您先看完上篇后再来阅读本文。本文从设计者的角度看问题,今天我想切换到用户的角度,看看用户是如何从上至下,与这些协议互动的。2、一个小结先对前面的内容,做一个小结。我们...转载 2019-04-17 10:15:49 · 140 阅读 · 0 评论 -
不为人知的网络编程(八):从数据传输层深度解密HTTP
转载自http://www.52im.net/thread-2456-1-1.html1、引言在文章《理论联系实际:Wireshark抓包分析TCP 3次握手、4次挥手过程》中,我们学会了用wireshark来分析TCP的“三次握手,四次挥手”,非常好用。这就是传说中的锤子,拿着 锤子,看什么都像 钉子!在这本文中,我对将准 HTTP这颗钉子,狠狠地砸下去。。。为了对网络数据包的“流...转载 2019-04-25 13:28:12 · 577 阅读 · 0 评论