Java学习二阶段(打卡第40天)
计算机网络第一章的收尾工作,分组延时,丢包,吞吐量,协议层次和服务模型
计算机网络的学习这里是自我进行的额外学习,之后如果再次学习课程,会直接在该专栏进行知识的补充,之前对于分组交换我们已经了解到排队和延时,但是对于更深层次的东西还没有了解过
分组交换就是使用了延迟和丢包来换取了共享性
之前分析过,在路由器缓冲区的分组队列,分组到达链路速率超过了链路输出的能力,分组等待排到队列,被传输,这里一旦缓冲区满,之后的数据包就会被放弃造成丢包,排队则是因为速率问题,前一个分组没有发送完,那么下一个来的分组只能在缓冲区排队,队列也不能太长,因为延迟过大就是去了意义,数据就没有价值了。
检查bit有无差错,检查分组中的导向信息决定导向何处,对某些字段进行处理,提取IP查路由表
因为排队是需要时间的,这个时间就是排队延迟【在输出链路上等待传输的时间】—取决与当前路由器的拥塞程度
流量强度 I = L*a/R ,在0和1之间,0就是比较轻的程度,0到1之间排队延迟趋向于无穷大,流量强度为1就会产生大量丢包
I = 0,没有排队延迟 , 所以之气的分组交换计算人数时,10的时候流量强度为1,舍去
R = 链路带宽(bps), L = (分组长度)有多少个bit ,将分组从路由器缓冲区上载到链路的时间为 L/R,存储转发的延时【分组到达路由器也要存储到缓冲区,需要时间】
距离如果非常近就可以忽略传播的延时,非常远就不能忽略,比如地球同步轨道卫星,不断经过很多hop跳,段,到达目标
d = 物理链路的长度
s = 在媒体上的传播速度 (~2*10e8 m/sec)
传播延时 = d/s
Note,s and R are very different quantities! R是链路的带宽,
这里以车队来类比一下transmission和propagation
汽车以100km/h的速度传播,收费站服务每辆车需要12s【进行处理,将bit打出】
汽车—bit,车队—分组;在车队到达第二个收费站需要多长的时间,这里最后一辆车离开收费站所消耗的时间就是传输延迟,车队在两个收费站之间所耗费的时间就是传播延迟,广域网WAN【距离长】
如果传播速度快,比如车速非常快,那么就可能整个分组还没有传输完成,第一辆车(bit)就应景到达了第二个节点 这就是因为信道容量小的情况,就是局域网LAN【距离短,可忽略】
在start节点到target节点之间每一个节点都会经历这几个延迟,因为要经过很多hops才能到达目标节点
可以通过Tranceroute命令诊断程序,提供源端,经过路由器,到达目的地的延时测量,tracert【路径跟踪程序】
方法是沿着路径,发送3个探测分组,路由器向发送方返回一个分组,发送方队发送与回复进行⏲
利用到ICMP协议,互联网数据报协议,其中包含一个message,之间有个字段,IP的head和body,ip的body字段前方有个TTL字段(生存时间),每经过一个节点都会减1,【最开始为1个有限值】,把TTL设置为1,到达第一个路由器就减为0,然后通过ICMP将消息返回,告诉哪个IP干掉了报文,同时⏲,就可以检测出延时,到达目标的时候就结束,目标端口不可达的消息,简单说就是通过ICMP协议的TTL递增的方式,检测出延迟
这里和大家示范一下命令的使用,首先WIN+ R,进入cmd命令窗口
之后键入命令 tracert + 目标地址(网站)这里我键入的是youtube.com
youtube为美国网站,到后面的传播的延迟过大,还有其他的各种原因,就超时了
链路的队列缓冲区容量有限,当分组到达一个满的队列时,该分组将会丢失,丢失的分组可能会被前一个节点或者源端系统重传或者不重传,数据链路层可靠与不可靠和物理链路层有关,比如WIFI无线传输,所以不可靠,亡羊补牢就可靠
在源端与目标端之间传输的速率(数据量/单位时间) ,link capacity有效吞吐量取决于最小的bps
瞬间吞吐量 : 在一个时间点的吞吐量
平均吞吐量:在一段时间的吞吐量的平均值
瓶颈链路:端到端路径上,限制端到端吞吐的链路【最小的带宽】
互联网通信中,AB之间进行通信时要经过网络核心中的某一条链路,但通过的分组交换的方式,不像线路交换直接划分了带宽为piece,因为链路是共享的,会有多个host对使用该条link,那么这里其真实获得的带宽为1/n, 那么最小的带宽就是AB之间的瓶颈链路,限制了AB的吞吐量
网络是一个复杂的系统
网络的功能复杂,数字信号的物理信号承载、点到点,hop,路由,rdt,进程区分,应用等内容。现实来看,网络有许多构成元素和设备
主机,路由器,各种media的链路,应用,协议,硬件,软件,那么问题来了:如何组织和实现复杂的网络功能?
这里采用的是分层的方法来组织网络的功能,【模块化的方式】,只能紧相邻的两个模块才能调用,底层的结构通过接口向上层模块提供功能,一层调用一层,最终实现复杂的功能
这里为理解层次化,举一个例子
两个异地的语言不同的哲学家交流
这里设计3层,秘书层为底层,解决异地通讯的问题,翻译层位第2层,解决翻译的问题,哲学家层为最高层,要想实现交流,就需要依次通过底层来实现功能,一个哲学家就从上层到下层来转码然后传播,到目标秘书后,再从下到上转码形成交流【所商量的统一语言,和通讯方式都是相同的
还有战争组织,高级将官需要下一级的官员提供的服务实现对等军官的交流Service,同时可以实现新的功能。包括下层的所有功能,并且形成了新的功能
这个虽然要麻烦一些,但是可复用性很高。上层模块可使用下层的功能
对等层的实体通过协议实现PDU的交换,要借助下层的功能,每一层实现明确的功能,通过接口向上层提供更好的服务。协议是对等关系,通过interface调用下一层的功能。直到物理层就是直接发送bit的电磁波信号,光信号。
协议是对等的关系,服务service是垂直的关系
之前所使用的socket API 就是传输层向应用层所提供的接口,可以完成进程的交互
服务service就是低层实体向上层提供它们之间通信的能力, service user ;service provider
原语 primitive 上层使用下层服务的形式,高层使用底层所提供的服务,以及底层向高层提供服务都是通过服务访问原语来进行交互的–形式 ----比如之前的套接字接口中的方法就是primitive
服务访问点SAP,(service access point),上层使用下层提供的服务通过的接口 ---- 地点 ;告诉服务用户到底要给谁使用服务。address,到底再哪个地方提供服务,【确定位置】
这里之前已经提到过依次了,面向连接的服务就是两个end system 通讯的时候,要先握手,建立好连接关系,之后再进行数据的交互,这里需要和有连接的服务区分,面向连接只是约束了end system,并不要求网络核心中的中转节点形成连接
Connectionless Service ,两个对等层的协议实体在通信中不许哎哟建立一个连接,不需要握手,不需要通信双方都是活跃的【比如寄信】
特点就是不可靠,可能重复或者失序—分组交换不同分组的路径可能不一样,由于网络拥塞导致失序和丢失
服务的类型 请求问答与信息查询,还有自媒体的服务
协议是对等的,就是对等层的实体peer entity之间在互相通信的过程中,需要遵循的规则的集合,水平
服务则是垂直的,就是下层的实体向上层实体提供它们之间通讯的能力,是primitive实现,使用SAP区分不同的使用该协议实体的service user
本层协议的实现是需要通过下层的服务来实现的
本层的实体通过协议为上层提供更高级的服务
应用进程要使用传输层的服务socket API 来实现通信(当然是TCP/IP的协议下)上层来的数据单元SDU,通过层间接口,加上第n层的头部,n-header,加上一些控制信息,形成本层的PDU,(协议数据单元),之后再向下层传输时,再次修饰形成PDU,可以在对等层交换
上层的SDU时本层的PDU的组成部分,装载的方式为一对一,一对多,多对一,就是可以将一个SDU修饰为一个或者多个PDU,继续向下层传输
所以说分层的好处就是可修改性更好,底层采取的新技术对上层时透明的,便于修改
分层的问题比一下子实现 也有坏处----就是效率要第低一些,但是坏处低得多
各层次的协议数据单元PDU
之前就说了互联网时分层的,那现在具体看一下具体分为那几个层次
应用层 ----网络应用
传输层 – 主机之间进行数据的传输
网络层 ---- 为数据从源到目的地选择路由
链路层:相邻网络节点之间进行数据传输
物理层–在节点之间线路中进行bit传输
物理层就是最底层的传输,就是例子中的秘书,发送端的物理层将上层链路层下来的Frame信号转换为物理信号通过物理media进行传播,接收端的物理层将接受的信号从物理信号转化为01之类的计算机信号交给上层;物理层传输的是一个个bit,而链路层就是在节点间通过链路实现以frame帧为单位进行传输【识别物理层bit,开始字段和结束字段,中间就是一个帧】,一堆bit就是要进行识别【相邻两点】,网络层在链路层提供的点到点的功能的基础上,以分组为方式,实现网络中端到端的数据传输,主机到主机; 传输层借助主机到主机的服务,一个主机有很多进程,使用端口服务区分进程,实现进程到进程的服务,还有就是加强可靠性
就是一个封装和解封装的过程
互联网协议栈多了两层,在应用层和传输层之间,互联网协议栈就是应用层完成所有的功能
表示层— 允许应用解释传输的数据,加密,压缩,机器的相关表示转换
会话层—数据交换的同步,检查点,恢复
之前的DU时就说过将上层的SDU经过修饰加上header封装,到达终点时要进行一个大的解封装,但是在中间的路由器也要进行3层的解封装和封装
路由器上面有许多网卡,每个网卡携带DL和PH两层,PH层接收到物理信号转化为bit,DL再将bit识别header解析为帧,网络层再解析,找到目标IP,之后选择另外的中转网卡,再次进行封装,发送bit物理信号,两层设备【交换机】就是一个两层的解封装和封装。
之后的关于Internet的历史还有归纳就放在明天再分享了,内容还要消化消化~~