网络基础笔记

参考以下内容

《图解HTTP》
《图解TCP/IP》
《计算机网络:自顶向下方法》
慕课网
慕课网


😃 引言:浏览器输入URL后发生了什么

三次握手连接

  1. 获取本机IP地址,DNS服务器地址,网关路由器地址

    • 首先我们需要准备一个 DHCP 报文,封装在一个 UDP 报文段中,里面包括本机端口号68和目的端口号67,然后到网络层封装成数据包里面包括了本机的初始IP0.0.0.0,和广播地址255.255.255.255。接着到链路层封装成链路层帧。里面包括广播地址和本机网卡的MAC地址。最后发送到本地局域网中
    • 这个数据包最终会被局域网中的 DHCP 服务器发现(有可能有多个 DHCP 服务器),DHCP 服务器会把可用的 IP 地址返回给我们的主机。然后操作系统选择一个 IP 地址并发送给 DHCP 服务器,最后 DHCP 服务器会返回一个包含本机 IP,DNS 服务器 IP,网关路由器 IP 的报文。
    • 接下来我们需要通过网关路由器的 IP 地址去获得网关路由器的 MAC 地址,这样我们才可以把获取网站 IP 的 DNS 请求报文由网关发送给 DNS 服务器。这时候我们需要准备一个 ARP 请求报文,请求获取网关路由器的 MAC 地址,这个报文同样是以广播的方式发送到局域网中,网关路由器接受到请求报文就会把自己的 MAC 地址返回给本机。
  2. 获取域名的IP地址

    • 接下来一切都准备好了,可以开始讲键入URL之后的事情了:首先我们要访问 DNS 服务器获得网站对应的 IP 地址,这时我们需要把 DNS 报文封装到一个 UDP 报文中,进而封装到网络层的数据包中,填上源 IP,目的 DNS 服务器 IP 地址。接着封装链路层,填上网卡 MAC 地址和网关路由器 MAC 地址。接下来这个 DNS 请求报文就会经网关路由器发送给 DNS 服务器。
    • 我们假设 DNS 服务器缓存有该网站的 IP 地址,(如果没有缓存会进一步向更高级的DNS服务器索要IP地址)。接着 DNS 服务器会返回该域名的 IP 地址。
  3. 建立连接,通信,断开连接

三次握手连接

四次挥手断开

TCP 为啥需要三次握手,四次挥手

  • 阻止历史重复连接
    - 由于网络阻塞,客户端发送的旧的 SYN/ACK 报文 先到达服务端(第一次握手),服务端处理后返回一个 SYN/ACK报文(第二次握手),客户端根据自身上下文判断出这是一个历史连接(序列号或连接超时),会发送一个RST报文表示终止这一次连接(第三次握手)
  • 同步双方初始序列号
    - 通过序列号可以达到去重,双方数据包有序
  • 避免资源浪费。
    - 如果客户端的 SYN 阻塞了,重复发送多次 SYN 报文,那么服务器在收到请求后就会建立多个冗余的无效链接,造成不必要的资源浪费。即两次握手会造成消息滞留情况下,服务器重复接受无用的连接请求 SYN 报文,而造成重复分配资源

抓包分析三次握手和四次挥手

抓包分析

名词 解释
[S] SYN
[.] ACK
[P] Package,数据包
[F] FIN

为啥 time_wait 需要等待 2MSL?

  • 若服务端没有收到最后一次ACK确认消息,则服务端会重新发送 FIN 标记报文请求断开与客户端连接(1MSL),客户端收到后会重新发送一个 ACK 报文,保证TCP协议的全双工连接能够可靠关闭
  • MSL: Maximum Segment Lifetime(报文最大生存时间),Linux 中默认一个MSL是30秒
  • 2MSL 的时间是从客户端接收到 FIN 后发送 ACK 开始计时的

为啥会出现大量的 close_wait ?

  • close_wait 一般出现在被动关闭方,并发请求太多,服务端对应间隙的处理时间没有跟上并发
  • 被动关闭方未及时释放端口资源导致,检查代码

