计算机网络之基础篇
一、计算机网络概述
1.什么是计算机网络
计算机网络主要由一些通用的、可编程的硬件互连而成,通过这些硬件,可以传送不同类型的数据,并且可以支持广泛和日益增长的应用。
2.计算机网络的分类
按照网络的作用范围:广域网(WAN)、城域网(MAN)、局域网(LAN)
按照网络使用者:公用网络、专用网络
3.计算机网络的发展历史
互联网的发展历史:
第一阶段:单个网络ARPANET,交换机+电脑
第二阶段:三层结构互联网,主干网+地区网+校园网
第三阶段:多层次ISP(Internet Service Provider,网络服务提供商)互联网,主干ISP+地区ISP+校园/公司/家庭…
中国互联网的发展历史:
1980年开始互联网实验,1989年第一个公立网络建立运行,1994年接入国际互联网。
4.计算机网络的层次结构
层次结构设计的基本原则:
各层之间是相互独立的;
每一层需要有足够的灵活性;
各层之间完全解耦。
OSI七层模型:并没有成为广泛使用的标准模型,标准制定周期过长,设计不合理。
TCP/IP四层模型:
5.计算机网络的性能指标
速率:bps=bit/s
时延:发送时延、传播时延、排队时延、处理时延
往返时间RTT:数据报文在端到端通信中的来回一次的时间。
二、物理层概述
1.物理层的作用:连接不同的物理设备,传输比特流。
2.信道的基本概念:信道是往一个方向传输信息的媒体,一条通信电路包含一个发送信道和一个接受信道。
单工通信信道:只能一个方向通信,没有反方向反馈的信道;
半双工通信信道:双方都可以发送和接受信息,但不能同时发送也不能同时接收;
全双工通信信道:双方都可以同时发送和接收。
3.信道的分用-复用技术:大大提升信道的利用率,如下图,分为频分复用、时分复用、波分复用、码分复用。
三、数据链路层
1.数据链路层概述
封装成帧:“帧”是数据链路层数据的基本单位,帧的结构如下图:
透明传输:“透明”是指即使控制字符在帧数据中,但是要当做不存在去处理。原理如下图,即在控制字符前加上转义字符ESC。
差错检测:奇偶校验码、循环冗余校验码CRC
奇偶校验码:局限性:当出错两位时,检测不到错误。
循环冗余检验码:根据传输或保存的数据而产生固定位数校验码。
2.最大传输单元
最大传输单元MTU(Maximum Transmission Unit),数据链路层的数据帧不是无限大的,数据帧长度受MTU限制。
路径MTU:由链路中MTU的最小值决定。
3.以太网协议详解
MAC地址:每一个设备都拥有唯一的MAC地址,共48位,使用十六进制表示。
以太网协议:是一种使用广泛的局域网技术,是一种应用于数据链路层的协议,使用以太网可以完成相邻设备的数据帧传输,数据格式如下:
计算机网络之网络层篇
一、网络层IP协议相关
1.IP协议详解
虚拟互联网络的产生:实际的计算机网络错综复杂;物理设备通过使用IP协议,屏蔽了物理网络之间的差异;当网络中主机使用IP协议连接时,无需关注网络细节,于是形成了虚拟网络。如下图所示:
IP协议使得复杂的实际网络变为一个虚拟互联的网络;并且解决了在虚拟网络中数据报传输路径的问题。
IP数据报的格式:
其中,版本指IP协议的版本,占4位,如IPv4和IPv6;首部位长度表示IP首部长度,占4位,最大数值位15;总长度表示IP数据报总长度,占16位,最大数值位65535;TTL表示IP数据报文在网络中的寿命,占8位;协议表明IP数据所携带的具体数据是什么协议的,如TCP、UDP。
2.IP协议的转发过程
仅从网络层来看,转发过程如下图所示:
3.IP地址的子网划分
分类的IP地址:A类(8网络号+24主机号)、B类(16网络号+16主机号)、C类(24网络号+8主机号),对比如下:
无分类编址CIDR:网络前缀+主机号,更加有效的分配IPv4的地址空间。
4.网络地址转换NAT技术
用于多个主机通过一个公有IP访问访问互联网的私有网络中,减缓了IP地址的消耗,但是增加了网络通信的复杂度。
二、网络层其他协议
1.ARP协议与RARP协议
ARP(Address Resolution Protocol)协议指地址解析协议,可以把网络层32位地址转化为数据链路层MAC48位地址。
ARP缓存表:是IP地址与MAC地址的映射对应表(IP地址是变化的):
RARP(Reverse Address Resolution Protocol)协议指逆地址解析协议,可以把数据链路层MAC48位地址转化为网络层32位地址。
2.ICMP协议
网际控制报文协议(Internet Control Message Protocol),可以报告错误信息或者异常情况,ICMP报文封装在IP数据报当中。结构如下:
ICMP协议的应用:
Ping应用:网络故障的排查;
Traceroute应用:可以探测IP数据报在网络中走过的路径。
三、IP的路由算法
1.路由的概述
关于路由算法的要求:正确的完整的、在计算上应该尽可能是简单的、可以适应网络中的变化、稳定的公平的。
自治系统AS:指处于一个管理机构下的网络设备群,AS内部网络自治管理,对外提供一个或多个出入口,其中自治系统内部的路由协议为内部网关协议,如RIP、OSPF等;自治系统外部的路由协议为外部网关协议,如BGP。
2.内部网关路由协议
a.RIP协议:
距离矢量(DV)算法:每一个节点使用两个向量Dᵢ和Sᵢ,Dᵢ描述的是当前节点到别的节点的距离,Sᵢ描述的是当前节点到别的节点的下一节点,每一个节点与相邻的节点交换向量Dᵢ和Sᵢ的信息,每一个节点根据交换的信息更新自己的节点信息,如下图:
RIP协议的过程:
(1)路由器初始化路由信息(两个向量Dᵢ和Sᵢ);
(2)对相邻路由器X发过来的信息,对信息的内容进行修改(下一跳地址设置为X,所有距离加1)
i. 检索本地路由,将信息中新的路由插入到路由表里面
ii. 检索本地路由,对于下一跳为X的,更新为修改后的信息
iii. 检索本地路由,对比相同目的的距离,如果新信息的距离更小,则更新本地路由表
(3)如果3分钟没有收到相邻的路由信息,则把相邻路由设置为不可达(16跳)。
b.OSPF协议相关:
Dijikstra算法:解决有权图从一个节点到其他节点的最短路径问题,该算法“以起点为中心,向外层层扩展”。
算法描述:
(1)初始化两个集合(S, U)(S为只有初始顶点点A的集合,U为其他顶点集合);
(2)如果U不为空,对U集合顶点进行距离的排序,并取出距离A最近的一个顶点D;
i. 将顶点D的纳入S集合
ii.更新通过顶点D到达U集合所有点的距离(如果距离更小则更新,否则不更新)
iii. 重复2步骤
(3) 直到U集合为空,算法完成。
链路状态(LS)协议:向所有的路由器发送信息,消息描述该路由器与相邻路由器的链路状态(距离、时延、带宽等),只有链路状态发生变化时,才发送更新信息。
OSPF(Open Shortest Path First:开放最短路径优先)协议:核心是Dijkstra算法。
OSPF协议的过程:
RIP与OSPF的对比:
3.外部网关路由协议
BGP(Border Gateway Protocol)边际网关协议:是运行在AS之间的一种协议。
计算机网络之传输层篇
一、UDP协议详解
1.UDP(User Datagram Protocol: 用户数据报协议),是一个非常简单的协议,结构如下:
2.UDP协议的特点:
- UDP是无连接协议;
- UDP不能保证可靠的交付数据;
- UDP是面向报文传输的;
- UDP没有拥塞控制;
- UDP首部开销很小。
二、TCP协议
1.TCP(Transmission Control Protocol: 传输控制协议),是计算机网络中非常复杂的一个协议,其结构如下:
2.TCP协议的特点:
- TCP是面向连接的协议;
- TCP的一个连接有两端,即点对点通信;
- TCP提供可靠的传输服务;
- TCP协议提供全双工通信;
- TCP是面向字节流的协议;
3.TCP首部之TCP标记的作用:
4.可靠传输的基本原理
停止等待协议:是最简单的可靠传输协议,但是该协议对信道的利用率不高。
连续ARQ(Automatic Repeat reQuest:自动重传请求)协议:滑动窗口+累计确认,大幅提高了信道的利用率。
5.TCP协议的可靠传输
基于连续ARQ协议,在某些情况下,重传的效率并不高,会重复传输部分已经成功接收的字节。
6.TCP协议的流量控制
流量控制指让发送方发送速率不要太快,TCP协议使用滑动窗口实现流量控制。
7.TCP协议的拥塞控制
拥塞控制与流量控制的区别:流量控制考虑<stron>,而拥塞控制考虑整个网络,是全局性的考虑。
拥塞控制的方法:慢启动算法+拥塞避免算法,如下图,纵坐标表示每一次发送数据报文的数量,横坐标表示发送的次数:
8.TCP连接的三次握手
如图所示,具体标记详见上面3.TCP标记的含义与作用:
问:为什么发送方要发出第三个确认报文呢?
答:避免已经失效的的连接请求报文传送到对方,引起错误。
9.TCP协议的四次挥手
如图所示
问:等待计时器为什么需要等待2MSL(最长报文断寿命,一般为2min)?
答:最后一个报文没有确认,确保发送方的ACK可以到达接收方,如果2MSL时间内没有收到,则接收方会重发;确保当前连接的所有报文都已经过期。</stron>
计算机网络之应用层篇
一、DNS详解
DNS(Domain Name System:域名系统):解决IP地址复杂难以记忆的问题。
1.IP—>DNS服务—>便于记忆的域名
2.域名由点、字母和数字组成,分为顶级域(com,cn,net,gov,org)、二级域(baidu,taobao,qq,alibaba)、三级域(www)
(12-2-0852)
二、DHCP协议
DHCP(Dynamic Configuration Protocol:动态主机设置协议):是一个局域网协议,是应用UDP协议的应用层协议。
作用:为临时接入局域网的用户自动分配IP地址。
三、HTTP协议
HTTP(HyperText Transfer Protocol:超文本传输协议):是可靠的数据传输协议。
HTTP请求的方式对比:
GET:请求指定的页面信息,并返回实体主体。
POST:向指定资源提交数据进行处理请求。
DELETE:请求服务器删除指定的页面。
四、HTTPS协议
HTTPS(secure)安全的HTTP协议。
持续更新。。。