计算机网络知识图谱-考试重点
2021-04-01 14:42:10 0 举报
AI智能生成
计算机网络知识图谱
作者其他创作
大纲/内容
三、数据链路层
功能 & 定义
位于物理层上方,确定了0和1的分组方式
单独的0和1没有意义
须规定解读方式
多少电信号算一组
每个信号位有何意义
负责解读电信号0和1组成的分组数据包(即帧)
以太网协议
规范电信号分组方式 / 解读方式的协议
协议规定
一组电信号构成一个数据包(帧)
帧组成
标头
组成:包含数据包的一些说明项
发送者MAC地址
接受者MAC地址
数据类型
长度:固定18字节
最初7个字节称序言
每个字节内容都是0xAA
作用
让接收设备调整接收频率
以便与发送设备频率一致
数据
内容:数据包的具体内容
长度
min: 46字节
max: 1500字节
尾部
固定4个字节,检验序列
检验数据传输是否发生错误
类型
CRC:循环冗余校验码
奇偶校验
整个帧长度
min: 64字节
max: 1518字节
数据过长,须分割成多个帧发送
MAC地址
定义
又称硬件地址(物理地址)
即是网卡的地址
网卡出产都有一个唯一的mac地址
长度48位,通常用12十六进制数表示
有了mac地址,就可以定位网卡和数据包的路径
如何将数据包从发送方送到接收方
原始方式: 广播
以太网数据包必须知道接收方的MAC地址:标头
向局域网内所有计算机发送
让每台机判断,是否为接收方:读取接收方MAC地址是否与自己一致
转发表
PPP协议
定义
用户PC和ISP进行通信时所使用的数据链路层系恶意
问题
是只有交换机维护一张mac转发表,还是局域网中每台机都有转发表
mac地址与ip地址
二、物理层
功能
通过物理手段将计算机连接起来
光缆
电缆
双绞线
无线电波
规定网络的电气属性,负责传送0和1的电信号
电脑网卡接口
收发点信号
解读成0/1序列
一、基本概念
数据包结构
分支主题
相关设备
中继器
功能
物理层
连接同一网络的多个网段
放大信号,扩展网络连接范围
集线器
定义
物理层
集中广播式中继设备,数据包发送到与集线器相连的所有节点
对接收到的信号进行整形放大
是一个多端口的中继器
缺点
不具备交换功能
易引起广播风暴:同时传送多份数据时造成数据包的冲突问题
网桥
定义
二层路由器,根据MAC地址转发帧
将两(多)个局域网连起来
数据链路层
特点
除了有中继器,集线器的功能以外,还可以对MAC地址分层
提高了可靠性
只适合于用户信息少量的网络
数据交换时采用的信息传递方式时延高
交换机
特点
数据链路层
根据mac地址进行数据转发
有效抑制广播风暴
转发延迟小,效率高
与集线器对比
交换机每个端口属一个冲突域
集线器所有端口都属一个冲突域
交换机的前身是网桥
交换机用硬件完成
网桥用软件完成
网关
定义
应用层
协议转换器
实现网络层之上不同协议网络之间的互连
一个网络连接到另一个网络的关口
路由器有多个网关(地址)
路由器
功能
连接多个网络的设备
将不同网络的数据信息进行转换
为IP包传输分配最合适的路径
数据通道功能
转发决定
背板转发
输出链路调度
数据控制功能
与相邻路由器之间的信息交换
系统配置
系统管理
特点
网络层
根据IP进行寻址转发数据包
七、串联总结
网络通信就是交换数据包
1、发送包需要两个地址
对方的mac地址
对方的ip地址
2、发送包需判断对方是否在同一个子网络
同一子网
对方的mac地址
对方的ip地址
不同子网
网关的ip地址
对方的ip地址
六、应用层
应用层协议
浏览器功能:URL也不同
email:电子邮件
http:访问Web服务器
域名层次
越靠右域名层次越高,每一层都称为域(www只是Web服务器的名字)
向前增加子域;www.nikkei.co.jp
ftp:在FTP服务器上上传下载文件
DHCP
基本概念
工作在应用层,基于udp协议
功能 & 作用
动态分配IP地址
协议规定
1、每个子网络,会有一台机(DHCP服务器)负责管理本网络的所有IP地址
2、新的计算机加入网络
向dhcp服务器发送一个dhcp请求
申请IP地址和相关网络参数
申请步骤
①发dhcp包
帧头部(以太网标头)
发出方(本机网卡)MAC地址
接收方(DHCP服务器)MAC地址
未知,填入FF-FF-FF-FF-FF-FF(广播地址)
ip头部
发出方ip
未知,填入0.0.0.0
接收方ip
未知,填入255.255.255.255
udp头部
发出方端口
68
接收方端口
67
以广播形式发送
②dhcp服务器接收包
检测到ip
发出方:0.0.0.0
接收方:255.255.255.255
③dhcp服务器读取dhcp包
④分配ip地址
⑤回送一个DHCP响应包
帧头部
发出方(DHCP服务器)mac地址
接收方(申请主机)mac地址
已知
ip头部
发出方ip
已知
接收方ip
已知,但尚未配置
仍填入255.255.255.255
udp头部
发出方端口:67
接收方:68
数据
分配给请求端的IP地址和本网络的具体参数
结果:知道自己的IP地址、子网掩码、网关IP地址、DNS服务器IP地址等等参数
DNS
功能:将网址转为ip地址
DNS服务器
网络中进行域名解析的一些服务器
从高到低顺藤摸瓜,逐层查找,缓存加快响应(与域名对应,也可能多个域名对应一个服务器)
特点
基于udp,应用层
HTTP
超文本传输协议,基于 TCP/IP 协议,默认端口:80
实现
请求
生成针对目标web服务器的http请求报文
对什么(URI)
进行什么操作(请求方法)
回复
对请求的内容的处理,并回传响应消息
状态码
头字段
网页数据:文件读取的数据/CGI程序输出数据
URI vs. URL
URI
Uniform Resource Identifier
统一资源标识符
用字符串表示某一互联网资源
存放网页数据的文件名:URL
CGI程序的文件名
URL
Uniform Resource Locator
统一资源定位符
表示资源的地点(文件)
URL 是 URI的子集
格式
起始行
只有一行
是请求/回复最重要的信息
请求起始行(请求行):方法—想要什么
方法 URI HTTP版本
回复起始行(状态行):发生什么
HTTP版本 状态码 响应短语
头信息
多行:最后一行是空行
每行含一对键值对:<字段名>:<字段值>—附加信息
主体:消息体
具体的资源
http协议请求
请求方法类别
GET
将特定资源(URI:文件内容/程序输出)传送给客户端
传输一些不重要的数据
url?变量名 = 变量值
从Web服务器获取网页数据
POST
向服务器端提交数据(填写表单-收货地址,问卷等输入框)
使用post,url不再被改写,且数据位于http请求主体
将网页输入框的信息发给Web服务器
PUT
传输文件
类似FTP文件上传
要求在请求报文的主体包含文件内容
替换URI指定的服务器上的文件
不带验证机制
DELETE
删除URI指定服务器上的文件
与put相反
不带验证机制
HEAD
和GET方法一样
获得报文首部
不返回报文主体部分
用于确认URI的有效性及资源更新的日期时间
OPTIONS
用来查询针对请求URI指定的资源支持的方法
查询支持的请求方法
TRACE
追踪路径
报文类别
请求报文
组成
可选的请求头字段:请求的附加信息
协议版本
请求方法
请求URI:1条请求消息只能写一个URI
消息实体:客户端向服务器发送的数据
GET方法不需要写数据
POST方法需要
响应报文
组成
协议版本
状态码(数字):向程序告知执行的结果
响应短语
用文字向人解释状态码
可选的响应头字段
实体主体(网页消息)
状态码类别
1XX
信息性状态码
接收的请求正在处理
2XX
成功状态码
请求正常处理完毕
相关状态码
200:ok
请求被正常处理
204:No Content
请求处理成功
但没有资源需要返回
206:Partial Content
范围请求
对资源某一部分的请求
3XX
重定向状态码
需要进行附加操作以完成请求
相关状态码
301:Moved Permanently
永久性重定向
资源的URI已更新
客户端请更新书签引用
302:Found
临时性重定向
表示资源的URI已临时定位到其他位置
希望用户本次能使用新URI访问
4XX
客户端错误状态码
服务器无法处理请求
相关状态码
400:Bad Request
服务器无法理解请求
表示报文中存在语法错误
401:Unauthorized
表示请求需通过http认证
第一次返回401,本页面需认证
第二次返回401,认证失败
403:Forbidden
对请求资源的访问被拒绝访问
404:Not Found
服务器上没有请求的资源
5XX
服务器错误状态码
服务器处理请求出错
相关状态码
500:Internal Server Error
内部资源出现故障
503:Service Unavailable
服务器暂处于超负载或正在进行停机维护
302:重新定向
资源这里没有,但知道另一个地方有
404:无法找到(状态码+响应短语)
找不到想要的资源
无状态
定义
每次请求-回复,都重新建立tcp
尽管已做优化,但依然保持无状态特性
致使服务器无法知道上次请求和本次请求来自同一个客户端
每次请求都是一个全新的请求
协议自身不对请求和响应之间的通信状态进行保存
使http保持状态
Cookie
使http持久连接
目的
节省流量
防止造成无谓的tcp连接的建立和断开
持久连接宗旨
一次tcp连接后可进行多次请求和响应
管线化
一次发送多个请求,不等待响应
Socket抽象层
定义
传输层之上,应用层之下
根据域名查询Web服务器IP时,浏览器会使用操作系统Socket库中的解析器(gethostbyname)向DNS服务器发送请求消息
Socket库中包含了很多用于发送和接收数据的程序组件
连接过程
分支主题
分支主题
分支主题
作用
直接面对用户,规定应用程序的数据格式
五、传输层
传输层的由来
mac和ip解决了在互联网任意两台机上建立通信的问题
但没有解决在两台机上的进程间建立通信的问题
端口
表示这个数据包到底供哪个程序(进程)使用的参数
是每一个使用网卡的程序的编号
0到65535之间,0到1023的端口被系统占用
传输层的功能
建立端口到端口的通信
顺序控制
重发控制
流量控制
拥塞控制
提高网络利用率
对比:网络层
建立主机到主机的通信
识别TCP/IP或UDP/IP通信
五个信息
源ip
目标ip
协议号
源端口号
目标端口号
五个有一个不同,视为其他通信
传输层协议
UDP协议
组成
标头
定义了发出端口/接收端口
数据
udp数据包全放在IP数据包的数据部分
长度
标头
8个字节
udp数据包总长度不超过65535字节
优点
简单
易实现
缺点
可靠性差
数据包发送后,无法知道对方是否收到
用户数据包协议(user datagram protocol)
TCP协议
组成
标头:记录和交换控制信息
数据
长度
TCP数据包没有长度限制
通常tcp数据包不会超过IP数据包
可近似认为,是有确认机制的UDP协议
每发一个数据包,都要求确认
三次会话
收不到确认,则重发
优点
可靠性高
能确保数据不会遗失
缺点
过程复杂
实现困难
消耗较多资源
传输速度慢
传输控制协议(transmisson controk protocol)
TCP VS. UDP
可靠 —— 不可靠
面向连接 —— 面向无连接
udp:用于对高速传输和实时性有较高要求的通信
IP电话
多播与广播通信
基于广播的协议
RIP
DHCP
TCP:浏览器/邮件 UDP:DNS查询等收发较短信息
常用端口号
20:FTP-DATA
21:FTP-CONTROL
22:SSH
23:TELNET
25:SMTP
53:DNS
80:HTTP
TCP流通信
背景
1、计算机数据本质是有序的0/1序列
2、0/1序列如以byte为单位,就叫做文本流
目标
实现端到端的可靠通信
确保数据到达的顺序与文本流顺序相符
实现形式
虚拟了文本流的通信
在不同计算机间进行文本流的交互
发送和接收都有相应的缓冲区
流的要点:次序
保持TCP包的次序
防止片段碎片化
如何确保可靠 & 顺序
ACK回复 & 重传
1、接收方每收到一个片段后,发送一个ACK回复片段给发送方
收到片段序号为L
则ACK回复片段的回复号为L + 1
2、发送方一定时间内未收到ACK回复,则重新发送该片段
滑动窗口
特点
同时应用于接收方和发送方,收发双方各有一个滑动窗口
接收方通过TCP头部的窗口字段告知发送方最多容纳数据量;注意:
片段位于滑窗中时,表示tcp正在处理该片段
滑窗越大,同时处理的片段数目越多
对于“不那么乱”的片段
利用缓存保存下来
期望在一定时间内补充上之前的片段
对于“乱得厉害”的片段
拒绝,不发送对应的ack
滑动窗口
累计ACK回复
tcp协议并不是每个片段都发送ACK回复
一般利用一个ack回复通知连续多个片段的成功接收
收到片段且应该回复ack时,会故意延迟一段时间
滑窗结构
流量控制
零窗口
重新发送
目的
实现tcp片段传输的可靠性
重新发送机制
超时重新发送
快速重新发送
tcp拥塞控制
tcp片段头部格式
组成
出发端口、目的地端口
序号:使数据片段整理成文本流
ack(acknowledge)位:设定后,回复号才有效
ack回复号
说明接收方期待接收的下一个片段
最后接收到的片段序号 + 1
SYN(synchronize)占一位:进行连接,并告知随机初始序号值
FIN,占一位
分支主题
TCP控制
组成
重传控制
分支主题
分支主题
连接管理
分支主题
滑窗
分支主题
分支主题
分支主题
流量控制
分支主题
拥塞控制
分支主题
分支主题
Nagle算法
目的
提高网络利用率
解决糊涂窗口综合症
定义
发送端有该发送的数据
该发送的数据很少
满足条件则发送
已发送的数据都已经收到确认应答时
可以发送最大段长度(MSS)的数据时
流量控制 vs. 拥塞控制
流
收发双方点对点通信量的控制
抑制发送端数据的速率,以便接收端来得及接收
点对点的局部性问题
拥
确保通信子网有传送待传数据的能力
防止过多数据注入到网络中
使网络不至于过载
全局性问题
前提:网络能承受现有网络负荷
控制网络传输的效率
拥塞控制方法
慢开始 & 拥塞避免
分支主题
快重传 & 快恢复
分支主题
tcp连接的建立与断开
建立连接
目的
连接双方交换初始序号ISN
第一个片段序号随机生成
交换实现形式
通过SYN片段实现
过程:三次握手
本质:双方互发含有自己的ISN的syn片段
分支主题
总结
SYN = 1, seq = x
SYN = 1, ACK = 1, seq = y, ack = y + 1
ACK = 1, seq = x + 1, ack = y + 1
连结通信
功能
两段进程利用该连接进行通信
断开连接
连接终结通过特殊片段FIN
为什么要四次,而不合并
tcp连接允许单向关闭
某端已经可以关闭,但另一端不一定可以
为什么要等2MSL
保证A发送的最后一个ACK报文段能够到达B
防止已失效的连接请求报文段 出现在本连接中
过程:四次握手
连接双方交换了四个片段
两个FIN
两个ACK
分支主题
子主题 1
总结
FIN = 1, seq = u
ACK = 1, seq = v, ack = u + 1
FIN = 1, ACK =1, seq = w, ack = u + 1
ACK = 1, seq = u + 1, ack = w + 1
tcp连接状态管理
分支主题
分支主题
分支主题
四、网络层
网络层由来
单纯靠mac地址,广州的网卡即可找到北京的网卡
mac地址的设计无层次性
即无类似ip地址的网络号设计
多个局域网无法顺畅连接
交换机mac地址与局域网内的计算机mac地址毫无关联
判断数据包是否在该局域网,需遍历转发表或广播
一旦网络中的计算机太多
要么维护一张很大的转发表
要么造成广播风暴
寻找问题的方案:必须区分哪些mac地址属于同一个网络
mac地址做不到的原因
mac地址本身只与产商有关
mac地址与所处网络无关
网络层解决了该问题
mac地址与ip地址逻辑上无联系
MAC地址绑定在网卡上
ip是管理员/运营山分配
网络层的作用
引进一套新的地址
区分不同的计算机(mac地址)是否属于同一个子网络
寻找确定计算机所在的子网络
mac则将数据包送到该子网络中的目标网卡
先ip选择网络,再mac选择目标网卡
IP协议
定义
规定网络地址的协议
作用
1、为每台计算机分配ip地址
2、确定哪些地址在同一个网络
3.不同的“帧”统一转成“IP”数据包:网络数据被切割成小块(数据包)
协议类别
IPV4
IPV6
地址分类
A
B
C
D
E
特点(主要讨论IPv4)
32位组成
0.0.0.0 -- 255.255.255.255
地址分网络号、主机号
相关概念
子网掩码
作用
判断两台计算机是否属于同一个子网络
将ip地址的网络部分全部置1,主机部分置0
每个ip有一个子网掩码
如何判断两个ip地址属同一网络
ip地址与各自的子网掩码进行AND运算
将两个and运算结果进行比较
结果相同则在同一网络
反之,不在同一网络
划分子网
分支主题
分支主题
分支主题
CIDR
NAT
定义
网络地址转换
专用网络地址 转 公用地址
在局域网中使用私有地址,联网时转而使用全局ip地址的技术
特点
大大节省ip地址的消耗
隐藏内部网络结构,降低内部网络受攻击的风险
私有ip地址网段
A类: 1个
10.0.0.0 - 10.255.255.255
B类:16个
172.16.0.0 - 172.31.255.255
C类:256个
192.168.0.0 - 192.168.255.255
VPN
分支主题
IP数据包
组成
标头(首部)
首部前半部分
固定长度,20字节
首部格式重要字段
版本
ip协议的版本
占4位
首部长度
占四位,最大进制数值是15
该字段所表示数的单位:32位字
一个32位字长是4字节
例
1111
15 * 4 = 60字节
0101
5 * 4 = 20字节
总长度
定义
首部长度 + 数据长度
占16位,最大长度 2^16 - 1 = 65535字节
标识
占16位
一个计数器
每产生一个数据报就加1
并不是序号
标志
占三位,目前只有两位有意义
最低位记为MF
1:表示后面还有分片
0
表示后面没有分片
该片为最后一片
中间位为DF
1
不允许分片
0
允许分片
片偏移
占13位
以8个字节为偏移单位
指出该片在原分组中的相对位置
每个分片长度是8字节的整数倍
首部检验和
占16位
只校验分组的首部
不校验数据部分
生存时间TTL
占8位
数据报在网络中可通过的路由器数的最大值
TTL被减为0,则该分组必须被丢弃
协议
占8位
指出分组是使用何种协议
6:TCP
17:UDP
源地址字段
4字节
目的地址字段
4字节
三个长度标记
首部长度:4B
总长度:1B
片偏移:8B
首部后半部分
可选字段,长度可变
提供错误检测及安全等机制
长度为20 - 60字节
数据
最长65515字节
IP数据包总长度最长为65535字节
IP数据包直接放在以太网数据包的“数据”部分
IP数据包传输
需通过路由器的接力
每个主机和路由都存在有一个路由表
为IP包指明路线
路由选择算法:生成路由表
RIP
BGP
相关协议
ARP协议
在局域网中,通过目标ip地址得到目标mac地址的协议:广播的形式
ICMP协议
特点
ip协议的补充
介于网络层和传输层
基于ip协议
icmp包封装在IP包中
功能
传输网络诊断信息:错误信息和各种控制信息
ICMP包类型
错误信息
源头冷却
源主机向目的主机传送数据过快
目的主机无法快速处理
此时发送该类型ICMP包,请求源主机温柔点~
目的地无法到达
路由器接收到一个没法进一步接力的ip包时发出该类型ICMP包
超时
TTL(IPv4)随经过的路由器而递减
当TTL值减为0时,IP包超时
重新定向
路由器收到不应该收的ip包
此时路由器向源主机发送该类型ICMP包
提醒源主机修改路由表
咨询信息
回音
ping
使用流程
1、使用ping命令
2、向目标主机发送ICMP包(Echo询问类型)
3、目标主机接收到ICMP包
4、目标主机回复ICMP(Echo询问类型)
路由选择协议
内部网关协议IGP
目标
路由器之间不断交换路由信息
RIP
定义
基于距离向量的路由选择协议
优劣
简单
只适用于小型互联网
特点
仅和相邻路由器交换信息
交换的信息:自己的路由表
按固定时间间隔交换路由信息:30秒
工作原理
刚工作时,只知道直接连接的网络的距离
若干次更新后,所有路由都知道各个网络的路径地址
通过路由收敛,得到正确的路由选择信息
OSPF
定义
开放最短路径优先
克服RIP缺点
原理简单,实现复杂
与RIP的不同
向域内系统所有路由器发送信息
发送的信息
与本路由器相邻所有路由器的链路状态
链路状态发生变化时,用洪泛法发送信息
全局
RIP知道
所有网络的距离
下一条路由器
RIP不知道
全网的拓扑结构
OSPF更新过程收敛得快
外部网关协议EGP
BGP
0 条评论
下一页