本笔记是基于学校所教授的课程和谢希仁《计算机网络》(第七版)整理的,包括概述、物理层和数据链路层这三章的内容。

第一章 概述

第二章 物理层

第三章 数据链路层

第四章 网络层

  • 网络层的主要任务
    网络层承担着主机找主机的任务(跨越多个链路节点),向运输层提供无连接的、尽最大努力交付的数据报服务。
    网络层及以下提供的都是无连接、不可靠的传输服务,通信的可靠性由运输层来保证。
    因此网络层中的路由器可以做得比较简单,大大降低了网络造价。
    本章主要包括IP及其配套协议、路由选择协议两大块内容。

  • 网际协议IP
    网际协议IP是TCP/IP体系中两个最主要的协议之一,与IP协议配套使用的还有三个协议:

    • 地址解析协议 ARP(Address Resolution Protocol)
    • 网际控制报文协议 ICMP(Internet Control Message Protocol)
    • 网际组管理协议 IGMP(Internet Group Management Protocol)
  • IP地址及其编址方法
    IP地址概念:为每个连接在互联网上的主机(或路由器)分配一个在全世界范围是唯一的32位的标识符。
    IP地址三种编址方法:分类IP地址、划分子网、构成超网。

  • 分类IP地址
    将IP地址划分为若干类,每一类IP地址都由网络号(net-id)和主机号(host-id)两部分组成,网络号标志着所连接到的网络,主机号即标志着主机,同一个网络中的主机网络号都相等。
    各类IP地址
    整个IP地址采用点分十进制表示法,每8位为一组。
    常用的三类IP地址:
    A类地址,网络数\(2^7-2\),0号表示“本网络”,127号作测试用;主机数\(2^{24}-2\),扣除全0和全1的主机号,全0表示网络地址,比如一台主机的IP地址为5.6.7.8,那么该主机所在的网络地址就是5.0.0.0;全1表示表示该网络上的所有主机,多在广播时使用。
    B类地址,网络数\(2^{14}-1\),保留128.0.0.0,不指派;主机数\(2^{16}-2\),扣除全0和全1。
    C类地址,网络数\(2^{21}-1\),保留192.0.0.0,不指派;主机数\(2^8-2\),扣除全0和全1。
    IP地址的指派范围
    IP地址的重要特性:

    • 路由器转发分组时仅依据目的主机所连接的网络号,不考虑主机号,这样做可大大减少路由表的大小。
    • IP地址实质是标志主机/路由器和链路的接口,因此当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的IP地址。由于一个路由器至少应当连接两个网络,因此一个路由器至少有两个IP地址。
  • IP地址和硬件地址
    硬件地址:即MAC地址,数据链路层和物理层使用的地址。
    IP地址:网络层和以上各层使用的地址,是一种逻辑地址(称IP地址是逻辑地址是因为IP地址是用软件实现的)。
    IP地址和硬件地址
    注:路由器是根据目的主机的IP地址进行转发的,因此路由器的IP地址并不会出现在IP数据报中,路由器之间使用的是MAC地址。

  • 地址解析协议ARP
    作用:将IP地址解析为MAC地址。
    ARP Cache:ARP高速缓存,存储IP地址和MAC地址的映射关系。
    当主机A欲向同一局域网中某个主机B发送IP数据报时,先在其ARP高速缓存中查看有无主机B的MAC地址。
    如有,就将此硬件地址写入MAC帧,然后通过局域网将该MAC帧发往此硬件地址。
    如没有,主机A就在本局域网上广播发送一个ARP请求分组。收到ARP响应分组后,将B的硬件地址写入其ARP高速缓存中,再发送数据。
    注1:注意解析是单向的,并不能由MAC地址解析到IP地址。
    注2:解析只能在同一个局域网中进行,不同的局域网要先通过路由器把IP数据报发到下一个网络,由下一个网络再查找。

  • IP数据报格式
    IP数据报由首部数据两部分组成。
    首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。在固定部分的后面是一些可选字段,其长度是可变的,不经常使用。
    IP数据报格式

