研究生复试巩固计网
自己给自己出题目
参考《计算机网络:自顶向下方法(原书第7版)》
★ 有哪些路由算法
- 静态路由算法(非自适应)
动态路由算法(自适应)
-
集中式路由选择算法:链路状态路由算法(Link State, LS)
网络拓扑和所有链路开销都是已知的(每个节点向网络所有其他节点广播链路状态分组)
实现:Dijkstra/Prim分散式路由选择算法: 距离-向量路由算法(Distance-Vector, DV)
- 分布式:每个节点都要从一个或多个直接相连邻居接受某些信息、计算、分发
- 迭代的:此过程一直要持续到邻居之间无更多信息要交换为止
- 异步的:不要求所有节点相互之间步伐一致的操作
★ TCP/IP 位于哪一层
TCP/IP 有几层,为什么没有物理层
四层,应用层、TCP/UDP、IP、网络接口层
TCP/IP从链路层而不是物理层开始的原因是因为 TCP/IP 并不关心实际的硬件。物理实现无关紧要,只要它可以以正确的方式链接即可。具体的物理网络可以是以太网、也可以是电话网
TCP和UDP有什么区别
UDP:无连接,尽最大可能交付,没有拥塞控制,面向报文,支持一对一、一对多、多对多,首部只有8个字节
TCP:面向连接,提供可靠交付,有流量控制,拥塞控制,提供全双工通信,面向字节流,每一条TCP连接只能是点对点,首部最少20字节
TCP怎么实现可靠传输
超时重传:如果一个已经发送的报文段在超时时间内没有收到确认,那么就重传这个报文段
TCP怎么解决拥塞控制
慢开始、拥塞避免、快重传、快恢复
出现了超时,则令 ssthresh = cwnd / 2,然
怎么判断是不是拥塞了,拥塞了怎么办
-
如果网络出现拥塞,发送方没有按时收到确认,虽然没有收到确认可能是其他原因的分组丢失,但是因为无法判定,所以都当做拥塞来处理
-
控制发送方速率
UDP有哪些应用
- 流媒体 如直播
- 实时视频会议
- 因特网电话
- DNS
计算机网络中有哪些流量控制,缓存满了怎么调度
TCP协议
TCP 提供一种机制可以让「发送方」根据「接收方」的实际接收能力控制发送的数据量,这就是所谓的流量控制
发送方每次收到接收方的确认消息,都会根据确认号,挪动窗口的相应位置,使得窗口内出现新的未发送字节,同时接收方还会返回现在滑动窗口的大小来限制发送方的发送速度
避免发送方的数据填满接收方的缓存(窗口)
如果自己的处理能力有限,导致自己的接收缓冲区满,接收窗口大小为 0时发送端应该停止发送数据
子网掩码的作用
- 屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在哪个子网上
- 将一个大的IP网络划分为若干小的子网络,减少IP的浪费
★ 交换机、路由器和集线器的区别
集线器 | 交换机 | 路由器 | |
---|---|---|---|
工作区域 | 物理层 | 数据链路层 | 网络层 |
能否隔离冲突域 | × | √ | √ |
能否隔离广播域 | × | × | √ |
流量隔离 | × | √ | √ |
即插即用 | √ | √ | × |
优化路由 | × | × | √ |
交换机能不能用在大型网络中
不能,大型交换网络要求主机和路由器中有大的ARP表,将生成可观的ARP流量和处理量。而且,交换机对于广播风暴并不提供任何保护措施。若某主机出了故障并传输出没完没了的以太网广播帧流,交换机将转发所有这些帧。
路由器提供了更健壮的流量隔离方式和对广播风暴的控制,网络的主机之间用更“智能的”路由。
★ IP地址和MAC地址的区别
- IP地址的设计是出于拓扑设计出来的,只要在不重复IP地址的情况下,它是可以随意更改的;而MAC地址是根据生产厂商烧录好的,它一般不能改动的。
- IP地址的长度为32位,而MAC地址为48位。
- IP地址应用于OSI模型的网络层,而MAC地址应用在OSI模型的数据链路层。 数据链路层协议可以使数据从一个节点传递到相同链路的另一个节点上(通过MAC地址),而网络层协议使数据可以从一个网络传递到另一个网络上。
- 分配依据不同。IP地址的分配是基于我们自身定义的网络拓扑,MAC地址的分配是基于制造商。
-
网络层的设备有哪些
路由器,包过滤防火墙,三层交换机
-
计算机网络中各层和网络中的地址对应关系
网络层 IP地址
数据链路层 MAC地址
★ IP地址的组成,有几位,各部分什么作用
IPv4 20B(头部 最少)
- 版本 Version
- 首部长度 Header Length
- 总长度 Total Packet Length
- 标识 identification
- 标志 Flags
- 片偏移 Fragment Offset
- 生存时间 Time to Live
- 协议 Protocol
- 首部校验和 Header Checksum
- 源地址字段 Source Address
- 目的地址地段 Destination Address
OSI模型有几层
-
传输层的作用
端对端的连接(进程之间逻辑通信)
-
传输层有什么协议
TCP、UDP
-
各层作用
7.为应用程序提供服务
6.数据格式转化、数据加密
5.建立、管理和维护会话
4.建立、管理和维护端到端的连接
3.IP选址及路由选择
2.提供介质访问和链路管理
1.物理层
-
OSI模型和五层协议和TCP/IP模型
-
五层上有什么协议
应用层:HTTP, FTP, SSH, DNS
表示层:SSL, SSH, IMAP, FTP, MPEG, JPEG
★ 内部网关协议有哪些,各有什么特点
缩写 | 全称 | 报文发送 | 适用网络 | 路由选择算法 |
---|---|---|---|---|
RIP | 路由信息协议 | UDP | 较小自治系统 | 距离向量算法 |
OSPF | 开放最短路径优先 | IP | 较大自治系统 | 链路状态算法 |
RIP特点
- 仅和相邻路由器交换信息
- 交换自己的路由表(当前路由器知道的全部信息
- 固定时间间隔交换路由信息
- 好消息传得快,坏消息传得慢
OSPF特点
- 向自治系统中所有路由器发送信息(洪泛
- 发送与本路由器相邻的所有路由器链路状态
- 链路状态变化才洪泛发送
★ 路由表有哪些字段
路由表表项
对每组网络接口(interface),路由表至少会存有下面的信息:
- 网络ID(Network ID, Network number):就是目标地址的网络ID。
- 子网掩码(subnet mask):用来判断IP所属网络
- 下一跳地址/接口(Next hop / interface):就是数据在发送到目标地址的旅途中下一站的地址。其中interface指向next hop(即为下一个route)。一个自治系统(AS, Autonomous system)中的route应该包含区域内所有的子网,而默认网关(Network id: 0.0.0.0, Netmask: 0.0.0.0)指向自治系统的出口。
根据应用和执行的不同,路由表可能含有如下附加信息:
- 花费(Cost):就是数据发送过程中通过路径所需要的花费。
- 路由的服务质量
- 路由中需要过滤的出/入连接列表
★ 路由器内部有哪些协议
- PPPOE拨号协议
- DHCP协议
- 无限加密协议 WPA1 WPA2 WPA3
RIP OSPF IS-IS IGRP
你把家里的路由器看成什么设备
一台独立的拥有 MAC 地址的设备,并且可以帮我把数据包做一次转发
路由器的作用和功能
分组交换 存储焕发,处理排队时延和分组丢失,构建转发表 ,使用路由选择协议,隔离冲突域和广播域,指定访问规则
路由的定义
通过互联的网络把信息从源地址传输到目的地址的活动
★ 计算机网络的地址
-
有哪些地址
MAC地址 IP地址
-
MAC和IP怎么相关转换
IP to MAC
通过ARP协议
同一个局域网内- 主机广播ARP请求分组
- 被请求的目标机器发出ARP响应分组
- 主机写入目标机器的IP与MAC的映射关系至ARP缓存
否则通过ARP先找到位于本局域网的路由器MAC地址,发送分组至这个路由器,转发至下一个网络
-
MAC地址是什么地址,为什么要有MAC地址
介质访问控制地址
硬件地址,用来确认网络设备的位置的位址
一篇图文生动幼儿园都能明白的好文
计算机网络的拓扑结构
- 总线结构
- 环状结构
- 星状结构
- 树状结构
- 网状结构
计算机网络按照覆盖可以划分成什么
个域网,局域网,城域网,广域网
你认为计算机网络的定义是什么
一些相互连接的、以数据通信,资源共享为目的的、自治的计算机的集合
网关是什么
定义:是转发其他服务器通信数据的服务器,接收从客户端发送来的请求时,它就像自己拥有资源的源服务器一样对请求进行处理
工作机制:与代理十分相似。而网关能使通信线路上的服务器提供非 HTTP 协议服务
利用网关能提高通信的安全性,因为可以在客户端与网关之间的通信线路上加密以确保连接的安全
【说明】:由于历史的原因,许多有关TCP/IP的文献曾经把网络层使用的路由器称为网关,在今
天很多局域网采用都是路由来接入网络,因此通常指的网关就是路由器的IP!
数据链路层的三个基本问题和解决办法
基本问题:封装成帧、透明传输、差错检测
- 封装成帧:数据前后分别添加首部和尾部。接收端以便从收到的比特流中识别帧的开始与结束。(帧定界是分组交换的必然要求)
- 透明传输:防止数据中也出现开始和结束的字符,使得解析时错误的解析,那么就必须插入转义字符。即避免消息符号和帧定界符号的相互混淆。
- 差错检测:过滤差错的无效数据帧,避免浪费网络资源
传输层端口号和http、ftp、web的端口号
FTP 数据连接20 控制连接21
Telnet 23
SMTP 25
DNS 53
HTTP 80
POP3 110
已经有交换机了,还需要CSMA/CD协议吗
可以需要
因为CSMA/CD由于早期共享式以太网的需求才出现,是半双工的
现在是交换式以太网,更多采用全双工模式。倘若全双工,则不需要。但是,交换机在半双工工作模式下工作,网卡同样会启用CSMA/CD冲突检测机制来避免冲突的发生
IPv4的地址是不够用的,怎么处理这个问题
- NAT(Network Address Translation)网络地址转换。尽量使同个区域(同一栋楼、同个小区…)的设备使用尽可能少的公网IP,一起共用公网IP。通过专用网络+NAT,使路由器对外界隐藏内部网络细节。
- IPv6
扩大的地址容量 128b
局域网三要素
- 传输介质
- 拓扑结构
- 协议
以太网通信协议
比较通用的以太网通信协议是TCP/IP协议
TCP/IP协议并不完全符合OSI的七层参考模型。
传统的开放式系统互连参考模型,是一种通信协议的七层抽象参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。
而TCP/IP通讯协议采用了四层结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这四层分别为:
- 应用层:应用程序间沟通的层,如简单电子邮件传输协议(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。
- 传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据包协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。
- 网络层:负责提供基本的数据包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。
- 接口层:对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。
补充
TCP
- TCP 提供可靠的,面向连接的服务。在传送数据之前必须先建立连接,数据传送结束后要释放连接。
- TCP 不提供广播或多播服务。
- TCP 一般用于文件传输、发送和接收邮件、远程登录等场景。
TCP 协议如何保证可靠传输
- 三次握手四次挥手
- 数据分块,给每个包编号
- 校验和: TCP 将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP 将丢弃这个报文段和不确认收到此报文段
- TCP 的接收端会丢弃重复的数据。
- 流量控制: TCP 连接的每一方都有固定大小的缓冲空间,TCP的接收端只允许发送端发送接收端缓冲区能接纳的数据。当接收方来不及处理发送方的数据,能提示发送方降低发送的速率,防止包丢失。TCP 使用的流量控制协议是可变大小的滑动窗口协议。 (TCP 利用滑动窗口实现流量控制)
- 拥塞控制: 当网络拥塞时,减少数据的发送。
- ARQ协议: 也是为了实现可靠传输的,它的基本原理就是每发完一个分组就停止发送,等待对方确认。在收到确认后再发下一个分组。
- 超时重传: 当 TCP 发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。
三次握手
- 传递数据之前,会有三次握手来建立连接
确认自己与对方的发送与接收是正常的
第一次握手:Client 什么都不能确认;Server 确认了对方发送正常,自己接收正常
第二次握手:Client 确认了:自己发送、接收正常,对方发送、接收正常;Server 确认了:对方发送正常,自己接收正常
第三次握手:Client 确认了:自己发送、接收正常,对方发送、接收正常;Server 确认了:自己发送、接收正常,对方发送、接收正常
所以三次握手就能确认双发收发功能都正常,缺一不可。
第2次握手传回了ACK,为什么还要传回SYN?
接收端传回发送端所发送的ACK是为了告诉客户端,我接收到的信息确实就是你所发送的信号了,这表明从客户端到服务端的通信是正常的。而回传SYN则是为了建立并确认从服务端到客户端的通信。”
四次挥手
断开一个 TCP 连接则需要“四次挥手”:
- 客户端-发送一个 FIN,用来关闭客户端到服务器的数据传送
- 服务器-收到这个 FIN,它发回一 个 ACK,确认序号为收到的序号加1 。和 SYN 一样,一个 FIN 将占用一个序号
- 服务器-关闭与客户端的连接,发送一个FIN给客户端
- 客户端-发回 ACK 报文确认,并将确认序号设置为收到序号加1
举个例子:A 和 B 打电话,通话即将结束后,A 说“我没啥要说的了”,B回答“我知道了”,但是 B 可能还会有要说的话,A 不能要求 B 跟着自己的节奏结束通话,于是 B 可能又巴拉巴拉说了一通,最后 B 说“我说完了”,A 回答“知道了”,这样通话才算结束。
在浏览器中输入url地址 ->> 显示主页的过程
- 准备:DHCP、UDP、IP、以太网
- 本地客户端DHCP请求报文->UDP请求报文->IP数据报
- 放置以太网帧,广播交换机连接的设备
- 交换机 所以出端口 广播
- 路由器接收,载荷被分解 DHCP服务器获得请求报文
- DHCP服务器生成 IP,DNS服务器IP,默认网关路由器IP,子网掩码 DHCP ACK报文段
- 发送给交换机,交换机转发
- 抽取 DHCP客户端记录 IP,DNS的IP,默认网关的IP
- 仍在准备:DNS ARP
- DNS查询报文->UDP请求报文->IP数据报
- 放入以太网帧,为获得网关路由器MAC地址,ARP协议
- ARP查询报文,放入以太网帧,广播
- 网关路由器接收,将ARP回答放入以太网帧,向交换机发送
- 收到ARP回答报文,抽取网关路由MAC地址
- 现在能使DNS查询的以太网帧寻址到网关路由器的MAC地址
- 仍在准备:域内路由选择到DNS服务器
- 网关路由器查找给数据报的目的地址,根据转发表,决定给数据报的下一跳路由器
- 转发表根据域内协议(RIP,OSPF)和域间协议BGP
- 到DNS服务器,查找来自权威DNS服务器的 DNS源记录,形成DNS回答报文
- 从DNS报文抽取访问页面IP
- Web客户 - 服务器交互:TCP和HTTP
- TCP报文段->目的IP地址的IP数据报
数据报->MAC地址为网关路由器的帧
向交换机发送- 到达目的IP 抽取TCP SYN,生成连接套接字,产生TCP SYNACK报文段
- 浏览器生成包含URL的HTTP GET报文,写入套接字,GET报文成为一个TCP报文段的载荷
- HTTP 服务器 从 TCP套接字 读取HTTP GET报文,生成HTTP响应报文