zoukankan      html  css  js  c++  java
  • 计算机网络复习笔记2

    复习内容:

    1、第四章 网络层

    2、第五章 运输层

    参考:计算机网络(第7版)  -  谢希仁  -  电子工业出版社

    一、第四章 网络层

    1、网际协议IP  P115 - P134

    (1)IP介绍

    网际协议IP是TCP/IP体系中两个最重要的协议之一,也是最重要的因特网标准协议之一

    与IP协议配套常用的三个协议:

    • 地址解析协议ARP:是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题
    • 网际控制报文协议ICMP:提供差错报告和询问报文,以提高IP数据交付成功的机会
    • 网际组管理协议IGMP::用于探寻、转发本局域网内的组成员关系
    • 注:RARP现在已经淘汰不用了!

    中间设备:

    • 物理层:转发器
    • 数据链路层:网桥或桥接器
    • 网络层:路由器
    • 网络层以上:网关

    (2)IP地址

    IP 地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是唯一的 32 位的标识符。由因特网名字与号码指派公司ICANN进行分配

    IP地址编制方法的三个阶段:

    • 分类的IP地址
    • 子网的划分
    • 构成超网

    每一类地址都由 网络号 net-id和 主机号 host-id组成,主机号中全0表示网络地址,全1表示广播地址

    A类:

    由1字节的网络地址和3字节主机地址组成  网络地址的最高位必须是“0“,可指派的网络数为128-2,减2的原因是0.0.0.0对应“本网络”,另外一个是127.0.0.1

    最大主机数为2563-2=16777214台,减2的原因是全0的主机号字段代表该IP地址是”本主机“,全1表示”所有的“,表示该网络上的所有主机

    B类:

    由2字节的网络地址和2字节主机地址组成

    网络地址的最高位必须是“10”,可指派的网络数为 214 -1,最大主机数为2562-2=65534台,减2同样是全0全1情况。

    C类:

    由3字节的网络地址和1字节主机地址组成
    网络地址的最高位必须是“110”,可指派的网络数为221-1,最大主机数为256-2=254台,减2同样是全0全1情况。

    D类是多播地址,“lll0”开始

    E类保留为今后使用,“llll0”开头

    ABC类地址范围:

    • A: 1.0.0.1 - 126.255.255.254
    • B: 128.1.0.1 - 191.255.255.254
    • C: 192.0.1.1 - 223.235.225.254

    (3)IP地址与硬件地址

    IP地址与硬件地址:

    • 硬件地址是数据链路层和物理层使用的地址
    • IP地址是网络层和以上各层使用的地址,是一种逻辑地址
    • IP地址放在IP数据报的首部,而硬件地址放在MAC帧的首部
    • 当数据报放入数据链路层的MAC帧中后,整个IP数据报就成为MAC帧的数据,因而在数据链路层看不见数据报的IP地址

    地址解析协议ARP:ARP是解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题。

    每一个主机都设有一个ARP高速缓存(ARP cache),里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。

    如果所要找的主机和源主机不在同一个局域网上,那么就要通过 ARP 找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,

    让这个路由器把分组转发给下一个网络

    (4)IP数据报

    一个IP数据报由首部(20 字节+可选字段)和数据两部分组成 

    标志:占3位,目前只有2位有意义:

    • MF:MF=1表示后面还有分片  MF=0表示是若干个数据片的最后一片
    • DF:DF=0表示允许分片

    片偏移:

    占13位,片偏移指出较长的分组在分片后某片在原分组中的相对位置

    片偏移是相对于用户数据字段的起点,以8个字节为偏移单位,也就是说每个分片的长度一定是8个字节的整数倍 

    分组转发:

    1. 从数据报的首部提取目的主机的 IP 地址 D, 得出目的网络地址为 N。
    2. 若网络 N 与此路由器直接相连,则把数据报直接交付目的主机 D;否则是间接交付,执行(3)。
    3. 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)。
    4. 若路由表中有到达网络 N 的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行(5)。
    5. 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)
    6. 报告转发分组出错

    2、划分子网  P135 - P139

    两级IP地址缺陷:

    • IP 地址空间的利用率有时很低。
    • 给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏。
    • 两级的 IP 地址不够灵活

    子网划分的基本思路:

    • 划分子网纯属一个单位内部的事情,单位对外仍然表现为没有划分子网的网络。
    • 划分子网的方法是从主机号借用若干个位作为子网号。
    • 路由器在收到IP数据报后,按目标网络号和子网号定位目标子网

    子网划分具体内容:

    • 子网掩码:将网络号用1表示,主机号用0表示,是一个网络或子网的重要属性
    • 划分子网 =》 网络号:子网号:主机号
    • 已知IP地址,子网掩码,求网络地址:IP地址 AND 子网掩码 =》 网络地址

    3、构造超网(无分类编址CIDR) P141 - P145 

    CIDR(无分类域间路由选择)的主要特点:

    • CIDR消除了传统的A、B、C类地址以及划分子网的概念,用网络前缀代替网络号和子网号,后面的部分指明主机
    • CIDR使IP地址从三级编址(使用子网掩码),又回到了两级编址,但这已是无分类的两级编址。
    • CIDR把网络前缀相同的连续的IP地址组成一个”CIDR地址块”只要知道CIDR地址块中的任何一个地址,就可以知道这地址块的起始地址(即最小地址)和最大地址,以及地址块中的地址数。

    地址掩码:是一连串的1和0组成,而1的个数救赎网络前缀长度。在斜线记法中。斜线后面的数字就是地址掩码中1的个数

    构成超网:由于一个CIDR地址块中含有很多地址,所以在路由表中就利用CIDR地址块来查找目标网络,这种地址的聚合常称为路由聚合,也称构成超网

    4、路由选择协议  P152 - P166

    两大类路由选择协议:

    • 内部网关协议 IGP:一个自治系统内部使用的路由选择协议。有多种协议,如 RIP 和OSPF 协议。
    • 外部网关协议 EGP:一个自治系统的边界,将路由选择信息传递到另一个自治系统中。目前使用的就是BGP

    RIP协议的优缺点:

    • RIP 存在的一个问题是当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器。
    • RIP 协议最大的优点就是实现简单,开销较小。
    • RIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)。
    • 路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加

    RIP是一种分布式的基于距离向量的路由选择协议,其主要特点:

    • 仅和相邻路由器交换信息。
    • 按固定的时间间隔交换路由信息,例如,每隔30秒

    OSPF最主要的特征就是使用分布式的链路状态协议,其主要特点:

    • 使用洪泛法向本自治系统中所有路由器发送信息。
    • 发送的信息是与本路由器相邻的所有路由器的链路状态。
    • 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息

    OSPF中的洪泛法:

    路由器通过向所有输出端口向所有相邻的路由器发送信息。而每一个相邻路由器又再次将此信息发往其所有的相邻路由器(不再发给刚刚发来的那个路由器)  这样整个区域中所有的路由器都得到了这个信息的一个副本

    BGP是不同自治系统的路由器之间交换路由信息的协议,它采用路径向量路由选择协议,其主要特点:

    • 自治系统AS之间的路由选择必须考虑有关策略。
    • BGP只能力求寻找一条能够到达目的网络且比较好的路由,而并非要寻找一条最佳路由

    二、第五章 运输层

    1、运输层的作用和地位  P203

    • 运输层向它上面的应用层提供通信服务
    • 运输层属于面向通信部分的最高层,同时也是用户功能中的最低层
    • 运输层为应用进程之间提供端到端的逻辑通信

    2、运输层和网络层有什么区别 能不能不要它 (综合)

    运输层和网络层的区别:

    运输层处于面向通信部分的最高层,同时也是用户功能中的最低层,向它上面的应用层提供服务 ,运输层为应用进程之间提供端到端的逻辑通信。

    网络层是为主机之间提供逻辑通信(面向主机,承担路由功能,即主机寻址及有效的分组交换)

    不能去掉运输层的原因:

    因为各种应用进程之间通信需要“可靠或尽力而为”的两类服务质量,必须由运输层以复用和分用的形式加载到网络层,所以不能没有运输层

    3、常用端口号  P207

    • FTP 21
    • TELENT 23
    • SMTP 25
    • DNS 53
    • TFTP 69
    • HTTP 80
    • SNMP 161
    • SNMP(trap) 162
    • HTTPS 443

    4、TCP报文段的首部格式  P217 - P220

    一个TCP报文段分为首部和数据两部分组成

    首部:首部的前一部分是固定长度(20字节) 后面有4n字节是根据需要而增加的选项  因此TCP首部的最小长度是20字节(最大长度: 60字节)

    首部格式中六个控制位:

    • URG(紧急): 为1表示紧急指针有效,表示有紧急数据要尽快发送
    • ACK(确认): 仅当为1时该字段有效,为0时无效,连接建立后所有报文段要把ACK置1
    • PSH(推送): 为1表示尽快交付接收而不再等缓存满了才向上交付
    • RST(复位): 为1表示TCP连接出现严重差错,要释放连接然后重新建立运输连接
    • SYN(同步): 为1表示是一个连接请求或连接接收报文
    • FIN(终止): 为1时表示发送方的数据发送完毕并要求释放连接

    MSS: 最大报文段长度 是每一个TCP报文段中的数据字段的最大长度(TCP报文长度-TCP首部长度)

    5、糊涂窗口综合征  P229

    问题描述:

    TCP接收方的缓存已满,而交互式的应用进程一次只从接收缓存中读取一个字节,然后向发送方发送确认,并把窗口设置为1个字节(40字节),接着发送方发来1个字节的数据(41字节)。

    接收方返回确认,接着继续将窗口设置为1字节,这样下去,使网络的效率很低

    解决方法:

    让接收方等待一段时间使得接收缓存已有足够空间容纳一个最长的报文段,或者等待接收缓存已有一半空闲的空间。只要出现这两种情况之一,接收方就发出确认报文,并向发送方通知当前的窗口大小

    另外发送方也不要发送太小的报文段,而是把数据积累成足够大的报文段或达到接收方缓存的空间的一半大小

    6、TCP拥塞控制  P232 - P236

    TCP拥塞控制的四种算法: 慢开始、拥塞避免、快重传、快恢复

    基于窗口的拥塞控制: 发送方维持一个叫做拥塞窗口cwnd的状态变量,拥塞窗口的大小取决于网络的拥塞程度,并且动态的变化。发送方让字节的发送窗口等于拥塞窗口

    判断网络拥塞的依据: 出现了超时

    慢开始算法: 从小到大逐渐增大发送窗口(从小到大逐渐增大cwnd(拥塞窗口数值))

    为了防止cwnd增长过快,还需设置一个慢开始门限(ssthresh):

    • 当cwnd < ssthresh时 使用慢开始算法
    • 当cwnd > ssthresh时 停止使用慢开始算法而改用拥塞避免算法
    • 当cwnd = ssthresh时 即可使用慢开始算法也可用拥塞避免算法

    拥塞避免算法: 让拥塞窗口cwnd缓慢增大,即经过一个往返时间RTT就把发送方的拥塞窗口cwnd加1,而不是像慢开始阶段加倍增长

    在拥塞避免阶段,拥塞窗口是按照线性规律增大的,这被称为加法增大AI

    而一旦出现超时或三个重复的确认就要把门限值设置为当前拥塞窗口的一半并大大减少拥塞窗口的数值

    7、TCP握手次数  P238 - P241

    TCP运输连接三大阶段: 连接建立、数据传送、连接释放


    连接建立:

    • TCP连接建立 =》 三报文握手
    • 首先A向B发送请求(SYN=1 seq=x)
    • B接收到请求 如果同意建立连接 则向A发送确认(SYN=1 ACK=1 seq=y ack=x+1)
    • A接收到确认后还要给B发送确认(ACK=1 seq=x+1 ack=y+1)
    • 注: ack => 确认号 seq => 序号


    连接释放:

    • TCP连接释放 =》 四次握手
    • 首先A向B发送连接释放请求(FIN=1 seq=u)
    • 接着B收到请求后发出确认(ACK=1 seq=v ack=u+1)
    • 此时TCP处于半关闭状态(A没有数据发 若B发数据A依然要接收)
    • B发送连接释放请求(FIN=1 ACK=1 seq=w ack=u+1)
    • A收到请求后发出确认(ACK=1 seq=u+1 ack=w+1)

      

  • 相关阅读:
    关于工作态度
    ajax请求链接加时间戳
    自动消失的提示效果
    表设计原则
    进度展示图
    freemarker时间格式化
    Java的Thread.currentThread().getName() 和 this.getName() 以及 对象.getName()区别???
    使用Github做服务器展示前端页面
    Spring的生命周期
    输入三个字符,从小到大的顺序输出这三个字符
  • 原文地址:https://www.cnblogs.com/wyb666/p/10189884.html
Copyright © 2011-2022 走看看