TCP 为啥需要流量控制

流量控制

  • TCP 是全双工的,客户端和服务器均可作为发送方或接收方,我们现在假设一个发送方向接收方发送数据的场景来讲解流量控制。首先我们的接收方有一块接收缓存,当数据来到时会先把数据放到缓存中,上层应用等缓存中有数据时就会到缓存中取数据。假如发送方没有限制地不断地向接收方发送数据,接收方的应用程序又没有及时把接收缓存中的数据读走,就会出现缓存溢出,数据丢失的现象,为了解决这个问题,引入流量控制窗口

  • 缓冲区剩余大小称之为接收窗口,用 rwnd 表示,如果 rwnd=0,则发送方停止发送 。只要接收方在响应 ACK 的时候把这个窗口的值带给发送方,发送方就能知道接收方的接收缓存还有多大的空间,进而设置滑动窗口的大小。

TCP 为啥需要拥塞控制

拥塞控制

  • 拥塞控制是指发送方先设置一个小的窗口值作为发送速率,当成功发包并接收到ACK时,便以指数速率增大发送窗口的大小,直到遇到丢包(超时/三个冗余ACK),才停止并调整窗口的大小。这么做能最大限度地利用带宽,又不至于让网络环境变得太过拥挤。

  • 拥塞控制 是调解网络的负载

  • 接收方网络资源繁忙,因未及时响应ACK导致发送方重传大量数据,这样将会导致网络更加拥堵

  • 拥塞控制是动态调整 win 大小,不只是依赖缓冲区大小确定窗口大小

拥塞控制与流量控制的区别

  1. 流量控制考虑点对点的通信量控制
  2. 拥塞控制考虑整个网络,是全局性的考虑

TCP 拥塞控制分为两个部分

  1. 慢开始和拥塞避免

    • 慢启动。TCP 连接建立后 拥塞窗口增加,慢慢提速(指数递增),试探网络承受能力,避免扰乱网络通道的秩序
    • 拥塞避免。拥塞窗口到达初始阈值后,加法增加拥塞窗口,直至到最大拥塞窗口 ,缓冲区已满,还有ACK请求的话,数据包会被丢弃
    • 当遇到网络拥塞时初始阈值数改为最大拥塞窗口的一半,然后拥塞窗口数降为0,重新开始 慢启动 过程
    • 由于再次慢启动时,拥塞窗口数是由最大阈值减至0然后开始恢复,这会极大降低数据包传递速率
      慢开始和拥塞避免
  2. 快速重传和快速恢复

    • 快重传。经过慢启动到达最大拥塞窗口后,收到3个重复的ACK请求则执行快重传,将丢失的数据包重新发送一遍
    • 快恢复。将拥塞窗口数降低为拥塞窗口最大阈值一半,直到把所有的包都重新发送完毕后,退出快速恢复阶段,进入拥塞避免阶段
      快速重传和快速恢复

为什么会出现粘包/拆包

  • 通俗讲

    • 粘包,发送端将多个报文写入 tcp发送缓冲区中 ,与服务端通过TCP连接,在这个阶段,不同的请求可能被合并为一个请求(粘包)然后通过 socket通信 将数据发送到服务端 tcp 接收缓冲区中
    • 拆包,TCP连接 中,可能会将一个请求拆分为多个请求数据包发送到服务端tcp发送缓冲区中
  • 理论

    • 应用程序写入的数据大于套接字缓冲区大小,这将会发生拆包
    • 应用程序写入数据小于套接字缓冲区大小,网卡将应用多次写入的数据发送到网络上 ,这将会发生粘包
    • 当TCP保文长度 - TCP头部长度 > MSS(最大报文长度) 的时候将发生拆包
    • 接收方法不及时读取套接字缓冲区数据,这接会发生粘包

