趣谈网络协议
至尊玉521
我想写一手好代码
展开
-
第18讲 | DNS协议:网络世界的地址簿
现在网站的数目非常多,如果要访问网站的时候全部使用IP地址,恐怕你很难记住。所以,需要一个地址簿,根据名称查看具体的IP地址。DNS服务器这个网络世界中的地址簿,就是DNS服务器。每个人上网都需使用DNS服务器,因此一旦出故障,整个互联网都讲瘫痪。另外,上网的人分布在世界各地,如果大家都访问同一台服务器,那么时延会非常大。因此,DNS服务器一定要设置成高可用、高并发和分布式的。我们看下DNS树状的层次结构。根DNS服务器:返回顶级域DNS服务器的IP地址 顶级域DNS服务器:返回权原创 2020-05-20 20:45:45 · 312 阅读 · 1 评论 -
第16讲 | 流媒体协议:如何在直播里看到美女帅哥?
最近直播比较火,那一个直播系统里有哪些组成部分,都用了哪些协议呢?无论直播还是点播,都是对于视频数据的传输。这里面涉及到许多的技术名词。三个名词系列名词系列一:AVI、MPEG、RMVB、MP4、MOV、FLV、WebM、WMV、ASF、MKV。是不是很熟悉RMVB和MP4。 名词系列二:H.261、H.262、H.263、H.264、H.265。重点关注H.264。 名词系列三:...原创 2020-05-01 10:55:30 · 995 阅读 · 0 评论 -
第15讲 | HTTPS协议:点外卖的过程原来这么复杂
HTTP协议用来看新闻没问题,但是到了更严肃的场景,就会存在安全风险。比如,你点外卖要下单支付,如果用HTTP协议,很可能会泄漏安全信息。你发送一个请求,说我要点这个外卖,然后这个包可能被黑客截获了,黑客假装自己是外卖网站,然后回复你一个假消息,让你输入银行卡号、密码等安全信息。如果你真的发给他,那你的安全信息就泄漏了。这个问题怎么解决呢?一般的思路是加密。加密分为两种,一种是对称加密,一...原创 2020-04-30 20:43:44 · 407 阅读 · 0 评论 -
第14讲 | HTTP协议:看个新闻原来这么麻烦
HTTP协议,是每个人上网用的第一个协议。当你在浏览器输入http://www.163.com,这其实是个URL,叫统一资源定位符。统一是说访问网络资源都按照这种统一的格式。http表示使用HTTP协议,www.163.com是一个域名,表示互联网的某个位置。正是因为它是统一的,当你输入这个URL时,浏览器才直到怎么去统一处理。HTTP请求的准备浏览器将www.163.com的域名发给...原创 2020-04-17 23:03:09 · 309 阅读 · 0 评论 -
第13讲 | 套接字Socket:Talk is cheap, show me the code
这一节我们讲基于TCP和UDP协议的Socket编程。TCP和UDP协议分客户端和服务端,Socket编程也同样这么分。Socket,这个单词的含义有插口或者插槽的意思。你可以想象网络通信就是弄一根网线,一头插在客户端,一头插在服务端,然后进行通信。所以通信前双方首先都要建立一个Socket。建立Socket的时候,要设置哪些参数呢?Socket编程进行的是端到端的网络通信,它不知道中...原创 2020-04-16 17:45:40 · 693 阅读 · 0 评论 -
第12讲 | TCP协议(下):西行必定多妖孽,恒心智慧消磨难
公网是不可靠的,需要很多机制保证传输的可靠性,这里需要恒心,即各种重传的策略,还要有智慧,即各种算法。如何做个靠谱的人?怎么算是个靠谱的人?领导交代的事情到底能不能做到,什么时候完成都要有一个应答,回复。这样,处理过程中有异常,能尽快让领导知道。对应到网络协议上,客户端没发送一个包,服务端都应该有个回复,如果服务端超过一定的时间没有回复,客户端就会重新发送这个包,直到有回复。...原创 2020-04-14 20:25:18 · 296 阅读 · 0 评论 -
第11讲 | TCP协议(上):因性恶而复杂,先恶后善反轻松
上一讲我们讲了简单的UDP协议,UDP相信网络世界是简单的,所以UDP没有复杂的机制。这次我们讲TCP,TCP是很复杂的,因为它认为网络世界是复杂的,丢包、乱序、拥堵是家常便饭,一不小心数据包就无法送达。TCP包头格式TCP头的格式比UDP复杂许多。首先,源端口号和目的端口号必不可少。如果没有端口号就不知道该发给哪个应用。接下来是序号。为什么需要序号字段?是为了解决乱序的问...原创 2020-04-11 21:21:30 · 199 阅读 · 0 评论 -
第10讲 | UDP协议:因性善而简单,难免碰到“城会玩”
前面讲的IP层属于网络层,接下来我们开始讲传输层。传输层有两个重要的协议,一个是TCP,一个是UDP。对于开发应用的人来讲,最常用的就是这两个协议。TCP和UDP有哪些区别?TCP是面向连接的,UDP是面向无连接的。什么是面向连接呢?就是在互通之前先建立连接。所谓的建立连接,是为了在客户端和服务端维护连接,而建立一定的数据结构来维护双方交互的状态,用这样的数据结构保证所谓的面向连接的特...原创 2020-04-11 13:25:28 · 217 阅读 · 0 评论 -
第9讲 | 路由协议:西出网关无故人,敢问路在何方
上一讲我们讲了一个相对简单的情况,网络包出了网关只有一条路。但真实的网络世界是很复杂的,网络包除了网关会有很多条路可以走,那么到底选择走哪一条路呢?如何配置路由器?根据上一讲的内容,我们知道路由器就是一个网络设备,有多张网卡。当一个网络包从一个入口进来的时候,路由器会根据一个本地的路由表来决定如何正确地转发数据包。一张路由表包含多条路由规则,每一条规则至少包含三项信息:目的网络:这...原创 2020-04-10 21:59:48 · 254 阅读 · 0 评论 -
第8讲 | 世界那么大,我想出网关:欧洲十国游与玄奘西行
之前几节我们讲的都是内网里的协议,现在我们去外网看看。怎么在宿舍上网?之前我们在宿舍组了一个局域网用来打游戏,现在我们看怎么连到外网。学校给每个宿舍的网口分配一个IP地址,这个IP是校园网的IP,假设是10.10.x.x。宿舍网的IP地址为192.168.1.x。要在宿舍上网有两个办法:第一个办法,让宿舍长再买一张网卡,这个时候,宿舍长的电脑有两张网卡,一张网卡的线插到宿舍的交换机...原创 2020-04-09 21:49:29 · 360 阅读 · 0 评论 -
第7讲 | ICMP与ping:投石问路的侦察兵
我们常常会遇到网络不通的问题,机器明明就在那里,但你就是连不上去。这种情况该怎么办呢?ICMP协议的格式一般情况下,你会想到ping一下,但你知道的ping是如何工作的吗?ping是基于ICMP协议工作的。ICMP全称是Internet Control Message Protocol,就是互联网控制报文协议。这里的控制是什么意思呢?网络环境是异常复杂的,当网络包在传输的过程中会遇...原创 2020-04-08 22:13:22 · 273 阅读 · 0 评论 -
第6讲 | 交换机与VLAN:办公室太复杂,我要回学校
上一讲我们在大学宿舍租了一个本地的局域网,但这个场景只用了一台交换机。今天我们看一个复杂一点的场景,办公室。拓扑结构是如何形成的?办公室每张桌子旁边都有一个网口,一层楼就会有几十个上百了网口。这个时候,一台交换机肯定不够用,需要多台交换机,交换机连接起来,就形成一个复杂的网络拓扑。我们先看最简单的两台交换机的情形。两台交换机连着三个局域网,每个局域网上有多台机器。如果机器1知道机器...原创 2020-04-07 23:03:58 · 620 阅读 · 0 评论 -
第5讲 | 从物理层到MAC层:如何在宿舍自己组网玩联机游戏?
早先的路由器是奢侈品,大学宿舍里的几个人想要联机玩《魔兽争霸》需要自己组网。第一层(物理层)物理层怎么互通呢?靠网线,网线有两种,一种是电脑连电脑,一种是电脑连网口。我们用电脑连电脑的网线。一根网线,两个头,一头插在一台电脑的网卡上,一头插在另一台电脑的网卡上。仅仅这样还是通不了的,水晶头要做交叉线,就是1-3、2-6交叉接法。水晶头的1、2和3、6脚,分别起着收、发信号的作用。将...原创 2020-04-05 11:13:15 · 467 阅读 · 0 评论 -
第4讲 | DHCP与PXE:IP是怎么来的,又是怎么没的?
计算机要和其他计算机通信,首先得有一个IP地址,我们需要把它配置到网卡上。如何配置IP地址?你可以使用命令行自己配置一个地址。可以用ifconfig,也可以使用ip addr。使用net-tools:$ sudo ifconfig eth1 10.0.0.1/24$ sudo ifconfig eth1 up使用iproute2:$ sudo ip addr add ...原创 2020-04-04 21:30:35 · 261 阅读 · 0 评论 -
第3讲 | ifconfig: 最熟悉又陌生的命令行
折腾过计算机的人都知道如何查看IP地址,在Windows上是ipconfig,在Linux上是ifconfig或ip addr。但是如果你登入一个裁剪过的Linux操作系统,里面既没有ifconfig,也没有ip addr,这是时候怎么办?你可以自行安装net-tools和iproute2这两个工具。装好之后,运行ip addr,我们会看到下面的内容:1: lo: <LOOPBAC...原创 2020-04-04 11:23:59 · 284 阅读 · 0 评论 -
第2讲 | 网络分层的真实含义是什么?
计算机网络有一个显著的特点,就是不仅需要背诵,还需要将原理烂熟于胸。四个问题我们都知道网络是分层的,每一层有每一层的沟通方式。第一个问题:TCP在进行三次握手的时候,IP层和MAC层对应有什么操作?学习第三层协议的时候会提到,IP协议里面包含源IP地址和目标IP地址。还会学到路由协议。路由就像中转站,从原始地址A到目标地址D,中间经过两个中转站A->B->C->D...原创 2020-04-03 21:30:26 · 856 阅读 · 0 评论 -
第1讲 | 为什么要学习网络协议?
上帝为了阻止人类联合起来造通天塔,就让人类讲不同的语言,人类无法沟通,达不成“协议”,人类的通天塔计划就失败了。千年之后,程序员通过使用通用的语言,将所有的计算机连接起来,形成当今的互联网。#include <stdio.h>int main(){ printf("Hello World!");}上面这段代码是计算机使用C语言向世界说你好的方式。其实这段文...原创 2020-04-02 21:21:58 · 532 阅读 · 0 评论 -
开篇 | 想成为技术牛人?先搞定网络协议!
为什么网络协议这么重要?原创 2020-04-02 17:45:56 · 183 阅读 · 0 评论