本系列文章均基于《TCP/IP 详解 卷一:协议》及维基百科(嘿嘿嘿)
首先我们聊个让耳朵起茧的话题,网络协议的基础分层,没错,就是毫无新意的——链路层、网络层、运输层、应用层。此处只需要理解:
1.各分层之间并无明显界限;
2.每一分层都是多种协议构成的协议簇。
然后,让我们稍稍聊聊这四层协议簇:
1.链路层——主要处理硬件层(网卡,包括以太网接口、回环接口、串行接口等)的相关事宜,这层内容笔者只会稍稍带过,并不会于后续进行过多探讨。
2.网络层——其核心协议即IP 协议,主要处理各类分组于网络中的活动。需要注意的点是,网络层完全不关心链路层的实现细节;网络层是逐跳协议(每跳可理解成IP 路由器或者具有路由功能的主机);并且IP 协议很光棍,他不可靠,还一副满不在乎的样子。另外,IP 选路机制是该层的精华所在,一个IP 选路机制的实现离不开两点(a.选路策略,关键在于路由表的维护,这部分实现依赖于路由守护线程;b.执行选路机制,这部分内容就在于IP 协议如何利用路由表进行合理选路),上述两点会是后续章节讨论要点。
3.运输层——服务对象主要是主机上的应用程序,提供可靠(TCP)的端到端通信,它致力于把应用程序托付的数据块进行合理分割,生成网络层可用的分组,最后当然不能忘记给光棍的IP 协议擦屁股,故网络协议的高可靠性多数由上层保证。
4.应用层——这层没啥,就了解些常用应用吧,咱瞅瞅都叫啥
A.Telnet 远程登录
B.FTP 文件传输协议
C.SMTP 简单邮件传送协议(书比较老,就有些老东西,但是协议足够坚挺)
D.SNMP 简单网络管理协议
我们需要树立一个概念,网络协议的各层之间相对独立,同层之间才会互相交换信息,具有良好的封装性。
然后首先需要聊的就是Internet 地址即IP 地址(也就是现在大家经常提到的外网IP),这货长度32bit,全网唯一,很遗憾这亦仅针对外网,谁让IPv4不够用呢。当然IP 地址并非扁平的,它具有一定结构(划分不同长度的网络号与主机号),也就是所谓的ABCDE 类地址,具体如下:
再来张高清无码:
之后章节笔者会再重点聊下子网掩码的那些破事。
外网拥有IP 后就能够顺利找到各网络接口,但是很明显这串数字反人类还不好记(商人和用户都不喜),故DNS 出现——本质上是个数据库,保存主机名与IP 地址的映射。于是各种DNS 解析服务自然就是提供本地或者在线的标准函数库从数据库中获取数据记录。
先了解下整体特性。
当用户数据片段开始入网传递时,网络协议的每层都需要对其进行封装,这一封装行为可以理解成对数据加装头尾的操作(也就是所说的TCP 首部、IP 首部、以太网首部等),每一协议的标识只被自己认识亦只被自己关心。
反之,当链路层数据帧进入过程中的路由器或者目的主机进行解析时,就需要各协议对于数据由底层向上层逐级“去壳”(读取首部内容并响应合适动作),此过程就是分用。
那么分用过程中,运输层如何确定该用户数据应该交由哪个应用程序处理呢?我们总不能记应用程序的名字吧,那何止千千万啊。
没错,就是端口号。有些端口号固定即知名端口号(FTP 21,Telnet 23,TFTP 69等),有些端口号则是应用程序启动后临时分配,譬如tomcat。
欲知后事,且听下回……