如何获取完整应用数据报文(四种方式)?

  • 使用带消息头的协议,头部写入包长度,然后再读取包内容
  • 设置定长消息,每次读取定长内容,长度不够时空位补固定字符
  • 设置消息边界,服务端从网络流中按消息边界分离出消息内容,一般使用\n
  • 更为复杂的协议,如 json、protobuf

OSI七层网络协议



经典协议与数据包

  • TCP段进行拆包时,是根据里面定义的起点与终点进行的

TCP

名词 解释
以太网标头 MAC地址
IP标头 ip 和port
TCP标头 TCP 传输的类型和数据包的长度
应用层数据包 实际数据包

Http 协议

Http

Websocket 协议

Websocket

  • 首先使用http协议完成一个连接(客户端发送一个请求,然后将协议升级成Websocket),响应 101 Switching Protocols 切换协议,升级成 Websocket

Websocket Data 协议

WebsocketData

名词 解释
FIN 标识是不是最后一条数据包
RSV1或2或3 一般是0,表示是不是有拓展协议
opcode 数据包的类型
MASK 是不是经过源码处理
Payload len 数据包大小
物理层概述

信道

  1. 信道是往一个方向传送信息的媒体,一条通信电路包含一个接收信道 和 一个发送信道

单工通信信道

  • 只能一个方向通信,没有反方向反馈的信道,如有线电视、无线电收音机等

半双工通信信道

  • 双方都可以发送和接收信息,但是不能双方同时发送,也不能同时接收

全双工通信信道

  • 双方都可以同时发送与接收信息

分用-复用技术

  • 频分复用
  • 时分复用
  • 波分复用
  • 码分复用

数据链路层概述

  • 什么是封装成帧?透明传输?差错监测?

封装成帧

  • "帧" 是数据链路层数据的基本单位
  • 发送端在网络层的一段数据(数据包)前后添加特定标记形成 "帧",帧首部和尾部控制字符(特定比特流)如下:
    • 首部控制自符:SOH: 00000001
    • 尾部控制字符:EOT: 00000100
  • 接收端根据前后特定标记识别出"帧"

透明传输

  • 当帧的数据报中出现尾部(首部)控制字符时,会在控制字符前添加转义字符

差错检测

  • 物理层只管传输比特流,无法控制是否出错,数据链路层负责起差错检测 的工作

  • 检测机制

    • 奇偶检验码:传输前将一个字节中的8位加起来,若为偶数,则校验码为1,若为奇数,则校验码为0 ,服务端的数据链路层进行同样的运算,若校验码与客户端不同,则数据出错

      • 不足:若一组数据中,同时出错两位,奇偶校验码检测不到错误
    • 循环冗余校验码 CRC:一种根据传输或保存的数据而产生固定位数校验码 的方法,检测 数据传输或者保存后可能出现的错误,生成的数字计算出来并且附加到数据后面

MTU(Maximum Transmission Unit)

  • 数据链路层的数据帧长度受 MTU 限制
  • 以太网MTU一般为1500字节,数据桢过大或过小都会影响传输的效率
    • 数据帧的大小直接会影响总时延(发送时延+排队时延+传播时延+处理时延)

路径 MTU

  • 木桶效应,路径 MTU 由链路中MTU 的最小值决定

以太网协议

  • 以太网(Ethernet)是一种使用广泛的局域网技术 ,是一种应用于数据链路层的协议,使用以太网可以完成相邻设备的数据帧传输
目的地址 源地址 类型 帧数据 CRC
6 6 2 46-1500 4

数据由路由器发送至服务端过程

  1. 路由器MAC地址表(数据链路层中)中有目的地记录

    • 客户端通过网卡发出数据帧
    • 数据帧到达路由器,路由器取出前6字节 ,目的地址
    • 路由器匹配 MAC 地址表,找到对应的网络接口
    • 路由器往该网络接口发送数据帧
  2. 路由器MAC地址表中没有记录

    • 路由器检查 MAC 地址表,发现没有目的地信息
    • 路由器将广播 请求的数据包到 除A以外的端口
    • 路由器将收到来自 目的地址的回应,然后记录下地址
    • 路由器往该网络接口发送数据帧

