计算机网络
2022-03-07 11:03:18 1 举报
AI智能生成
计算机网路(自顶向下方法)xmind
作者其他创作
大纲/内容
1.计算机网络和因特网
1.1 网络相关名词的定义
网络:网络是由节点(端系统)和网络组成的
互联网:一个个节点设备组成局域网,一个个的局域网通过交换机或者路由器组成的庞大网络
分布式应用程序:一些在线社交、在线教育程序运行于多个端系统上,涉及多个端系统之间的数据交换,所以这些应用程序也被称为分布式应用程序;
协议:定义了两个或者多个通信实体之间交换的报文的格式和顺序,以及报文发送或接收所采取的动作;
1.2 网络边缘
定义:网络边缘是指我们常使用的计算机、手机等终端设备
端系统=主机
客户
通常是用户的手机或者PC机这些计算和存储能力都比较弱的机器
服务器
通常是那些计算及存储能力比较强劲的机器,用来存储和发布web页面
网络接入网
定义:指的是讲端系统物理连接到边缘路由器的网络
接入媒介分类
1.家庭接入:DSL、电缆、FTTH、拨号和卫星
2.企业(或者家庭)接入:以太网交换机或者WIFI
3.广域无线接入:3G或者LTE
网络接入网的物理媒体
1.双绞铜线
2.同轴电缆
3.光纤
4.陆地无线电信道
5.卫星无线电信道
1.3 网络核心
分组交换
交换机
路由器
链路层交换机
package(分组)定义:端系统之间进行数据传输,源端系统向目的端系统发送一个报文,源将长报文划分为较小的数据块,称之为package,在源和目的地之间,每个package都通过通信链路和package(分组)交换机传送;
特点
1.存储转发运输
所有数据到达一个节点之后,在这个节点进行临时存储直到所有数据都拿到之后,再进行转发到下一个节点;
2.排队时延和分组丢失
概念:每个交换机会和多个链路进行连接,对于每个相连的链路,该分组交换机具有一个输出缓存(也称为输出队列)
排队时延:当一个链路正在进行其他package传输时,新到达的package就需要在输出缓存中进行排队
分组丢失:当缓存空间达到一定的程度完全充满之后,新到达的package就会丢失,也叫package(分组)丢包
3.转发和路由选择协议
转发:当路由器从链路中获得分组数据之后,分组数据的首部就包含了目标系统的ip地址,路由器获取到目标ip之后会查询路由表(转发表),决定分组数据往哪个链路进行传输;
路由器协议:用于自动设置转发表
电路交换
定义:发送方和接收方之间建立一条连接,交换节为他们之间的连接维护连接状态,传统的固定电话就是这种连接方式;
电路交换网络中的复用
频分复用 FDM
时分复用 TDM
分组交换和电路交换的对比
分组交换提供了比电路交换更好的带宽共享、比电路交换更简单、更有效,实现成本更低
电路交换对于实时性要求比较高的,对时延不可控情况不接受的,比如在线会议更能起到更好的支持;
因特网结构和ISP
ISP:可以理解为一个接入其他网络的一个局域网,互联网本质上是由很多的ISP通过路由器进行互联组成的
ICP:互联网内容提供商,比如百度、谷歌、微信,用户向ICP请求,ICP向用户提供请求的数据,但是ICP如果通过运营商之间的网络进行传输的话,会产生比较大的流量费用,故ICP大多情况下会铺设自己的专用电缆节约费用;ICP会在各个地方建立自己的数据中心,减少数据传输;
1.4 分组交换中的时延、丢包和吞吐量
时延的分类
处理时延
路由器查路由表该向哪条链路传输的耗时时间(实际耗时是微秒或者更低的数量级)
排队时延
分组在链路上等待传输时经受的排队时延
传输时延
所有分组的比特推向链路发射需要的时间(实际传输时延通常在毫秒到微秒量级)
传播时延
比特在两个路由器之间传输所需要的时延
传输时延和传播时延的区别
传输时延=分组长度/链路传输速度
传播时延=两个路由器之间的距离/不同媒介的传播速度
总时延=处理时延+排队时延+传输时延+传播时延(一般情况下主要是传播时延和排队时延占了大头)
丢包
路由器缓存队列大小是有限的,当容量趋近于1时,新到达的分组就会被丢弃;
丢失的分组可能在上一个节点重传,可能在源主机重传,可能不重传;
Traceroute
原理:假设端到目标端之间有N-1路由器,分组到达每个路由器之后,该路由器就会返回自己的ip地址和分组到达自己所需要的时间给源系统
链路层
可靠 wifi
不可靠 以太网
吞吐量
定义:源和目标端系统之间传输速率,取决于瓶颈链路的传输速率(木桶效应)
瞬时吞吐量
平均吞吐量
1.5 协议层次及其服务模型
协议分层
应用层
应用层是网络应用程序及它们的应用协议存留的地方。
应用层协议分类
HTTP(提供Web文档的请求和传送)
SMTP(提供电子邮件报文的传输)
FTP(提供两个端系统的文件传输)
位于该层的信息分组称为报文。
传输层
传输层是在应用程序端点之间传送应用层报文。
传输层协议分类
TCP 面向连接 可靠
UDP 无连接 不可靠
位于该层的信息分组称为报文段。
网络层
运输层协议(TCP或UDP)向网络层递交运输层报文和目的地址;
网络层协议分类
IP协议
找到目标ip
路由协议
该往哪里转发
位于该层的信息分组称为数据报;
链路层
网络层将数据报下传给链路层,链路层沿着路径将数据报传递给下一个节点;
链路层协议分类
以太网
WIFI
电缆接入网的DOCSIS协议
位于该层的信息分组称为帧;
物理层
物理层是将帧中的一个个比特从一个节点移动到另一个节点;
实际传播媒介(于链路层对应)
双绞线
单模光纤
协议单元
OSI模型
国际标准组织提出的七层网络模型,比互联网协议模型多了表示层和会话层,实际上互联网协议模型中的应用层已包含了表示层和会话层的功能;
我们这里提到的网络五层模型为互联网协议分层
封装和解封装
本层协议的实现要通过承接接口,调用下层提供的服务;实现本层协议的目的,是为了通过接口向上层提供更好的服务;
1.6 网络的发展历史
网络的分层模型
2.应用层
1.原理
1.应用程序体系结构
CS客户端-服务器体系结构
P2P体系结构
P2P混合体结构(cs和p2p的混合体)
2.进程通信
1.客户端和服务器进程
2.进程与计算机网络之间的接口
3.运输层为应用层提供的服务要求
1.可靠数据传输
TCP和UDP对数据可靠性传输有不同的要求;
2.吞吐量
取决于瓶颈链路
3.定时
何时发送
4.安全性
例如SSL协议介于TCP和http之间,为传输层提供安全性服务;
4.因特网提供的运输服务
TCP
TCP Socket代表的就是一个会话关系。四元组(本地ip,本地端口号,目标ip,目标端口号)
特点
面向连接的服务:建了握手之后双方的进程可以在此连接基础上进行报文收发;
可靠的数据传送服务:可以依靠TCP 无差错,按适当顺序交付所有发送数据。
UDP
UDP Socket 二元组(本地ip,本地端口号)
特点
不提供不必要服务的轻量级传输协议
没有拥塞控制机制
5.应用层协议
1.交换的报文类型,例如请求报文和响应报文
2.各种报文类型的语法 如报文中的各个字段及这些字段是如何描述的
3.字段的语法 即这些字段中的信息的含义
4.确定一个进程何时以及如何发送报文,对报文进行响应的规则
2.实例
Web和Http
http协议:也叫超文本传输协议,其实就是客户端向服务器请求对象,对象就是html通过应用层封装成htttp协议进行传输;其实每个web页面包含很多超文本,是通过先获取其中一个文本对象,再解析里面的超文本链接获取其他对象,不断渲染直至所有web页面被全部渲染完毕;
Http协议
非持续连接(Http 1.0 ),即客户端接收到服务端响应之后,关闭tcp连接
持续连接(Http 1.1)允许在相同连接中有多个请求和回答交错
Http报文格式
请求报文
请求类型
GET
POST
HEAD
响应报文样例
常见的状态码
200 表示成功的请求
404 找不到请求的资源
400 该请求不能被服务器理解
301 请求的对象被永久转移了
505 服务器不支持请求报文使用的http版本
Cookie
作用:由于http是无状态的,不保存客户端的状态,所以由服务端每次给客户端发送一个cookie,客户端每次访问服务端的时候带上cookie,服务端通过cookie就可以知道客户端所处的一个访问状态;
Web缓存
作用:二八原则(客户端请求的内容是大致集中的),每次请求服务器之前先请求缓存服务器
存着的问题:缓存服务器与服务器一致性问题
解决方案:在http请求中加上<if-nodified-since>:<date> 如果服务器对该对象没有修改的话,就不用重新传送报文过来,这样就可以解决服务器与缓存之间的一致性问题;
FTP协议
文件服务器,用户通过FTP协议向文件服务器上传或者下载文件。
因特网中的电子邮件组成情况
1.用户代理(用户采用foxmail、outlook接收邮件、客户通过浏览器访问服务器,这些工具就是用户代理)
2.邮件服务器
3.简单邮件传输协议(SMTP)
早期的邮件只支持7位ASCII码,甚至没办法传输中文,后面通过超过7位ASCII码的通过base64转化为ASCII 7位范围内,实现了数据的传输;
POP3、IMAP或HTTP在电子邮件的应用
电子邮件从源头是通过SMTP推送到邮件服务器,邮件服务器推送给目标客户代理是通过POP、IMAP或HTTP协议
DNS
DNS:(1)一个由分层的DNS服务器实现的分布式数据库 (2)主机能够查询分布式数据库的应用层协议;(3)该DNS协议运行于UDP之上,使用53端口;DNS不是一个直接和用户打交道的应用;是为其他应用层软件提供域名与ip地址转换的服务;
注意:域名的划分是逻辑上的,与物理上主机没有关系;也就是同一个域名下的主机,可以分布在世界上的各个位置;
DNS工作机理
分布式、层次数据库
根DNS服务器、顶级域DNS服务器、权威DNS服务器、本地DNS服务器
迭代查询
DNS缓存
本地DNS服务器会保留域名和ip映射信息两天时间,减少去权威服务器查询的时间;
DNS报文和记录
资源记录是包含(Name,Value,Type,TTL)四元组;TTL是生存时间,name和value的值取决于Type;当Type取不同的值时,对应的Name,Value有不同的对应值;
P2P文件分发
P2P文件分发:每个对等方能够向任何其他对等方重新分发它已经收到的该文件的任何部分;最流行的P2P文件分发协议是BitTorrent
P2P结构分类
非结构化P2P
集中化目录:先向服务器获取目录信息,再决定向哪些对等体获取数据
完全分布式:泛洪式的,每个对等体不断向周围的几个对等体询问是否有响应的资源,不断扩散;
结构化P2P
环形的结构化P2P,环形中的固定几个对等体存储有一部分目录信息
BitTorrent协议
当一个对等体首次加入一个洪流,它没有块,当它积累了越来越多的块,它就可以为其他对等体提供较多的服务同时,其他对等体也优先为它提供服务;(即利己利他)
视频流和内容分发网
HTTP流和DASH
视频也可以用http协议来传输,只不过有一个致命的缺点就是所有的客户设备都收到相同编码的视频,不能对设备有很好的适配性;所以衍生了DASH(http的动态适应流)可以将视频编码分为几个版本,不同的客户端可以根据需求选择不同的编码质量的视频;
内容分发
CDN操作
CDN:内容缓存服务器,互联网内容服务商可以让cdn服务商为其提供内容加速服务;其主要的工作原理是cdn服务商将互联网内容服务商的内容文件按照一定的策略先存储在cdn服务器中,这样用户请求互联网内容服务商的时候,他们的服务器就可以重定向到cdn服务器,cdn服务器就可以向用户提供服务;这样也就可以为用户提供高质量的服务了;
集群选择策略
地理位置最为邻近的集群
实时测量
学习案例:Netflix
3.TCP和UDP
tcp
特点:可靠,有连接
连接过程
提供的是可靠的字节流服务
udp
特点:不可靠,无连接
连接过程
提供的是不可靠的数据报服务
3.传输层
1.概述与传输层服务
TCP
TCP传输的分组称为报文段
UDP
UDP传输的分组称为数据报
2.多路复用与多路分解
无连接的多路复用与多路分解
udp提供的是进程之间的通信;应用层提供的socket的一个包含目标ip和端口的信息,传输层加入了目标ip和端口,交给网络层进行传输;数据报复用传输层udp,到了目标传输层进行多路分解;
有连接的多路复用与多路分解
tcp提供的是进程之间的通信;向应用层提供的是scoket是一个包含目标ip和端口、源ip和端口的四元组,数据报传输可以复用tcp,到了目标主机tcp之后通过多路分解,找到目标进程;
3.无连接传输UDP
1.关于发送什么数据以及何时发送的应用层控制更为精细。2.无须连接建立。3.无连接状态
2.UDP报文结构
源端口和目标端口
长度、检验和
用于接收端通过检验和判断比特是否发生了改变、从而进行校验。
应用数据(报文)
4.可靠数据传输原理(简称rdt)即如何保证数据的可靠传输
检验和
用于检验比特是否发生变化
定时器
当package发送往目标端,迟迟未等到ack确认时,进行超时重传。
序号
对于流水线协议(简称GBN)中,一次发送多个package时,会对package进行编号。
确认和否认确认
当目标端收到package时会向发送端发送ack确认
窗口和流水线
允许发送端一次发送多个package,接收端和目标端发送和接收的能力限制主要来自于缓冲区(也就是窗口的大小)
5.面向连接的TCP
TCP提供可靠数据传输的依赖:1.差错检测、2.重传、3.累积确认、4.定时器、5.用于序号和确认号的首部字段。6.接收缓存(流量控制)
TCP
连接建立
三次握手
如果是两次握手就建立连接就会出现半连接和接收老数据的问题。
连接断开
四次分手(对称断开)
对称断开,其实并不完美。加上最后的定时器勉强可行
6.拥塞控制原理
拥塞的原因和代价
分组在网络核心中进行数据传输时,当网络中的交换机缓存达到一定程度时,此时发送的分组越多,分组到达目标端的速度将不再增加,反而趋于平缓,甚至随着分组数量的增加呈线性下滑。所以要对拥塞加以控制。
拥塞的控制方法
1.端到端拥塞控制
tcp采用端到端的方法解决拥塞控制
2.网络辅助的拥塞控制
早期的IBM SNA、DEC DECnet和ATM体系结构中被使用;但是会加重网络的负担和复杂性
7.拥塞控制
TCP的拥塞控制
1.慢启动
2.拥塞避免
3.快速恢复
TCP的公平性
tcp与tcp之间是公平性的,平分带宽的
tcp与udp之间是不公平的,udp用占用较多的带宽资源
4.网络层:数据平面
1.概述
网络层分解为两个相互作用的平面,控制平面和数据平面
数据平面决定到达路由器输入链路之一的数据报如何转发到该路由器的输出链路之一。
控制平面控制数据报沿着从源主机到目的主机的端到端路径中路由器的路由方法。(总体把控从哪条链路传输过去)
转发和路由选择
转发:当一个分组到达路由器的一个链路时,路由器必须将该分组移动到适当的输出链路。
路由选择:确定分组从源到目的地所采取的端到端路径的网络范围处理过程。
控制平面
传统方法
路由选择算法决定插入该路由器转发表的内容,每台路由器都包含有转发和路由选择两种功能(耦合在一起)
SDN方法
远程控制器计算和分发转发表以供转发表所使用,路由选择设备仅执行转发。(转发和路由选择解耦,现在越来越普及)
网络服务模型(尽力而为服务)
不能保证顺序接收
不能保证最终能被交付
不能保证端到端的时延
不能保证最小的带宽
2.路由器的组成和工作原理
交换结构
经内存交换(最早的路由器是一台计算机)
经共享总线交换
经互联网络交换(此处的互联网络不是我们理解的互联网络)
路由选择处理器
路由选择处理器与远程控制器进行通信,目的是接收远程处理器下发的转发表项;
输入端口
线路端接 -> 数据链路处理(协议、拆封)-> 查找,转发,排队 - > 交换结构
输出端口
交换机构 -> 排队(缓存管理)-> 数据链路处理(协议、封装)-> 线路端接
3. IP协议
1.IPV4数据报格式
1.版本号:规定数据报的ip协议版本
2.首部长度:用于存放一些可变数量的选项
3.服务类型:用于区分不同类型的ip数据报(低时延、高吞吐量)与非实时的流量(FTP)区分开
4.数据报长度:ip数据报长度,包含首部
5.标识、标志、片偏移(ipv4经过路由器时如果数据报长度过大会被分片)
6.协议(交给TCP还是交给UDP)
7.首部校验和(帮助路由器检测ip数据报中的比特错误)
8.源和目的ip地址
9.选项(允许ip首部 被扩展)
10.数据
2.IPV4数据报分片
比如一个4000字节的数据报经过一个链路MTU:1500字节,就会被分成三个较小的数据报;会对这三个数据报给与一个唯一的id,再给它们不同的偏移量标识以便它们能在经过路由器后在目标端组合回去。
3.IPV4编址
子网掩码
223.1.1.0/24 其中的/24记法,称为子网掩码;因为路由器在找下一跳的时候并不是一个个ip的找的,是一个个ip群的找的;这样能提高查找路由表的效率。
专用地址范围
Class A 10.0.0.0-10.255.255.255 MASK 255.0.0.0
Class B 172.16.0.0-172.31.255.255 MASK 255.255.0.0
Class C 192.168.0.0-192.168.255.255 MASK 255.255.255.0
DHCP(动态主机配置协议)
主机每次与网络连接时能够被分配一个临时ip地址,有使用有效期
NAT网络
NAT网关主要的作用是让局域网与外网进行通信的时候,能让局域网从一个固定ip访问外网,外网的数据回来之后又能找到发出请求的那台主机;其实就是NAT网关自己的端口和局域网的设备端口进行了NAT表绑定记录;
4.IPV6数据报格式
与IPV4的区别
扩大地址容量 从32比特扩大到128比特
简化高效的40字节首部
流标签
用于标识需要实时服务的流
组成
版本
流量类型
流标签
有效的载荷长度
跳限制
源地址和目标地址
数据
4.通用转发和SDN
每台分组交换机包含一个匹配加动作(转发、丢弃或修改字段)表,该表示远程控制器计算和分发的
相对于传统的路由器(集数据平面和控制平面一体),这样的好处是可以解耦,让路由器具备更多的功能,网络变得可编程起来
简单转发
负载均衡(对流量的传输路径进行规划)
充当防火墙
5.网络层:控制平面
概述
每路由器控制
每台路由器中运行一种路由选择算法,每台路由器中都包含转发和路由选择功能。
逻辑集中式控制
逻辑集中式控制器计算并分发转发表以供每台路由器使用的情况。
路由选择算法
不同的维度进行分类
集中的还是分散式的
集中式路由选择算法(用完整的、全局的网络知识计算出从源到目的地之间的最低开销路径)
分散式路由选择算法(以迭代、分布式的方式计算出最低开销路径)
算法是静态还是动态
静态路由选择算法(路由随时间变化的速度慢,通过人工进行调整)
动态路由选择算法(随着网络流量负载或拓扑发生变化而改变路由选择路径)
负载敏感程度
链路状态路由选择算法
距离向量路由选择算法
因特网自治系统内部的路由:OSPF
ISP之间的路由选择:BGP
SDN控制平面
ICMP:因特网控制报文协议
网路管理和SNMP
6.数据链路层和局域网
链路层的主要功能是解决一个节点把帧通过链路传到另一个节点;网络层解决端到端之间的传输问题;传输层解决进程与进程之间的区分,解决不可靠的传输问题;应用层解决交换报文,实现网络应用;
局域网将帧打到自己局域网上的路由器网卡(网卡也叫网络适配器),通过路由器网卡把数据传输给下一个局域网网卡路由器;网卡可以同时发同时接。
1.链路层概述
链路层的服务
成帧,链路接入
在相邻两个节点完成可靠数据传递(但不是所有链路层都实现了可靠性,比如以太网采用电缆进行传输出错概率低,所以没有必要对低概率的出错事件在链路层进行可靠性保障。像无线网络出错率比较高就要在链路层实现出错控制)
半双工和全双工
半双工:链路可以双向传输,但一次只有一个方向,比如警察用的拨号机
网络适配器
2.差错检测和纠正技术
奇偶校验(用于描述差错检测和纠正背后隐含的基本思想)
检验和方法(更多应用于运输层)
循环冗余检测(更多的应用于适配器中的链路层)
3.多路访问链路和协议
即如何协调多个发送和接收节点对一个共享广播信道的访问
多路访问协议划分
信道划分协议
时分多路复用
将时间划分为时间帧,当某个节点有分组要传输时,在该时间帧内进行传输。
频分多路复用
将信道划分为不同的频段,每个频段占R/N的带宽,再将每个频率分给N个节点中的一个
码分多址
对每个节点分配一种不同的编码,每个节点用他唯一的编码对它发送的数据进行编码
随机接入协议
时隙ALOHA
ALOHA
CSMA(载波侦听多路访问)
碰撞检测的载波侦听多路访问
轮流协议
集中:由一个中心节点轮询;分布:通过令牌控制
蓝牙、FDDI、令牌环
信道划分
LANs
路由器和交换机的区别
一个是L3层工作的、一个是L2层工作的;路由器主要是通过ip地址进行寻址找到对应的host的,而交换机主要是通过mac地址进行寻址找到局域网中机器的位置的。
7.计算机网络安全
1.什么是网络安全
1.仅有发送方和接收方能够理解传输报文的内容
2.通信的内容在传输的过程中没有被篡改
3.能够通过通信确认另一方确实具有其声称的身份。
网络攻击者能够做的事情
监听和记录信道上传输的控制报文和数据报文。
修改、插入或者删除报文或者报文内容。
2.加密原理
1.对称密钥系统(发送方和接收方使用的密钥是相同并且是私密的)
2.公钥系统加密(发送方使用公开密钥加密,接收方使用私有密钥解密得到发送方发送的内容、或者使用私钥加密,对方用公钥能够解密出加密前的文件信息)
3.认证
概念:一个实体经过计算机网络向另一个实体证明其身份的过程。就是说对方如果知道你确实就是你说的那个身份。
4.报文完整性
一般是使用加密算法对报文摘要进行加密,然后将加密出来的报文摘要和完成的报文进行一起发送,保证报文的完整性。因为使用私钥对报文全部加密的话耗费的时间太长,所以一般只是对报文摘要进行加密,但是这种情况下就是要保证每个报文的报文摘要是唯一的。
5.密钥分发和证书
根证书
操作系统自带的证书
6.访问控制:防火墙
目的
从外部到内部和内部到外部的所有流量都通过防火墙
仅被授权的流量允许通过
防火墙自身免于渗透
防火墙分类
传统的分组过滤器
原理:分组过滤器独立检查每个数据报,基于管理员特定的规则决定该数据应当允许通过还是应当丢弃。
过滤条件
ip源或者目的地址
在ip数据报中的协议类型字段:TCP、UDP、ICMP、OSPF
TCP或者UDP源或者目的端口
TCP标志比特:SYN、ACK等
ICMP报文类型
数据报离开和进入网络的不同规则
对不同路由器接口的不同规则
状态过滤器
原理:状态过滤器实际地跟踪TCP连接,并使用这种知识做出过滤决定。大白话说就是分组进入机构网络的时候去查看TCP分组列表是不是已经是有维护的分组,如果不是就把这个分组阻断掉。
应用程序网关
原理:应用程序网关是一个应用程序特定的服务器,所有的应用程序数据必须经过它。通过这个网关将内部的数据进行转发,再与外界的服务器建立联系。
0 条评论
下一页