第五章 网络 之 计算机网络

文章目录

  • 计算机体系结构
    • 计算机网络概念、组成与功能
    • 计算机网络分层结构(各层功能)
      • ISO/OSI 7层模型(权威)
      • TCP/IP 4层模型(实用)
      • 5层模型(折中)
  • 一. 物理层
  • 二. 数据链路层
    • 基本功能
      • 封装成帧
      • 透明传输
      • 差错检测
    • 相关概念
      • 局域网
      • 以太网
      • MAC地址
      • 交换机
  • 三. 网络层
    • 异构网络互联(互联网)
    • 路由选择 & 分组转发
      • 路由表
        • 为什么不用目的主机号制作路由表 / 为什么不直接用MAC地址/寻址?
        • 内部结构 / 工作原理
      • 分组转发算法
    • IPv4 & IPv6
      • IP数据报格式
      • IP地址编址方式
        • 第一阶段 1981:分类IP地址(2级结构)
        • 第二阶段 1985:子网划分(3级结构)
        • 第三阶段 1987:CIDR(无分类 / 网络前缀)
        • 第四阶段 1994:NAT(地址转换)
    • 相关协议
      • ARP 地址解析协议(Adress Resolution Protocol)
      • DHCP 动态主机设置协议(Dynamic Host Configuration Protocol)
      • ICMP 网络控制报文协议(Internet Control Message Protocol)
      • VPN 虚拟专用网
    • 路由协议
      • 内部网关协议IGP(RIP、OSPF)
      • 外部网关协议EGP(BGP)
    • 网络层设备:路由器
  • 四. 传输层
    • 传输层寻址 && 端口
    • TCP && UDP
      • TCP/UDP 特点
      • 首部格式
      • 三次握手 & 四次挥手
      • TCP可靠传输
        • 超时重传
        • 滑动窗口
        • 流量控制
        • 拥塞控制
  • 五. 应用层
    • 网络应用模型
      • C/S(客户端/服务器)方式
      • P2P(peer to peer 对等)方式
    • 相关协议
      • DNS系统
      • FTP
      • 电子邮件(SMTP、POP3、IMAP)
      • WWW(HTTP)
      • Telent
  • 面试
    • MAC / IP地址 & 作用?
    • 描述一次网络请求的流程/浏览器访问一个url网址所经历的过程?
    • 什么是DNS?作用是什么?工作机制?

文都考研——计算机网络强化班

计算机体系结构

计算机网络体系结构:计算机网络各层次与协议的集合
(1)层次:每个层次的功能是明确的,独立的,对等的。
(2)协议:为数据交换而制定的规则,约定,标准。包含:

  • 语义:解释比特流每一部分的意义。
  • 语法:用户数据与控制信息的结构与格式,以及数据出现的顺序的意义。
  • 时序:事件实现顺序的详细说明。

计算机网络概念、组成与功能

  • 概念
    计算机网络就是利用通信设备和线路将地理位置不同、功能独立的多个计算机系统互连起来,以功能完善的网络软件(即网络通信协议、信息交换方式、网络操作系统等)实现网络中资源共享和信息传递的系统。
  • 组成
    资源子网:负责数据处理的主计算机与终端,由主机终端负责。
    通信子网:负责数据通信处理的通信处理机与通信线路,由路由器,交换机负责。

计算机网络分层结构(各层功能)

第五章 网络 之 计算机网络_第1张图片

ISO/OSI 7层模型(权威)

  • 物理层
    利用传输介质为通信的网络结点之间建立、管理和释放物理连接;实现比特流的透明传输,位数据链路层提供数据传输服务;物理层的数据传输单元是比特。
  • 数据链路层
    在物理层提供的服务基础上,数据链路层在通信实体间简历数据链路连接;传输以"帧"为单位的数据包;采用差错控制与流量控制方法,使有差错的物理线路编程无差错的数据链路。
  • 网络层
    通过路由选择算法为分组通过通信子网选择最适当的路径;为数据在结点之间传输创建逻辑链路。
  • 传输层(承上(资源子网)启下(通信子网))
    向用户提供可靠端到端(end to end)通信;处理数据包错误、数据包次序以及其他一些关键传输问题;屏蔽了下层数据通信的细节,是计算机通信体系结构中关键的一层。
  • 会话层
    建立及管理会话(数据交换)。负责维护两个结点之间的传输链接,以便确保点到点传输不终端。
  • 表示层
    用于处理在两个通信系统中交换信息的表示方式,包括数据压缩、加密以及数据描述,这使得应用程序不必关心在各台主机中数据内部格式不同的问题。
  • 应用层
    为应用程序提供了网络服务;应用层需要识别并保证通信对方的可用性,使得协同工作的应用程序之间的同步。建立传输错误纠正与保证数据完整性的控制机制。
    第五章 网络 之 计算机网络_第2张图片

TCP/IP 4层模型(实用)

TCP/IP协议独立于特定的计算机硬件与操作系统,屏蔽网络层以下的传输。拥有统一的网络地址分配方案,使整个TCP/IP设备在网络中都有唯一的地址。

  • 网络接口层:负责通过网络发送和接收IP数据报
  • 网络层:IP协议是无连接的,提供"尽力而为"服务的网络层协议
  • 传输层:在互联网中源主机与目的主机的对等实体间建立用于会话的端-端链接。包括TCP、UDP
  • 应用层:包括Telnet、FTP、SMTP、P0P3、IMAP、DNS、HTTP等
    第五章 网络 之 计算机网络_第3张图片
    第五章 网络 之 计算机网络_第4张图片

5层模型(折中)

包含:物理层、数据链路层、网络层、传输层、应用层

一. 物理层

二. 数据链路层

基本功能

封装成帧

将网络层传下来的分组添加首部和尾部,用于标记帧的开始和结束。
第五章 网络 之 计算机网络_第5张图片

透明传输

透明表示一个实际存在的事物看起来好像不存在一样。
帧使用首部和尾部进行定界,如果帧的数据部分含有和首部尾部相同的内容,那么帧的开始和结束位置就会被错误的判定。需要在数据部分出现首部尾部相同的内容前面插入转义字符。如果数据部分出现转义字符,那么就在转义字符前面再加个转义字符。在接收端进行处理之后可以还原出原始数据。这个过程透明传输的内容是转义字符,用户察觉不到转义字符的存在。
第五章 网络 之 计算机网络_第6张图片

差错检测

目前数据链路层广泛使用了循环冗余检验(CRC)来检查比特差错。

相关概念

局域网

局域网是一种典型的广播信道,主要特点是网络为一个单位所拥有,且地理范围和站点数目均有限。

