第一章
协议与服务有何区别,联系?
- 协议是水平的,是控制对等实体之间通信的规则。服务是垂直的,服务是由下层向上层提供的服务。
- 在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务;要实现本层协议,还要使用上一层提供的服务
第二章、数据链路层
数据链路层三个问题
- 封装成帧
- 透明传输
- 差错控制:若收到的帧有差错,则丢弃
透明传输
- 由于帧开始和结束的标记使用专门的控制字符(帧定界符),所以数据中任何8bit的组合不允许与帧定界符的bit码一样,否则会出现错误。
- 采用字节填充或字符填充转义字符。
CSMA/CD 载波监听多点接入/碰撞检测
- 先监听后发送,发送后继续监听一个争用期
- 若有冲突,停止发送,强化冲突,让网络中其他节点知道冲突
- 根据二进制指数退避算法,计算一个退避时间后发送
二进制指数退避算法
- 确定争用期,一般为两倍端到端的传播时延2t(争用期)
- 定义k,k为重传次数,但不超过10,k=min[重传次数,10]
- 确定退避时间,从[0,1…2的k方 -1]中取随机整数r,退避时间为r倍的争用期
- 重传次数为16时,抛弃该帧像高层汇报
第三章、网络层
网络层的两个问题
- 路由器怎样知道应该在MAC数据帧首部填入什么样的硬件地址? 地址解析协议ARP完成
- 路由器中的路由表是怎样得出的? 由路由算法(网关协议):RIP,OSPF,BGP
静态路由和动态路由
- 静态路由人工配置每一条路由,简单和开销较小,但不能及时适应网络状态变化。
- 动态路由是由路由选择协议动态构建的,能较好地适应网络状态变化。实现较为复杂,开销比较大。
地址解析协议ARP的作用
解决同一个局域网上主机或路由器IP地址向硬件地址映射的问题
ARP工作原理
需要发送IP数据报时,在ARP高速缓存中查找有无目的IP的硬件地址映射,若有则写入MAC帧。
若无则
- ARP进程在本局域网上广播发送一个ARP请求分组(我的ip是XXX,我的MAC是XXX,我想知道IP地址为123的MAC地址)
- 局域网所有主机收到后,检查与自己的IP地址是否一致,不一致则不理睬,若一致则根据收到的内容单播发送ARP响应(我的IP地址是123,我的硬件地址是abc)
- 主机A收到响应后,将地址映射写入ARP高速缓存
有硬件地址,为什么还要使用IP地址?
世界上存在各式各样的网络,他们的硬件地址各不相同。若要使这些网络能够互相通信需要进行复杂的地址转换工作。而由用户或主机完成这些工作几乎不可能,所以需要进行IP编址,而ARP协议自动帮我们完成IP地址向硬件地址的转换工作(透明的)。
IP地址与硬件地址的区别?
- 物理地址是数据链路层和物理层使用的地址,IP地址是网络层及以上层使用的地址,是逻辑地址。
- 使用IP地址的IP数据报一旦交给数据链路层,就被封装成MAC帧,MAC帧传送时使用的都是硬件地址。
RIP(基于距离向量的动态路由协议)工作原理
“距离”称为跳数,RIP规定一条路径最多包含15个路由器,距离为16则不可达,所以RIP只适用于小型互联网
- 和谁交换?仅与相邻的路由器交换信息
- 交换什么信息?交换本路由器知道的全部信息(路由表)
- 什么时候交换?固定时间间隔交换,每隔30秒
RIP距离向量算法(计算,略)
OSPF开发最短路径优先 三个要点
- 向自治系统中的所有路由发送信息,使用洪泛法。
- 发送与本路由器相邻所有路由器的链路状态(费用,距离,时延,带宽)
- 只有链路状态发生变化时,才用洪泛向所有路由发送信息。
OSPF(开发最短路径优先)的工作原理?
- 各个路由之间频繁交换链路状态信息,所有路由器都能建立一个链路状态数据库,也就是全网拓扑结构图,这个图全网一致;
- 每个路由器根据全网拓扑结构图,使用算法(如Dijkstra)计算到各目的网络的最优路径,构造自己的路由表
路由器与交换机区别?
- 路由器实现网络级互联,交换机工作在数据链路层用于连接局域网。
- 交换机扩展的局域网中不能包含环路,必须采用生成树算法避免。路由器构成的互联网中可以存在回路。
第四章、传输层
TCP和UDP的区别?
- TCP协议是有连接的,有连接的意思是开始传输实际数据之前TCP的客户端和服务器端必须通过三次握手建立连接,会话结束之后也要结束连接。而UDP是无连接的
- TCP协议保证数据按序发送,按序到达,提供超时重传来保证可靠性,但是UDP不保证按序到达,甚至不保证到达,只是努力交付,即便是按序发送的序列,也不保证按序送到。
- TCP协议所需资源多,TCP首部需20个字节(不算可选项),UDP首部字段只需8个字节。
- TCP有流量控制和拥塞控制,UDP没有,网络拥堵不会影响发送端的发送速率
- TCP是一对一的连接,而UDP则可以支持一对一,多对多,一对多的通信。
- TCP面向的是字节流的服务,UDP面向的是报文的服务。
UDP首部格式
UDP首部只有8个字节
- 源端口(2字节)
- 目的端口(2字节)
- 长度(2字节):UDP用户数据报的长度
- 检验和(2字节)
什么是可靠传输?
可靠传输保证接收方进程从缓存区读出的字节流与发送方发出的字节流完全一致
简述TCP可靠传输是如何实现的?
- TCP使用校验,序号,确认,重传等机制实现可靠传输
- TCP给每个字节一个序号,序号保证了接收端的按序接收;接收端实体对已成功收到的序号发送相应的确认;如果发送方在规定往返时延内为收到确认,则重传数据。
流量控制
- 让发送方的发送速率不要太快,让接收方来得及接收。
- 发送方的发送窗口不能超过接收方的接收窗口的大小。
拥塞控制四种方法
慢开始:由小到大逐渐增大发送窗口(拥塞窗口),翻倍增大。
拥塞避免:cwnd(拥塞窗口)等于ssthresh(门限值)时,开始加法增大。
快重传:发送方一连收到3个重复确认,应当立即进行重传。
快恢复:cwnd=ssthresh=cwnd/2,乘法减小。
流量控制和拥塞控制的区别
拥塞控制是防止过多的数据注入到网络中,使网络中的路由器不会过载。拥塞控制是一个全局过程,涉及所有主机、路由器以及其他因素。
流量控制是点对点通信量的控制,是端到端的问题。抑制发送端的发送速率,以便使接收端来得及接收。
简述TCP三次握手的过程?
- A客户机向B服务器发送连接请求报文段,同步位SYN=1,初始序号seq=x。
- B收到请求报文,若同意连接则发送确认报文,SYN=1,ACK=1,确认号ack=x+1,初始序号seq=y
- A收到B的确认,还要向服务器B给出确认报文,ACK=1,ack=y+1,自己的序号seq=x+1
第五章、应用层
简述DNS(域名解析系统)的工作过程?
- 主机向本地域名服务器查询一般是递归查询。如果本地域名服务器不知道对应IP地址,本地域名服务器就以DNS客户的身份向其他根域名服务器发出查询请求报文(替该主机查询),而不是让主机自己查询。
- 本地域名服务器向根域名服务器的查询一般采用迭代查询。当根域名服务器收到请求报文时,要么给出IP地址;要么告诉本地域名服务器顶级域名服务器的IP,让本地域名服务器自己向顶级域名服务器访问(而不是代替本地域名服务器查询)。同样,顶级域名服务器收到本地服务器的请求后,要么给出对应网址的IP地址,要么告诉本地域名服务器权限域名服务器的IP,最后本地域名服务器访问权限域名服务器,本地域名服务器最后得到了要解析的IP地址后,把结果返回给发起查询的主机。