仅为复习提纲,更全面内容可以参考此篇文章:https://blog.csdn.net/spicy_chicken123/article/details/131604412?spm=1001.2014.3001.5502
应用题复习:https://blog.csdn.net/spicy_chicken123/article/details/131604489?spm=1001.2014.3001.5502
考试题型
- 简答与分析,10题
- 综合应用,5题
考试内容包括基础知识测试,以及综合应用两部分。请大家注意复习:既要掌握基本的重要知识点,也要学会综合应用。
第一章 计算机网络与英特网
-
计算机网络的定义
计算机网络是用通信设备和线路将分散在不同地点的有独立功能的多个计算机系统互相连接起来,并按照网络协议进行数据通信,实现资源共享的计算机集合。
计算机网络向用户提供的最重要的两大功能:连通和共享。
计算机网络就是为数据交换提供服务的,是作为提供数据发送、传输、接收服务的基础设施。
-
怎样描述Internet
具体构成:计算互连设备、通信链路、分组交换设备
提供服务:提供网络应用基础架构、无连接服务和面向连接服务(套接字)
-
-
协议的定义和基本要素
协议:控制网络中信息的发送和接收。定义了通信实体之间交换的报文的格式和传输顺序,以及在报文发送和/或接收或者其他事件方面所采取的行动(响应)。
协议的基本要素:语法、语义、同步
-
Internet的构成描述:
-
具体构成:边缘(端系统,包括软件和硬件)、核心、接入网络和物理介质
-
通信链路(communication link):连接相邻两个网络节点的物理线路。
多种类型:同轴电缆、双绞线、光纤和无线电等。
多种速率:不同的链路传输数据的速率不同。
链路传输速率:每秒传输多少位数据。单位bit/s或bps。
-
分组交换机(packet switch):连接端系统的中间交换设备。
功能:接收、转发分组。从一条(入)通信链路接收分组、并保存,再从另一条(出)通信链路转发出去。
类型:路由器(router),链路层交换机(link-layer switch)
-
分组交换(packet switching)技术
发送端将要发送的数据分成若干较小的块,添加首部形成分组(包packet) ,分别发送到目的端,再组装恢复原数据。
*路径(route或path):*一个分组从发送端系统传输到接收端系统,所经过的一系列通信链路和分组交换机。
-
端系统之间通信的路径不专用。
-
多个通信端系统共享一条路径或一部分。
-
-
-
网络交换方式:电路和分组
电路交换的工作原理:通信双方必须先建立一个专用的连接(电路),一直维持,直到通信结束。如,电话网络。通话过程:拨号→接通→通信→挂机
分组交换的工作过程:源端将报文划分为较小的数据块(分组packet);每个分组通过一系列链路和分组交换机传送,直到目的端;目的端恢复原报文。
-
电路交换:时分和频分
多路复用:在一条传输链路上同时建立多条连接,分别传输数据。
-
频分多路复用FDM(frequency-division multiplexing)
链路的频谱由跨越链路创建的连接所共享。按频率划分若干频段,每个频段专用于一个连接。
*带宽bandwidth:*频段的宽度。如,8kHz。
-
时分多路复用TDM (time-division multiplexing)
时间划分为固定区间的帧,每帧再划分为固定数量的时隙,每一个时隙专用于一个连接,用于传输数据。
-
-
分组:数据报和虚电路
-
理解企业(家庭)网络接入互联网所需各种设备的用途。
-
-
分组交换网络中的时延。
-
节点处理时延nodal processing delay:检查错误位,选择输出链路,高速路由器处理延迟-微秒级。
-
排队时延queueing delay:等待被发送到输出链路上的时间,取决于路由器的拥塞程度
-
传输时延Transmission delay: R=链路带宽 (bps), L=分组长度 (bits), 发送分组比特流的时间 = L/R
-
传播时延Propagation delay:d = 物理链路的长度, s = 介质的信号传播速度 (2x108m/sec~ 3x108 m/sec),传播延迟 = d/s
-
-
TCP/IP的分层模型,各层PDU的名称和功能,为什么要采用分层模型?
- 应用层:提供各种网络应用。传输应用报文。FTP、 SMTP、 HTTP
- 运输层:在应用程序的客户机和服务器之间提供传输应用层报文服务。传输报文段。TCP、 UDP
- 网络层:主机和主机之间传输网络层分组(数据报)。IP协议、 选路协议
- 链路层: 在邻近单元之间传输数据(帧 )。PPP、以太网
- 物理层:在节点之间传输比特流。传输媒体
分层结构的优缺点:
- 优点:
- 使复杂系统简化:将一个大而复杂系统划分为若干个明确、特定的部分,分别讨论研究。
- 易于维护、系统的更新。某层功能变化,不会影响系统其余部分:只要保持对其上层提供的服务,及其使用下层的服务不变。
- 缺点:
- 有些功能可能在不同层重复出现:如,基于链路和基于端到端传输的差错恢复;
- 某层的功能可能需要仅存在其他某层的信息
-
计算所面临的网络攻击的类型。
-
植入恶意软件:病毒,蠕虫,僵尸网络(通过各种手段在大量计算机中植入特定的恶意程序,使控制者能够通过相对集中的若干计算机直接向大量计算机发送指令的攻击网络。攻击者通常利用这样大规模的僵尸网络实施各种其他攻击活动)。
-
攻击服务器和网络基础设施:拒绝服务攻击(DoS),三种类型:弱点攻击,带宽洪泛,连接洪泛
-
嗅探分组:分组嗅探器:记录每个流经的分组拷贝的被动接收机。容易受到攻击的网络:无线网络和以太网LAN
-
伪装:生成具有任意源地址、分组内容和目的地址的分组,然后将这个人工制作的分组传输到因特网中。
• 将具有虚假源地址的分组注入因特网的能力称为IP哄骗
• 解决方法采用端点鉴别机制
-
删除和修改报文
- 中间人攻击(Man-in-the-Middle Attack,简称“MITM攻击”)是一种“间接”的入侵攻击, 这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为“中间人”。
- 当主机A、和主机B通信时,都由主机C来为其“转发”,而A、B之间并没有真正意思上的直接通信,他们之间的信息传递同C作为中介来完成,但是A、B却不会意识到,而以为它们之间是在直接通信。这样攻击主机在中间成为了一个转发器,C可以不仅窃听A、B的通信还可以对信息进行篡改再传给对方,C便可以将恶意信息传递给A、B以达到自己的目的。
-
第二章 应用层
-
Web应用和HTTP协议:
-
基本术语(网页、URL等)
套接字:同一台主机内应用层与运输层之间的接口。也叫应用程序和网络之间的应用程序接口API ,是在网络上建立网络应用程序的可编程接口。
进程识别信息:主机名称或地址:因特网中,用IP地址标识(32位,全球惟一)+端口号
用户代理:是用户与网络应用之间的接口。
Web页(文档):由若干对象组成。
URL:Uniform Resource Locator。统一资源定位符。标识万维网WWW上的各种文档,全网范围唯一。
-
HTTP的特性及其区别(无状态、非持久和持久等)
HTTP是无状态协议:HTTP服务器不维护客户先前的状态信息
非持续 HTTP 连接:每个 TCP 连接上只传送一个 Web 对象,只传送一个请求/响应对。
持续 HTTP 连接:传送多个请求/响应对,一个 TCP 连接上可以传送多个 Web 对象
-
COOKIE技术
-
Web缓存的作用、实现基本原理。
-
-
电子邮件:组成及其使用的协议
-
因特网电子邮件系统的总体结构
-
用户代理:邮件阅读器。允许用户阅读、回复、发送、保存和撰写报文
-
邮件服务器
- 邮箱:发送给用户的邮件报文。
- 报文队列:用户要发出的邮件报文。
- 邮件发送主要过程:
- 邮件保存到发送方报文队列
- 通过SMTP协议转发到接收方邮件服务器,保存到相应邮箱中
- 若投递失败,发送方将其保存在一个报文队列中,以后每30分钟发送一次,若几天后仍未成功,将该报文删除,并通知发送方。
- 用户访问自己邮箱时,邮件服务器对其身份进行验证(用户名和口令)
-
SMTP:
-
客户使用TCP来可靠传输邮件消息到服务器端口号25
-
直接传送: 发送服务器到接收服务器
-
传输的3个阶段
• 握手 (建立TCP连接)
• 邮件消息的传输
• 结束:关闭TCP连接
-
命令/应答的交互
- 命令: ASCII文本格式
- 应答: 状态码及其短语
-
邮件消息必须是7-bit ASCII
-
-
-
DNS的功能、实现和查询方式。
-
内容分发网络(CDN)要解决的基本问题和实现的简单原理
挑战: 如何从海量的视频中,挑选出某些内容,采用流的方式发送给成千上万的用户
选项:将多份拷贝存储在地理上分散的不同站点来提供服务(CDN)
CDN: 将内容的拷贝存储在CDN节点中,用户向CDN请求内容被定向到附近的拷贝,取得内容如果网络路径拥塞,则可能选择其他的拷贝
第三章 运输层
-
多路复用与多路分解
- 多路复用/分解如何工作?(报文段头部字段实现)
- 主机收到IP数据报
- 每个数据报有源IP地址,目的IP地址
- 每个数据报搬运一个报文段每个报文段有源和目的端口号 (回忆: 对于特定应用程序具有周知端口号)
- 主机用IP地址和端口号指明报文段属于哪个合适的套接字
- 无连接多路分解( UDP 套接字:目的IP地址, 目的端口号)
- 面向连接的多路分解(TCP套接字:源IP地址、源端口号、目的IP地址、目的端口号)
- 多路复用/分解如何工作?(报文段头部字段实现)
-
UDP协议
-
可靠数据传输原理:掌握可靠数据传输的基本原理和使用的主要技术。GBN和SR两种可靠传输技术的特点和原理。
-
TCP协议及TCP可靠数据传输原理。
往返时延估计:
-
(补充)TCP流量控制,差错检测
-
掌握TCP拥塞控制方法。
第四章 网络层
-
网络层提供的服务和功能:转发和路由。网络层数据平面和控制平面各自完成的功能。
-
转发:将分组从路由器的一个输入链路接口转移到一个合适的输出链路接口的本地动作。
• 只涉及分组在路由器中从入链路到出链路的传送。
• 通常用硬件实现,与路由器的内部结构有关。 -
选路:指分组从源到目的地的端到端路径的网络范围动作。
• 涉及网络中的所有路由器,集体经选路协议交互,决定分组从源到目的地的路径。
• 通常由软件实现,通过选路算法计算路径。 -
数据平面:本地的,每个路由器自身的功能;决定抵达路由器输入端口的数据包如何转发到输出端口
-
控制平面:整个网络范围,决定数据报在端到端路径上的路由器之间如何路由。
两种数据平面的实现方式:
- 传统的路由算法: 在路由器内实现
- 软件定义网络(software-defined networking, SDN): 在远程服务器上实现
-
-
路由器工作原理。
-
输入端口:线路端接模块;数据链路处理模块;查找与转发模块;如果数据报到达输入端口的速度快于输入端口将数据报转发到交换结构的速度,就会发生排队。
-
选路处理器:计算转发表,给每个输入端口存放一份转发表拷贝
-
分布式交换:
(1)内存交换:选路处理器完成输入端口与输出端口之间的交换;交换速度受总线带宽的速度限制 (每个分组穿过两次总线)
(2)总线交换:输入端口通过一条共享总线将分组直接传送到输出端口,不需要选路处理器的干预;交换带宽受总线速率限制
(3)交换矩阵交换:到达输入端口的分组沿水平总线穿行,直至与所希望的输出端口的垂直总线交叉点,若该条垂直总线空闲,则分组被传送到输出端口,否则阻塞排队
-
输出端口:取出存放在输出端口内存中的分组,并将其传输到输出链路上;当交换结构将分组交付给输出端口的速率超过输出链路速率,就需要排队与缓存管理功能
-
-
网际协议IP:IP报文、IP分片和重组、IP编址和子网划分、NAT网络地址转换、DHCP协议、IPV6的特点
-
ipv4数据报格式:
-
IP数据报分片和重组
-
DF =1:禁止分片; DF =0:允许分片
-
MF =1:非最后一片; MF =0:最后一片(或未分片)
-
片偏移字段占13位:一个IP分组分片封装原IP分组数据的相对偏移量,片偏移字段以8字节为单位
-
-
子网掩码:用来确定网络地址(网络号+子网号)和主机地址的长度。子网掩码长为32位比特,其中的1对应于IP地址中的网络号和子网号,而子网掩码中的0对应于主机号
-
ICMP: (Internet Control Message Protocol,因特网控制报文协议)用于主机路由器之间彼此交流网络层信息
• 差错报告: 不可到达的主机, 网络,端口,协议
• 请求/应答 (用于ping,traceroute)
-
-
选路算法:链路状态选路算法、距离向量算法
-
因特网中的层次选路协议
- *自治系统(Autonomous System) AS:*按区域划分的系统。每个AS由一组在相同管理控制下的路由器组成。同一个AS内的路由器可运行相同的选路算法,且拥有相互之间的信息。
- 层次选路:
➢将一个大的系统划分成若干小系统(自治系统),
➢按区域或自治系统的形式组织路由器。
➢自治系统之间再互连。 - 因特网的层次选路
- AS内部选路协议:
✓ RIP选路信息协议:基于距离向量的路由协议。
✓ OSPF开放最短路径优先:采用Dijkstra最短费用路径算法,是一种链路状态协议。 - AS间选路协议:
✓ BGP边界网关协议:基于距离向量的路由协议。相邻BGP路由器相互交换路径信息
- AS内部选路协议:
-
(补充)软件定义网络SDN
- 软件定义网络(SDN,SoftwareDefinedNetwork)源自美国斯坦福大学CLeanState研究组提出的一种新型网络创新架构,可通过软件编程的形式定义和控制网络,具有控制平面和转发平面分离及开放性可编程的特点。
- SDN的核心思想是建立一个通用转发体系:
- 每个交换设备包含一个流表(flow table). 流表由一个逻辑上中心化的控制器(远程控制器)来计算和分发
- 首部字段值:入分组与之匹配,匹配不上分组被丢弃或发往远程控制器。首部字段包括链路层、网络层、传输层首部字段。
- 计数器:分组与流表项匹配时更新。包含已经匹配分组数量,以及上次更新以来的时间
- 动作:分组匹配表项时的动作(转发、丢弃、复制、分发到多个端口)
第五章 链路层
-
(补充)链路层提供哪些服务:封装成帧、链路访问、在相邻节点之间可靠交付、流量控制、差错检查、纠错、半双工/全双工
-
差错检测方法,三种差错检测的计算方法、他们的各自的特定和使用范围。
-
奇偶校验:最基本的方法。
- 偶校验:发现奇数个“1”,至少有一个比特发生差错(奇数个比特差错)。
- 奇校验:发现偶数个“1”,至少有一个比特发生差错。
- 1维奇偶校验:可以查出任意奇数个错误,但不能发现偶数个错误
- 2维奇偶校验:可以检测并纠正单个比特差错(数据或校验位中) ;能够检测(但不能纠正)分组中任意两个比特的差错
-
Internet校验和:常用于运输层。分组开销小:检查和位数比较少;差错检测能力弱差错检测用软件实现
-
循环冗余检测:常用于链路层。能检测小于 r+1 位的突发差错、任何奇数个差错
- 设发送节点要把数据D(d 比特)发送给接收节点。发送方和接收方先共同选定一个生成多项式 G(r+1比特),最高有效位 (最左边)是1
- 发送方:
• 计算出一个r位附加比特R,添加到D的后面产生DR(d+r 比特)
• DR能被生成多项式G模2运算整除,一起发送。 - 接收方:
• 用生成多项式G去除接收到的DR(d+r比特)
• 余数非0:传输发生差错;
• 余数为0:传输正确,去掉尾部r位,得所需数据D。
-
-
多路访问链路和协议:三种主要的多路访问协议各自的特点。、
- 信道划分协议: TDMA、FDMA、CDMA把信道划分为小“片” (时隙);给节点分配专用的小“片”
- 随机访问协议: ALOHA(纯ALOHA,时隙ALOHA)、CSMA、CSMA/CD(以太网)、CSMA/CA(无线局域网)不划分信道,允许冲突;能从冲突中“恢复”
- 轮流协议:轮询、令牌通过轮流访问信道避免冲突,要发送的节点越多轮流时间越长
-
以太网技术(链路层和物理层的实现方式)
-
帧格式
-
以太网提供无连接、不可靠的服务
• 无连接服务:通信时,发送方适配器不需要先和接收方适配器“握手”。
• 不可靠的服务:接收到的帧可能包含比特差错。
• 收到正确帧,不发确认帧;
• 收到出错帧,丢弃该帧,不发否定帧。
• 发送适配器不会重发出错帧。
• 丢弃数据的恢复是通过终端传输层的可靠数据传输机制来实现的
-
以太网采用的CSMA/CD原理
-
-
ARP协议的工作原理。
-
MAC地址(LAN地址、物理地址):节点“网卡”本身所带的地址(唯一)。MAC地址长度通常为6字节(48比特),共248个。6字节地址用16进制表示,每个字节表示为一对16进制数网卡的MAC地址是永久的(生产时固化在其ROM里)
-
广播信道的局域网中,一个节点发送的帧,在信道上广播传输,其他节点都可能收到该帧。大多数情况,一个节点只向某个特定的节点发送。由“网卡”负责MAC地址的封装和识别。
-
发送适配器:将目的MAC地址封装到帧中,并发送。所有其他适配器都会收到这个帧。
-
接收适配器:检查帧的目的MAC地址是否与自己MAC地址相匹配:匹配:接收该帧,取出数据报,并传递给上层。不匹配:丢弃该帧。
-
广播帧:发送给所有节点的帧,全1地址:FF-FF-FF-FF-FF-FF
-
ARP地址解析协议:将IP地址解析到MAC地址。ARP只为在同一个LAN上的节点解析IP地址。
-
两个主机位于同一个局域网:
- 主机A希望发送数据报给主机B,B的MAC地址不在A的ARP映射表中
- 主机A 广播 ARP查询分组, 其中包含B的IP地址,目的MAC地址 = FF-FF-FF-FF-FF-FF,局域网中所有节点收到ARP查询分组
- 主机B收到ARP查询分组,返回B的MAC地址给主机A,利用单播帧向A发送应答
- 主机A在它的ARP表中缓存 IP-to-MAC 地址对,直到信息软状态:信息超时会被删除,除非有新的更新消息
-
发送数据报到子网以外:主机A构建IP数据报,源地址是A的IP地址,目的地址是B的IP地址,主机A构建链路层数据帧,其中源MAC地址是A的MAC地址,目的MAC地址是第一跳路由器接口的MAC地址,封装A到B的IP数据报。
-
-
交换机
数据帧的过滤与转发:
当交换机收到数据帧:
-
记录到达链路和发送主机的MAC地址
-
使用数据帧的目的MAC地址,在转发表中检索如果在转发表条目中找到对应的MAC地址
-
执行{
如果 目的MAC地址对应的端口与数据帧的达到端口相同
则 丢弃该数据帧
否则 转发该数据帧到条目指定的端口
}
-
否则,向除到达端口之外的所有端口转发(flood)
-
-
VLAN
- VLAN含义:利用支持VLAN的交换机,可以在一个实际的物理局域网内,定义多个虚拟的局域网
- 基于端口的VLAN:利用交换机内置的管理软件,将端口分组,使得一个单独的交换机,像多个交换机那样工作
- 跨越多个交换机的 VLAN
- 干线端口( trunk port )承载定义在多个物理交换机之上的VLAN间的流量某一个VLAN内的流量帧,如果要跨域物理的交换机,需使用802.1q格式(带有VLAN ID 信息)802.1q协议的作用:对干线端口之间传输的帧,添加/移除额外的头部字段
第六章 网络编程
-
简单TCP循环服务器Socket编程基本步骤(服务器端和客户端)
-
简单UDP循环服务器Socket编程基本步骤(服务器端和客户端)
-
int socket(int domain, int type,int protocol)
功能:根据给定的参数创建一个套接字描述子,成功返回一个套接字描述符,不成功返回-1。 -
int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen)
功能:绑定IP地址和端口号到套接字sockfd。成功返回0,否则返回-1。 -
int listen(int sockfd, int backlog)
功能:设置未被接受的TCP连接请求的最大数量,并监听连接请求。成功返回0,否则返回-1。 -
int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen)
功能:接收连接请求,成功返回一个非负的整数作为连接套接字描述符;否则返回-1。使用该函数后,系统从完成队列中取出socket,为每个连接请求创建一个新的连接套接字,服务器只对新的连接使用该套接字,原来的监听套接字接受其他的连接请求。 -
int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen)
功能:建立套接字与给定服务器地址addr的连接。如果sockfd是TCP描述符,则建立一条连接;如果是UDP描述符,则只建立sockfd和addr的绑定关系。成功返回0,否则返回-1。 -
int close(int sockfd)
功能:关闭网络套接字。成功返回0,否则返回-1 -
int read(int fd, char *buf, int len);
功能:从套接字读取数据。成功返回读取的字符数,否则返回-1。 -
int write(int fd, char *buf, int len);
功能:通过已经连接的套接字发送数据。成功返回发送的字符数,否则返回-1