风也温柔

计算机科学知识库

计算机网络物理层协议 物理层,数据链路层,网络层。计算机网络(上)

  计算机网络,是最初是由美国为了方便通信研究出来的,最初就是 主机与主机的通信 (电脑也是主机),之后规模越来越大,问题也就越来越多。

  问题1,主机越来越多,怎么保证获取请求到 对方主机的资源?

  ok看张图

  计算机通信网 7层协议_计算机网络物理层协议_icmp协议是什么层协议

  圈外的H也就是我们的主机(每个主机可以获取对方主机的资源,对方也可以获取自己的资源),圈内就是通信结点,因为世界上有很多主机,绝多大,不是直连的,中间需要一系列的结点进行存储,转发。

  所以可以把他们归结为两部分:资源子网(计算机等等,资源设备),通信子网(中间实现转发资源的结点)。

  简单的计算机网络= 资源子网+通信子网

  资源子网挺好理解的就是一般 电子设备,电脑,手机等(一般认为有cpu和一些特殊设备,我的理解是可以独立运行的设备)。

  通信子网: 通信子网说的就比较多了

  我们最初通信就是电话

  电话最初就是两根线 连在一起,想一想如果3台电话互连接,3根,4台6根,

  N台 [n*(n-1)]/2 ,简直是太复杂了 n^2

  后来出现了交换机 把所有人的电话线连接到交换机,由工作人员拔出电线,插入对应的接口。(我们早起电视剧中看到的就是这种) 这就是早起的通信方式,我们称为电路交换。

  后面我们用户越来越多,那每个人都长期占一根线,是不是有点费,特别两台计算机的通信,并不是一直传送资源,这样就导致了线路的利用率非常低,线还不够用,所有又有一个新方式。

  报文交换:通信线路不通过直连的方式,将线路分为,一段段的,A-B-C-D

  这样资源1在A-B段传输的时候,同时资源2可以在B-C段传播(有点像并行的意思),这样虽然提高了 这条A-D线整体的利用率,但是不难发现,对于单个资源1,一段一段传输,在某中间结点,可能会出现阻塞的现象,资源1,最终到达终点比较慢,这就是为什么以前报文比较慢的原因了。

  ok 改良出来了

  分组交换: 将大的资源(报文)分成一份份小的资源,分组进行传输,核心的存储转发。

  看张图

  计算机通信网 7层协议_计算机网络物理层协议_icmp协议是什么层协议

  把大报文分成小报文,将小报文前面加上首部信息(目的地址,源地址等控制信息)。这样就可以通过识别首部中的信息,将至发送给目的地址,接受方,判断是不是一个报文,将之合并。

  这样 可以感觉把上面的报文交换分为更小的"粒度",这样就更加提高了线路的利用率,也会有延迟 不过相对于之前的每个都是大报文,等待时间相对短一些,不过这个非常依赖好的拥塞算法去控制。(在好的控制拥塞的算法下,相当于阻塞变少了,所以快了,后面会讲到)。

  OK 讲了这么多交换了,那是谁帮他们实现中间结点交换的呢?之前线路是通过交换机,而网络中我门一般用的是路由器。

  先简单了解一下 路由器内部维护一个路由表,可以查询到他连接的路由或者主机地址

  路由器收到单个分组报文,将之存储,之后通过特地算法查询合适的路由或者主机地址,将分组报文转发过去。

  ps:这里要注意一下 电路交换首先要建立连接,之后在将资源传输,而报文交换,分组交换是通过路由器来寻址的,源主机和目的主机没有建立连接。

  看看三个交换的图

  计算机网络物理层协议_icmp协议是什么层协议_计算机通信网 7层协议

  下面来讲讲一个计算机网络的性能。

  计算机网络的的性能与 速率,带宽,吞吐量,时延,利用率,等等有关。

  1.速率指的是数据的传输速率,每秒传送的数据,单位是bit(二进制0,1)。

  2.带宽 计算机网络中的带宽表示,某通道传输数据的能力,也就是单位时间内 某信道能达到的最高数率。(速率是实际值,带宽是额定值)

  3.吞吐量 吞吐量,就是单位时间通过一个网络设备的最大数据量 ,例如网卡。

  吞吐量的大小受到带宽或者网络额定速度的限制,你想想网卡再厉害单位时间可以通过的数据,带宽只可以通过,是不是单位时间最多有的数据通过网卡。

  4.时延,指的是一个数据从网络的一段传送到另一端所需要的时间,有时也称时延,或者延迟时延分为4个发送、传播、处理、排队时延。

  我们端对端传输数据 首先将数据发送到网卡,这一部分和发送数据的大小,网卡的吞吐量,都有关系 我们称为发送时延,之后网卡到路由器之间的传输,和带宽,距离有关,我们称为传播时延。到了路由器,这些数据进行排队,由路由器处理进行存储转发,这个过程所需要的时间,称为排队时延和处理时延。

  计算机网络物理层协议_计算机通信网 7层协议_icmp协议是什么层协议

  5.利用率 利用率就是对信道的利用率,信道上有多少传输的数据,并不是越高越好。想象成一个反比例函数,达到一定值是 拥塞程度急剧上升。

  想想马路,如果全是车,那不得堵死。

  说了这么多大概念,下面说说网络的体系结构。

  计算机网络物理层协议_计算机通信网 7层协议_icmp协议是什么层协议

  常见的网络体系结构分为两种,osi是关于体系结构比较全面的定义,不过过于理论,实际上使用最多的还是 tcp/ip体系结构。

  1.物理层:首先物理层不是传输介质(不是电缆!),他是为了屏蔽掉传输介质和通信手段的差异,让上一层数据可以正常的传输。涉及到的技术与通信有关计算机网络物理层协议,调制解调,编码,信道复用(时分,频分,波分(实际就是频分),码分)等技术,了解即可。

  用到设备主要是集线器,但是共用的是一根总线计算机网络物理层协议 物理层,数据链路层,网络层。计算机网络(上),接到上层数据就发送,容易碰撞冲突

  计算机网络物理层协议_计算机通信网 7层协议_icmp协议是什么层协议

  2.数据链路层:起点到终点之前,包含很多个线段,相邻结点的线段叫链路,而如果这条链路遵守某一协议(一对一(点对点),一对多(广播)),就称为数据链路。数据链路上有多种协议。他们有3共同点。

  将上层的ip数据报 加上头部和尾部,帧定界符(为了知道这个帧在比特流中是从哪里开始哪里结束的,其他层只加头部)MTU:最大传输单元

  计算机通信网 7层协议_icmp协议是什么层协议_计算机网络物理层协议

  帧头部有个控制符SOH(start of )首部有个控制符叫EOT(end of ),这样检测到到SOH就开始,EOT就结束,但是如果恰巧有和EOT一样的字段,就会导致提前识别帧。如下图

  计算机网络物理层协议_icmp协议是什么层协议_计算机通信网 7层协议

  所以为例解决这种情况,采用了字节填充(异步网络)和字符填充(同步网络)

  计算机网络物理层协议_icmp协议是什么层协议_计算机通信网 7层协议

  在假的SOH,EOT前添加了一个转义字符(ESC),之后在接收的数据链路层发送给网络层之前,他识别到了SOH,EOT时发现前面有个ESC,就表示SOH,EOT按正常的数据的处理(当然如果有和ESC一样的比特流,也在前面加上ESC,表示将这个ESC当做普通数据处理),之后会删掉ES,这样就解决了误结束,误开始的问题,而删掉ESC,也使这次操作和透明传输一样(让网络层无感知)。

  在传输过程中,可能会出现比特差错计算机网络物理层协议,0变1,1变0的问题,在一段时间里,传输错误的比特占所有比特的总数,称为误码率。

  常用的检测方法 CRC循环冗余检验

  计算机网络物理层协议_计算机通信网 7层协议_icmp协议是什么层协议

  一般适用于局域网,一个单位共享一个网段或资源。现在用的较多的网络拓扑结构为星型,但内部最终还是总线型。

  计算机通信网 7层协议_icmp协议是什么层协议_计算机网络物理层协议

  1.一种无连接方式,比较灵活 通过MAC地址,寻址

  2.采用曼彻斯特编码(中间有跳变,可以区分是00 还是0)

  多点监听许多计算机连接在一根总线上,发之前会检测一下有无其他数据发送。

  碰撞检测就是计算机边发数据变检测,电压大小。如果或高或低,可能是几个信号叠加了就会信道冲突了。如果出现了立即停止,随机等待一段时间,避免网络资源的浪费。

  数据链路层分为LLC逻辑链路控制和MAC媒体接入控制 现在一般MAC用的比较多,存储数据的媒介。

  数据链路层典型的硬件就是网卡NIC

  NIC主要功能就是将上层数据进行存储,分装成帧,透明传输,进行验证,之后转为串型(物理层上比特流,只能是串型的)发给物理层。

  计算机中网卡(适配器)通信过程

  icmp协议是什么层协议_计算机通信网 7层协议_计算机网络物理层协议

  硬件地址

  前面是厂家名 后面是厂家中的与网卡绑定的唯一地址

  计算机网络物理层协议_icmp协议是什么层协议_计算机通信网 7层协议

  物理层添加头部 为了识别比特流从哪开始

  用的设备除了网卡,还有网桥和交换式集线器(交换机)

  早期用网桥:上面用集线器容易出现碰撞问题,而网桥虽然也是将两个网络桥接起来,但是他不同于集线器,有数据就发送,他会检测帧是否正确,不正确就扔掉(过滤)。并且他不是像广播那样,没目的,往总线一扔,谁要谁拿走,而是找出该帧的MAC的地址,在进行转发或者丢弃(转发)。主要功能就是过滤+转发。

  以太网交换机:他的实质是一个多接口的网桥,并且是全双工的,具有并行性,也具备过滤转发功能。通信主机都是独占传输媒体。

  这里交换机有两种,一种是直通式(判断出MAC地址后,就直接转发,不进行检测)还一种存储转发式(先缓存,再进行处理,找MAC地址,检查帧是否无效帧)

  虚拟局域网 :可能因为物理位置原因,同公司的员工连在不同的交换机上,一个交换机属于一个网段,这样他们就属于不同的网段,资源共享,权限,可能不同。所有有了虚拟局域网,利用交换机,将他们配置成同一个网段下的。帧前面有个valn种类的字段)判断出是否是同一vlan,只有同vlan可以通信。 现在只能在同vlan传播,限制了广播信息到处传播(广播风暴),造成性能恶化。

  计算机通信网 7层协议_计算机网络物理层协议_icmp协议是什么层协议

  3.网络层

  数据链路层对检测到失效的帧,只是简单的丢弃不负责重传,没有解决可靠传输的问题,那是不是应该交给网络层来处理?答案是no,我们往下看。

  首先网络层有两种观点

  采用方式是中间建立一条虚电路的方式(逻辑电路,并非电话交换,物理电路),独享的,这样建立的电路是可靠的,这样就保证了可靠传输了,但是网络上的通信的没有特点的,可能中间某段很长没数据,独占电路会造成大量的资源浪费。

  端到端决定可靠传输,这样网络层只需像上层提供,是一种数据报服务,

  计算机通信网 7层协议_icmp协议是什么层协议_计算机网络物理层协议

  1.不需先建立线路简单,无连接,尽最大努力交付的数据报服务。

  2.端双方不需先建立线路,每个ip数据报 独立发送,与其前后分组无关(不编号)

  3.网络层不提供服务质量的保证,可能出现出错,丢失,重复,失序(顺序不一致)

  icmp协议是什么层协议_计算机通信网 7层协议_计算机网络物理层协议

  对比

  我门重点来看看

  尽最大努力交付

  首先网络层最重要的就是ip协议,他通过路由器将各个主机连到一起 形成一个互联网

  计算机通信网 7层协议_icmp协议是什么层协议_计算机网络物理层协议

  可以看到ip协议非常重要,基本由他构成 我们的互联网,下面这张图是数据在路由器中传输的过程,网络层解决不同设备的异构性组成了一个连通的网络。

  计算机通信网 7层协议_计算机网络物理层协议_icmp协议是什么层协议

  我们知道数据链路层的寻址方式是通过mac地址,那ip层是怎么寻址的呢? 通过ip地址

  那什么是ip地址?

  ip地址就是给连接在互联网上的主机或路由器,分配一个独一无二的32个字节的标识符,这样才可以找到对方。

  ip地址的分类

  计算机通信网 7层协议_计算机网络物理层协议_icmp协议是什么层协议

  前面一个字段表示网络号,后面一个字段表示主机号。(可以理解为某网段的某台主机ip eg. A网段的 1号主机。)

  计算机网络物理层协议_icmp协议是什么层协议_计算机通信网 7层协议

  ip分为两级,这样的好处是,1.ip地址方便管理 只需管理到网络号即可。2.路由器转发分组时只考虑网络号,这样大大减小了路由器中保存的数据,减少路由表所占空间。

  主机怎么找到另外一个主机的呢

  计算机通信网 7层协议_icmp协议是什么层协议_计算机网络物理层协议

  通过路由器,ip数据报首部记录着目的主机的ip,在路由时,始终找的是目的主机ip

  到了数据链路层mac层,mac层去找下一个网卡的mac地址。这里涉及到ARP协议(地址解析协议)

  计算机通信网 7层协议_icmp协议是什么层协议_计算机网络物理层协议

  ARP协议 在主机中有个ARP高速缓存 他存放这 ip和mac地址映射 和ttl(失效时间)

  源主机去找目的主机时,首先检查自己的ARP高速缓存中有无目的主机的mac地址,有直接通过交换机去寻址,没有就在当前局域网下发个广播去找 目的主机的mac地址,如果直接找到了,或者是有路由器知道在哪,通过路由器转发,首先在ARP缓存区缓存一份,之后通过mac地址找到回应他的路由,继续在当前局域网广播,目的主机的ip,重复最终找到目的主机的ip,得到他的mac地址,进行通信。

  为什么网络层可以做到连接全网,寻址呢?

  让我们来看看ip数据报的组成

  分为首部和数据部分 头部基本信息为20个字节,有其他字段是也可不止20

  ICMP报文 有两种 一种询问报文,一种差错报告报文,在ip报文传输出错时,可以用它来获取出错信息。

  路由器怎么寻址的

  和RIP OSPF协议有关

  RIP主要是内部通过内部维护的路由表 去找一条路径最短的线路,之后数据通过这个线路传输,ttl

  OSPF为了解决RIP只考虑最短路径,如果有一条路线虽然长点,但是带宽高,会选用带宽高的。且把AS分为更多小的范围,粒度更细。更精准,当然比RIP协议复杂。

  ok 先说到这,有错欢迎指出~

  参考:/video/

  文章来源:https://zhuanlan.zhihu.com/p/187489819