网络基础笔记
参考以下内容
《图解HTTP》
《图解TCP/IP》
《计算机网络:自顶向下方法》
慕课网
慕课网
😃 引言:浏览器输入URL后发生了什么
-
获取本机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 地址返回给本机。
-
获取域名的IP地址
- 接下来一切都准备好了,可以开始讲键入URL之后的事情了:首先我们要访问 DNS 服务器获得网站对应的 IP 地址,这时我们需要把 DNS 报文封装到一个 UDP 报文中,进而封装到网络层的数据包中,填上源 IP,目的 DNS 服务器 IP 地址。接着封装链路层,填上网卡 MAC 地址和网关路由器 MAC 地址。接下来这个 DNS 请求报文就会经网关路由器发送给 DNS 服务器。
- 我们假设 DNS 服务器缓存有该网站的 IP 地址,(如果没有缓存会进一步向更高级的DNS服务器索要IP地址)。接着 DNS 服务器会返回该域名的 IP 地址。
-
建立连接,通信,断开连接
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 大小,不只是依赖缓冲区大小确定窗口大小
拥塞控制与流量控制的区别
- 流量控制考虑点对点的通信量控制
- 拥塞控制考虑整个网络,是全局性的考虑
TCP 拥塞控制分为两个部分
-
慢开始和拥塞避免
- 慢启动。TCP 连接建立后
拥塞窗口增加,慢慢提速(指数递增),试探网络承受能力,避免扰乱网络通道的秩序
- 拥塞避免。拥塞窗口到达
初始阈值后,加法增加拥塞窗口,直至到最大拥塞窗口
,缓冲区已满,还有ACK请求的话,数据包会被丢弃 - 当遇到网络拥塞时 ,
初始阈值数改为最大拥塞窗口的一半,然后拥塞窗口数降为0,重新开始 慢启动 过程
- 由于再次慢启动时,拥塞窗口数是由最大阈值减至0然后开始恢复,这会极大降低数据包传递速率
- 慢启动。TCP 连接建立后
-
快速重传和快速恢复
- 快重传。经过慢启动到达最大拥塞窗口后,
收到3个重复的ACK请求则执行快重传,将丢失的数据包重新发送一遍
- 快恢复。将拥塞窗口数降低为拥塞窗口最大阈值一半,直到把所有的包都重新发送完毕后,退出快速恢复阶段,进入拥塞避免阶段
- 快重传。经过慢启动到达最大拥塞窗口后,
为什么会出现粘包/拆包
-
通俗讲
- 粘包,发送端将多个报文写入
tcp发送缓冲区中
,与服务端通过TCP连接
,在这个阶段,不同的请求可能被合并为一个请求(粘包)然后通过 socket通信 将数据发送到服务端tcp 接收缓冲区中
- 拆包,
TCP连接
中,可能会将一个请求拆分为多个请求数据包发送到服务端tcp发送缓冲区中
- 粘包,发送端将多个报文写入
-
理论
- 应用程序写入的数据大于套接字缓冲区大小,这将会发生
拆包
- 应用程序写入数据小于套接字缓冲区大小,
网卡将应用多次写入的数据发送到网络上
,这将会发生粘包
- 当TCP保文长度 - TCP头部长度 > MSS(最大报文长度) 的时候将发生
拆包
- 接收方法不及时读取套接字缓冲区数据,这接会发生
粘包
- 应用程序写入的数据大于套接字缓冲区大小,这将会发生
如何获取完整应用数据报文(四种方式)?
- 使用带消息头的协议,头部写入包长度,然后再读取包内容
- 设置定长消息,每次读取定长内容,长度不够时空位补固定字符
- 设置消息边界,服务端从网络流中按消息边界分离出消息内容,一般使用
\n
- 更为复杂的协议,如 json、protobuf
OSI七层网络协议
经典协议与数据包
- TCP段进行拆包时,是根据里面定义的起点与终点进行的
名词 | 解释 |
---|---|
以太网标头 | MAC地址 |
IP标头 | ip 和port |
TCP标头 | TCP 传输的类型和数据包的长度 |
应用层数据包 | 实际数据包 |
Http 协议
Websocket 协议
- 首先使用http协议完成一个连接(客户端发送一个请求,然后将协议升级成Websocket),响应
101 Switching Protocols
切换协议,升级成 Websocket
Websocket Data 协议
名词 | 解释 |
---|---|
FIN |
标识是不是最后一条数据包 |
RSV1或2或3 |
一般是0,表示是不是有拓展协议 |
opcode |
数据包的类型 |
MASK |
是不是经过源码处理 |
Payload len |
数据包大小 |
物理层概述
信道
- 信道是往一个方向传送信息的媒体,一条通信电路包含
一个接收信道 和 一个发送信道
单工通信信道
- 只能一个方向通信,没有反方向反馈的信道,如
有线电视、无线电收音机等
半双工通信信道
- 双方都可以发送和接收信息,但是
不能双方同时发送,也不能同时接收
全双工通信信道
- 双方都可以同时发送与接收信息
分用-复用技术
- 频分复用
- 时分复用
- 波分复用
- 码分复用
数据链路层概述
- 什么是封装成帧?透明传输?差错监测?
封装成帧
- "帧" 是数据链路层数据的基本单位
- 发送端在网络层的一段数据(数据包)前后添加特定标记形成 "帧",帧首部和尾部控制字符(特定比特流)如下:
- 首部控制自符:
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 |
数据由路由器发送至服务端过程
-
路由器MAC地址表(数据链路层中)中有目的地记录
- 客户端通过网卡发出数据帧
- 数据帧到达路由器,路由器
取出前6字节
,目的地址 - 路由器匹配 MAC 地址表,找到对应的网络接口
- 路由器往该网络接口发送数据帧
-
路由器MAC地址表中没有记录
- 路由器检查 MAC 地址表,发现没有目的地信息
- 路由器将
广播
请求的数据包到除A以外的端口
- 路由器将收到来自 目的地址的回应,然后记录下地址
- 路由器往该网络接口发送数据帧
数据包跨设备传输(数据链路层无法解决,需要网络层)
网络层概述
虚拟互联网络
- IP 协议使得复杂的实际网络变为一个
虚拟互联(解决以太网协议只能局域网传输的缺点)
的网络 - IP 协议 使得网络层可以屏蔽底层细节而
专注网络层的数据转发
- IP 协议
解决了在虚拟网络中数据报传输路径的问题
,使用者不需要去关注 - IP 可以对TCP 网络包分片,但效率低
IP 协议
- IP 地址长度为32位,长分成4个8位,用
点分十进制
来表示 - IP 数据报 = IP首部 + 数据部分,IP 首部(大于20字节,小于60字节) = 固定部分(前5行,每行4个字节,共20字节) + 可选字段
- 用于传输真实数据
-
第一个4字节(第一行,版本和长度)
版本
:指IP协议的版本,通信双方的版本必须一致,当前主流版本是4,即IPv4,也有IPv6首部长度
:用与标识首部的长度,单位为4个字节,IP首部最大长度为60字节(2^4 - 1 ) * 4
,但一般只推荐使用20字节的固定长度服务类型
:8位,用于标识IP包的优先级,但现在并未使用总长度
:占16位,最大数值为655352^16-1
,表示的是IP数据报总长度(IP首部+IP数据)
-
第二个4字节(第二行,分片相关)
- 标识:16位;用于标识IP数据报,如果因为数据链路层帧数据段长度限制(也就是MTU,支持的最大传输单元),IP数据报需要进行分片发送,则每个分片的IP数据报标识都是一致的。
- 标志:3位,但目前只有2位有意义;最低位为MF,MF=1代表后面还有分片的数据报,MF=0代表当前数据报已是最后的数据报。次低位为DF,DF=1代表不能分片,DF=0代表可以分片。
- 片偏移:13位;代表某个分片在原始数据中的相对位置。如果IP报文长度比MTU还长会进行分片拆分,拆分后偏移量即当前数据帧保存的是第几个偏移的IP数据
-
第三个4字节(第三行,报文寿命,校验以及上层传输层协议)
- TTL:占8位,由
发送主机设置
,表明IP数据报文在网络中的寿命,(也可以说是经过路由器的个数)每经过一个设备,TTL 减1,当TTL=0时,网络设备必须丢弃该报文。TTL解决了当IP报文在网络中找不到终点的时候,避免了IP数据在网络中无限循环和收发,消耗带宽
- 首部校验和:用于验证数据完整性,计算方法为,首先将校验和位置零,然后将每16位二进制反码求和即为校验和,最后写入校验和位置。
- 协议:代表上层传输层协议的类型,1代表ICMP,2代表IGMP,6代表TCP,17代表UDP。
- 观察下图可知,IP协议还可以继续封装IP协议
- TTL:占8位,由
-
第四个4字节(第四行)
- 源IP地址:发送IP数据报的地址
-
第五个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 协议的转发流程
- IP 路由表:在
网络层中
,记录源IP 与 下一跳的IP,可类比数据链路层的MAC地址表
- 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 地址 由
网络号
与主机号
组成
-
127.0.0.1:通常被称为本地回环地址(Loopback Address),不属于任何一个有类别地址类。它代表设备的本地虚拟接口,所以默认被看作是永远不会宕掉的接口。在Windows操作系统中也有相似的定义,所有通常在安装网卡前就可以ping通这个本地回环地址。一般都会用来检查本地网络协议、基本数据接口等是否正常的。
-
子网划分的原因:当使用A类或B类网络号时,主机数量分别为
2^16-2 和 2^8-2
,为了更充分利用不同分类的主机数量,所以在从网络号后开始,划分子网
-
快速判断某个IP所属的网络号:利用子网掩码 与 当前 IP 地址进行
与运算
-
子网掩码:
- 子网掩码 和 IP 地址一样,都是32位
- 子网掩码 由连续的1 和连续的 0 组成
- 某一个子网的子网掩码具备网络号位数个连续的1
无分类编址CIDR
-
定义
- CIDR 中没有 A、B、C类网络号和子网划分的概念
- CIDR 将
网络前缀
相同的IP地址称为一个CIDR地址块
-
背景
-
现阶段更多使用 CIDR 方式,相比原来子网划分更加灵活
-
网络地址转换 NAT 技术
背景
- IPv4 最多只有40+亿个IP地址
- 早期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协议进行数据传输,主要是进行网络中的错误以及异常报告
-
差错报文
- 网络不可达:网络故障
- 主机不可达:目的主机是关机的
- 对网络重定向:传输到某一个网络的数据可能需要重定向,不能走这个网络
- 对主机重定向:到达的主机不能处理,所以重定向
- 坏的IP头:可能是头部有问题,也可能是数据有问题
-
询问报文
- 回送(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 协议的过程
- 路由器初始化路由信息(两个向量)
- 对相邻路由器 X 发过来的信息,对信息的内容进行修改(下一跳的地址设置为X,所有距离加1)
- 检索本地路由,将信息中新的路由插入到路由表里面
- 检索本地路由,对于下一跳为X的,更新为修改后的信息
- 检索本地路由,对比相同目的距离,如果新信息的距离更小,则更新本地路由表
- 如果3分钟没有收到相邻的路由信息,则把相邻路由设置为不可达(16跳)
传输层概述
- 使用端口(Port)来标记不同的网络进程
- 端口(Port)使用16比特位表示(0~65535)
- 默认端口
FTP | HTTP | HTTPS | DNS | TELNET |
---|---|---|---|---|
21 | 80 | 443 | 53 | 23 |
UDP协议详解
概念
- UDP 是无连接的协议,面向用户数据报的协议
- UDP 不能保证可靠的交付数据
- UDP 是面向报文传输的(从应用层传输过来的数据,UDP不会做任何处理)
- UDP 没有拥塞控制,无论是否拥塞,是否能收到都会直接发出去
- UDP 首部开销小,首部简单
TCP 协议详解
概念
- TCP 协议是面向连接的,可靠的,面向字节流(合并拆分数据报)的协议
- TCP 协议提供全双工的通信
可靠性相关协议
停止等待协议
-
超时重传:发送方发送消息,接收方未收到;接收方发送确认消息,发送方未收到
- 超时定时器
-
停止等待协议对
信道的利用效率不高
,它是最简单的可靠传输协议
连续协议
-
ARQ(Automatic Repeat request):自动重传请求
-
核心:滑动窗口 与 累计确认
- 滑动窗口:窗口以字节为单位。确认已收到,则窗口前移
- 累计确认:一次发送了1 ~ 6个报文,若在某一时刻,收到了第5个报文的确认消息,则可以确认接收方已经收到了前5个报文,所以可以同时向前移动5个窗格
TCP 协议的选择重传
- TCP 报文一次传输多个字节,发生数据丢失时,丢失的是一段数据报文(多个字节流),TCP 协议中的
选项字段
记录了当前TCP报文的边界信息
,当报文丢失时,会根据这个边界信息重传范围内的TCP报文
,而不是某个确认序号的报文
TCP 流量控制
- 流量控制指,接收方
希望发送方不要发送数据太快
- 通过滑动窗口协议实现
- 坚持定时器:当接收方剩余窗口为0时,发送方启用,用来定时询问是否能发送数据给接收方
TCP 协议的拥塞控制
慢启动算法
- 由小到大逐渐增加发送数据量,呈指数增长,直至
慢启动阈值(ssthresh)
拥塞避免算法
- 数据量到达阈值后,进入拥塞避免阶段
- 维护一个拥塞窗口变量,只要网络不拥塞(发送数据不超时,不考虑网络故障),就试探着增大拥塞窗口,窗口+1 增长
应用层概述
- 作用:定义应用间的通信规则
DNS
- 作用:将域名转换为IP,然后通信,DNS是应用UDP协议的应用层协议
- 通信:解析域名时,首先查看本地域名服务器,查找对应IP;若是没有找到,则从根域名服务器开始迭代
DHCP
- DHCP:Dynamic Host Configuration Protocol,动态主机设置协议
- DHCP:是一个局域网协议
- DHCP:是应用UDP 协议的应用层协议
- 作用:为临时加入局域网的设备提供IP地址
HTTP
HTTPS
相关概念
传输速率
- 为什么电信拉非 100M 光纤,测试峰值速度只有 12M 每秒?
- 网络常用单位为
Mbps
,速率:bps=bit/s - 100M/s = 100Mbps = 100Mbit/s
- 100Mbit/s = (100/8)MB/s = 12.5 MB/s
- 网络常用单位为
时延
- 发送时延
- 发送时延= 数据长度(bit) / 发送速率(bit/s)
- 发送速率
受限于计算机网卡,由计算机硬件决定的
,如千兆网卡,百兆网卡
- 传播时延
- 传播时延= 传输路径距离 / 传播速率(bit/s)
- 传输路径距离指光缆距离,传播速率
受限与传输介质
,如介质为铜线或者光纤,不同介质传播速率不一样
- 排队时延
- 数据包在网络设备中等待被处理的时间
- 处理时延
- 数据包到达设备或者目的机器被处理所需要的时间
往返时间 RTT
- RTT(Route-Trip Time) 是评估网络质量的一项重要指标,表示的是数据报文在端到端通信中的来回一次的时间
传输方式
-
分组
- 端系统和目的地间通过
通信链路与分组交换机
进行数据报文
交换来通信,报文是由数据块分组构成
- 端系统和目的地间通过
-
分组交换
- 存储转发传输:交换机在转发分组的第一个比特前的前提条件,必须接受到整个分组,这种等待转发到下一个路由耗费的时间叫
存储时延
- 排队时延和分组丢失:交换机和多条通信链路通信时,该交换机会有一个
输出缓存
与输出队列
与之对应,新到达的分组发现路由器正在接收其他分组时,就会在输出队列中进行排队 ,这种等待分组转发耗费时间为***排队时延
丢包
:路由器输出队列是有限制的,当多条链路同时发送分组导致输出缓存无法接受超额的分组后,这些分组会丢失(到达的分组或已排队的分组将会被丢弃),在实际情况中,通过限制端系统之间的吞吐量
来控制数据丢失。
- 存储转发传输:交换机在转发分组的第一个比特前的前提条件,必须接受到整个分组,这种等待转发到下一个路由耗费的时间叫