计算机网络自学(更新中)
导论
TCP与UDP
- tcp向上传输的是可靠的,编号、校验、重传等,消耗时间、空间
- 对可靠性要求不高但对实时性要求高->UDP数据传输协议,所以常见于多媒体应用
- https://pic.imgdb.cn/item/64af49711ddac507cc874125.png 左TCP右UDP,TCP先连接
- 传输层是为多个远程应用进程提供服务的 在网络层提供的端到端的服务基础上实现,将主机到主机细分到进程到进程,是网络层的细分,不可靠到可靠
- 网络层源主机到目标主机,主机到主机,是尽力而为的(?可能会丢包等)端到端(其中有很多点到点)所以在数据链路层提供的相邻两点点到点服务基础上才能实现
- 传统?互联网网络层:路由:路由协议(路由器交换信息,路由算法->路由表)转发: IP协议(对到来的分组进行转发)
- SDN
- 数据平面
- 控制平面
第一章 网络
什么是网络
- 节点
- 主机节点 画方
- host 联网的冰箱等联网设备
- end system
- 数据交换节点 路由器、防火墙(网络层)、交换机(链路层)等既不是源、也不是目标,只进行转发 画圆的
- 主机节点 画方
- 边 链路
- 接入链路:主机和数据交换节点间access
- 骨干链路:数据交换节点之间的 backbone
- 互联网:以TCPIP为主的一簇协议工作的网络
- 协议:==对等层的实体==在通信时应当遵循的规则的集合 https://pic.imgdb.cn/item/64af49da1ddac507cc8830c0.png
- 格式
- 语法
- 语义
- 次序 如收到请求后才发响应
- 动作
- 格式
- 从服务层面看网络:
- 分布式应用
- 为分布式应用提供服务的基础设施,方式为api,两种形式如下
- 面向连接的服务TCPIP
- 无连接的服务UDP https://pic.imgdb.cn/item/64af4a1b1ddac507cc88b9c5.png
- 网络结构 三个子系统
- 边缘系统edge
- 接入系统access
- 网络核心core 数据交换
https://pic.imgdb.cn/item/64af4a701ddac507cc8986ce.png
https://pic.imgdb.cn/item/64af4a1b1ddac507cc88b9c5.png
网络边缘
https://pic.imgdb.cn/item/64af4ace1ddac507cc8a6a2b.png
运用进程间通信的模式
- CS模式 客户端服务器模式 ==服务器是主要的,首先运转==,守在端口等待客户端的请求,客户端主动请求服务器的资源,主为服务器,从为客户端
- 问题 请求多的时候达到阈值会断崖,存在可扩展性的问题?(不全)扩容满足不了用户的请求
- 对等模式(P2P)
- 每个节点==既是客户端又是服务器==,
- 请求资源的节点越多的同时 提供资源的节点也越来越多,且通信是==分布式==的,可以向不同节点请求
- 文件分发系统中常用 如迅雷、电驴
- CS模式 客户端服务器模式 ==服务器是主要的,首先运转==,守在端口等待客户端的请求,客户端主动请求服务器的资源,主为服务器,从为客户端
TCP面向连接TCP:握手,两者做好准备、底层协议栈 做好准备,为后续通信分配资源等,通信状态==只==在端系统维护(面向连接) https://pic.imgdb.cn/item/64af4b121ddac507cc8b0f2f.png
- 可靠 保序 (排序编号重传等 有时间代价
- 流量控制:协调发送和接收速度,不让发送方发送太快以至于超过接收方的处理速度
- 拥塞控制 考虑到网络路径的通行能力
UDP 无连接的
- 不可靠 丢了就丢了,如定时采样的东西丢了也没事就可以采用UDP
- 不用花时间的代价
- 不可靠 丢了就丢了,如定时采样的东西丢了也没事就可以采用UDP
https://pic.imgdb.cn/item/64af4b281ddac507cc8b4b4f.png
网络核心
分组交换
- 使用的是带宽的全部
- 以分组packet为单位,在每个节点全存储,查路由表,通过某个端口全转发来实现网络核心数据交换的作用
- 为什么要先完全存储?
- 在使用这条链路的时候,其他的链路可以被其他主机对所使用 共享
- 好处 按需使用,不占用网络资源 共享 支持的主机通信对数量更多 每个的节点不用维护主机对的映射
- 缺点
- 延迟比线路交换长,线路交换只耽误一个比特的时间,而分组交换要耽误存储的时间
- 有排队时间,若这条链路还有别的分组要传
- 排队延迟是随机的,后来的分组的排队延迟比前面的分组长
- 拥塞:路由器的缓存用完了的话,分组将会被drop,所以有可能丢失
- 举例 https://pic.imgdb.cn/item/64af4bb41ddac507cc8ccaaf.png![[Pasted https://pic.imgdb.cn/item/64af4bd11ddac507cc8d1d90.png注意发送和接收是一件事的两面,所以只算一次
- 划分时间片的方式,是随机的(不同于线路交换(固定的))称为统计多路复用
- 方式 按照网络层有没有连接分为
- 数据报 无连接 分组写了目标主机的完整地址,两主机在通讯前不需要握手,每个分组的传递都是独立的
- 因为路由表有可能变 即使目标主机ip没变,也有可能走不同的路线
- 路由器中不维护主机主机间通讯状态,查路由表就转走
- 虚电路 有连接 主机和目标主机通讯前要握手建立网络层的连接,交换节点间要保持通讯的状态,建立了虚拟电路,每个分组携带了虚电路号而不是目标主机的完整地址,同样是存储转发
- 怎么建立?靠信令
- 要维护通讯关系
- 这叫有连接而不是面向连接(通讯状态的维护仅仅体现在端系统)
- 虚电路和tcp
- 比如有个简单网络,主机A跟D需要通信。通过两个路由节点B跟C。类似这样A<—>B<—->C<—>D这时候在A和D之间,建立TCP连接,TCP协议是A和D之间的。那么,在整个链路中,A和D之间的包经过路由器B和C的时候,B和C如果针对每个这样的包都进行路由交换,会比较慢,那么这时候,B和C可以建立某种虚电路。这样:A<—>B<===>C<—>D需要注意的是,B和C之间的虚电路并不是仅仅服务于A到D的包的,他服务于B到C的包,也就是说如果通过B到C有其他的数据包,也可以通过虚电路。所以,简单来说的话,TCP是连接层协议,一般用于网络端点间。虚电路属于网络层,一般虚电路用于路由节点之间。
- 数据报 无连接 分组写了目标主机的完整地址,两主机在通讯前不需要握手,每个分组的传递都是独立的
电路交换,为呼叫预留端-端资源
- 独享的,专用资源,而计算机通讯具有很强的突发性,线路交换不太适合
- 要求建立呼叫连接,有线路建立的时间
- 保证性能
- 可能会被浪费资源,
- 常用于固话、移动通讯 https://pic.imgdb.cn/item/64af4bee1ddac507cc8d6933.png
- https://pic.imgdb.cn/item/64af4c041ddac507cc8da8a0.png
- 举例
- 注意还有电磁波穿越空间的时间,在局域网时传
- 播延迟才可忽略
- 64kbs每面传输64k bit https://pic.imgdb.cn/item/64af4c1a1ddac507cc8de411.png
- 缺点
- 连接建立时间长
- 计算机间通信具有突发性,若使用线路交换则浪费的片多
- 即使这个call没有数据传递,则其所占据的片也不能被别的呼叫胡勇
- 可靠性不高
- 交换机要维持很多对piece和piece的映射关系,一旦核心节点宕机,影响范围广
- 方式:频分、时分、波分
接入网和物理媒体
- 边缘端系统通过接入网接入网络核心
- 住宅接入:modom
- 利用已有电话线,调制、解调 在音频的载波上加载数据
- DSL
- 使用现有电话线
- 家庭电话线使用不同的频率进行编码:
高速上行信道,位于50kHz到1MHz频段;
中速下行信道,位于4kHz到50hHz频段;
普通的双向电话信道,位于0到4kHz频段。
上行下行速率不等 - 一个分配器把到达家庭的 数据信号 和 电话信号 分隔开,并将 数据信号 转发给DSL
- 线缆网络
- (86条消息) 【计算机网络】边缘路由器 三种家庭接入网(光纤到户) DSL、HFC与PON_pon dsl_脚踏实地的大梦想家的博客-CSDN博客 (86条消息) 【计算机网络】边缘路由器 三种家庭接入网(光纤到户) DSL、HFC与PON_pon dsl_脚踏实地的大梦想家的博客-CSDN博客
网络结构和ISP
把关系密集的,在一个网络当中的,成为一个ISP 的网络
- 网络的结构
接入ISP 端系统通过接入ISP接入到互联网,如移动、联通
接入ISP直接必须是互联的,如一个用的移动一个用的联通,若不互联则不能通信
- 如何将他们互联?
- 每两个直接相连,可扩展性scalability差,因为扩展到一定规模,系统i性能下降非常快
- 将每个接入ISP都连接到全局ISP https://pic.imgdb.cn/item/64af4c3b1ddac507cc8e4a64.png
- 合作IXP https://pic.imgdb.cn/item/64af4c3f1ddac507cc8e56db.png
- 区域ISP 小的运营商regional access
- https://pic.imgdb.cn/item/64af4c431ddac507cc8e61cf.png
- 如何将他们互联?
ICP如谷歌、百度content provider network
- 布置全球数据中心机房(靠核心ISP比较近的地方,因为用户要先通过ISP,提高用户体验),自己用专线连起来
- 如果要有不同
- https://pic.imgdb.cn/item/64af4cb91ddac507cc8fc89f.png
总结:
- 中心:第一层ISP,国家/国际覆盖(点少,点和点间带宽大),速率极高,贷款大
- 直接与其他第一层ISP相连
- 通过peer连接或者和IXP
- 与大量的第二层ISP和其他客户网络连接
- 直接与其他第一层ISP相连
- 第二层ISP 最终目的通过合作把互联的范围扩大
- 第三层ISP 与其他本地ISP 如接入网,与端系统最近,把终端接进
- 中心:第一层ISP,国家/国际覆盖(点少,点和点间带宽大),速率极高,贷款大
分组延时,丢失和吞吐量
- 一跳(hop)所要经历的四种分组延时
- 节点处理延迟,通常是微秒数量级或更少
- 检查分组有无出错
- 查路由表、处理等
- 排队延时 取决于当时网络情况(拥塞情况)
- 流量强度I=La/R, a指单位时间内需要这条篇链路转发的分组数量,每个分组长度L,所以I=单位时间这条链路需要放出的bit数量/带宽
- 范围是0-1
- 流量强度越接近1,排队延时趋近于无限大
- 流量强度I=La/R, a指单位时间内需要这条篇链路转发的分组数量,每个分组长度L,所以I=单位时间这条链路需要放出的bit数量/带宽
- 传输trasmistion延时 如R=Mbps,分组长度L=Mbits,传输延时为L/R
- 传播延时 越过空间需要耗费的时间代价,物理链路的长度、在媒体的传播速度,所以若两个节点物理距离近的话传播延时基本可忽略不计
- A主机到B主机需要很多跳
- 节点处理延迟,通常是微秒数量级或更少
- 信道容量
- 容量大 一个信道可以容纳很多分组
- 容量小 局域网 一个分组还没打完呢另一端就收到头的
- ICMP协议 互联网控制报文协议
- TTL time to leave生存时间是有限制,过一跳路由器TTL-1,若TTL=0的时候分组被抛掉(会通过ICMP协议告诉源主机,还说是我(某个路由器)干的)
- 可以利用TTL=1,2…测试每一跳的延时
- 分组丢失
- 每条链路对应的输出队列总是有限的,所以可能被用完,链路的队列缓冲区容量有限
- 分组到达一个满的队列时该分组会被drop
- 三种应对
- 若上一个节点的链路是可靠的,则上一个节点重传,
- 而若是不可靠的如以太网,且应用进程是通过TCP来放出分组则为源主机重传,
- 若链路是不可靠的且协议是UDP则源主机也不重传即根本不重传 https://pic.imgdb.cn/item/64af4cdd1ddac507cc90451a.png
- 吞吐量
- 单位时间内从源主机到目标主机的有效的比特数量/单位时间
- 瞬间吞吐量 在一个时间点的速率
- 平均吞吐量
- 吞吐量取决于瓶颈链路(获得带宽最少的)
- 单位时间内从源主机到目标主机的有效的比特数量/单位时间
协议层次和服务模型
- 功能模块化 相互调用
- 分层 仅相邻层次的可调用 特殊的模块化
- 大问题分解 便于采用新技术
- 互联网复杂功能的实现
- 上层模块可以使用下层服务,每层次通过层间接口向上层提供服务
- 每层实现一个或一组功能,通过协议实体的交互动作,对等层实体通过一些协议交换控制信息
- 怎么把协议数据单元PDU传给对方实体?实体
- 通过层间接口借助于下层提供的服务
- 协议的目的是为了向上层提供更好的服务,协议的实现要借助下层的服务
- 怎么把协议数据单元PDU传给对方实体?实体
- 本层向上层提供的服务也就包括了本层及以下的所有服务
- 服务和服务访问点
- 服务 低层实体向上层实体提供他们之间通信的能力,是垂直的
- 服务用户和服务访问点
- 若有三个应用,对于TCP来说是三个服务用户
- 服务访问点来区分报文给谁,下层服务提供者用于区分不同上层用户的信息,是在层间的
- 原语 上层使用下层服务的形式,上层要使用什么具体的服务?告诉服务提供者
- 服务访问点SAP sercices access point 使用下层提供的服务通过层间的接口——地点
- 服务 低层实体向上层实体提供他们之间通信的能力,是垂直的
- SDU服务数据单元,加上一些控制信息通过层间接口传到下一层,抛掉一些控制信息再加上一些本层的控制信息,形成本层PDU协议数据单元,跟对等层交换信息都是通过PDU进行交换的
- SDU很大的时候有可能分成小块,每块都在头部加上控制信息形成大小合适的PDU
- SDU很小的时候 合在一起再加一个头
- 总之,body部分来自于上层SDU
- PDU 每层交换的数据单元的称呼都不一样
- 分层处理的好处
- 大问题分解 便于采用新技术
- 坏处:
- 分布实现,子系统之间要相互交换信息导致效率相对更低
- 互联网协议栈
- https://pic.imgdb.cn/item/64af4cfd1ddac507cc90afe6.png
- 物理层
- 上层下来的帧一组一组地变成物理信号,承载在媒体之上,传输单位时bit
- 链路层
- 在物理层服务基础上在相邻两点间传输以帧为单位的数据,区分物理层比特的帧头帧尾
- 网络层
- 在链路层基础上提供以分组为单位的端到端(主机到主机)的数据传输
- 不可靠的
- 传输层
- 把通信从主机到主机细分为进程到进程
- 把网络层提供的可能不可靠的(乱序的、丢的等)变成可靠的
- 应用层
封装和解封装没看
- 标题: 计算机网络自学(更新中)
- 作者: lena
- 创建于: 2023-07-13 08:47:26
- 更新于: 2023-07-13 10:29:23
- 链接: https://lenaaa0.github.io/2023/07/6328c60e2bef.html
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论