广播信道:一对多通信,一个结点发送数据能够被广播信道上所有结点接收到。所有的节点都在同一个广播信道上发送数据,因此需要有专门的控制方法进行协调,避免发生冲突(冲突也叫碰撞)。主要有两种控制方法进行协调,一个是使用信道复用技术,一是使用 CSMA/CD 协议。

主要有以太网、令牌环网、FDDI 和 ATM 等局域网技术,目前以太网占领着有线局域网市场。
可以按照网络拓扑结构对局域网进行分类:
第五章 网络 之 计算机网络_第7张图片

以太网

以太网是一种星型拓扑结构局域网。
早期使用集线器进行连接,目前以太网使用交换机替代了集线器,交换机是一种链路层设备,它不会发生碰撞,能根据 MAC 地址进行存储转发。
以太网/MAC帧格式:
类型 :标记上层使用的协议;
数据 :长度在 46-1500 之间,如果太小则需要填充;
FCS :帧检验序列,使用的是 CRC 检验方法;
第五章 网络 之 计算机网络_第8张图片

MAC地址

MAC 地址又称物理/硬件地址,是链路层地址,长度为 6 字节(48 位),用于唯一标识网络适配器(网卡)。
MAC地址前三字节(高位24位)由IEEE的注册管理机构RA负责向厂家分配。
MAC地址后三字节(地位24位)由厂家自行指派,称为扩展标识符,必须保证生产出的网络适配器没有重复地址。

交换机

交换机又称交换式集线器,实质上是一个多接口网桥,工作在数据链路层。根据MAC帧的目的地址对收到的帧进行转发。实现数据链路层上局域网的互连。(互连不同数据链路层协议、不同传输介质与不同传输速率的网络)
交换机具有自学习能力,学习的是交换表的内容,交换表中存储着 MAC 地址到接口的映射。
正是由于这种自学习能力,因此交换机是一种即插即用设备,不需要网络管理员手动配置交换表内容。
下图中,交换机有 4 个接口,主机 A 向主机 B 发送数据帧时,交换机把主机 A 到接口 1 的映射写入交换表中。为了发送数据帧到 B,先查交换表,此时没有主机 B 的表项,那么主机 A 就发送广播帧,主机 C 和主机 D 会丢弃该帧,主机 B 回应该帧向主机 A 发送数据包时,交换机查找交换表得到主机 A 映射的接口为 1,就发送数据帧到接口 1,同时交换机添加主机 B 到接口 2 的映射。
第五章 网络 之 计算机网络_第9张图片

三. 网络层

网络层主要任务:

  • 通过路由选择算法,为分组通过通信子网选择最适当的路径;
  • 网络层使用数据链路层的服务,实现路由选择、拥塞控制与网络互连等基本功能,向传输层的端到端传输连接提供服务。

异构网络互联(互联网)

互联网是使用IP协议,通过路由器(网关)将各种物理网络互连起来的虚拟互连网络。
互连起来的各种物理网络的异构性是客观存在的,利用IP协议可以使这些性能各异的网络从用户看起来好像是一个统一的网络(屏蔽物理网络的异构性)。
从网络层看IP数据报:

  • 网络地址不变(源IP地址、目的IP地址)
  • 链路层地址变化(源MAC地址、目的MAC地址)
    第五章 网络 之 计算机网络_第10张图片
    第五章 网络 之 计算机网络_第11张图片

路由选择 & 分组转发

  • 分组转发
    转发就是路由器根据路由/转发表将用户的IP数据报从合适的端口转发出去。
  • 路由选择
    按照分布式算法根据从各相邻的路由器得到关于网络拓扑的变化情况,动态地改变所选择地路由。路由表是根据李由选择算法得出地。

路由表

为什么不用目的主机号制作路由表 / 为什么不直接用MAC地址/寻址?

(1)根据目的主机的MAC地址制作路由表,使得路由表过于庞大。
(2)由于物理网络的异构性使不同链路主机的地址不统一,需要转化。

有四个A类网络通过三个路由器连接在一起。每一个网络上都可能有成千上万个主机。可以想象,若按目的主机号来制作路由表,则所得出路由表就会过于庞大。但若按主机所在网络地址来制作路由表,那么每一个路由器中的路由表就只包含4个项目。可以使路由表简化。

内部结构 / 工作原理

第五章 网络 之 计算机网络_第12张图片
在路由表中,对每一条路由,包含(目的网络地址,下一跳地址)

路由表项主要字段:目的网络、子网掩码、下一跳路由、经由接口

根据目的网络地址就能确定下一跳路由器,因此IP数据报最终一定可以找到目的主机所在目的网络上的路由器(可能经过多次间接交付)。只有到达最后一个路由器时,才试图向目的主机进行直接交付。
注:
IP数据报首部中没有地方用来指明"下一跳路由器的IP地址"
当路由器收到待转发的数据报,不是将下一跳路由器的IP地址填入IP数据报,而是送交下层的网络接口软件。网络接口软件使用ARP负责将下一跳路由器的IP地址转换成硬件地址,并将此硬件地址放在链路层MAC帧首部,然后根据这个硬件地址找到下一跳路由器。
因此IP数据报在网络层IP(逻辑)地址不变,MAC(物理)地址不断变化。

分组转发算法

(1)从数据报的首部提取目的主机的IP地址D,得出目的网络地址为N;
(2)若网络N与此路由器直接相连,则把数据报直接交付目的主机D;否则是间接交付,执行(3);
(3)若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则执行(4);
(4)若路由表中有到大网络N的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行(5);
(5)若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由;否则,执行(6);
默认路由:若匹配路由表中其他项都不匹配,则走默认路由指明的路由。
(6)报告转发分组出错。
若路由表项皆不匹配且无默认路由,主机发出错的ICMP包。
第五章 网络 之 计算机网络_第13张图片

IPv4 & IPv6

IP数据报格式

第五章 网络 之 计算机网络_第14张图片
一个IP数据报由首部和数据两部分组成。首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。

  • IP数据报的分片与重组
    IP数据报作为网络层数据必然要通过帧来传输。一个数据报可能要通过多个不同的物理网络。每一个路由器都要将接收到的帧进行拆包和处理,然后封装成另外一个帧。每一种物理网络都规定了各自帧的数据域最大字节长度的最大传输单元。其中帧的格式与长度取决于物理网络所采用的协议。
    分片、重组的基本方法——标识、标志和片偏移
    在IP数据报的报头,与一个数据报的分片、组装相关的域有标识域、标志域和片偏移域

IP地址编址方式

  • IPv4地址
    TCP/IP协议的网络层使用的地址标识符叫做IP地址。IPv4中IP地址是一个32位的二进制地址,采用点分十进制。网络中的每一个主机或路由器至少有一个IP地址(连接到多个物理网络时,可以用有多个处于不同网络的IP地址)。在Internet中每个设备的IP地址全网唯一。
  • 编址方式

