网络协议漫谈

一、什么是网络协议?

想象一下,我们有一封信,要送给隔壁市的好基友,要怎么做呢?

  • 把信装信封
  • 把信投递到邮筒
  • 邮递员送信
  • 好基友取信

写信得知道对方的地址,并且把地址写在信封上。这样邮递员才知道信送到哪里。

另外,送信并不是由一个邮递员完成的,中间有很多中转的过程,每一个邮递员都只负责某几个小区信件的收递

信也可以分类的,可以是普通信件,也可以是加急件,快件之类的

中国邮政,可以送信,也可以送其它快递

如果我们要给隔壁市的好基友发送一条信息,这中间又经历了什么样的过程呢?网络情况是怎么样的呢?

众所周知,网络协议是分层的,如下所示:

image
  • 应用层:可以对比中国邮政,中国邮政可以利用全国的邮政网络推出不同的产品,比如可以送信,也可以送快递,可以飞机运贵重物品,针对邮政网络有不同的“应用”产品
  • 传输层:可以对比邮政的传输方式,物品有易碎品,也有普通物品,邮政肯定会有不同的方式来确保运输的安全,比如说,运送易碎品之前先把物品包裹得厚厚地
  • 网际层:可以对比邮政的运输网络,邮政可能和其它航空公司合作来运输物品,邮政公司本身并不负责运输,它只负责物品的打包,打包好交给航空公司就行了,而航空公司就是邮政的运输网络,它对应着网际层
  • 网络接口层:它对应着邮政系统的一些基层套件,比如邮筒之类的

每一层都利用下一层的服务做相应的事情,比如传输层就利用网络层的传输服务,实现特定的信息传送方式。每一层都只对上一层负责。

二:数据链路层

网络接口层,也可以叫数据链路层,它是网络四层协议中的最下面一层,它会与硬件打交道,网络中传输的都是1、0之类的二进制,二进制数据与电气数据的转换,就是由数据链路层完成。数据链路层有自己的数据格式:

那这里就有一个疑问了?数据链路层的数据如何定位呢?送信必须得有地址,数据链路层的数据也有地址,mac地址。每一个主机都必须有mac地址,mac地址在设备出厂的时候就确定了,通常是48个二进制位,通常用12个十六进制数据表示

如上图的物理地址,就是mac地址,前6位是厂商编号,后6位是网卡编号。mac地址,全世界唯一。可能有同学会有疑问了,不是还有IP地址吗,不是通过IP地址来确定网络接收地址的吗?IP地址用在网际层(也叫网络层),MAC地址用在数据链路层。

从前文所述,我们可以知道,mac地址是一个真实的物理地址,而ip地址只是一个虚拟地址。为什么会有两套地址体系,既然MAC地址已经全世界唯一了,能不能不要IP地址,只要mac地址呢?这个问题,当我们聊到IP地址时就能回答了。IP地址是通过层级关系来将计算机分组的(子网的实现)。不同计算机组间传递信息时要通过路由表,它们自己被分成不同的层级。比如,202.108.x.x是百度的网络。通过这个地址,百度可以知道那些成千上万的子网在哪里分布同时怎么找到它们(其他人不需要知道这个,只需要知道以202.108开头的IP地址都会到百度那里)。

在一个局域网中,如果两台主机互相通信,网速会非常快。因为在同一个主机当中,彼此都有对方的mac地址,直接将数据发送给对方就行了。这就好比送信,如果对方和你在同一个小区中,你直接把信送过去就行了,不需要再把信中转到城市的信件中转中心,再绕一大圈送回来,这样效率自然就高了。

三:网络层

邮递员送信的过程是怎么样的呢?

首先根据地址将信分捡,广东省深圳市某某区某某街道某某小区之类的。将信分组之后,效率则会在大提高。网络,也是存在分组的,如何实现网络分组的呢,就是通过大名鼎鼎的IP地址。

一般ip地址是由32个bit组成,它的前一部分代表网络,后一部分代码主机,假定上面的ip地址中前24位是网络地址,223.212.40,那么主机部分就是后面的8位,当前ip地址的主机部分就是80。如果两个ip地址的网络部分是相同的,那么它们肯定处于同一个子网络当中。

网络层传输的数据叫IP数据包,ip数据包也分为标头和数据部分,但整个ip数据包都是存在在数据链路层的数据部分。可以理解为信封套着信封

ip层传输的数据并不能保证安全,比如说货车在送货的时候有可能出现货物损坏,没有办法保证货物一定就完整无缺。另外,ip层也不是一个面向连接的运输,它和电话不一样,电话得打通之后再说话,但ip层传输数据不一样,只管送。当然,运输出错也会有相应方式通知主机。

四:传输层

传输层中有两个大名鼎鼎的协议,TCP和UDP,只要是程序员没人不知道这两个的吧。TCP和UDP利用ip层,实现自己的特殊的传输方式,所以这一层叫传输层。

有了ip地址和mac地址,可以精准地确定一台主机的位置。但我可以使用pc看网页,也能用pc聊qq,某人给我发了一个qq信息,pc怎么知道这是qq信息而不是一个其它信息呢,这里还有一个概念叫端口。在传输层,结合ip和端口,就可以知道信息是发给主机的哪个应用程序的。

TCP,一种面向连接的安全的传输方式,有点类似于打电话,得经过三次握手确认连接,双方才可以发送消息,如果因为网络原因发送出错了,还会重传,断开连接还得经过四次握手才会真地断开连接

UDP,非面向连接,也不安全的传输方式。它并不要求双方建立连接,只管把数据报发送出去,不管对方是否接收。

安全的方式都是有代价的,虽然TCP安全,但得经过三次握手才能建立连接,中间还得通过ack确认已接收的数据,监听超时,如果超时了,还要重传,如果网络阻塞,重传是否会加剧阻塞,所以超时时间的设定也是一个难点,得通过特定算法动态计算超时时间。

UDP不安全,是不是就一定不可取呢,也不是,它有它的好处。谷歌的QUIC,就是在应用层对UDP加以控制,也能实现安全的传输,某些地方也会比TCP更优秀

传输层也有自己的数据格式,不过它是套在ip数据中,还是和之前一样的信封套信封方式

五:应用层

应用层,大家都听过http等协议,http协议就是应用层的协议。

http协议是使用tcp协议实现的,利用tcp协议实现的诸多特性。前文提到的QUIC,也是应用层的协议。应用层是最高的一层,直接面对用户,http协议的数据部分就放在TCP数据包的“数据”部分。最后,整个数据链路层的数据包格式就变成了这样

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,843评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,538评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,187评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,264评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,289评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,231评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,116评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,945评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,367评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,581评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,754评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,458评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,068评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,692评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,842评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,797评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,654评论 2 354

推荐阅读更多精彩内容