字段名称    位数    含义
版本    4    IP协议的版本,大部分为IPv4
首部长度    4    固定部分+可变部分的总长度,一个单位为4字节,因此首部最长为15*4=60字节
区分服务    8    一般不使用
总长度    16    首部+数据部分总长度,最大为65535字节
标识    16    标识一个IP数据报
标志    3    只有前两位有意义,第一位是MF(MF=1,后面还有分片;MF=0,最后一个分片),第二位是DF(DF=0才允许分片)
片偏移    13    分片后某片在原分组中的相对位置
生存时间    8    记为TTL(Time To Live),指示数据报在网络中可通过的路由器数的最大值
协议    8    指出此数据报使用的何种协议,指出应交给上层哪一个进程
首部检验和    16    只检验数据报的首部,不检验数据部分,采用二进制反码求和算法(考试不作要求)

注:片偏移是从数据部分开始计算的,且是以8个字节为单位,因此时要除以8。

  • 路由器分组转发算法
    路由器分组转发算法
    注1:整体思路,是否同网段->特定主机路由->是否有可到的路由->默认路由
    注2:路由表中指出的是到某个网络应当先到哪个某个路由器,即下一跳的路由器。

  • 划分子网
    是对分类IP编址方法的改进,将IP地址由两级划分为三级,从主机号借用若干个位作为子网号subnet-id。
    子网划分
    划分子网的优点:减少了IP地址的浪费,使网络的组织更加灵活,更便于维护和管理。
    注:划分子网纯属一个单位内部的事情,对外透明,即仍表现为没有划分子网的一个网络。

  • 子网掩码
    子网掩码的作用是找出IP地址中的子网部分,子网掩码中1对应着网络号/子网号,0对应着主机号。
    计算方法:将IP地址和子网掩码做操作,即可得到网络号。
    注:子网中主机号全0用于表示子网本身,全1用于广播,因此子网可用主机数=总地址数-2

  • 无分类编址CIDR(构造超网)
    使用各种长度的网络前缀(network-prefix)来代替网络号和子网号。
    子网划分
    具体记法:128.14.32.0/20表示的地址块共有\(2^{12}\)个地址,最小地址为128.14.32.0,最大地址为128.14.47.255。
    注1:CIDR消除了传统A类、B类和C类地址以及划分子网的概念,因而可以更加有效地分配IPv4的地址空间。
    注2:CIDR中仍然使用掩码,网络前缀的值即为掩码中1的个数。

  • CIDR构造超网
    把多个小前缀的地址块合并成一个大前缀的地址块,这个合并过程叫路由聚合,由此产生的大地址块称为超网。

  • CIDR匹配规则
    最长前缀匹配:CIDR在查找路由表时可能会得到不止一个匹配结果,应选择具有最长网络前缀的那项。因为网络前缀越长,其地址块就越小,因而路由就越具体 。

  • 网际控制报文协议ICMP
    由主机和路由器用于网络层面的信息通信,属于IP层协议,包括差错报告和回送请求和回答报文。
    差错报告:不可达主机,网络,端口,协议。
    询问报文:回送请求和回答报文 & 时间戳请求和回答报文。
    ICMP应用:ping命令,负责测试两个主机间的连通性。属于应用层,但越过了传输层,直接调用网络层的ICMP协议。使用了ICMP询问报文中的回送请求和回答报文

  • 路由选择协议
    内部网关协议:RIP和OSPF
    外部网关协议:BGP
    注:网关即可理解为路由器

  • 内部网关协议RIP
    路由信息协议 RIP (Routing Information Protocol)
    是一种分布式的、基于距离向量的路由选择协议,要求网络中的每一个路由器都要维护从它自己到其他所有网络的距离信息。
    距离的定义:直接连接的网络距离为1,每经过一个路由器,距离数+1,即相当于拓扑图中的边数。

  • RIP的特点

    1. RIP总是选择距离最短的路由线路,哪怕存在另一条距离长但低时延的线路。
    2. RIP中距离最大只能为15,距离为16表示目的地不可达,因此其只适用小型网络。
    3. 路由器仅和相邻的路由器交换信息,且交换的是路由表的全部信息,交换遵循一个固定的时间间隔。(跟谁交换,交换什么,什么时候交换)
  • RIP路由表建立过程
    RIP路由表建立过程
    具体的路由表更新算法如下:
    RIP路由表更新算法

  • RIP存在的问题
    好消息传播得快,坏消息传播得慢,出了故障会要花较长的时间才能通知到全网。
    每次交换的是完整路由表,开销较大。
    最大距离的存在限制了网络的规模。

  • 内部网关协议OSPF
    开放最短路径优先OSPF(Open Shortest Path First)
    路由表更新时:和网络中的所有路由器交换信息(洪泛法),交换的是相邻路由器的链路状态,有更新时才交换,全网广播的方式。(跟谁交换,交换什么,什么时候交换)

