计算机网络总结

7 minute read

前端面试题总结

前端面试题总结-01

常见代码题

概述

首先必须要了解的是计算机网络的分层结构,ISO/OSI七层模型如下

  • 物理层:物理层为第一层,主要是在物理媒介早上透明的传输原始比特流。
  • 数据链路层:提供相邻结点之间的通信
  • 网络层:将传输层传下来的报文段封装成分组,以及提供路由选择、拥塞控制等功能;常见的协议有IP、ICMP、ARP
  • 传输层:提供端到端(或进程到进程)之间的可靠传输(默认可靠,因为其中的例如UDP是不可靠的协议,取决于用户的选择);常见的协议有TCP、UDP
  • 会话层、表示层、应用层:主要是应用层,应用层的功能是提供系统与用户的接口(用户与网络的界面),其中应用层为最上层,数据的流向也是从应用层自上而下的。常见的协议有FTP、HTTP、SMTP、POP3。

以下分为物理层、数据链路层、网络层、传输层、应用层讲解;基本面试会考的都集中在网络层传输层应用层,所以可以直接调到相应位置。

物理层

数据链路层

网络层

网络层的重点是IP和子网相关。

网络层三个功能

  • 异构网络互联,由于路由器存在与网络层,所以当把网络层路由器作为中继设备时,可以将这个网络称之为互联网,因为路由器可以连接两个不同网络,即使两个网络是异构的。
  • 路由与转发,路由器的主要功能是路由选择与分组转发。其过程为IP数据报根据路由表中给出的下一条路由器的IP地址,传送到指定地址,再根据新的路由器中的路由表进行下一条,知道到达目的地
  • 拥塞控制,如同交通网络一样,当在一个子网或多个子网中出现太多分组时,网络性能就会下降,就会出现拥塞;其中拥塞控制分为两种——开环控制(事先就设计各种解决拥塞的措施)、闭环控制(事先不考虑,而根据检测到的情况具体问题具体解决)。

    IP数据报

    IP数据包分为首部与数据部分

  • 首部,首部大小为60B,其中存储相关的版本、标识、分片信息等
  • 数据部分,存储传输层中的各种数据报如TCP、UDP

IPv4地址的分类主要是A、B、C类地址,其主要的区分便是前面网络号的位数分别为8位、16位、24位,所以

  • A类地址的范围为1~126
  • B类地址(前两位规定为10)的范围为128.1~191.255
  • C类地址(前三位规定为110)的范围为192.0.1~223.255.255 其中剔除了网络号为全0——和全1的情况。

除了三类地址,还可以继续分类出六种特殊地址

特殊地址 网络号 主机号 源地址或目的地址
网络地址 特定的 全0 都不是
直接广播地址 特定的 全1 目的地址
受限广播地址 全1 全1 目的地址
这个网络上的这个主机 全0 全0 源地址或默认目的地址
这个网络上的特定主机 全0 特定的 目的地址
环回地址 127 不全0或全1 源地址或目的地址

还有一个重要的技术是NAT,只需要理解的是NAT就是将专用网内部使用的本地IP地址转化为有效的外部全球IP地址,也就意味着,IP地址在传输过程中,无论源地址还是目的地址都是不变的,只有遇到NAT才会改变,其中源地址改变为NAT表中对应的地址;相应的MAC地址在传输过程中是改变的

IPv6

IPv6主要的是和IPv4的区别:

  • IPv6地址从32位增大到了128位,意味着更大的地址空间
  • 支持即插即用
  • 不接受分片,不合适直接丢弃

。。。

移动IP

对于移动结点,由于互联网接入点不断发生变化,所以其IP地址在两方面发生分离,一方面是移动结点需要一种机制来标识自己,另一方面需要这种标识不会被用来路由。

  • 实现移动IP需要的功能实体
    1. 移动结点,具有永久IP地址的移动结点
    2. 本地代理,有一个端口与移动结点本地链路相连的路由器,他根据移动用户的转交地址,采用隧道技术转交移动结点的数据报。
    3. 外部代理,移动结点的漫游链路上的路由器,它通知本地用户代理自己的转交地址,是移动结点漫游链路的默认路由器。
  • 实现移动IP需要哪些技术
    1. 代理搜索,知道自己是否在漫游
    2. 申请转交地址
    3. 登录,移动结点到达外网时进行的一系列认证、注册、建立隧道的过程
    4. 隧道,本地代理与外部代理之间临时建立的双向数据通道

传输层

UDP

UDP与TCP的区别,首先了了解到UDP是无连接的,UDP只是在IP数据报的基础之上

TCP连接管理(三次握手)

  1. 客户机A的TCP向服务器B发出连接请求报文段,其首部中的同部位SYN=1,选择序号seq=x,表明传送数据时的第一个数据字节序号为x。
  2. 服务器收到数据报,并从SYN位为1知道这是一个建立连接的请求,如果同意,则返回SYN=1(前两次都要携带SYN,并设置为1,说明不会携带数据,只是简单的建立连接),ACK=1,ack=x+1,然后自己的选择序号seq=y。(ack可以理解为acknowledge确认字符)
  3. A收到后向B发出确认,ACK=1,ack=y+1,seq=x+1,A的TCP通知上层应用进程连接已建立,B收到主机A的确认后,也通知上层应用进程,此时TCP连接已经建立

    采用三次握手是为了避免如果是两次握手的话,如果A给B发送了请求分组,B收到后发送应答分组,这时B便默认连接已经建立了,而如果这时候B发送的分组丢失的话,A则会一直等待,发生死锁

    TCP/IP

    在 TCP/IP 中包含一系列用于处理数据通信的协议:

  • TCP (传输控制协议) - 应用程序之间通信
  • UDP (用户数据报协议) - 应用程序之间的简单通信
  • IP (网际协议) - 计算机之间的通信
  • ICMP (因特网消息控制协议) - 针对错误和状态
  • DHCP (动态主机配置协议) - 针对动态寻址

TCP/IP 意味着 TCP 和 IP 在一起协同工作;TCP 负责应用软件(比如您的浏览器)和网络软件之间的通信,IP 负责计算机之间的通信;TCP 负责将数据分割并装入 IP 包,然后在它们到达的时候重新组合它们,IP 负责将包发送至接受者。

注意到TCP是面向连接的,而IP是无连接的,所以协作下来,TCP需保证数据的可靠性,所以有了三次握手等一些可靠措施

应用层

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.