该笔记为湖科大计算机网络相关笔记、教材参考计算机网络第六版
湖科大计算机网络
计算机网络概述
因特网概述
Internet和internet的区别
internet:只要是计算机与计算机连接,形成了网络,就可以叫internet
Internet:泛指全世界的互联网
注意:网络是由若干节点和连接节点的链路组成
因特网服务提供者ISP(Internet ServiceProvider),服务提供商,相当于三大运营商,通过想ISP缴费来获取大量的IP地址,再为普通用户提供服务
网络的覆盖范围
- 局域网:有限范围内的连接。比如 一个实验室,一栋楼,一个校园。
- 城域网:跨越几条街道的连接 5km~50km的距离。比如 街道与街道,整个城市。
- 广域网:世界级别的网络连接。 英文Wide Area Network 也就是我们常说的 WAN。
- 个人区域网:近身级别的网络连接,如无线个人区域的无线连接,无线耳机,鼠标等等。
基于ISP的服务架构图
互联网发展到后期,逐渐形成多层次ISP结构的互联网
ISP : 各地区的通信运营商(互联网服务提供方)
各地区ISP,从国际互联网管理机构 批发到成块的IP地址。通过这些IP,就可以通过IP接入互联网,我们说的上网指的是通过某个ISP接入互联网
不难发现,终端A想要找到B,可能会需要经过ISP。
顺便一提,一旦某个用户能够接入互联网,他就能成为一个ISP,他需要做的就是购买一些,如调制解调器或者路由器这样的设备,让其他用户能够和他连接。
因特网的组成
分为两个,一个是边缘部分,也就是用户的接入设备,比如平板,手机,电脑等等
第二个是核心部分,也就是服务器,路由器,交换机等等
三种交换方式
电路交换
电路交换的前提,是必须先打通一条物理意义上的连接,才能进行交换
报文交换
比较古老就不说了,淘汰了,都是整段整段报文传送,效率极低,遇到链路寄了跟着一起就寄了
分组交换 (计网主要用的分组交换技术)
假设主机H6的用户要给主机H2的用户发送一条信息,通常我们把表示该消息的整块数据(一大串二进制)称之为一个报文。
当然,分组交换中,整块的报文不可能一起在线路中传输的,那样就叫报文交换了,所以要对这个报文按照一定长度进行切割,但是光切割肯定不行,要对这块数据段加上一些由必要信息组成的首部。
报文被切割的二进制数据+必要信息的首部 = 包(分组)
这个首部也叫包头,添加它干什么呢?
包头里面最少应该有目的地址,将包导向需要的地址。当分组交换机收到分组数据后,先把他保存下来,检查其首部找到目的地址,经过查表转发给下一个交换机,这个过程在交换机内也叫存储转发。最终经过不停地分组交换到达目的地址H2
链路占用情况:
比如H6主机向R1节点传输分组,那么此时, 除链路H6→R1节点以外,其他链路节点均不被占用。同时,即使是链路H6→R1节点,也只有分组在此链路上传送时,才会被占用。该节点空闲期间,仍可被其他主机发送的分组所占用。
链路故障自动转移:
比如链路R1→R5节点,出现故障,或者负载过高,那么此时就会自动转移分组的发送到 链路R1→R2节点,规避异常链路。所以整体权衡起来是要比报文交换更快的。
这里要注意:分组交换机内存有限,所以暂时存的都是一个个短分组,而不是一大段长报文。这样对于交换机来说,一小段一小段的分组压力也小。
这里只是简述,真实的情况远比这更复杂。
三种交换方式优缺点
计算机网络性能指标
计算机网络有如下的性能指标
-
速率(每秒多少个比特位(二进制位))
主要就是8个0,1的二进制位等于1Byte字节,后面就是1024的进制了
比特率就是每秒多少个二进制位,也就是每秒多少个0或者1
-
带宽(传输能力)
带宽越大,每秒走过的数据量越高,就是咱们常说的下载速度
-
吞吐量
-
时延
时延在每个环节(发送时延,传播时延,处理时延,排队时延)都会出现
从源地址主机整理好数据发往网络内部(进入链路的时间),这个叫发送时延。
分组电路传播给路由器这段时间(链路上传输的时间),称为传播时延。
在路由器内部收到包之后对其进行存储再转发,拆包分析分组的首部 的时间(路由器内部),这段时间为处理时延
在分组进入路由器之后,需要进入输入队列中进行等待处理,处理完毕后,确定了转发的端口,还要在输出队列等待输出(从路由器出去),这段时间叫排队时延。
发送时延 + 传播时延 + 处理时延 + 排队时延 = 总时延
PS:所以网络上任何一个位置,都有可能影响到整条网络的时延。人们常有个误区,带宽高,延迟就会低,实际上,带宽高只降低了发送时延,其他的三个时延实际上并没有得到任何改善。如果其他三个时延有上升的情况,那么总时延就会更高。
- 时延带宽积
从这个名字就可以看出来,时延带宽积就是时延和带宽的乘积
也就是时延 x 带宽 = 时延带宽积
应该是计算某一时刻内,传输管道走了多少比特流。
- 往返时间
从发出信息到接到目标主机回应的时长
- 利用率
是线路负载的一种平衡,保持在0.2~0.5最好
- 丢包率
比如交换机内部,等待处理后转发的分组,都积压在工作队列里,后面来的分组越来越多,队列放不下了,就得扔,所以就丢包了。很多涉及到队列的网络设备都可以统计丢包率。还有的情况,就是处理的时候,通过校验码得知当前分组是错误的,这种包也会被丢弃。
- 总结
常见的网络体系结构
TCP/IP协议簇一共四层。允许IP在各式各样的网络构成的互联网上运行 Everything is Over IP
TCP/IP协议簇将其连接起来,因为上下两头大而中间小,应用层和网络接口层都有多种协议,而中间的IP层很小,上层的各种协议都向下汇聚到一个协议中。
目前常用的体系结构
- OSI的七层协议太复杂,仅仅是法律上的模型,实际上并不用这种模型
- TCP/IP体系结构太过简单,理论太简单了,需要再清晰一些,于是扩充到五层结构
- TCP/IP体系五层协议标准,结合了前两者的优点,当今计算机网络大规模应用的就是这个结构
– 五层协议中 应用层服务上层应用,运输层负责拆解报文,网络层负责分组并选择路由,数据链路层负责将分组在链路上传播,最下层的物理层负责保障稳定的信号传输。以上的每个层级结构,均对其上级提供接口服务,向下能够调用下层提供的接口。
为什么是TCP/IP
最早的TCP/IP协议是粘在一起的,并没有分层的思想来设计。直到后来,分组从发送方到达接收方之后,会出现损坏,排序错误等问题。单纯的靠TCP协议纠错就比较复杂,于是就将可靠传输和数据转发这两个功能分离开。
- 传输层的TCP协议,涉及检测网络传输差错,丢失数据报恢复等等。
- 网络层的IP协议,负责在不同的网络之间实现互联操作,提供单个数据包的转发和寻址。
这两个协议合并在一起,构成了TCP/IP协议,并一直发展至今,IP协议进化到IPV4的版本
两个协议合并称为:TCP/IP4协议(传输控制协议 / 互联网协议)
但是有些应用程序不需要可靠传输,也加入了另外一种传输协议,也就是UDP协议,以便提供对IP的直接访问
TCP协议:全名Transmission Control Protocol (传播控制协议) 包含了一系列稳定传输的措施,包括流量控制,差错校验等等一系列保证正确可靠传输的方式,
计算机网络分层的重要性
计算机网络是一个非常庞大并且复杂的系统,所以非常有必要针对其进行分层处理。
计算机网络每一层都干了些什么:
-
应用层(给最顶层的应用提供服务,向下传输报文)
对上:为用户提供网络服务和应用,如HTTP、SMTP、FTP等。它是用户与网络通信的接口。
对下:通过传输层的服务,将数据传输给下一层。
-
运输层(收集完整报文上交。给下层完整的报文,下层再拆分)
对上:为应用层提供端到端的通信,主要提供数据传输的可靠性和流量控制,如TCP和UDP协议。
对下:通过网络层提供的服务,将数据(报文)传输给下一层,或者从下一层接收数据。
-
网络层
对上:负责将分组从源主机传输到目标主机,主要是通过IP协议实现。
对下:通过数据链路层提供的服务,将分组传输给下一层,或者从下一层接收分组,并负责寻找最佳路径将分组发送到目标主机。
-
数据链路层
对上:负责将数据包组装成帧(Frame),在相邻节点之间传输数据,通常使用MAC地址进行物理地址定位。
对下:通过物理层提供的服务,将帧发送到物理介质上,或者从物理介质上接收帧,并将其解析成数据包传递给网络层。
- 物理层
对上:负责传输原始比特流,定义数据传输所使用的物理介质、接口、电气特性等。
对下:与网络连接的硬件设备(如网卡、光纤等)直接进行数据传输。
- 总结一下
分层思想举例
从应用层按Http协议,构建一个Http请求报文,这个报文就是开发时候常见的请求头。应用层把这个报文交给运输层处理,为其加一个TCP首部,使之成为TCP报文段,这个报文段主要是为了区分应用进程以及实现可靠传输。运输层再把TCP报文段交付给网络层,网络层给TCP报文段加一个IP首部,使其成为一个IP数据报。可以在网络上传输。再交由数据链路层,数据链路层给IP数据报添加一个首部和一个尾部使之成为帧。最后,交付给物理层。物理层眼里就是比特流。
**注意,这个每一层加首部,直到转换为比特流(反过来从比特流层层拆头部)的过程,全部是在计算机内部完成的,由网卡直接输出比特流,交付给物理层的网线做进一步的运输!而不是在交换机、路由器 或者计算机网络的某个地方实现的,全部是在计算机内部做的 **
计算机网络本身链路就是网线,其他的节点都是或多或少的对于五层协议的实现。
总结:
自顶层向下,每一层都加一个对应层的首部,注意:数据链路层除了头部帧以外,还会加一个尾部帧使之成为帧,用于在物理层的比特流中被区分出来
自下层向上,每层都去掉之前加上的首部或者尾部,最后还原出报文原有的样子
帧的结构
流程图
计算机网络体系结构专业术语
实体
- 实体:任何可发送或接收信息的硬件或软件进程(需要用到网络的软件)。
- 对等实体:收发双方相同层次中的实体。
协议
- 协议控制两个对等实体进行逻辑通信的规则的集合。
不同的层之间,协议只考虑当前层就行,不用顾及其它层。换句话说,使用本层服务的实体只能看见服务而无法看见下面的协议,下面的协议对于上面的实体(调用方)是透明的。注意这个透明指的不是说什么都清楚,而是什么都不清楚,拿被应用层调用的运输层来说,应用层只知道靠运输层可以得到可靠传输服务,而并不知道,应用层及其下面的层是如何做到的。所以这种透明的含义,更像是屏蔽了复杂的实现,而向上提供简单的接口调用即可。
-
协议的三要素:语法、语义、同步
-
协议是定义所交换信息的格式
规定的格式:
-
语义是指收发双方所要完成的操作
比如Http的请求,也就是通信双方在建立连接后所做的操作
- 同步定义收发双方的时序关系
建立连接的过程以及时序的转换
服务
不同数据包之间进行交换的数据包都叫什么名字
PDU:水平
SDU:垂直