面试常见问题之四

计算机网络(谢希仁)

 

物理层:作用:尽可能屏蔽物理设备与通信手段的差异,使上层的数据链路层只需考虑如何实现本层服务。

数据链路层:基本单位:MAC帧,使用MAC地址;数据链路层在实际中使用的协议:点对点协议PPP协议
数据链路层作用:1、把网络层发下来的IP包封装成帧;2、从物理层接收帧,如果校对没错,则提取IP包传给上层网络层。
三个基本问题:1、帧定界-使用帧首部尾部判断帧范围;2、透明传输-可传输任意比特组合;3、差错检测-如检测到接收的帧有差错可做进一步处理。

数据链路层在实际中使用的协议:点对点协议PPP协议。

网际层:实际使用IP协议完成网际层功能。基本单位IP数据包,使用IP地址
路由器作用:如果目标主机在本网络中,则不经路由直接传输;如不在,则把数据传给本网络中的某个路由器,由路由器中的转发表决定传给哪个下一级路由,直到传到目标主机所在网络的路由,由该路由把数据传给目标主机。
路由器、网际层主要工作:转发分组
转发:根据路由转发表把数据从某端口发出

子网掩码:原网络号加向主机号借用的子网号对应的位为1,其余为0.如不分子网则用默认子网号,1的长度对应该类地址的网络号长度。计算网络号用IP地址与子网掩码求与。

ICMP网际控制报文协议:分为查询报文和差错报文,提高IP数据报交付的成功率(ping应用了查询报文)

IP地址由网络号+主机号组成,一共32位4字节,分为3类:A类主机号有3字节(最大,0开头,共2^7-2个,每个可有2^24-2个主机),B类2字节(10开头),C类1字节(最小,110开头,共2^21-1个,每个可有2^8-2个主机)

ARP(address resolution protocol)协议:IP地址->MAC地址            RARP:MAC地址->IP地址

从主机号借用若干位数作为子网号,实现子网划分(网络号:子网号:主机号)。子网只是对于网络内部而言,网络外部看不到子网的存在。

传输层:他为应用层提供服务,是面向通信部分的最高层,是面向用户功能的最底层。使用协议:TCP、UDP协议

 网际层只负责把数据从一个主机发到另一主机,但真正的通信是主机的进程与另一主机的进程通信(使用端口号查找目标进程)。因此传输层的重要作用是:复用与分用。

此外,运输层还需要对收到的报文进行差错检测

用户数据报协议UDP
特点:1、无连接 2、不可靠传输 3、面向报文-一次发送一个完整报文(TCP不是)
其他:没有阻塞控制-可保持实时发送,支持一对多、多对一,开销小

UDP只在应用层数据前加上UDP部首便形成UDP数据报。部首为8字节4部分,分别是1、源端口 2、目标端口 3、UDP报长度(最小8无数据) 4、检验和(数据和取反,接收方把数据和与检验和相加得全1则无差错)

传输控制协议TCP:
特点:1、面向连接 2、一对一传输 3、可靠传输 4、全双工通信(双方随时可发送) 5、面向字节流(TCP把传入传出数据都看成字节序列,不管结构)

TCP的连接:
连接端点:套接字socket:IP地址拼接上端口号即为SOCKET

TCP可靠传输原理:(A发送方、B接收方)
1、停止等待协议:A发出m1,B收到后发送确认。A开始发送m2;若B收m1时因检测差错而丢弃,并无发送确认,A超过等待时间后重新发送m1(超时重传).当B的确认丢失了后,A会重传m1,B再次接收后应丢弃m1并再次发送确认。
使用滑动窗口协议提高信道利用率:以N个数据报为窗口连续发送,收到第一个确认后串口可向前移动1.如某个确认丢失了,则窗口后移重新发送。

TCP流量控制:确认的时候返回一个窗口值,告诉发送方还能接受多少字节数据。
TCP拥塞控制
1、慢开始:B给A发送阻塞窗口大小,A的发送窗口等于阻塞窗口,当网络不阻塞时(路由器没有丢弃数据)阻塞窗口可以逐渐增大,阻塞时可逐渐减小。开始的时候先用一个小的阻塞窗口,一面造成网络拥挤,此为慢开始。
2、拥塞避免:当遇到拥塞时,把阻塞窗口缩小为原来的一半。
3、快重传:当收到失序报文时,给最后一个正确报文重复确认,以此方式告诉A传输出错。当A连续收到3个重复确认时,即可马上重传重复确认的后一个数据报,不必等超时。
4、快恢复:当收到快重传的3个重复确认后,阻塞窗口减半后不执行慢开始,而是逐步增大发送窗口。

TCP运输连接管理:
建立连接三次握手:1、A向B发送请求报文,部首SYN=1,选择一个初始序号seq=x。2、B收到请求后如接受,SYN与ACK都置1,设置确认号ack=x+1,选择自己的初始序号seq=y。3、A收到B的确认以后,把ACK置1,确认号ack=y+1,自己序号seq=x+1,此时A建立连接,当B收到A的再确认后,B建立连接。

三次握手作用:当A发出请求后因为延迟,超时后没收到B的第一次确认。因此A再发送一次,这次与B成功建立了连接,传输完成后释放了连接。但第一次发送的请求此时才到达B,如果B不要求A的第二次请求确认(即只A请求B确认的两次握手),则会再次建立连接,浪费网络资源。三次握手避免了这样的情况。

释放连接四次握手:

应用层
使用UDP协议传输的:
域名系统DNS:从网址到IP地址的转换
简单文件传输协议TFTP

使用TCP协议传输的:
FTP文件传输协议
远程终端协议TELNET:远程访问
超文本传输协议HTTP:访问网页(默认端口80)
简单邮件传输协议SMTP

原文地址:https://www.cnblogs.com/dmlove/p/3652715.html