第一阶段 1981:分类IP地址(2级结构)

由两部分组成,网络号和主机号,其中不同分类具有不同的网络号长度,并且是固定的。
IP 地址 ::= {< 网络号 >, < 主机号 >}
第五章 网络 之 计算机网络_第15张图片

类别 地址范围 使用
A类 0.0.0.0到127.255.255.255
B类 128.0.0.0到191.255.255.255
C类 192.0.0.0到223.255.255.255
D类 224.0.0.0到239.255.255.255 多用于组播,它并不指向特定的网络,多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机(如直播)
E类 240.0.0.0到247.255.255.255 保留为今后使用

(1)IP地址是一种分等级的地址结构。好处在于:网络号由IP地址管理机构在分配IP地址时分配;主机号由得到该网络号的单位自行分配。且路由器仅根据目的主机所连接的网络号转发分组,减少路由表表项。
(2)IP地址标志一个主机(或路由器)和一条链路的接口。一个路由器应当连接到两个或多个网络上(将IP数据报从一个网络转发到另一个网络),因此一个路由器的每个接口都有一个不同网络号的IP地址。
(3)用转发器或网桥(链路层)连接起来的若干局域网仍为一个网络,因此这些局域网都具有相同的网络号。
(4)同一局域网上主机域路由器IP地址网络号必须相同(才能通过路由器转发数据 => 上网)

第二阶段 1985:子网划分(3级结构)

通过在主机号字段中拿一部分作为子网号,把两级 IP 地址划分为三级 IP 地址。使一个大的网络(如A、B类网络划分成几个较小的网络)
注意,外部网络看不到子网的存在(划分子网属于单位内部的事 => 单位内部对分类得到地址()进一步进行划分)
IP 地址 ::= {< 网络号 >, < 子网号 >, < 主机号 >}
第五章 网络 之 计算机网络_第16张图片

  • 子网掩码
    要使用子网,必须配置子网掩码。一个 B 类地址的默认子网掩码为 255.255.0.0,如果 B 类地址的子网占两个比特,那么子网掩码为 11111111 11111111 11000000 00000000,也就是 255.255.192.0。
    第五章 网络 之 计算机网络_第17张图片
    网络地址 = (IP地址) AND (子网地址)
    划分子网的基本思路:根据子网中主机的个数最大值(保证为子网中所有主机分配IP地址) => 子网域位数

划分子网实例(重点):
某企业分配到一个C类IP地址201.222.5.0。假设需要6个子网,每个子网20台主机,给出网络规划。
(1)确定子网域位数,从主机借位:2^3-2=8-2 >= 6,从主机位借3位。
C类默认掩码255.255.255.0,即1111 1111.1111 1111.1111 1111.0000 0000
借3位后子网掩码 1111 1111.1111 1111.1111 1111.1110 0000 = 255.255.255.224
此时主机号5位,每个子网可以分配2^5 = 32 > 20台主机,满足要求。
分配的每个子网:000(X)、001、010、011、100、101、110、111(X)

  • 划分子网情况下路由器转发分组算法
    路由表的每一项:{目的网络地址、子网掩码、下一跳(下一跳地址、接口)}
    (1)从分组的首部提取目的IP地址D;
    (2)先用与该路由器直接相连的网络的子网掩码与D进行与运算,看结果是否与相应的网络
    地址相匹配。若匹配,则进行直接交付。
    否则就是间接交付,马上执行(3);
    (3)若路由表中有一条到目的主机D的特定路由,则将分组转发给其指明的下一跳路由器。
    否则执行(4);
    (4)对路由表中每一行的子网掩码和D进行与运算,若结果与该行的目的网络地址匹配,则将
    分组传给该行指明的下一跳路由器。
    否则执行(5);
    (5)若路由表中有一个默认路由,则将分组传给路由表中指明的默认路由器。
    否则执行(6);
    (6)报告转发分组出错。

第三阶段 1987:CIDR(无分类 / 网络前缀)

  • 无分类编址
    无分类编址 CIDR 消除了传统 A 类、B 类和 C 类地址以及划分子网的概念,使用网络前缀和主机号来对 IP 地址进行编码,网络前缀的长度可以根据需要变化,用于代替分类地址中的网络号和子网号,使IP地址从三级编址回到了两级编址。
    IP 地址 ::= {< 网络前缀号 >, < 主机号 >}
    CIDR 的记法上采用在 IP 地址后面加上网络前缀长度的方法,例如 128.14.35.7/20 表示前 20 位为网络前缀。
  • 路由聚合、构成超网
    网络前缀相同的连续IP地址 称为一个CIDR地址块。
    CIDR 的地址掩码可以继续称为子网掩码,子网掩码首 1 长度为网络前缀的长度。如/20地址块的掩码是20个连续的1。
    一个 CIDR 地址块中有很多地址,一个 CIDR 地址块表示的网络就可以表示原来的很多个网络,并且在路由表中只需要一个路由就可以代替原来的多个路由,减少了路由表项的数量。把这种通过使用网络前缀来减少路由表项的方式称为路由聚合,也称为 构成超网 。
    在路由表中的项目由“网络前缀”和“下一跳地址”组成,在查找时可能会得到不止一个匹配结果,应当采用最长前缀匹配来确定应该匹配哪一个。

目的地址D = 206.0.71.130 = 206.0.0100 0111.1000 0010
路由表中项目 : 206.0.68.0/22(ISP) 与目的地址匹配长度 = 22
206.0.71.128/25(四系) 与目的地址匹配长度 = 25
根据最长匹配原则,查找路由表中第二项

第五章 网络 之 计算机网络_第18张图片

第四阶段 1994:NAT(地址转换)

需要在专用网连接到因特网的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球地址IP。所有使用本地地址的主机在和外界通信时都要在NAT路由器上将本地地址转化成IP地址才能和因特网连接。

  • 专用/私有地址(RFC1918定义一系列私有地址)为只用于机构内部的网络或主机IP。Internet中的路由器不转发目的地址为私有地址的IP数据报
    10.0.0.0 ~ 10.255.255.255(CIDR:10.0/8)
    172.16.0.0 ~ 172.31.255.255(CIDR:172.16/12)
    192.168.0.0 ~ 192.168.255.255(CIDR:192.168/16)
  • 公有地址:全网唯一IP地址,向ISP/注册中心申请,由因特网分配。