数据包跨设备传输(数据链路层无法解决,需要网络层)


网络层概述

虚拟互联网络

  • IP 协议使得复杂的实际网络变为一个虚拟互联(解决以太网协议只能局域网传输的缺点) 的网络
  • IP 协议 使得网络层可以屏蔽底层细节而专注网络层的数据转发
  • IP 协议解决了在虚拟网络中数据报传输路径的问题 ,使用者不需要去关注
  • IP 可以对TCP 网络包分片,但效率低

IP 协议

  • IP 地址长度为32位,长分成4个8位,用点分十进制 来表示
  • IP 数据报 = IP首部 + 数据部分,IP 首部(大于20字节,小于60字节) = 固定部分(前5行,每行4个字节,共20字节) + 可选字段
  • 用于传输真实数据

IP 协议

  1. 第一个4字节(第一行,版本和长度)

    • 版本 :指IP协议的版本,通信双方的版本必须一致,当前主流版本是4,即IPv4,也有IPv6
    • 首部长度 :用与标识首部的长度,单位为4个字节,IP首部最大长度为60字节(2^4 - 1 ) * 4 ,但一般只推荐使用20字节的固定长度
    • 服务类型 :8位,用于标识IP包的优先级,但现在并未使用
    • 总长度 :占16位,最大数值为655352^16-1 ,表示的是IP数据报总长度(IP首部+IP数据)
  2. 第二个4字节(第二行,分片相关)

    • 标识:16位;用于标识IP数据报,如果因为数据链路层帧数据段长度限制(也就是MTU,支持的最大传输单元),IP数据报需要进行分片发送,则每个分片的IP数据报标识都是一致的。
    • 标志:3位,但目前只有2位有意义;最低位为MF,MF=1代表后面还有分片的数据报,MF=0代表当前数据报已是最后的数据报。次低位为DF,DF=1代表不能分片,DF=0代表可以分片。
    • 片偏移:13位;代表某个分片在原始数据中的相对位置。如果IP报文长度比MTU还长会进行分片拆分,拆分后偏移量即当前数据帧保存的是第几个偏移的IP数据
  3. 第三个4字节(第三行,报文寿命,校验以及上层传输层协议)

    • TTL:占8位,由发送主机设置 ,表明IP数据报文在网络中的寿命,(也可以说是经过路由器的个数)每经过一个设备,TTL 减1,当TTL=0时,网络设备必须丢弃该报文。TTL解决了当IP报文在网络中找不到终点的时候,避免了IP数据在网络中无限循环和收发,消耗带宽
    • 首部校验和:用于验证数据完整性,计算方法为,首先将校验和位置零,然后将每16位二进制反码求和即为校验和,最后写入校验和位置。
    • 协议:代表上层传输层协议的类型,1代表ICMP,2代表IGMP,6代表TCP,17代表UDP。
    • 观察下图可知,IP协议还可以继续封装IP协议
      IP协议字段值
  4. 第四个4字节(第四行)

    • 源IP地址:发送IP数据报的地址
  5. 第五个4字节(第五行)

    • 目的IP地址:接收数据报的地址