第五章 运输层

  • 运输层协议概述
    运输层提供的是进程到进程间的通信服务
    因为一台主机经常有多个应用进程同时有通信需求,表明运输层有一个很重要的功能——复用和分用。
    运输层提供两种协议:TCP和UDP

  • TCP和UDP的对比

特点 TCP UDP
全称 传输控制协议(Transmission Control Protocol) 用户数据报协议(User Datagram Protocol)
数据单位 TCP报文段 用户数据报
是否建立连接 面向连接 无连接
可靠性 可靠 不可靠,尽最大努力
与应用层的数据接口 面向字节流,不需规定特定的数据格式 面向报文,上层的报文加上首部就传出去了
开销 较大 较小
传输速率 不如UDP高
适用场景 可靠性要求高的场景,如文件传输 可靠性要求不高的场景,如视频会议、IP电话
  • 端口号
    端口号标识了本计算机应用层中的各进程,通过IP地址+端口号就可以找到主机中的进程。

  • 用户数据报协议UDP
    UDP只在IP数据报服务上增加了很少一点的功能:复用、分用和差错检测
    UDP主要特点:

    1. 无连接的,减少传输开销,因此也不需要使用套接字。
    2. 面向报文,对于应用层交下来的报文,加上UDP首部后即进行发送,不合并也不拆分。对于IP层传上来的报文,也是去掉首部后直接交给应用层,不做修改。
    3. 没有拥塞控制
    4. 支持一对一、一对多、多对一和多对多的交互通信。
    5. 首部只有8字节,开销很小
    6. 缺点:报文大小不容易控制,容易超长被拆分。
  • 传输控制协议TCP

    1. 面向连接的传输,“连接”是TCP协议提供的一种抽象,连接的两端点被称为套接字,套接字由端口号和IP地址拼接而成。
    2. 只能一对一通信,提供全双工通信方式
    3. 面向字节流:虽然应用程序和TCP的交互是一次一个数据块,但TCP把应用层交下来的数据仅仅看成是一串无结构的字节流。而且TCP不保证接收方和发送方的数据块完全一致,但保证字节流序列是完全一致的,怎样对字节流进行分块传输由TCP试网络情况决定。
  • TCP可靠传输的工作原理
    停止等待协议
    连续 ARQ 协议

  • 停止等待协议
    每发送完一个分组就停止发送,等待对方的确认,收到确认后再发送下一个分组。
    现假设A向B发送数据
    超时重传机制:A对每一个已发送的分组都设置了一个超时计时器,若在规定时间段内没有收到B的确认,就重新发送分组。像这种自动重传的机制称为自动重传请求ARQ。
    确认丢失:B收到了A的分组,但向A发送的确认在中途丢失了,因此A会向B重传分组,B此时要做的事:丢弃分组,重新发送确认。
    确认迟到:B向A发送的确认迟到了,A会重发分组,并收到重复的确认。因此A要丢弃重复的确认,B要丢弃重复的分组。

  • TCP流量控制
    TCP的流量控制是用滑动窗口机制实现的:接收方根据自己的容量的大小设置接收窗口大小,然后将设的值以“窗口”字段的形式发给发送方,发送方根据这个值设置发送窗口的大小,从而实现流量控制。
    具体窗口怎么动:发送窗口表示在没有得到对方确认的情况下,可以把窗口内的所有数据都发出去。收到确认后,窗口会向后移,具体移动的位置根据确认序号来确定。

报头8位
UDP支持一对多,TCP只支持一对一
为什么要三报文握手、为什么四报文握手,一定要会!防止失效链接报文突然传到,会导致错误。(简答题)

