计算机网络知识点全面总结(有这一篇就够了!!!)_计算机网络
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
一、计算机网络概述
1.1 计算机网络的分类
按照网络的作用范围广域网WAN、城域网MAN、局域网LAN
按照网络使用者公用网络、专用网络。
1.2 计算机网络的层次结构
TCP/IP四层模型与OSI体系结构对比
1.3 层次结构设计的基本原则
- 各层之间是相互独立的
- 每一层需要有足够的灵活性
- 各层之间完全解耦。
1.4 计算机网络的性能指标
速率bps=bit/s
时延发送时延、传播时延、排队时延、处理时延
往返时间RTT数据报文在端到端通信中的来回一次的时间。
二、物理层
物理层的作用连接不同的物理设备传输比特流。该层为上层协议提供了一个传输数据的可靠的物理媒体。简单的说物理层确保原始的数据可在各种物理媒体上传输。
物理层设备
- 中继器【Repeater也叫放大器】同一局域网的再生信号两端口的网段必须同一协议5-4-3规程 10BASE-5以太网中最多串联4个中继器5段中只能有3个连接主机
- 集线器同一局域网的再生、放大信号多端口的中继器半双工不能隔离冲突域也不能隔离广播域。
信道的基本概念信道是往一个方向传输信息的媒体一条通信电路包含一个发送信道和一个接受信道。
- 单工通信信道只能一个方向通信没有反方向反馈的信道
- 半双工通信信道双方都可以发送和接受信息但不能同时发送也不能同时接收
- 全双工通信信道双方都可以同时发送和接收。
三、数据链路层
3.1 数据链路层概述
数据链路层在物理层提供的服务的基础上向网络层提供服务其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。数据链路层在不可靠的物理介质上提供可靠的传输。
该层的作用包括物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。
有关数据链路层的重要知识点
- 数据链路层为网络层提供可靠的数据传输
- 基本数据单位为帧
- 主要的协议以太网协议
- 两个重要设备名称网桥和交换机。
封装成帧“帧”是数据链路层数据的基本单位
透明传输“透明”是指即使控制字符在帧数据中但是要当做不存在去处理。即在控制字符前加上转义字符ESC。
3.2 数据链路层的差错监测
差错检测奇偶校验码、循环冗余校验码CRC
- 奇偶校验码–局限性当出错两位时检测不到错误。
- 循环冗余检验码根据传输或保存的数据而产生固定位数校验码。
3.3 最大传输单元MTU
最大传输单元MTU(Maximum Transmission Unit)数据链路层的数据帧不是无限大的数据帧长度受MTU限制.
路径MTU由链路中MTU的最小值决定。
3.4 以太网协议详解
MAC地址每一个设备都拥有唯一的MAC地址共48位使用十六进制表示。
以太网协议是一种使用广泛的局域网技术是一种应用于数据链路层的协议使用以太网可以完成相邻设备的数据帧传输
局域网分类
Ethernet以太网IEEE802.3
- 以太网第一个广泛部署的高速局域网
- 以太网数据速率快
- 以太网硬件价格便宜网络造价成本低
以太网帧结构
- 类型标识上层协议2字节
- 目的地址和源地址MAC地址每个6字节
- 数据封装的上层协议的分组46~1500字节
- CRC循环冗余码4字节
- 以太网最短帧以太网帧最短64字节以太网帧除了数据部分18字节数据最短46字节
MAC地址物理地址、局域网地址
- MAC地址长度为6字节48位
- MAC地址具有唯一性每个网络适配器对应一个MAC地址
- 通常采用十六进制表示法每个字节表示一个十六进制数用 - 或 : 连接起来
- MAC广播地址FF-FF-FF-FF-FF-FF。
四、网络层
网络层的目的是实现两个端系统之间的数据透明传送具体功能包括寻址和路由选择、连接的建立、保持和终止等。数据交换技术是报文交换基本上被分组所替代采用储存转发方式数据交换单位是报文。
网络层中涉及众多的协议其中包括最重要的协议也是TCP/IP的核心协议——IP协议。IP协议非常简单仅仅提供不可靠、无连接的传送服务。IP协议的主要功能有无连接数据报传输、数据报路由选择和差错控制。与IP协议配套使用实现其功能的还有地址解析协议ARP、逆地址解析协议RARP、因特网报文协议ICMP、因特网组管理协议IGMP。具体的协议我们会在接下来的部分进行总结有关网络层的重点为
1.网络层负责对子网间的数据包进行路由选择。此外网络层还可以实现拥塞控制、网际互连等功能
2.基本数据单位为IP数据报
3.包含的主要协议
- IP协议Internet Protocol因特网互联协议;
- ICMP协议Internet Control Message Protocol因特网控制报文协议;
- ARP协议Address Resolution Protocol地址解析协议;
- RARP协议Reverse Address Resolution Protocol逆地址解析协议。
4.重要的设备路由器。
4.1 IP协议详解
IP网际协议是 Internet 网络层最核心的协议。虚拟互联网络的产生实际的计算机网络错综复杂物理设备通过使用IP协议屏蔽了物理网络之间的差异当网络中主机使用IP协议连接时无需关注网络细节于是形成了虚拟网络。
IP协议使得复杂的实际网络变为一个虚拟互联的网络并且解决了在虚拟网络中数据报传输路径的问题。
其中版本指IP协议的版本占4位如IPv4和IPv6首部位长度表示IP首部长度占4位最大数值位15总长度表示IP数据报总长度占16位最大数值位65535TTL表示IP数据报文在网络中的寿命占8位协议表明IP数据所携带的具体数据是什么协议的如TCP、UDP。
4.2 IP协议的转发流程
4.3 IP地址的子网划分
A类8网络号+24主机号、B类16网络号+16主机号、C类24网络号+8主机号可以用于标识网络中的主机或路由器D类地址作为组广播地址E类是地址保留。
4.4 网络地址转换NAT技术
用于多个主机通过一个公有IP访问访问互联网的私有网络中减缓了IP地址的消耗但是增加了网络通信的复杂度。
NAT 工作原理
- 从内网出去的IP数据报将其IP地址替换为NAT服务器拥有的合法的公共IP地址并将替换关系记录到NAT转换表中
- 从公共互联网返回的IP数据报依据其目的的IP地址检索NAT转换表并利用检索到的内部私有IP地址替换目的IP地址然后将IP数据报转发到内部网络。
4.5 ARP协议与RARP协议
地址解析协议 ARPAddress Resolution Protocol为网卡网络适配器的IP地址到对应的硬件地址提供动态映射。可以把网络层32位地址转化为数据链路层MAC48位地址。
ARP 是即插即用的一个ARP表是自动建立的不需要系统管理员来配置。
RARP(Reverse Address Resolution Protocol)协议指逆地址解析协议可以把数据链路层MAC48位地址转化为网络层32位地址。
4.6 ICMP协议详解
网际控制报文协议Internet Control Message Protocol可以报告错误信息或者异常情况ICMP报文封装在IP数据报当中。
ICMP协议的应用
- Ping应用网络故障的排查
- Traceroute应用可以探测IP数据报在网络中走过的路径。
4.7网络层的路由概述
关于路由算法的要求正确的完整的、在计算上应该尽可能是简单的、可以适应网络中的变化、稳定的公平的。
自治系统AS指处于一个管理机构下的网络设备群AS内部网络自治管理对外提供一个或多个出入口其中自治系统内部的路由协议为内部网关协议如RIP、OSPF等自治系统外部的路由协议为外部网关协议如BGP。
静态路由人工配置难度和复杂度高
动态路由
- 链路状态路由选择算法LS向所有隔壁路由发送信息收敛快全局式路由选择算法每个路由器计算路由时需构建整个网络拓扑图利用Dijkstra算法求源端到目的端网络的最短路径Dijkstra(迪杰斯特拉)算法
- 距离-向量路由选择算法DV向所有隔壁路由发送信息收敛慢、会存在回路基础是Bellman-Ford方程简称B-F方程
4.8 内部网关路由协议之RIP协议
路由信息协议 RIP(Routing Information Protocol)【应用层】基于距离-向量的路由选择算法较小的AS自治系统适合小型网络RIP报文封装进UDP数据报。
RIP协议特性
- RIP在度量路径时采用的是跳数每个路由器维护自身到其他每个路由器的距离记录
- RIP的费用定义在源路由器和目的子网之间
- RIP被限制的网络直径不超过15跳
- 和隔壁交换所有的信息30主动一次广播。
4.9 内部网关路由协议之OSPF协议
开放最短路径优先协议 OSPF(Open Shortest Path First)【网络层】基于链路状态的路由选择算法即Dijkstra算法较大规模的AS 适合大型网络直接封装在IP数据报传输。
OSPF协议优点
- 安全
- 支持多条相同费用路径
- 支持区别化费用度量
- 支持单播路由和多播路由
- 分层路由。
RIP与OSPF的对比路由算法决定其性质
4.10外部网关路由协议之BGP协议
BGPBorder Gateway Protocol边际网关协议【应用层】是运行在AS之间的一种协议,寻找一条好路由首次交换全部信息以后只交换变化的部分,BGP封装进TCP报文段.
五、传输层
第一个端到端即主机到主机的层次。传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。此外传输层还要处理端到端的差错控制和流量控制问题。
传输层的任务是根据通信子网的特性最佳的利用网络资源为两个端系统的会话层之间提供建立、维护和取消传输连接的功能负责端到端的可靠数据传输。在这一层信息传送的协议数据单元称为段或报文。
网络层只是根据网络地址将源结点发出的数据包传送到目的结点而传输层则负责将数据可靠地传送到相应的端口。
有关网络层的重点
- 传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输以及端到端的差错控制和流量控制问题
- 包含的主要协议TCP协议Transmission Control Protocol传输控制协议、UDP协议User Datagram Protocol用户数据报协议
- 重要设备网关。
5.1 UDP协议详解
UDP(User Datagram Protocol: 用户数据报协议)是一个非常简单的协议
UDP协议的特点
- UDP是无连接协议
- UDP不能保证可靠的交付数据
- UDP是面向报文传输的
- UDP没有拥塞控制
- UDP首部开销很小。
UDP数据报结构
首部:8B四字段/2B【源端口 | 目的端口 | UDP长度 | 校验和】
数据字段应用数据
5.2 TCP协议详解
TCP(Transmission Control Protocol: 传输控制协议)是计算机网络中非常复杂的一个协议。
TCP协议的功能
- 对应用层报文进行分段和重组
- 面向应用层实现复用与分解
- 实现端到端的流量控制
- 拥塞控制
- 传输层寻址
- 对收到的报文进行差错检测首部和数据部分都检错
- 实现进程间的端到端可靠数据传输控制。
TCP协议的特点
- TCP是面向连接的协议
- TCP是面向字节流的协议
- TCP的一个连接有两端即点对点通信
- TCP提供可靠的传输服务
- TCP协议提供全双工通信每条TCP连接只能一对一
5.2.1 TCP报文段结构
最大报文段长度报文段中封装的应用层数据的最大长度。
TCP首部
- 序号字段TCP的序号是对每个应用层数据的每个字节进行编号
- 确认序号字段期望从对方接收数据的字节序号即该序号对应的字节尚未收到。用ack_seq标识
- TCP段的首部长度最短是20B 最长为60字节。但是长度必须为4B的整数倍
TCP标记的作用
5.3 可靠传输的基本原理
基本原理
- 不可靠传输信道在数据传输中可能发生的情况比特差错、乱序、重传、丢失
- 基于不可靠信道实现可靠数据传输采取的措施
- 差错检测利用编码实现数据包传输过程中的比特差错检测
- 确认接收方向发送方反馈接收状态
- 重传发送方重新发送接收方没有正确接收的数据
- 序号确保数据按序提交
- 计时器解决数据丢失问题
停止等待协议是最简单的可靠传输协议但是该协议对信道的利用率不高。
连续ARQ(Automatic Repeat reQuest自动重传请求)协议滑动窗口+累计确认大幅提高了信道的利用率。
5.3.1TCP协议的可靠传输
基于连续ARQ协议在某些情况下重传的效率并不高会重复传输部分已经成功接收的字节。
5.3.2 TCP协议的流量控制
流量控制让发送方发送速率不要太快TCP协议使用滑动窗口实现流量控制。
5.4 TCP协议的拥塞控制
拥塞控制与流量控制的区别流量控制考虑点对点的通信量的控制而拥塞控制考虑整个网络是全局性的考虑。拥塞控制的方法慢启动算法+拥塞避免算法。
慢开始和拥塞避免
- 【慢开始】拥塞窗口从1指数增长
- 到达阈值时进入【拥塞避免】变成+1增长
- 【超时】阈值变为当前cwnd的一半不能<2
- 再从【慢开始】拥塞窗口从1指数增长。
快重传和快恢复
- 发送方连续收到3个冗余ACK执行【快重传】不必等计时器超时
- 执行【快恢复】阈值变为当前cwnd的一半不能<2并从此新的ssthresh点进入【拥塞避免】。
5.5 TCP连接的三次握手重要
TCP三次握手使用指令
面试常客为什么需要三次握手
- 第一次握手客户发送请求此时服务器知道客户能发
- 第二次握手服务器发送确认此时客户知道服务器能发能收
- 第三次握手客户发送确认此时服务器知道客户能收。
建立连接三次握手
第一次客户向服务器发送连接请求段建立连接请求控制段SYN=1表示传输的报文段的第一个数据字节的序列号是x此序列号代表整个报文段的序号seq=x客户端进入 SYN_SEND 同步发送状态
第二次服务器发回确认报文段同意建立新连接的确认段SYN=1确认序号字段有效ACK=1服务器告诉客户端报文段序号是yseq=y表示服务器已经收到客户端序号为x的报文段准备接受客户端序列号为x+1的报文段ack_seq=x+1服务器由LISTEN进入SYN_RCVD 同步收到状态;
第三次:客户对服务器的同一连接进行确认.确认序号字段有效(ACK=1),客户此次的报文段的序列号是x+1(seq=x+1),客户期望接受服务器序列号为y+1的报文段(ack_seq=y+1);当客户发送ack时客户端进入ESTABLISHED 状态;当服务收到客户发送的ack后也进入ESTABLISHED状态;第三次握手可携带数据;
5.6 TCP连接的四次挥手重要
释放连接四次挥手
第一次客户向服务器发送释放连接报文段发送端数据发送完毕请求释放连接FIN=1传输的第一个数据字节的序号是xseq=x客户端状态由ESTABLISHED进入FIN_WAIT_1终止等待1状态
第二次服务器向客户发送确认段确认字号段有效ACK=1服务器传输的数据序号是yseq=y服务器期望接收客户数据序号为x+1ack_seq=x+1;服务器状态由ESTABLISHED进入CLOSE_WAIT关闭等待 客户端收到ACK段后由FIN_WAIT_1进入FIN_WAIT_2
第三次:服务器向客户发送释放连接报文段请求释放连接FIN=1确认字号段有效ACK=1表示服务器期望接收客户数据序号为x+1ack_seq=x+1;表示自己传输的第一个字节序号是y+1seq=y+1服务器状态由CLOSE_WAIT 进入 LAST_ACK 最后确认状态
第四次客户向服务器发送确认段确认字号段有效ACK=1表示客户传输的数据序号是x+1seq=x+1表示客户期望接收服务器数据序号为y+1+1ack_seq=y+1+1客户端状态由FIN_WAIT_2进入TIME_WAIT等待2MSL时间进入CLOSED状态服务器在收到最后一次ACK后由LAST_ACK进入CLOSED
为什么需要等待2MSL?
- 最后一个报文没有确认
- 确保发送方的ACK可以到达接收方
- 2MSL时间内没有收到则接收方会重发
- 确保当前连接的所有报文都已经过期。
六、应用层
为操作系统或网络应用程序提供访问网络服务的接口。
应用层重点
- 数据传输基本单位为报文
- 包含的主要协议FTP文件传送协议、Telnet远程登录协议、DNS域名解析协议、SMTP邮件传送协议POP3协议邮局协议HTTP协议Hyper Text Transfer Protocol。
6.1 DNS详解
DNSDomain Name System:域名系统【C/SUDP端口53】解决IP地址复杂难以记忆的问题,存储并完成自己所管辖范围内主机的 域名 到 IP 地址的映射。
域名解析的顺序【1】浏览器缓存【2】找本机的hosts文件【3】路由缓存【4】找DNS服务器本地域名、顶级域名、根域名->迭代解析、递归查询。
1.IP—>DNS服务—>便于记忆的域名
2.域名由点、字母和数字组成分为顶级域comcnnetgovorg、二级域baidu,taobao,qq,alibaba、三级域www(12-2-0852)
6.2 DHCP协议详解
DHCPDynamic Configuration Protocol:动态主机设置协议是一个局域网协议是应用UDP协议的应用层协议。 作用为临时接入局域网的用户自动分配IP地址。
6.3 HTTP协议详解
文件传输协议FTP控制连接端口21传输控制信息连接、传输请求以7位ASCII码的格式。整个会话期间一直打开。
HTTPHyperText Transfer Protocol:超文本传输协议【TCP端口80】是可靠的数据传输协议浏览器向服务器发收报文前先建立TCP连接HTTP使用TCP连接方式HTTP自身无连接。
HTTP请求报文方式
- GET请求指定的页面信息并返回实体主体
- POST向指定资源提交数据进行处理请求
- DELETE请求服务器删除指定的页面
- HEAD请求读取URL标识的信息的首部只返回报文头
- OPETION请求一些选项的信息
- PUT在指明的URL下存储一个文档。
6.3.1 HTTP工作的结构
6.3.2 HTTPS协议详解
HTTPS(Secure)是安全的HTTP协议端口号443。基于HTTP协议通过SSL或TLS提供加密处理数据、验证对方身份以及数据完整性保护。