MTU 与 MSS

  • MTU:一个网络包的最大长度,以太网中一般为 1500 字节;

  • MSS:除去 IP 和 TCP 头部之后,一个网络包所能容纳的 TCP 数据的最大长度;

    • 如果TCP 的整个报文(头部 + 数据)交给 IP 层进行分片,会有什么异常呢?

    当 IP 层有一个超过 MTU 大小的数据(TCP 头部 + TCP 数据)要发送,那么 IP 层就要进行分片,把数据分片成若干片,保证每一个分片都小于 MTU。把一份 IP 数据报进行分片以后,由目标主机的 IP 层来进行重新组装后,在交给上一层 TCP 传输层。

    这看起来井然有序,但这存在隐患的,那么当如果一个 IP 分片丢失,整个 IP 报文的所有分片都得重传。

    因为 IP 层本身没有超时重传机制,它由传输层的 TCP 来负责超时和重传。

    当接收方发现 TCP 报文(头部 + 数据)的某一片丢失后,则不会响应 ACK 给对方,那么发送方的 TCP 在超时后,就会重发「整个 TCP 报文(头部 + 数据)」。

    因此,可以得知由 IP 层进行分片传输,是非常没有效率的。

    所以,为了达到最佳的传输效能 TCP 协议在建立连接的时候通常要协商双方的 MSS 值,当 TCP 层发现数据超过 MSS 时,则就先会进行分片,当然由它形成的 IP 包的长度也就不会大于 MTU ,自然也就不用 IP 分片了。

IP 协议的转发流程

  1. IP 路由表:在网络层中 ,记录源IP 与 下一跳的IP,可类比数据链路层的MAC地址表

IP 路由表

  1. IP 协议的转发流程
    • 数据帧每一跳(hop)的MAC地址都在变化
    • IP 数据报每一跳的IP地址始终不变


ARP 与 RARP 协议

  • (R)ARP 协议是 TCP/IP 协议栈里面基础的协议,ARP 和 RARP 的操作对程序员是透明的,理解该协议有助于理解网络分层的细节
  • ARP:地址解析协议,将网络层IP32位地址通过ARP协议转换成数据链路层MAC48位地址
  • ARP 缓存表:缓存了IP地址到硬件地址(MAC)之间的映射关系。ARP 缓存表中的记录是有期限的(对于一台电脑,网卡的MAC地址不会变,但是IP是随网络变化)
  • RARP 协议:将MAC地址转换为IP地址

IP与MAC在ARP缓存表中的映射关系
ARP 与 RARP协议

子网划分

  • IP 地址 由 网络号主机号 组成

  • 127.0.0.1:通常被称为本地回环地址(Loopback Address),不属于任何一个有类别地址类。它代表设备的本地虚拟接口,所以默认被看作是永远不会宕掉的接口。在Windows操作系统中也有相似的定义,所有通常在安装网卡前就可以ping通这个本地回环地址。一般都会用来检查本地网络协议、基本数据接口等是否正常的。

  • 子网划分的原因:当使用A类或B类网络号时,主机数量分别为2^16-2 和 2^8-2 ,为了更充分利用不同分类的主机数量,所以在从网络号后开始,划分子网

  • 快速判断某个IP所属的网络号:利用子网掩码 与 当前 IP 地址进行与运算

  • 子网掩码:

    • 子网掩码 和 IP 地址一样,都是32位
    • 子网掩码 由连续的1 和连续的 0 组成
    • 某一个子网的子网掩码具备网络号位数个连续的1

子网掩码划分

通过IP与子网掩码算网络号

无分类编址CIDR

  • 定义

    • CIDR 中没有 A、B、C类网络号和子网划分的概念
    • CIDR 将 网络前缀 相同的IP地址称为一个 CIDR地址块
  • 背景

    • 现阶段更多使用 CIDR 方式,相比原来子网划分更加灵活

      无分类编址CIDR_斜线记法划分主机号

      无分类编址CIDR

网络地址转换 NAT 技术
背景
  1. IPv4 最多只有40+亿个IP地址
  2. 早期IP地址的不合理规划导致IP号浪费
定义
  • 网络地址转换(Network Address Translation)
  • NAT 技术用于 多个主机 通过 一个公有IP 访问互联网的私有网络中
  • NAT 技术是发生在本地内网设备中的
  • NAT 减缓了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 (支持万数量级设备)

网络地址转换NAT 技术