第六章 应用层

  • 域名服务器

    • 域名服务器DNS负责域名到IP地址的解析工作
    • 最基本的管辖单位是“区”而非“域”,区可以等于域,也可以小于域。
    • 每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射。
      域名服务器类别
      此外最下层还有本地域名服务器。
  • 域名服务器解析过程

    1. 在本地域名服务器中查找,递归的方式,本地若查不到,本地服务器就会作为DNS客户,向根服务器发出查询请求。
    2. 本地服务器向根服务器发查询请求,分为两种:迭代和递归。迭代:根域名服务器不会什么都管,只负责告诉你去找谁;递归:所有的事情根服务器帮你搞定,帮你访问顶级域名服务器、权限域名服务器,最后把结果返回给你。递归方式用得较少,因为这样根域名服务器太累。
      具体图示见PPT
  • FTP文件传输服务
    FTP采用客户端服务器模式,使用TCP的可靠运输服务,而且建立了两个TCP连接,一个是控制连接,一个是数据连接。控制连接控制各种FTP请求,数据连接负责数据传输服务。

  • 邮件服务
    主要构成部分:用户代理(客户端软件)、邮件服务器、邮件协议。
    所用到的协议有:发邮件:SMTP简单邮件传送协议,收邮件:POP3(Post Office Protocol)和IMAP(Internet Message Access Protocol)网际报文存取协议
    邮件服务(基于用户代理)

  • 邮件发送步骤

    1. 发件人使用用户代理撰写要发送的邮件。
    2. 发件人的用户代理把邮件用SMTP协议发给发送方邮件服务器。
    3. 邮件服务器把邮件临时存放在邮件缓存队列中,等待发送。
    4. 发送邮件服务器与接收方邮件服务器建立连接,然后把邮件发出去。
    5. 接收方邮件服务器收到邮件后,把邮件放入收件人的用户邮箱中,等待收件人进行读取。
    6. 收件人在打算收信时,就运行PC机中的用户代理,使用POP3或IMAP协议读取邮件。
  • 基于万维网的邮件服务:
    用浏览器发送,用户和邮件服务器之间是HTTP协议,邮件服务器之间是SMTP。
    邮件服务(基于万维网)

第七章 网络安全层

  • 网络攻击的类别
    被动攻击:主要是截获,即从网络上窃听他人的通信内容,又称为流量攻击。
    主动攻击:主要包括:
    1. 篡改:故意篡改网络上传送的报文。
    2. 恶意程序:包括计算机病毒、计算机蠕虫、特洛伊木马和逻辑炸弹、后门入侵等。
    3. 拒绝服务:如分布式拒绝服务。指攻击者向互联网的某个服务器不停发送大量分组而导致该服务器无法正常工作。
      在信息的安全领域中,对付被动攻击的重要措施是加密,而对付主动攻击中的篡改和伪造则要用鉴别
  • 两类加密体制
    对称密钥密码体制和公钥密码体制。

  • 对称密码体制
    加密和解密的密钥是相等的,用同一把钥匙加密和解密,密钥是保密的,但加密算法是公开的。
    因为两边密钥都是一样的,无法确定改了之后是谁改的。虽然安全性不高,但加密效率高。

  • 公钥密码体制
    加密密钥和解密密钥不一样,公钥、算法都公开,只有收信方的私钥是保密的。
    为保证以下三点:
    (1) 报文鉴别——接收者能够核实发送者对报文的签名;
    (2) 报文的完整性——发送者事后不能抵赖对报文的签名;
    (3) 不可否认——接收者不能伪造对报文的签名。
    出台了数字签名的概念。

  • 数字签名
    数字签名流程

数字签名的工作原理:
(1) 因为除A外没有别人具有私钥,所以除A外没有别人能产生这个密文。因此B相信报文X是A签名发送的。
(2) 若A要抵赖曾发送报文给B,B可将明文和对应的密文出示给第三者。第三者很容易用A的公钥证实A确实发送X给B。
(3) 反之,若B将X伪造成X‘,则B不能在第三者前出示对应的密文,这样就证明了B伪造了报文。

  • 鉴别体制
    对付主动攻击中的篡改和伪造要用鉴别,鉴别报文的真伪性,分为两类:实体鉴别和报文鉴别。
    实体鉴别:又称为端点鉴别,鉴别报文确实是对方发的。
    报文鉴别:包含端点鉴别和报文完整性鉴别,除了鉴别报文是否是对方发的,还要鉴别报文中途是否被篡改,即是可靠的消息源发出的可靠消息。

Post Date: 2018-05-28

版权声明: 本文为原创文章,转载请注明出处