通过使用少量的公有IP 地址代表较多的私有IP 地址的方式,将有助于减缓可用的IP地址空间的枯竭。

  • 工作原理
    借助于NAT,私有(保留)地址的"内部"网络通过路由器发送数据包时,私有地址被转换成合法的IP地址,一个局域网只需使用少量IP地址(甚至是1个)即可实现私有地址网络内所有计算机与Internet的通信需求。
    (1)内部主机ClientA用本地地址192.168.1.2和因特网主机202.20.65.4通信所发送数据报必须经过NAT路由器
    (2)NAT路由器将数据报源地址192.168.1.2转换成全球地址202.20.65.2,目的地址保持不变,然后发送到因特网。
    (3)NAT路由器收到因特网主机发回的数据报时,知道数据报中源地址是202.20.65.4,目的地址是202.20.65.2
    (4)根据NAT转换表,NAT路由器将目的地址202.20.65.2转换为192.168.1.2,并转发给最终的内部主机ClientA
    第五章 网络 之 计算机网络_第19张图片
  • IPv6
    从计算机本身发展以及从因特网规模和网络传输速率来看,IPv4已不适用。最主要的问题就是32位的IP地址不够用。因此采用具有更大地址控件的新版本IP协议IPv6解决这个问题。(无类别编址CIDR、网络转换协议NAT也可解决地址耗尽问题)
    IPv6的地址长度为128位,是IPv4地址长度的4倍,首部长度位固定40字节。于是IPv4点分十进制格式不再适用,采用十六进制表示。

相关协议

ARP 地址解析协议(Adress Resolution Protocol)

网络层实现主机之间的通信,而链路层实现具体每段链路之间的通信。在实际网络的链路上传送数据帧时,最终使用硬件地址。因此在通信过程中,IP 数据报的源地址和目的地址始终不变,而 MAC 地址随着链路的改变而改变。
ARP 实现由 IP 地址得到 MAC 地址。RARP实现由MAC地址得到IP地址。
实现(同一个局域网上路由器/主机)IP地址和MAC地址转换。

如果目的主机和源主机不在同一个局域网,应该通过ARP找到一个位于本局域网上某个路由器的硬件地址,通过分组发送给这个路由器,让这个路由器将分组转发给下一个网络。此时目的主机不变,源主机为该路由器的硬件地址,剩下工作交给下一个网络链路层处理。

第五章 网络 之 计算机网络_第20张图片
每个主机都有一个 ARP 高速缓存,里面有本局域网上的各主机和路由器的 IP 地址到 MAC 地址的映射表。
如果主机 A 知道主机 B 的 IP 地址。查找ARP 高速缓存中有没有该 IP 地址到 MAC 地址的映射
(1)如果有,查找出对应的MAC地址,并将该硬件地址写入MAC帧,就可以通过局域网将该MAC帧发送到此硬件地址。
(2)如果没有,此时主机 A 通过广播的方式发送 ARP 请求分组,主机 B 收到该请求后会通过单播的方式发送 ARP 响应分组给主机 A 告知其 MAC 地址,随后主机 A 向其高速缓存中写入主机 B 的 IP 地址到 MAC 地址的映射。
第五章 网络 之 计算机网络_第21张图片

DHCP 动态主机设置协议(Dynamic Host Configuration Protocol)

动态主机配置协议DHCP提供即插即用连网机制。允许一台计算机加入新的网络和获取IP地址而不用手工参与。

  • DHCP使用客户服务器方式,使用UDP传输数据
    (1)需要IP地址的主机在启动时就向DHCP服务器广播发送发现报文(DHCPDISCOVER),这时主机就称为DHCP客户
    (2)本地网络上所有主机都能收到此广播报文,但只有DHCP服务器才能回答此广播报文。
    (3)DHCP服务器先在其数据库中查找该计算机的配置,若找到,则返回找到的信息。若找不到则从IP 地址池(address pool)中取出一个地址分配给该计算机。DHCP服务器的回答报文叫做提供报文(DHCPOFFER)
    (4)DHCP客户 会检查得到的IP信息是否完整并发送广播DHCPREQUEST通知DHCP服务器已获得IP地址
    (5)DHCP服务端发送广播DHCPACK确认客户的请求,表示分配成功
    第五章 网络 之 计算机网络_第22张图片
    DHCP服务器分配给DHCP客户的IP地址是临时的,因此DHCP客户只能在一段有限的时间使用这个分配到的IP地址。这段有限的时间称为租用期。

ICMP 网络控制报文协议(Internet Control Message Protocol)

ICMP 是为了更有效地转发 IP 数据报和提高交付成功的机会。ICMP允许主机活路由器报告差错情况和提供异常情况的报告。它作为IP数据报的数据,加上数据报的首部,封装在 IP 数据报中,不属于高层协议。
第五章 网络 之 计算机网络_第23张图片
ICMP 报文分为差错报告报文和询问报文。
第五章 网络 之 计算机网络_第24张图片
(1)Ping
Ping 是 ICMP 的一个重要应用,主要用来测试两台主机之间的连通性。
Ping 的原理是通过向目的主机发送 ICMP Echo 请求报文,目的主机收到之后会发送 Echo 回答报文。Ping 会根据时间和成功响应的次数估算出数据包往返时间以及丢包率。
(2)Traceroute
Traceroute 是 ICMP 的另一个应用,用来跟踪一个分组从源点到终点的路径。

VPN 虚拟专用网

VPN 可以使用公用的互联网作为本机构各专用网之间的通信载体。专用指机构内的主机只与本机构内的其它主机通信;虚拟指好像是,而实际上并不是,它有经过公用的互联网。

  • 专用地址
    由于 IP 地址的紧缺,一个机构能申请到的 IP 地址数往往远小于本机构所拥有的主机数。并且一个机构并不需要把所有的主机接入到外部的互联网中,机构内的计算机可以使用仅在本机构有效的 IP 地址(专用地址)。
    有三个专用地址块:
    10.0.0.0 ~ 10.255.255.255
    172.16.0.0 ~ 172.31.255.255
    192.168.0.0 ~ 192.168.255.255
  • VPN 机制
    VPN通过在公用网络上建立专用网络,进行加密通讯。VPN网关通过对数据包的加密和数据包目标地址的转换实现远程访问。VPN可通过服务器、硬件、软件等多种方式实现。
    例如某公司员工出差到外地,他想访问企业内网的服务器资源,这种访问就属于远程访问。让外地员工访问到内网资源,利用VPN的解决方法就是在内网中架设一台VPN服务器。外地员工在当地连上互联网后,通过互联网连接VPN服务器,然后通过VPN服务器进入企业内网。为了保证数据安全,VPN服务器和客户机之间的通讯数据都进行了加密处理。有了数据加密,就可以认为数据是在一条专用的数据链路上进行安全传输,就如同专门架设了一个专用网络一样,但实际上VPN使用的是互联网上的公用链路,因此VPN称为虚拟专用网络,其实质上就是利用加密技术在公网上封装出一个数据通讯隧道。有了VPN技术,用户无论是在外地出差还是在家中办公,只要能上互联网就能利用VPN访问内网资源,这就是VPN在企业中应用得如此广泛的原因。
    下图中,场所 A 和 B 的通信经过互联网,如果场所 A 的主机 X 要和另一个场所 B 的主机 Y 通信,IP 数据报的源地址是 10.1.0.1,目的地址是 10.2.0.3。数据报先发送到与互联网相连的路由器 R1,R1 对内部数据进行加密,然后重新加上数据报的首部,源地址是路由器 R1 的全球地址 125.1.2.3,目的地址是路由器 R2 的全球地址 194.4.5.6。路由器 R2 收到数据报后将数据部分进行解密,恢复原来的数据报,此时目的地址为 10.2.0.3,就交付给 Y。