ICMP 协议
概念
  • ICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用,当路由器在处理一个数据包的过程中发生了意外,可以通过ICMP向数据包的源端报告有关事件

  • 封装在IP 数据报中的数据中,通过IP协议进行数据传输,主要是进行网络中的错误以及异常报告

  1. 差错报文

    • 网络不可达:网络故障
    • 主机不可达:目的主机是关机的
    • 对网络重定向:传输到某一个网络的数据可能需要重定向,不能走这个网络
    • 对主机重定向:到达的主机不能处理,所以重定向
    • 坏的IP头:可能是头部有问题,也可能是数据有问题
  2. 询问报文

    • 回送(Echo)请求或应答:发送一个空报文,验证网络是否为空
    • 时间戳(Timestamp)请求或应答:需要对时间进行同步时,可能会发送此报文
ICMP 协议的应用
  • 它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息

ping 命令使用 ICMP 回送请求和应答报文

  • 在网络可达性测试中使用的分组网间探测命令 ping 能产生 ICMP 回送请求和应答报文。目的主机收到 ICMP 回送请求报文后立刻回送应答报文,若源主机能收到 ICMP 回送应答报文,则说明到达该主机的网络正常。

  • Ping 排查网络故障步骤如下:

    • 第一步。Ping 回环地址127.0.0.1,若得不到返回,说明计算机协议栈出问题,需要重新装系统或协议栈
    • 第二步。Ping 网关地址,即路由器地址。比如:Ping 192.168.0.1,如果有返回,则本机到路由器地址是通的
    • 第三步。Ping 远端地址,比如:Ping www.baidu.com,若不通,则路由器到公网ISP不通,则需要联系电信或移动排查问题

路由分析诊断程序 tracert 使用了 ICMP时间超过报文

  • tracert 命令主要用来显示数据包到达目的主机所经过的路径。通过执行一个 tracert 到对方主机的命令,返回数据包到达目的主机所经历的路径详细信息,并显示每个路径所消耗的时间
网络层的路由

自治系统

  • 一个自治系统(AS) 是处于一个管理机构下的网络设备群
  • AS内部网络自行管理,AS对外提供一个或者多个出入口

自治系统 层次划分

  • AS内部路由的协议称为:内部网关协议(RIP、OSPF)
  • AS外部路由的协议称为:外部网关协议(BGP)
RIP 协议

RIP 协议的过程

  1. 路由器初始化路由信息(两个向量)
  2. 对相邻路由器 X 发过来的信息,对信息的内容进行修改(下一跳的地址设置为X,所有距离加1)
    • 检索本地路由,将信息中新的路由插入到路由表里面
    • 检索本地路由,对于下一跳为X的,更新为修改后的信息
    • 检索本地路由,对比相同目的距离,如果新信息的距离更小,则更新本地路由表
  3. 如果3分钟没有收到相邻的路由信息,则把相邻路由设置为不可达(16跳)

传输层概述

  • 使用端口(Port)来标记不同的网络进程
  • 端口(Port)使用16比特位表示(0~65535)
  • 默认端口
FTP HTTP HTTPS DNS TELNET
21 80 443 53 23
UDP协议详解
概念
  1. UDP 是无连接的协议,面向用户数据报的协议
  2. UDP 不能保证可靠的交付数据
  3. UDP 是面向报文传输的(从应用层传输过来的数据,UDP不会做任何处理)
  4. UDP 没有拥塞控制,无论是否拥塞,是否能收到都会直接发出去
  5. UDP 首部开销小,首部简单
TCP 协议详解
概念
  1. TCP 协议是面向连接的,可靠的,面向字节流(合并拆分数据报)的协议
  2. TCP 协议提供全双工的通信
可靠性相关协议

停止等待协议

  1. 超时重传:发送方发送消息,接收方未收到;接收方发送确认消息,发送方未收到

    • 超时定时器
  2. 停止等待协议对信道的利用效率不高 ,它是最简单的可靠传输协议

连续协议

  • ARQ(Automatic Repeat request):自动重传请求

  • 核心:滑动窗口 与 累计确认

    • 滑动窗口:窗口以字节为单位。确认已收到,则窗口前移
    • 累计确认:一次发送了1 ~ 6个报文,若在某一时刻,收到了第5个报文的确认消息,则可以确认接收方已经收到了前5个报文,所以可以同时向前移动5个窗格

