计算机系统014 - 协议层级

对于开发人员而言,从复杂的问题中找寻规律是基本的能力,亦如抽象。如果单一抽象仍不能较好诠释问题,那还可以从分层的角度来定义问题。分层能使我们暂时从最旁枝末节的点抽身出来,拥有更高的视野,视其全貌。网络环境复杂度不言而喻,所以分层也就成了公认选择。

1. 协议层级

协议模型

上图中两种分层方式,左边的五层结构可以看成是实践派的做法,右边的七层结构可以堪称是学术派的研究。不谈优劣,只谈适应不适应。目前主流使用的是五层结构,因为它更加适应于具体开发过程。毕竟分层是为了解耦,解耦必然带来性能降低及复杂度增加,所以取个权衡值才是最实在的。

那么对左边封层方式,逐层简要介绍如下:

1.1 Application 应用层

顾名思义,主要由应用、以及应用之间通信协议构成。典型应用有浏览器、邮件、文件服务等,与之对应的则分别是HTTP、SMTP、FTP等协议。该层主要有如下两个要素:

  • 访问形式: 域名,如 www.baidu.com
  • 信息单元: message,或称为消息

1.1.1 Domain name system(DNS)

前文中提到过,每个可联网设备在网络中真正唯一的标识符是其网卡上的MAC地址,其他的只是为了便于访问而存在的高可读性字段。类似于中国公民,其身份证号码在国境内是唯一的,但数字可读性差,所以还需要建立起姓名等映射关系便于访问。同样的,域名相当于真正要访问MAC地址的高可读性映射,只是绑定关系让其变得有意义。而建立这种绑定关系的,就是域名系统DNS。

DNS中域名对应的直接映射并非MAC地址,而是一串称为IP地址的数字。

DNS
IP Address

茫茫人海,只知道身份证号码和姓名来找一个人是十分低效甚至无法达成的,这时候,逐层的具体地址就派上了大用场。同样的,为了更便捷有效地管理网络上各式各样数量巨大的联网设备,IP协议按类似省市县的分层形式制订了子网系统。

以IPv4(Version 4)为例,每个IP地址共32位,除去不同类型起始码,其余主要由网络号和主机号构成,对应“A省B市”的结构:

IP Address

1.1.2 Port端口

通常应用是以进程的形式存在,单个主机上会有多个进程同时运行。IP地址虽然标示了当前主机号,但还不能标示到具体进程。因此不同主机上的进程如需通讯,还必须通过额外字段标明进程,这个字段就是Port端口。

Port是一个16位数字,通常和IP地址同时使用。随着互联网的发展,部分Port(0~1024)已被某些知名服务占用,如80/8080等。通过测试某些端口是否有响应,即可测试对应服务是否存在。

1.2 Transport 传输层

传输层负责在应用间传递message,即服务于应用层。与应用层两要素相比,不同之处在于:

  • 访问形式:端口,8080
  • 信息单元:segment

既然是在应用间传递信息,就必然要标明应用本身。而在一个host上,port是绑定到进程的,因此只需要通过port口进行标注即可。主流传输协议有TCP和UDP两种,具体将在单独章节介绍。

1.3 Network 网络层

网络层负责在主机间移动segment,即服务于传输层。与传输层两要素相比,不同之处在于:

  • 访问形式:IP地址,如 192.168.128.10
  • 信息单元:datagram

因为是在主机间传递信息,那么自然标识符也只需要精确到IP本身即可。从硬件上讲,一个主机通常一至多个网卡,各自有不同IP地址,但均和主机本身绑定。网络层送出的信息中指明对端IP,传入的信息中也可拆分出具体Port,随后传送到具体应用解析即可。

1.4 Link 链路层

前文提到,主机间的链路可能需要多个结点(如Switch、Router甚至ISP)的参与,要想把一条datagram成功送达对端主机,也绝非易事,因此专门分出一个链路层来完成链路的形成、维护、断开等工作。链路层服务于网络层,要素区别在于:

  • 访问形式:IP地址,如192.168.128.10
  • 信息单元:frame

注意到这里的信息单元并非datagram,也就是说,链路层的信息与datagram除去header,其实还有可能内容本身也不相同。因为链路由不同有形无形的硬件链路构成,每一段链路的传输率、最大传输单元MTU等也各自不同,所有大于链路最大传输单元的datagram要想顺利传输,就必须切分成合适的frame,传输完成后,再重新组装。

有人可能会问,一直说MAC地址是唯一标识,怎么到了链路层还没用上,别急,这就来了。

1.4.1 MAC Address

MAC地址是由网卡生产商生产时固化进网卡的,为保证其唯一性,MAC地址中有一段是不同生产商申请到的代号。

MAC

上一篇中提到一个设备,叫做Switch交换机,也叫网桥,是MAC地址的集成器。要记住,IP地址是人为地为设备分配一个标识符,以便区隔管理,典型的如DHCP动态内存分配就印证了这个道理。因此网络中一定存在一张IP地址和MAC地址的映射表,从而使得信息能够真正抵达对应的网卡。而通常,这个任务就交给了交换机。

1.5 Physical 物理层

物理层是最基础的一层,它的职责只需要负责完好地传输每一个bit即可。有了链路层精确定位到的两个MAC主机,剩下的就交给硬件材料、协议等来完成了。如前所述,不会过多关注到底层的硬件细枝,因此如有兴趣,可自行拓展阅读

2. packet封装

前半部分对网络中各个职能划分了层级,为了更加形象地展开剩下的packet封装内容,要先讲个快递的通用流程。

快递相信大部分人都收过,贡献我自己的一张,并大致分层如下:

  • 应用层

    卖家将货物装箱,贴上快递单,上写发货人、收货人地址等联系方式。

    对应的Message同样封装好内容后,即送出。

  • 传输层

    分公司收到封装好的包裹,按照地址,查询下一站,并送出至相应分拨中心。

    对应的Segment中包含源和目的IP:Port,及其他如称重等辅助校验信息。

  • 网络层

    分拨中心则负责决策将货物送往另一分拨中心,这一层偏向寻找递送的最优途径。

    网络层对应的同样是为了给datagram找寻到送达的最优途径,最优通常意味着最快,但不意味着所经过的路径本身最短。

  • 链路层

    确定具体对接分拨中心后,将进一步确定使用何种交通工具送达,并重组货物结构(如集装箱化)以便于运输。

    在网络层中确定路径后,链路层将负责重组收到的所有datagram,以便适应不同链路的最大传输单元大小。

  • 物理层

    确定交通工具后,交给货运负责人员即可。

Packet

3. 小结

归根结底,各层协议的定义只是为了更好地完成层级化后的本职工作,生活中也一样,能真正地干好自己的本职工作,其实本身就是对别人最大的尊重。当然也必须清晰地意识到,每一次层级的增多,再带来更大兼容性的同时,往往意味着更大的沟通成本,如应用层对端可能只希望传输一个字符,实际上却需要传输一堆额外的各层头信息。

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

推荐阅读更多精彩内容