八股文·计算机网络

📅 2026/7/21 6:04:01
八股文·计算机网络
文章目录网络的模型OSI模型七层模型应用层向用户提供应用程序服务表示层对格式进行转换例如加密/解密压缩和解压缩会话层建立和管理通信双方的会话例如腾讯会议双方的通信。传输层提供进程为单位的端到端的传输服务。网际层不同网络之间的通信服务IP协议路由和转发。链路层同一局域网下的通信服务例如成帧差错检验信道冲突和无线网络。物理层二进制比特流的传输服务。TCP/IP模型只有四层物理层*链路类型全双工半双工单工单工谁能发送、谁能接收是固定的数据流只能沿一个固定方向传输应用家庭电话。半双工谁发送、谁接收可以变化但必须轮流数据流可以沿两个相反方向传输但同一时间只能传输一个方向的数据流应用无限局域网全双工谁发送、谁接收可以变化并且可以同时进行数据流可以沿两个相反方向传输同一时间可以传输相反方向的数据流应用TCP双向连接。信道传输速率奈奎斯特定律香农定律数字调制Modulation将模拟信号转换数字信号基带传输曼切斯特编码将时钟信号叠加到编码中翻转-NRZ编码0-1编码编码跳转的信号仍然无法解决静默问题宽带传输多路复用技术码分复用技术共享信道支持同时发送消息链路层成帧差错检验信道冲突和无限网络成帧区分不同帧差错检验冗余位技术---汉明码奇偶校验循环冗余码奇偶检验只能检验奇数位。汉明距离定义为从一个码字转换为另一个有效码字的最短距离检验和修复的最短位数循环冗余码使用多项式除法决定冗余位流量控制滑动窗口协议重要的点捎带确认在传输数据时顺便传输ACK确认不单独发送一个ACK确认报文累计确认ACKx表示对于前x个报文的累计确认窗口大小W s W R ≤ 2 m W_sW_R\leq2^{m}Ws​WR​≤2m,m mm表示用于编码报文的位数防止窗口移动相同编号报文带来的歧义问题。停止-等待 Stop-and-wait接受和发送窗口都为1退回N步 Go-back-N接受窗口为1发送窗口为N选择性重传 Selective Repeat接受和发送窗口数大于等于1链路利用率的计算方式传输时延和传播时延MAC层媒体访问控制数据链路层的一个子层信道划分静态划分和动态划分静态划分时分/频分/码分复用信道动态划分CSMA/CD协议CSMA/CD协议载波监听如果有冲突不发送冲突避免发送后还需要检测冲突如果有冲突随机等待并且重发冲突检测时间和如何避免冲突检测不及时规定数据大小约束帧的传输时间信道上的往返传播时延以太网802.3以太网帧的结构MTU单个网络中最大传输单元表示为以太网帧的负载透明传输每一个路由器负责包裹的拆分和整合非透明传输每一个路由器只负责包裹的拆分整合工作在接受方以太网的传输速率标准以太网10Mbps快速100Mbps等WIFI802.11连接过程与基站连接分为积极连接(主动探索基站)消极连接(基站主动介绍)*隐藏终端和暴露终端问题网络层IP协议互联网协议IPv4地址32位0.0.0.0-255.255.255.2558bit/1字节为一组分别私有和公开IP地址。IP数据报封装IP寻址网络id主机id---分类寻址子网寻址CIDR分类寻址网络id和主机id的地址范围进行分类子网寻址确定网络id子网id主机id固定/可变子网划分默认网关和子网掩码寻址方式CIDR无分类域间路由只区分前缀id和主机id路由聚合确定共同前缀和掩码和最长前缀匹配确定网络路由聚合最长前缀匹配进行子网掩码匹配时取最长匹配NAT网络地址翻译私有地址和公开地址互联网控制协议ICMP互联网控制消息协议用于错误报告和回复请求(ping命令)ARPMAC地址寻求协议用于查询某个IP地址对应的MAC地址如果不属于一个局域网则改为发送默认网关的ARP请求。DHCP动态主机控制协议为每一个主机分配IP地址子网掩码和默认网关等网络必备信息。本地DHCP服务器和DHCP缓存路由算法路由和转发的含义泛洪与广播类似对于不同局域网的概念保证不会出现环距离矢量算法分布式的Bellman-Fold算法代表路由信息算法缺点坏消息传递慢被相邻节点误导链路状态算法全局式的Dijsktra算法代表开放最短路径算法缺点维护全局拓扑结构的代价昂贵边界路由算法自治系统内层边界路由算法外层边界路由算法自治系统不同路由器所连接的一个网络整体内层边界路由算法每一个网络整体所使用的路由算法例如OBPF和RIP算法外层边界路由算法边界路由器不同网络整体所使用的路由算法公平性且非最优网际层中的多播和广播(泛洪)传输层提供进程级端到端的服务网络套接字-Socket应用层与传输层通信的一个抽象接口包括IP地址(主机)端口号(进程)端口号知名端口号TCP面向连接基于字节流的服务数据格式TCP Segment-TCP段TCP Header结构端口号SYN/FIN/ACK表示序列号字段序列号-Sequence Number负载中第一个字节的序号例如Seq100表示负载中下一次传递的第一个字节序号为100确认码-ACK Number期待接受的下一个字节的序号例如序号101表示预期接受导的下一个字节序号为101TCP连接建立三次握手SYN占据一个字节为什么不能改为二次握手滞留的TCP连接建立请求TCP连接取消四次挥手FIN占据一个字节为什么不能改为四次挥手服务器可能还有数据需要传输给客户TCP流量控制流量控制的动机发送方和接受方的发送/接受速率不匹配滑动窗口协议序列号剩余接受窗口大小TCP超时时间管理确认合适的超时时间SRTTRTO等TCP拥塞控制快启动拥塞避免快重传快回复最大段长-MSS拥塞控制中数据传输的基本单位MTU和MSS帧的负载的长度IP包裹的总长度IP头TCP段IP头TCP头TCP段快启动小于拥塞阈值时每返回一个MSS的ACK窗口大小1乘法增加拥塞避免大于等于拥塞阈值时每一个RTT窗口大小1线性增加快回复遇到连续三个重复的ACK时窗口和阈值缩小为一半快重传遇到连续三个重复的ACK时直接重传丢失的TCP段超时处理阈值变为一半窗口变为1TCP Reno和Tahoe前者包含快速重传和回复的逻辑QUIC快速UDP网络连接UDP无连接不可靠的连接服务UDP数据报的格式应用层网络应用架构/模型-Application ArchitectureCS模式和P2P模式CS模式架构简单方便管理随时可提供服务不易扩展服务器压力大P2P模式架构复杂不方便管理消息传递复杂容易扩展分布式扩展性强域名系统-DNS网址-IP地址根服务器提供顶级域名服务器的IP地址顶级域名服务器包含edu/com等顶级域名的服务器权威服务器包含所需域名的名称服务器查询时直接返回IP地址DNS缓存和本地DNS服务器包含一些常用域名缓存的本地服务器迭代查询和递归查询URL统一资源定位符HTTP/HTTPsCookie和SessionHTML邮件系统用户代理和邮件服务器发送协议简单邮件传输协议-SMTP只能发送文本类数据MIME可以发送多媒体数据接受协议POP3协议IMAP-允许用户以文件夹形式管理邮件网络设备集线器存在冲突信道共享需要开启CSMA/CD协议交换器和网桥不存在冲突信道独立分割冲突域直接转发 / 存储转发机制为什么路由器需要存储转发根据IP地址查找路由表(非根本)检验数据修改条数,等路由器分割不同网络/广播域路由功能交换控制信息更新路由表转发功能根据路由表路由算法决定下一跳网络的模型OSI模型七层模型应用层向用户提供应用程序服务表示层对格式进行转换例如加密/解密压缩和解压缩会话层建立和管理通信双方的会话例如腾讯会议双方的通信。传输层提供进程为单位的端到端的传输服务。网际层不同网络之间的通信服务IP协议路由和转发。链路层同一局域网下的通信服务例如成帧差错检验信道冲突和无线网络。物理层二进制比特流的传输服务。TCP/IP模型只有四层无链路层物理层*链路类型全双工半双工单工单工谁能发送、谁能接收是固定的数据流只能沿一个固定方向传输应用家庭电话。半双工谁发送、谁接收可以变化但必须轮流数据流可以沿两个相反方向传输但同一时间只能传输一个方向的数据流应用无限局域网全双工谁发送、谁接收可以变化并且可以同时进行数据流可以沿两个相反方向传输同一时间可以传输相反方向的数据流应用TCP双向连接。信道传输速率奈奎斯特定律在理想条件下带宽受限无噪声指出码元传输速率是有上限的超过此上限会出现严重的码间串扰香农定律指出了在有噪声的条件下信道的极限传输速率和信噪比和带宽有关系如果两者都达到了极限想要提高速率只能通过让每个码元携带更多的比特信息换一种编码方式。数字调制Modulation将模拟信号转换数字信号基带传输NRZ编码0-1编码无法识别长期的静默0/1曼切斯特编码将时钟信号叠加到编码中翻转-NRZ编码0-1编码编码跳转的信号仍然无法解决静默问题4B/5B编码使用5B信息编码4B信息存在浪费宽带传输多路复用技术时分复用频分复用波长复用码分复用技术共享信道支持同时发送消息链路层成帧差错检验信道冲突和无限网络成帧区分不同帧字节技术法标志位法字节填充法4B/5B编码中增加新的标志差错检验冗余位技术—汉明码奇偶校验循环冗余码奇偶检验只能检验奇数位。汉明距离定义为从一个码字转换为另一个有效码字的最短距离检验和修复的最短位数d位汉明码检验不超过d位的错误2d1位汉明码修复小于等于d位的错误。理解不仅要检测出来并且确定唯一最短路径(到两个码字的距离有区别)。循环冗余码使用多项式除法决定冗余位给定生成多项式G ( x ) G(x)G(x)取生成多项式最高位的系数例如4扩充原始码字的位数进行多项式的除法得到最后余数余数的位数不超过生成多项式的最高系数1(注意0位)使用该结果填充冗余位。如果没有差错则接受的数据应该能整除生成多项式否则则说明出现差错。流量控制滑动窗口协议重要的点捎带确认在传输数据时顺便传输ACK确认不单独发送一个ACK确认报文累计确认ACKx表示对于前x个报文的累计确认窗口大小W s W R ≤ 2 m W_sW_R\leq2^{m}Ws​WR​≤2m,m mm表示用于编码报文的位数防止窗口移动相同编号报文带来的歧义问题。假设m2那么窗口的编号为0,1,2和3.假设发送方窗口为1接受为4414出现冲突的问题发送方发送1但是出现拥塞问题未及时传递。此时重新发送1正常接受然后接连发送234和1。此时滞留的1号报文和新发送的1号报文都传递来了就会出现二义性的问题。注意此时接受方窗口已经移到了新的1号了。停止-等待 Stop-and-wait接受和发送窗口都为1退回N步 Go-back-N接受窗口为1发送窗口为N接受方返回的是一个累计的确认选择性重传 Selective Repeat接受和发送窗口数大于等于1只是选择性的重传特定的报文(packet)链路利用率的计算方式传输时延和传播时延传输时延数据从网卡推送到物理链路/从链路下载到网卡的时间例如以太网为10Mbps传播时延二进制数据流从物理链路一段传播到另一端的时间。MAC层媒体访问控制数据链路层的一个子层信道划分静态划分和动态划分静态划分时分/频分/码分复用信道动态划分CSMA/CD协议CSMA/CD协议载波监听如果有冲突不发送冲突避免发送后还需要检测冲突如果有冲突随机等待并且重发冲突检测时间和如何避免冲突检测不及时规定数据大小约束帧的传输时间信道上的往返传播时延冲突检测时间往返传播时间RTT以太网802.3以太网帧的结构长度为1536个字节左右MTU单个网络中最大传输单元表示为以太网帧的负载透明传输每一个路由器负责包裹的拆分和整合非透明传输每一个路由器只负责包裹的拆分整合工作在接受方以太网的传输速率标准以太网10Mbps快速100Mbps等WIFI802.11连接过程与基站连接分为积极连接(主动探索基站)消极连接(基站主动介绍)*隐藏终端和暴露终端问题隐藏终端传输方向相反未发现覆盖的情况以为信道空闲同时发送产生冲突。暴露终端传输方向相反但并未覆盖。误以为产生冲突放弃发送。网络层IP协议互联网协议IP协议Internet Protocol网际协议是TCP/IP体系中的网络层协议主要负责IP地址分配与寻址路由选择算法IP数据报封装数据分片与重组无连接的数据报传输TTL控制防止循环标识上层协议TCP/UDP等IPv4地址32位0.0.0.0-255.255.255.2558bit/1字节为一组分别私有和公开IP地址。IP数据报封装DF不允许分片MF该分片是否为最后一个分片也就是还有没有其他分片Offset该分片所处偏差(前n-1个分片的累计)/8。注意不是最后真实的偏移量因为13位16位所以一个单位代表8bit还需要单独乘以8。IP寻址网络id主机id—分类寻址子网寻址CIDR分类寻址网络id和主机id的地址范围进行分类前几位是固定避免出现相同前缀的网络分类标准是网络id的范围增大但主机id的范围缩小。子网寻址确定网络id子网id主机id固定/可变子网划分默认网关和子网掩码出了网络id后还需要进一步划分不同的子网id最后才是主机id固定子网子网的大小是完全一致的可变子网根据所需要的主机数(例如8-3位16-4位)定义子网的大小。寻址方式目标地址子网掩码和当前网络子网掩码比较目标地址和当前网络是否属于同一个局域网下。如果不属于则发送给默认网关(路由器)由默认网关决定下一跳。CIDR无分类域间路由只区分前缀id和主机id路由聚合确定共同前缀和掩码和最长前缀匹配确定网络不区分网络子网和主机。只区分前缀id和主机id。使用206.0.68.0/22中的22标记前缀长度。路由聚合多个IP地址取共同前缀作为前缀ID。最长前缀匹配进行子网掩码匹配时取最长匹配多个IP地址和路由表项匹配时优先选择最长匹配的一项作为下一跳。NAT网络地址翻译路由器会将用户的私有地址翻译为互联网上的公开地址。私有地址和公开地址互联网控制协议ICMP互联网控制消息协议用于错误报告和回复请求(ping命令)ARPMAC地址寻求协议用于查询某个IP地址对应的MAC地址如果不属于一个局域网则改为发送默认网关的ARP请求。局域网内广播ARP请求如果局域网内有对应IP地址则该主机会回复ARP请求如果没有人回复则会发送对于默认网关的ARP请求将包裹发送至网关处理。DHCP动态主机控制协议为每一个主机分配IP地址子网掩码和默认网关等网络必备信息。本地DHCP服务器和DHCP缓存路由算法路由和转发的含义泛洪与广播类似对于不同局域网的概念保证不会出现环距离矢量算法分布式的Bellman-Fold算法代表路由信息算法每一个路由器定期向周边节点发送/接受路由表。路由表关于与其他节点的距离信息运行Bellman-Fold算法中的松弛操作决定更新到哪一个路由器的距离。缺点坏消息传递慢被相邻节点误导链路状态算法全局式的Dijsktra算法代表开放最短路径算法每一个节点将其位置的拓扑信息定期泛洪到网络上每一个节点。所有节点都会定期这么做使得任意一个节点都维护当前网络的拓扑信息。运行dijsktra算法获得最短路径。缺点维护全局拓扑结构的代价昂贵边界路由算法自治系统内层边界路由算法外层边界路由算法自治系统不同路由器所连接的一个网络整体内层边界路由算法每一个网络整体所使用的路由算法例如OBPF和RIP算法外层边界路由算法边界路由器不同网络整体所使用的路由算法公平性且非最优网际层中的多播和广播(泛洪)传输层提供进程级端到端的服务网络套接字-Socket应用层与传输层通信的一个抽象接口包括IP地址(主机)端口号(进程)端口号知名端口号TCP面向连接基于字节流的服务数据格式TCP Segment-TCP段TCP Header结构端口号SYN/FIN/ACK表示序列号字段序列号-Sequence Number负载中第一个字节的序号例如Seq100表示负载中下一次传递的第一个字节序号为100确认码-ACK Number期待接受的下一个字节的序号例如序号101表示预期接受导的下一个字节序号为101TCP连接建立三次握手SYN占据一个字节客户发送TCP建立请求SYN1服务器返回ACK1并且也请求建立TCP连接SYN1此时客户端-服务器的传输路径成立客户返回ACK1此时服务器-客户端的传输路径成立只有最后一步可以通过捎带ACK的方式实现。为什么不能改为二次握手滞留的TCP连接建立请求TCP连接取消四次挥手FIN占据一个字节客户端发起TCP连接取消请求FIN1此时服务器返回ACK1客户端-服务器的传输连接断开。但是服务器可能还有数据发送给客户因此暂不断开服务器-客户端的传输连接数据传输完毕后服务器发起TCP连接取消请求FIN1最后客户端返回ACK确认。双向的连接都断开。为什么不能改为四次挥手服务器可能还有数据需要传输给客户TCP流量控制流量控制的动机发送方和接受方的发送/接受速率不匹配滑动窗口协议序列号剩余接受窗口大小发送方正常发送数据和序列号接受方返回确认号和剩余的窗口大小(WIN2048)TCP超时时间管理确认合适的超时时间SRTTRTO等TCP拥塞控制快启动拥塞避免快重传快回复最大段长-MSS拥塞控制中数据传输的基本单位MTU和MSS帧的负载的长度IP包裹的总长度IP头TCP段IP头TCP头TCP段快启动小于拥塞阈值时每返回一个MSS的ACK窗口大小1乘法增加在拥塞窗口小于拥塞阈值时每收到一个ACK就增加窗口大小拥塞避免大于等于拥塞阈值时每一个RTT窗口大小1线性增加快回复遇到连续三个重复的ACK时窗口和阈值缩小为一半快重传遇到连续三个重复的ACK时直接重传丢失的TCP段超时处理阈值变为一半窗口变为1TCP Reno和Tahoe前者包含快速重传和回复的逻辑QUIC快速UDP网络连接UDP无连接不可靠的连接服务UDP数据报的格式应用层网络应用架构/模型-Application ArchitectureCS模式和P2P模式CS模式架构简单方便管理随时可提供服务不易扩展服务器压力大P2P模式架构复杂不方便管理消息传递复杂容易扩展分布式扩展性强域名系统-DNS网址-IP地址根服务器提供顶级域名服务器的IP地址顶级域名服务器包含edu/com等顶级域名的服务器权威服务器包含所需域名的名称服务器查询时直接返回IP地址DNS缓存和本地DNS服务器包含一些常用域名缓存的本地服务器迭代查询和递归查询URL统一资源定位符HTTP/HTTPsCookie和SessionCookie是在HTTP回应中设置的存放在用户本地。Session ID对应Cookie ID存储用户的个性化信息存放在服务器端。均是为了解决HTTP无状态这一特点。HTML邮件系统用户代理和邮件服务器发送协议简单邮件传输协议-SMTP只能发送文本类数据MIME可以发送多媒体数据接受协议POP3协议IMAP-允许用户以文件夹形式管理邮件网络设备集线器存在冲突信道共享需要开启CSMA/CD协议交换器和网桥不存在冲突信道独立分割冲突域直接转发 / 存储转发机制直接转发只读取/下载目的地址(MAC地址)然后根据MAC地址将数据转发到下一个链路存储转发将数据暂时缓存下来期间检查目的地址是否出现差错然后再进行转发。设备典型方式集线器 Hub直接转发物理层交换机 Switch主要是存储转发也可直接转发路由器 Router必须存储转发为什么路由器需要存储转发根据IP地址查找路由表(非根本)检验数据修改条数,等路由器分割不同网络/广播域路由功能交换控制信息更新路由表转发功能根据路由表路由算法决定下一跳