计算机网络之基础篇

一、计算机网络概述
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协议。
持续更新。。。