TCP 协议的选择重传

  1. TCP 报文一次传输多个字节,发生数据丢失时,丢失的是一段数据报文(多个字节流),TCP 协议中的选项字段 记录了当前TCP报文的边界信息 ,当报文丢失时,会根据这个边界信息重传范围内的TCP报文 ,而不是某个确认序号的报文
TCP 流量控制
  1. 流量控制指,接收方希望发送方不要发送数据太快
  2. 通过滑动窗口协议实现
  3. 坚持定时器:当接收方剩余窗口为0时,发送方启用,用来定时询问是否能发送数据给接收方

TCP 流量控制

TCP 协议的拥塞控制

慢启动算法

  1. 由小到大逐渐增加发送数据量,呈指数增长,直至慢启动阈值(ssthresh)

拥塞避免算法

  1. 数据量到达阈值后,进入拥塞避免阶段
  2. 维护一个拥塞窗口变量,只要网络不拥塞(发送数据不超时,不考虑网络故障),就试探着增大拥塞窗口,窗口+1 增长

应用层概述

  1. 作用:定义应用间的通信规则

应用层概述

DNS
  1. 作用:将域名转换为IP,然后通信,DNS是应用UDP协议的应用层协议
  2. 通信:解析域名时,首先查看本地域名服务器,查找对应IP;若是没有找到,则从根域名服务器开始迭代

DNS域名划分

DHCP
  1. DHCP:Dynamic Host Configuration Protocol,动态主机设置协议
  2. DHCP:是一个局域网协议
  3. DHCP:是应用UDP 协议的应用层协议
  4. 作用:为临时加入局域网的设备提供IP地址

DHCP协议详解

HTTP

HTTP协议详解

HTTPS


相关概念

传输速率

  1. 为什么电信拉非 100M 光纤,测试峰值速度只有 12M 每秒?
    • 网络常用单位为Mbps速率:bps=bit/s
    • 100M/s = 100Mbps = 100Mbit/s
    • 100Mbit/s = (100/8)MB/s = 12.5 MB/s

时延

  1. 发送时延
    • 发送时延= 数据长度(bit) / 发送速率(bit/s)
    • 发送速率 受限于计算机网卡,由计算机硬件决定的 ,如千兆网卡,百兆网卡
  2. 传播时延
    • 传播时延= 传输路径距离 / 传播速率(bit/s)
    • 传输路径距离指光缆距离,传播速率受限与传输介质 ,如介质为铜线或者光纤,不同介质传播速率不一样
  3. 排队时延
    • 数据包在网络设备中等待被处理的时间
  4. 处理时延
    • 数据包到达设备或者目的机器被处理所需要的时间

往返时间 RTT

  • RTT(Route-Trip Time) 是评估网络质量的一项重要指标,表示的是数据报文在端到端通信中的来回一次的时间

传输方式

  • 分组

    • 端系统和目的地间通过通信链路与分组交换机 进行数据报文 交换来通信,报文是由数据块分组构成
  • 分组交换

    • 存储转发传输:交换机在转发分组的第一个比特前的前提条件,必须接受到整个分组,这种等待转发到下一个路由耗费的时间叫存储时延
    • 排队时延和分组丢失:交换机和多条通信链路通信时,该交换机会有一个输出缓存输出队列 与之对应,新到达的分组发现路由器正在接收其他分组时,就会在输出队列中进行排队 ,这种等待分组转发耗费时间为***排队时延
    • 丢包:路由器输出队列是有限制的,当多条链路同时发送分组导致输出缓存无法接受超额的分组后,这些分组会丢失(到达的分组或已排队的分组将会被丢弃),在实际情况中,通过限制端系统之间的吞吐量 来控制数据丢失。
posted @ 2020-11-30 21:59  雪梨加冰  阅读(317)  评论(0编辑  收藏  举报