路由协议

路由选择协议都是自适应的,能随着网络通信量和拓扑结构的变化而自适应地进行调整。
自治系统(AS):一个自治系统(AS)是一个有权自主地决定在本系统中应采用何种路由协议的小型单位。这个网络单位可以是一个简单的网络也可以是一个由一个或多个普通的网络管理员来控制的网络群体,它是一个单独的可管理的网络单元(例如一所大学,一个企业或者一个公司个体)。一个自治系统有时也被称为是一个路由选择域(routing domain)。

内部网关协议IGP(RIP、OSPF)

  • RIP
    RIP 是一种基于距离向量的路由选择协议,要求网络中每一个路由器都要维护从自己到其他每一个目的网络的距离记录。距离是指跳数,直接相连的路由器跳数为 1。跳数最多为 15,超过 15 表示不可达。
    RIP 按固定的时间间隔仅和相邻路由器交换自己的路由表全部信息,经过若干次交换之后,所有路由器最终会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器地址。
    RIP认为一个好的路由就是通过的路由器数目少,即距离短。
    距离向量算法:
    对地址为 X 的相邻路由器发来的 RIP 报文,先修改报文中的所有项目,把下一跳字段中的地址改为 X,并把所有的距离字段加 1;
    对修改后的 RIP 报文中的每一个项目,进行以下步骤:
    若原来的路由表中没有目的网络 N,则把该项目添加到路由表中;
    否则:若下一跳路由器地址是 X,则把收到的项目替换原来路由表中的项目;否则:若收到的项目中的距离 d 小于路由表中的距离,则进行更新(例如原始路由表项为 Net2, 5, P,新表项为 Net2, 4, X,则更新);否则什么也不做。
    若 3 分钟还没有收到相邻路由器的更新路由表,则把该相邻路由器标为不可达,即把距离置为 16。
    RIP 协议实现简单,开销小。但是 RIP 能使用的最大距离为 15,限制了网络的规模。并且当网络出现故障时,要经过比较长的时间才能将此消息传送到所有路由器。且有"坏消息传播慢"这一问题。
  • ODPF
    开放最短路径优先 OSPF,是为了克服 RIP 的缺点而开发出来的。
    开放表示 OSPF 不受某一家厂商控制,而是公开发表的;最短路径优先表示使用了 Dijkstra 提出的最短路径算法 SPF。
    OSPF 具有以下特点:
    (1)向本自治系统中的所有路由器发送信息,这种方法是洪泛法。
    (2)发送的信息就是与相邻路由器的链路状态,链路状态包括与哪些路由器相连以及链路的度量,度量用费用、距离、时延、带宽等来表示。
    (3)只有当链路状态发生变化时,路由器才会发送信息。
    (4)所有路由器都具有全网的拓扑结构图,并且是一致的(链路状态数据库的同步)。相比于 RIP,OSPF 的更新过程收敛的很快。

外部网关协议EGP(BGP)

  • BGP
    BGP(Border Gateway Protocol,边界网关协议)
    AS 之间的路由选择很困难,主要是由于:
    (1)互联网规模很大;
    (2)各个 AS 内部使用不同的路由选择协议,无法准确定义路径的度量;
    (3)AS 之间的路由选择必须考虑有关的策略,比如有些 AS 不愿意让其它 AS 经过。
    BGP 只能寻找一条比较好的路由,而不是最佳路由。
    每个 AS 都必须配置至少一个 BGP 发言人,两个BGP发言人都是通过一个共享网络连接在一起的,通过在两个相邻 BGP 发言人之间建立 TCP 连接来交换路由信息(使用TCP连接能提供可靠服务,保证数据可达)
    第五章 网络 之 计算机网络_第25张图片

网络层设备:路由器

路由器的组成与功能
路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是路由选择和转发分组。

  • 转发
    转发就是路由器根据路由/转发表将用户的IP数据报从合适的端口转发出去。
  • 路由选择
    按照分布式算法根据从各相邻的路由器得到关于网络拓扑的变化情况,动态地改变所选择地路由。路由表是根据李由选择算法得出地。
    第五章 网络 之 计算机网络_第26张图片

四. 传输层

传输层的目标是向应用层应用程序进程之间的通信,提供有效、可靠、保证质量的服务;
传输层在网络分层结构中起着承上启下的作用,通过执行传输层协议,屏蔽通信子网(信息传输)在技术、设计上的差异和服务质量的不足,向资源子网(信息处理)提供一个标准的、完善的通信服务;

传输层提供端到端(主机的应用进程之间)的通信
网络层提供点到点(主机之间)的通信

传输层寻址 && 端口

端口用一个16位端口号进行标志,只具有本地意义,即端口号只是为了标志本计算机应用层中的各个进程,作为通信的终点。

TCP && UDP

TCP/UDP 特点

  • 用户数据报协议 UDP(User Datagram Protocol)是无连接的,尽最大可能交付,没有拥塞控制,面向报文(对于应用程序传下来的报文不合并也不拆分,只是添加 UDP 首部),支持一对一、一对多、多对一和多对多的交互通信。
  • 传输控制协议 TCP(Transmission Control Protocol)是面向连接的,提供可靠交付,有流量控制,拥塞控制,提供全双工通信,面向字节流(把应用层传下来的报文看成字节流,把字节流组织成大小不等的数据块),每一条 TCP 连接只能是点对点的(一对一)。

