目录
一般HTTP(web),FTP(文件上传与下载),Telnet(远程登录),SMTP(email)应用TCP面向连接的传输服务。流媒体,远程会议,DNC,Internet电话应用UDP协议。
ISP:Internet Service Providers(其实就是各级的路由器)
交换机和路由器(此处借鉴了CSDN作者WhataNerd的文章)
第一章(2021.10.26-2021.11.1)
初识计网结构(此图只是笔者一开始的理解记录)
什么是Internet?
按具体构成结构来分:
节点
-
主机以及运行在其上的应用程序(用方块表示)
-
路由器,交换机等网络交换设备(用圆圈表示)
边:通信链路
-
接入网链路:主机连接到互联网的链路
-
主干链路:路由器之间的链路
协议:在同一层通讯实体之间相互遵守的一套规范(行为、时序、语义、语法)
从服务的角度来分:
使用通信设施进行通信的分布式应用
使用基础设施为apps提供的通讯接口,这些API又称为socket。
按网络结构来分为三个子系统:
网络边缘
-
主机
-
应用程序(客户端与服务器端)
网络核心:为网络边缘提供数据交换的服务
-
互连着的路由器
-
网络的网络
接入网、物理媒体
-
有线或无线通信的链路
Internet与internet的区别?
-
Internet:连接了很多网络的网络,范围大,全球。
-
internet:单指连接了多个主机的网络,范围较小,类似于公司局域网。
网络边缘
网络边缘采用网络设施的面向连接服务
-
目标:端系统之间相互通信
-
什么是面向连接:指的是端与端之间建立起了连接,而端与端之间通信的节点之间并没有建立连接,注意与连接不同,建立连接是指段与段之间通信的节点也全部建立起了连接。
-
TCP服务(传输控制协议):Internet上面向连接的服务
-
可靠地、按顺序地传送数据(不丢失、不重复、不乱序)
-
流量控制:发送方不会淹没接收方
-
拥塞控制:当网络阻塞时,发送方降低发送速率
-
网络边缘采用基础设施的无连接服务
-
目标:端系统之间的相互通信
-
UDP服务(用户数据报协议)
-
无连接
-
不可靠数据传输
-
无流量控制
-
无拥塞控制
-
一般HTTP(web),FTP(文件上传与下载),Telnet(远程登录),SMTP(email)应用TCP面向连接的传输服务。流媒体,远程会议,DNC,Internet电话应用UDP协议。
网络核心
数据是怎么通过网络进行传输?
电路交换(为每个呼叫预留一条专有电路:电话网)
示意图
特点
-
独享资源,端与端之间的连接是被不被其他端与端之间的连接所共享。每一个呼叫一旦被建立起来就能够保证性能。
-
建立端与端之间连接的时候,将其中每个节点之间的线路带宽平分出一部分建立连接,并不占用节点之间线路带宽的全部。
-
为呼叫端预留端与端的资源
网络资源(带宽)分片的方式
-
频分(FDM)
-
波分(WDM)
-
时分(TDM)
优点
-
稳定性高:一旦建立起了连接,双方的传输便得以保证。
-
当建立起了连接后,数据与数据之间的传输延迟低,及时性高。
电路交换不适合计算机之间通信的原因
-
连接时间长(在端与端开始通信执之前,必须建立连接,而建立连接会花费比较长的时间,若仅仅是为了发1ms的信息,而花费500ms建立连接,就会浪费资源)
-
计算机之间的通信有突发性,既并不是时时刻刻都在通信,如果使用线路交换,则会浪费比较多的时间片
-
即使这个呼叫没有数据传递,其所占用的片也不能被其他的呼叫所使用。
-
-
可靠性不高(端与端之间的连接是需要每一个节点共同维护的,假使一个节点出问题,那么整个连接就会断裂,并且通常每一个节点需要维护的呼叫数以万计,只要一个节点出问题,全部呼叫受影响)
一道电路交换通信时长的计算题
分组交换
特点
-
每一个分组为单位存储-转发方式
-
网络带宽资源不再分为一个个片,传输时使用全部带宽
-
主机之间传输的数据被分为一个个分组
-
存储-转发:分组每次移动一跳(hop)
存储——转发
-
被传输到下一个链路之前,整个分组必须到达路由器
-
存储转发延迟的计算
排队延迟与和丢失
-
如果到达速率>链路的输出速率
-
分组将会排队,等待传输
-
如果路由器的排队缓存用完了,分组将会被抛弃
-
-
排队延迟并不是固定的
网络核心的关键功能
-
路由:决定分组采用的源到目标的路劲
-
转发:将分组从路由器的输入链路转移到输出链路
统计多路复用
-
与电路交换一样,分组交换也采用时分的方式进行多路复用,与之不同的是,分组交换时分的分配方式不是固定的,而电路交换采用的时分的分配方式是固定的。
分组交换VS电路交换
-
同样的网络资源下,分组交换允许更多用户使用网络
-
计算证明
-
-
分组交换适合于对突发式数据传输
-
资源共享
-
简单,不必建立呼叫
-
-
分组交换若是过度使用会造成网络的拥塞:分组延时和丢失
-
对可靠地数据传输需要协议来约束:拥塞控制
-
-
分组交换怎样提供类似电路交换的服务(一个至今没有解决的问题)
分组交换的分类:分组的存储转发一段一段从源到目标,按照是否建立网络层的连接
-
数据报网络(类似于以前的寄信原理)
-
在通信之前无须建立起一个连接,有数据就传输
-
每一个分组都含有目标主机的完整IP地址独立路由(路径不一样,有可能会失序)
-
路由器根据分组的目标地址进行路由
-
-
虚电路网络(类似于打电话样,先要建立起连接)
-
通过信令建立起连接
-
原理图
-
-
两种之间的区别
-
数据报不需要建立连接,路由器不用维护主机之间通信的状态,称为无状态路由器。而虚电路需要建立起连接,并且需要由路由器维护主机之间的通信状态。
-
接入网络和物理媒体
接入网的方式(怎样将端系统与边缘路由器连接)
住宅接入网络
-
modem(调制解调器):将上网的数据调制加载音频信号上,在电话线上传输,在接收端将其解调出来,反之亦然
-
两种现存线路的接入
-
采用现存的到交换局DSLAM的电话线进行接入
-
DSL线路上的数据被传到互联网
-
DSL线路上的语音被传到电话网
-
不能同时上网和打电话
-
-
采用有线电视信号线缆双向改造进行接入
-
-
带宽:每秒传送多少bit(bps)
单位接入网络
-
经常被企业或大学等机构采用,通过交换机的级联以及机构的路由器,最后接入到互联网
无线接入网络
-
见图片
物理媒体
-
基本传输单位bit:在发生-接收对之间传播
-
物理链路:连接每个发送-接收对之间的物理媒体
-
导引型媒体
-
信号沿着固体媒介被引导(同轴电缆,光纤)
-
-
非引导型媒体
-
开放的空间传输 电磁波或者光信号,在电磁或者光信号中承载数字数据
-
Internet的结构和ISP(这里直接放图,图片清晰)
ISP:Internet Service Providers(其实就是各级的路由器)
简单叙述Internet的结构
中心:第一层ISP:国家国际覆盖,速率极高
-
直接与其他第一层ISP相连
-
与大量的第二层ISP和其他用户相连接
第二层ISP:更小些的ISP(区域性)
-
与一个或者多个第一层ISP相连,也可能与其他第二层ISP
第三层ISP与其他本地ISP
-
接入网(与端系统最近)
ICP:内容供应商(Google,baidu,Akamai)
-
很多内容供应商,为了节约接入网络的开支以及良好的用户体验,会在全球的各个地方部署自己的数据中心,部署自己的网络,连接自己在各地的DC(数据中心),走自己的数据。一般来说这些数据中心会建立在靠近以太网的ISP方便接入网络。
-
连接若干local ISP和各级(包括一层)ISP,更加靠近用户。
图片示意
分组延时、丢失和吞吐量
分组延时、丢失产生的原因
-
分组到达链路的速率超过了链路的输出能力,若是路由器有可用的缓冲区,此时到来的分组排队产生延迟。若是没有可用的缓冲区,此时到来的分组直接会被路由器丢掉。
四种分组延时
节点处理延时
-
检查bit级差错
-
检查分组首部和决定将分组导向何处
排队延时
-
在输出链路上等待输出的时间(依赖于路由器的拥塞程度)
传输延时(存储转发延时)
-
R=链路带宽(bps)
-
L=分组长度(bits)
-
将分组发送到链路上的时间=L/R
传播延时
-
d=物理链路的长度
-
s=在媒体上传播速度
-
传播延时=d/s
车队的类比模型
节点延时的计算方法
关于排队延时的补充
traceroute与tracert
-
两种分别都是Linux与Win下的命令,用于路由追踪,查看在节点之间每一跳的延迟以及经过的IP地址,原理是通过tcp中的TTL字段(Time To Leave)
分组丢失
-
链路的队列缓冲区容量有限
-
当分组到达一个满的队列时,该分组将会丢失
-
丢失的分组可能会被前一个节点或源端系统重传,或者根本不会重传
吞吐量:在源端和目标端之间传输的速率(数据量/单位)
-
瞬间吞吐量:在一个时间点的速率
-
平均吞吐量:在一个长时间内地平均值
-
瓶颈链路:端到端路径上,限制端到端吞吐的链路
-
互联网场景
信道容量(补充一点)
-
信道容量既单位时间中,传输链路中可以容纳的分组数的总大小,一般是针对与广域网,因为广域网两个节点之间的距离远,传播需要时间,节点的处理时长以及排队时长小于传播时长。而在局域网中由于两个节点之间的距离比较近,传播时长要远小于节点的处理时长以及排队时长。
协议层次与服务模型
模块化设计的分类
-
"网状":模块之间是一种网状的联系,相互之间都可以进行信息的交互
-
"塔状"(计算机网络采用的模块设计):模块与模块之间存在层级关系,不可以越层级通信。
服务模型
服务:低层实体向上层实现提供它们之间的通信的能力
-
服务用户(service user)
-
服务提供者(service provider)
原语:上层使用下层服务的形式,高层使用低层提供的服务,以及低层向高层提供服务都是通过访问原语来进行交互的一种形式
服务访问点SAP(Service Access Point):上层使用下层提供的服务通过层间的接口(地点)
-
例子:邮箱,传输层的SAP:端口(port)
-
SAP的作用:下层的一个实体往往支撑着上层的多个实体,SAP有标志不同上层实体的作用。
服务的类型
面向连接的服务
-
连接:两个通信实体为进行通信而建立的一种结合
-
面向连接的服务通信的过程:建立连接、通信、拆除连接
-
面向连接的服务例子:网络层的连接被称为虚电路
-
特点:保序
无连接的服务
-
无连接的服务:两个对等层实体在通信前不需要建立一个 连接,不预留资源:不需要通信双方都是活跃
-
特点:不可靠,可能重复,可能失序
-
适用于传送零星数据
服务与协议
服务与协议之间的区别
-
服务:低层实体向上层实体提供它们之间的通信能力,是通过原语来操作,垂直
-
协议:对等层实体之间在相互通信的过程中,需要遵循的规则集合,水平
服务与协议之间的联系
-
本层协议的实现要靠下层提供的服务来实现
-
本层实体通过协议为上层提供更高级的服务
数据单元
分层处理和实现复杂系统的好处
-
概念化:结构清晰,便于标示网络组件,以及描述其相互关系
-
结构化:模块化更易于维护和系统升级
-
改变某一层服务的实现不影响系统中的其他层次的
-
Internet协议栈
-
应用层:网络应用
-
为人类用户或者其他应用进程提供网络应用服务
-
FTP、SMTP、HTTP、DNS
-
-
传输层:主机之间的数据传输
-
在网络层提供的端到端的通信基础上,细分为进程到进程,将不可靠的通信,变成可靠
-
TCP、UDP
-
-
网络层:为数据报从源到目的选择路由
-
主机主机之间的通信,端到端通信,不可靠
-
IP,路由协议
-
-
链路层:相邻网络节点间的数据传输
-
2个相邻2点通信,点到点,可靠或不可靠
-
点对点协议PPP,802.11(wifi),Ethernet
-
-
物理层:在线路上传送bit
ISO/OSI参考模型
-
在五层结构中,将表示层以及会话层统一归为应用层,由应用层完成表示层与会话层的工作。
各层次的协议数据单元(PDU)
-
应用层:报文(message)
-
传输层:报文段(segment):TCP段,UDP数据报
-
网络层:分组packet(如果无连接方式:数据报datagram(IP))
-
数据链路层:帧(frame)
-
物理层:位(bit)
封装和解封装
-
需要了解一点:网卡包括了数据链路层与物理层
交换机和路由器(此处借鉴了CSDN作者WhataNerd的文章)
路由器
-
where:第三层网络层
-
主要工作:寻址,转发(依靠IP地址)
-
原理:路由器内有一份路由表,里面有其的寻址信息,收到网络层的数据报后,会根据路由表和选路算法将数据报转发到下一站(可能是路由器,交换机,目的主机)
交换机
-
where:第二层数据链路层
-
主要工作:过滤,转发(依靠MAC地址)
-
原理:交换机内有一张MAC表,里面存放着和它相连的所有设备的MAC地址,它会根据收到的数据帧的首部信息内的目的MAC地址在自己的表中查找,如果有就转发,如果没有就放弃
网络拓扑图
-
通过网络每一个路由器与其之下连接的设备,其实构成一个局域网交换机工作在路由器之下,就是也就是交换机工作在局域网内交换机用于局域网内网的数据转发路由器用于连接局域网和外网
-
打个比方:我们每个人相当于主机,路由器相当于快递员,宿管大爷相当于交换机,学校是一个局域网快递员根据学校地址(IP)把包裹送到学校,再根据公寓号(子网IP)把快递交给这个公寓的宿管大爷,宿管大爷根据你的名字(MAC)交给你
二者可不可以缺其一?
-
交换机在局域网工作,它根据MAC地址转发数据,如果没有了路由器在网络层寻址,那么数据就不能发送到其他网络设备上。
-
路由器内集成了交换机的功能,主机与路由器相连也可以实现数据转发,但不足之处是:可扩展的接口不如交换机多
-
交换机通常由硬件加速转发,路由器主要靠软件寻址,速度慢
实际网络数据转发过程图解
-
你的电脑先在应用层打包一个 HTTP报文,然后在传输层在打包成 TCP报文,然后再根据 DNS 查到的 IP 在网络层打包成 IP数据报,然后在通过链路层打包成以太网数据帧,发送给你的交换机:
-
你的交换机收到后,重新包装数据帧,再发送给你的路由器:
-
你的路由器利用 NAT(Network Address Translation),将你的主机IP(局域网IP)转换为外网IP,还会修改端口号,对外完全隐藏你的主机,再根据路由表选择一条合适的路径进行转发:
-
在接下来的过程中,每个节点都只改变 MAC 地址,然后在网络中一路向着目的地发送