首部格式

  • UDP 首部格式
    第五章 网络 之 计算机网络_第27张图片
    首部字段只有 8 个字节,包括源端口、目的端口、长度、检验和。12 字节的伪首部是为了计算检验和临时添加的。
  • TCP 首部格式
    第五章 网络 之 计算机网络_第28张图片
    序号 :用于对字节流进行编号,例如序号为 301,表示第一个字节的编号为 301,如果携带的数据长度为 100 字节,那么下一个报文段的序号应为 401。
    确认号 :期望收到的下一个报文段的序号。例如 B 正确收到 A 发送来的一个报文段,序号为 501,携带的数据长度为 200 字节,因此 B 期望下一个报文段的序号为 701,B 发送给 A 的确认报文段中确认号就为 701。
    数据偏移 :指的是数据部分距离报文段起始处的偏移量,实际上指的是首部的长度。
    确认 ACK :当 ACK=1 时确认号字段有效,否则无效。TCP 规定,在连接建立后所有传送的报文段都必须把 ACK 置 1。
    同步 SYN :在连接建立时用来同步序号。当 SYN=1,ACK=0 时表示这是一个连接请求报文段。若对方同意建立连接,则响应报文中 SYN=1,ACK=1。
    终止 FIN :用来释放一个连接,当 FIN=1 时,表示此报文段的发送方的数据已发送完毕,并要求释放连接。
    窗口 :窗口值作为接收方让发送方设置其发送窗口的依据。之所以要有这个限制,是因为接收方的数据缓存空间是有限的。

三次握手 & 四次挥手

第五章 网络 之 TCP/IP

TCP可靠传输

超时重传

TCP 使用超时重传来实现可靠传输:如果一个已经发送的报文段在超时时间内没有收到确认,那么就重传这个报文段。

滑动窗口

窗口是缓存的一部分,用来暂时存放字节流。发送方和接收方各有一个窗口,接收方通过 TCP 报文段中的窗口字段告诉发送方自己的窗口大小,发送方根据这个值和其它信息设置自己的窗口大小。
发送窗口内的字节都允许被发送,接收窗口内的字节都允许被接收。如果发送窗口左部的字节已经发送并且收到了确认,那么就将发送窗口向右滑动一定距离,直到左部第一个字节不是已发送并且已确认的状态;接收窗口的滑动类似,接收窗口左部字节已经发送确认并交付主机,就向右滑动接收窗口。
接收窗口只会对窗口内最后一个按序到达的字节进行确认,例如接收窗口已经收到的字节为 {31, 34, 35},其中 {31} 按序到达,而 {34, 35} 就不是,因此只对字节 31 进行确认。发送方得到一个字节的确认之后,就知道这个字节之前的所有字节都已经被接收。
第五章 网络 之 计算机网络_第29张图片

流量控制

流量控制是为了控制发送方发送速率,保证接收方来得及接收。
接收方发送的确认报文中的窗口字段可以用来控制发送方窗口大小,从而影响发送方的发送速率。将窗口字段设置为 0,则发送方不能发送数据。

拥塞控制

如果网络出现拥塞,分组将会丢失,此时发送方会继续重传,从而导致网络拥塞程度更高。因此当出现拥塞时,应当控制发送方的速率。这一点和流量控制很像,但是出发点不同。流量控制是为了让接收方能来得及接收,而拥塞控制是为了降低整个网络的拥塞程度。
第五章 网络 之 计算机网络_第30张图片
TCP 主要通过四个算法来进行拥塞控制:慢开始、拥塞避免、快重传、快恢复。
发送方需要维护一个叫做拥塞窗口(cwnd)的状态变量,注意拥塞窗口与发送方窗口的区别:拥塞窗口只是一个状态变量,实际决定发送方能发送多少数据的是发送方窗口。
为了便于讨论,做如下假设:
接收方有足够大的接收缓存,因此不会发生流量控制;
虽然 TCP 的窗口基于字节,但是这里设窗口的大小单位为报文段。
第五章 网络 之 计算机网络_第31张图片

  • 慢开始与拥塞避免
    发送的最初执行慢开始,令 cwnd = 1,发送方只能发送 1 个报文段;当收到确认后,将 cwnd 加倍,因此之后发送方能够发送的报文段数量为:2、4、8 …
    注意到慢开始每个轮次都将 cwnd 加倍,这样会让 cwnd 增长速度非常快,从而使得发送方发送的速度增长速度过快,网络拥塞的可能性也就更高。设置一个慢开始门限 ssthresh,当 cwnd >= ssthresh 时,进入拥塞避免,每个轮次只将 cwnd 加 1。
    如果出现了超时,则令 ssthresh = cwnd / 2,然后重新执行慢开始。
  • 快重传与快恢复
    在接收方,要求每次接收到报文段都应该对最后一个已收到的有序报文段进行确认。例如已经接收到 M1 和 M2,此时收到 M4,应当发送对 M2 的确认。
    在发送方,如果收到三个重复确认,那么可以知道下一个报文段丢失,此时执行快重传,立即重传下一个报文段。例如收到三个 M2,则 M3 丢失,立即重传 M3。
    在这种情况下,只是丢失个别报文段,而不是网络拥塞。因此执行快恢复,令 ssthresh = cwnd / 2 ,cwnd = ssthresh,注意到此时直接进入拥塞避免。
    慢开始和快恢复的快慢指的是 cwnd 的设定值,而不是 cwnd 的增长速率。慢开始 cwnd 设定为 1,而快恢复 cwnd 设定为 ssthresh。
    第五章 网络 之 计算机网络_第32张图片

五. 应用层

网络应用模型

在网络应用层运行的应用程序之间通信方式可划分成两大类:

C/S(客户端/服务器)方式

客户client和服务器server都是指通信中所设计的两个应用进程。客户服务器方式所描述的是进程之间服务和被服务的关系。客户是服务的请求方,服务器是服务的提供方。

P2P(peer to peer 对等)方式

对等连接是指两个主机在通信时并不区分哪一个是服务请求方,提供方。只要两个主机运行了对等连接软件,它们就可以进行平等的、对等连接通信。双方都可以下载对方已经存储在硬盘中的共享文档。

相关协议

DNS系统

域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用UDP端口53。
因特网采用层次结构的命名树作为主机的名字,并使用分布式域名系统DNS。
名字到IP地址的解析是由若干个域名服务器完成。域名服务器在专设的结点上运行,运行该程序的机器称为域名服务器。
DNS基于UDP协议实现:DNS的一个客户向本地域名服务器发送域名解析请求(UDP报文),其中包含待解析的域名,本地域名服务器在查找域名后,返回应答报文,其中包含对应的IP地址。

  • 层次域名空间
  • 域名
    因特网采用了层次树状结构的命名方法,任何一个连接在因特网上的主机活路由器,都有一个唯一的层次结构的名称,即域名。
    域名的结构由标号序列组成,各标号分别代表不同层次的域名,每个层次只需要负责该层次级别的独立功能(层次之间相互独立),各标号之间用点隔开:
    在这里插入图片描述
  • 因特网的域名空间
    第五章 网络 之 计算机网络_第33张图片
  • 域名服务器
    树状结构的DNS域名服务器
    第五章 网络 之 计算机网络_第34张图片
    域名服务器四种类型
    (1)根域名服务器:13个(A~M)。在使用迭代查询时,根域名服务器把下一步应当查找的顶级域名服务器的IP地址告诉本地域名服务器。
    (2)顶级域名服务器:负责顶级域名和所有国家域名。
    (3)权威DNS服务器:在因特网上具有公共可访问主机(如Web服务器和邮件服务器)的每个组织机构必须提供公共可访问的DNS记录,这些记录将这些主机的名字映射为IP地址。
    当一个权威域名服务器还不能给出最后的查询回答时,就会告诉发出查询请求的DNS客户,下一步应该查找哪一个权威域名服务器。多数大学、企业实现和维护他们自己的权威DNS服务器。
    (4)本地域名服务器:当一个主机发出DNS查询请求时,这个查询报文就发送给本地域名服务器。
  • 域名解析过程
    主机向本地域名服务器的查询一般采用递归查询。如果主机所询问的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其他根域名服务器继续发出查询请求报文。
    本地域名服务器向根/顶级/权威域名服务器的查询通常是采用迭代查询。当根域名服务器收到本地域名服务器查询请求报文时,要么给出所要查询的IP地址,要么告诉本地域名服务器下一步应当向哪一个域名服务器进行查询,然后让本地域名服务器进行后续查询。
    第五章 网络 之 计算机网络_第35张图片

FTP

文件传送协议FTP只提供文件传送的一些基本的服务,它使用TCP可靠的运输服务。FTP的主要功能是减少或消除在不同操作系统下处理文件的不兼容性。
FTP使用客户服务器方式。一个FTP服务器进程可同时为多个客户进程提供服务。FTP的服务器进程由两大部分组成:一个主进程,负责接收新的请求;另外有若干个从属进程,负责处理单个请求。
FTP 两个连接

  • 控制连接(20端口)
    当用户主机与远程主机开始一个FTP会话前,FTP的客户机端(用户)在21端口发起一个用于控制的与服务器(远程主机)的TCP连接。
    控制连接在整个会话期间一直保持打开,FTP客户发出的传送请求通过控制连接发送给服务器端的控制进程,但控制连接不用于传送文件。
  • 数据连接(21端口)
    当FTP服务器端从该连接上收到一个文件传输的命令后,就发起20端口到客户机的数据连接。数据连接用于传输文件。FTP在该数据连接上准确地传送一个文件并关闭连接。

电子邮件(SMTP、POP3、IMAP)

电子邮件系统的组成结构
第五章 网络 之 计算机网络_第36张图片
(1)用户代理(UA)
用户与电子邮件系统的接口,是电子邮件客户端软件。用户代理的功能:撰写、显示、处理和通信。
(2)邮件服务器(MS)
发送和接收邮件,同时还要向发信人报告邮件传送的情况(已交付、被拒绝、丢失等)。邮件服务器按照客户/服务器方式工作。邮件服务器需要使用发送和读取两个不同协议。

  • 发送邮件协议:SMTP
    使用TCP可靠数据传输服务,从发送方的邮件服务器向接收方的邮件服务器发送邮件,也用来将邮件从发送方的用户代理传送到发送方的邮件服务器。限制邮件报文主体部分只能采用简单的7位ASCII码表示。
    为发送非ASCII文本的内容,发送方的用户代理可在报文中使用附加的首部行,即多用途因特网邮件扩展(MIME)
    MIME 在其邮件首部说明了邮件数据类型(如文本、声音、图像、视频等),使用MIME可在邮件中同时传送多种类型的数据。
  • 读取邮件协议:POP3
    POP3允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件。
  • 读取邮件服务器:IMAP
    IMAP全称是Internet Mail Access Protocol,即交互式邮件存取协议,它是跟POP3类似邮件访问标准协议之一。不同的是,开启了IMAP后,您在电子邮件客户端收取的邮件仍然保留在服务器上,同时在客户端上的操作都会反馈到服务器上,如:删除邮件,标记已读等,服务器上的邮件也会做相应的动作。所以无论从浏览器登录邮箱或者客户端软件登录邮箱,看到的邮件以及状态都是一致的。
  • POP3与IMAP区别
    POP3协议允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作(如移动邮件、标记已读等),不会反馈到服务器上,比如通过客户端收取了邮箱中的3封邮件并移动到其他文件夹,邮箱服务器上的这些邮件是没有同时被移动的 。
    而IMAP提供webmail 与电子邮件客户端之间的双向通信,客户端的操作都会反馈到服务器上,对邮件进行的操作,服务器上的邮件也会做相应的动作。
    第五章 网络 之 计算机网络_第37张图片
    总之,IMAP 整体上为用户带来更为便捷和可靠的体验。POP3 更易丢失邮件或多次下载相同的邮件,但 IMAP 通过邮件客户端与webmail 之间的双向同步功能很好地避免了这些问题。

WWW(HTTP)

  • 万维网
    万维网以客户服务器方式工作。
    浏览器就是在用户计算机上的万维网客户程序。万维网文档所驻留的计算机则运行服务器程序,这个计算机也称为万维网服务器。
    客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所需要的万维网文档。在一个客户程序主窗口上显示出的万维网文档称为页面(page)。
    万维网使用统一资源定位符URL来标志万维网上的各种文档,使每一个文档在整个因特网的范围具有唯一的标识符URL。
  • HTTP
    Web的应用层协议是超文本传输协议HTTP。定义了HTTP报文的格式以及客户端服务器如何进行报文交换。
    第五章 网络 之 计算机网络_第38张图片
    用户点击鼠标后发生的事件
    第五章 网络 之 计算机网络_第39张图片

Telent

Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。

面试

MAC / IP地址 & 作用?

  • mac地址 & ip地址?
mac地址 ip地址
定义 物理/硬件地址,由网络设备制造商生产时写在硬件内部 网络地址
格式 08:00:20:0A:8C:6D
长度为48位(6个字节),通常表示为12个16进制数,每2个16进制数之间用冒号隔开
192.168.0.1
长度为32位。用点分隔开的4个8八位组构成
组成 前6位16进制数08:00:20代表网络硬件制造商的编号,它由IEEE分配,而后3位16进制数0A:8C:6D代表该制造商所制造的某个网络产品(如网卡)的系列号 IP地址由网络地址和主机地址两部分组成,分配给这两部分的位数随地址类(A类、B类、C类等)的不同而不同。网络地址用于路由选择,而主机地址用于在网络或子网内部寻找一个单独的主机
所属层 数据链路层 网络层
说明 每个网络制造商必须确保它所制造的每个以太网设备都具有相同的前三个字节以及不同的后三个字节。这样就可保证世界上每个以太网设备都具有唯一的MAC地址。MAC地址与网络无关。 IP地址只是逻辑上的标识,用于路由器将数据从源地址传送到目的地址。会根据网络而变化,也可以被用户任意修改
  • MAC地址的作用?
  • 既然每个以太网设备在出厂时都有一个唯一的MAC地址了,那为什么还需要为每台主机再分配一个IP地址呢?=> IP地址作用?
    (1)IP地址的分配是根据网络的拓朴结构,而不是根据谁制造了网络设置。若将高效的路由选择方案建立在设备制造商的基础上而不是网络所处的拓朴位置基础上,这种方案是不可行的。
    (2)当存在一个附加层的地址寻址时,设备更易于移动和维修。例如,如果一个以太网卡坏了,可以被更换,而无须取得一个新的IP地址。如果一个IP主机从一个网络移到另一个网络,可以给它一个新的IP地址,而无须换一个新的网卡。
  • 为什么每台主机都分配唯一的IP地址了,为什么还要在网络设备(如网卡,集线器,路由器等)生产时内嵌一个唯一的MAC地址呢?=> mac地址作用?
    这是由组网方式决定的,如今比较流行的接入Internet的方式(也是未来发展的方向)是把主机通过局域网组织在一起,然后再通过交换机和 Internet相连接。这样一来就出现了如何区分具体用户,防止盗用的问题。由于IP只是逻辑上标识,任何人都随意修改,因此不能用来标识用户;而 MAC地址则不然,它是固化在网卡里面的。
    基于MAC地址的这种特点,局域网采用了用MAC地址来标识具体用户的方法。
  • 因此计算机的通信,需要 MAC地址 与 IP地址 结合 传送数据包
    无论是局域网,还是广域网中的计算机之间的通信,最终都表现为将数据包从某种形式的链路上的初始节点出发,从一个节点传递到另一个节点,最终传送到目的节点。数据包在这些节点之间的移动都是由ARP(Address Resolution Protocol:地址解析协议)负责将IP地址映射到MAC地址上来完成的(交换机内部通过"表"将MAC地址与IP地址一一对应实现绑定)。
    假设网络上要将一个数据包(名为PAC)由临沭的一台主机(名称为A,IP地址为IP_A,MAC地址为MAC_A)发送到北京的一台主机(名称为B,IP地址为IP_B,MAC地址为MAC_B)。这两台主机之间不可能是直接连接起来的,因而数据包在传递时必然要经过许多中间节点(如路由器,服务器等等),我们假定在传输过程中要经过C1、C2、C3(其MAC地址分别为M1,M2,M3)三个节点。
    A在将PAC发出之前,先发送一个 ARP(Address Resolution Protocol:地址解析协议)请求,找到其要到达IP_B所必须经历的第一个中间节点C1的MAC地址M1,然后在其数据包中封装(Encapsulation)这些地址: IP_A、IP_B,MAC_A和M1。当PAC传到C1后,再由ARP根据其目的IP地址IP_B,找到其要经历的第二个中间节点C2的MAC地址 M2,然后再将带有M2的数据包传送到C2。如此类推,直到最后找到带有IP地址为IP_B的B主机的地址MAC_B,最终传送给主机B。在传输过程中, IP_A、IP_B和MAC_A不变,而中间节点的MAC地址通过ARP在不断改变(M1,M2,M3),直至目的地址MAC_B。
    具体的通信方式:接收过程,当有发给本地局域网内一台主机的数据包时,交换机接收下来,然后把数据包中的IP地址按照“表”中的对应关系映射成MAC地址,转发到对应的MAC地址的主机上,这样一来,即使某台主机盗用了这个IP地址,但由于他没有这个MAC地址,因此也不会收到数据包。

描述一次网络请求的流程/浏览器访问一个url网址所经历的过程?

  1. 域名解析(DNS查找)
  2. 建立TCP连接(TCP的三次握手和四次挥手)
  3. 建立TCP连接后客户端向服务端发起HTTP请求(HTTP请求报文:请求行、请求头、空行、消息体)
  4. 服务器接受并处理请求,并返回HTTP响应消息,HTTP响应报文的消息体为服务端返回给客户端的HTML文本内容(或其他格式数据)(HTTP响应报文:状态行、响应头、空行、消息体)
  5. 浏览器解析HTML代码,同时请求HTML代码中的静态资源(如js、css、图片等)
    遇到js/css/image等静态资源时,向服务器端发起一个HTTP请求,如果服务器端返回304状态码(告诉浏览器服务器端没有修改该资源),那么浏览器会直接读取本地的该资源的缓存文件。否则开启新线程向服务器端去请求下载。(这个时候就用上keep-alive特性了,建立一次HTTP连接,可以请求多个资源。)
  6. 最后浏览器使用请求到的静态资源和HTML代码对页面进行渲染并呈现给用户

什么是DNS?作用是什么?工作机制?

DNS(Domain Name System)域名系统,用于进行域名解析的服务器,即进行域名与IP地址转换。
DNS查询过程
以查询 zh.wikipedia.org 为例:

  • 输入域名"zh.wikipedia.org",操作系统会先检查自己的本地hosts文件是否有这个网址映射关系。如果hosts没有这个域名的映射,则查询本地DNS解析器缓存。如果hosts与本地DNS服务器缓存都没有相应的网址映射关系,首先会找TCP/IP参数中设置的首选DNS服务器。
  • 客户端发送查询报文"query zh.wikipedia.org"至DNS服务器,DNS服务器首先检查自身缓存,如果存在记录则直接返回结果。
  • 如果记录老化或不存在,则:
  1. DNS服务器向根域名服务器发送查询报文"query zh.wikipedia.org",根域名服务器返回顶级域.org 的权威域名服务器地址。
  2. DNS服务器向 .org 域的权威域名服务器发送查询报文"query zh.wikipedia.org",得到二级域.wikipedia.org 的权威域名服务器地址。
  3. DNS服务器向 .wikipedia.org 域的权威域名服务器发送查询报文"query zh.wikipedia.org",得到主机 zh 的A记录,存入自身缓存并返回给客户端。
    从上图可以知道,客户端到本地DNS服务器是属于递归查询(只发送一次请求,得到一次准确结果(消耗资源)),而DNS服务器之间的交互查询就是迭代查询(发送多次请求,得到参考结果)
    第五章 网络 之 计算机网络_第40张图片

你可能感兴趣的:(Android面试之旅,Java面试之旅)