Internet原理与技术1(IP地址、IP数据报、ARP协议、ICMP协议、子网编址、无分类编址与CIDR、IP分组的转发)
传输层的作用是在通信子网提供的服务的基础上,为上层应
《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》
【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享
用层提供有效的、合理的传输服务。使高层用户在相互通信时不必关心通信子网的实现细节和具体服务质量。
知识要点:
-
掌握端口的基本概念和应用
-
理解无连接的传输层协议UDP
UDP特点、UDP格式和校验方法
- 掌握面向连接的传输层协议TCP
TCP特点、首部格式、连接管理、可靠传输、流量控制和拥塞控制机制
===========================================================================
(1)传输层的复用和分用
(2)常用应用进程默认的端口
(3)端口:应用层进程的标识
端口指网络设备内部与外界通交流的出口。
端口作用:
-
数据发送时向下交付给传输层
-
接收数据时向上交付给应用层
端口分类:
- 熟知端口
其数值一般为 0~1023。这些端口号是 TCP/IP 体系确定并公布的。
- 一般端口
数值范围是 1024~ 65535。用来随时分配给请求通信的客户进程。
===============================================================================
-
f0 1f af 67 52 a7
:目的MAC地址 -
e4 d3 32 0e 41 66
:源MAC地址 -
08 00
:类型 -
45
:IPv4数据报首部,IP首部20个字节
00
-
00 30
:IP数据报总长度48个字节(包括IP数据报首部20个字节)
这里开始是 UDP 协议格式:
-
11
:传输层UDP协议 -
27 a8 d4 d4
:源IP地址 -
c0 a8 01 65
:目的IP地址 -
73 a6 11 72 00 1c
:UDP首部(8字节) -
73 a6
:源端口是29606 -
11 72
:目的端口是4466 -
00 1c
:UDP长度 -
4a 73
:校验和 -
4b 55 00 01 24 00 00 08 00 00 00 08 00 00 01 1a 00 00 01 20
:UDP数据(20字节)
计算校验和:
-
UDP 不保证可靠交付
-
UDP 比 TCP 的开销要小很多
-
实时应用(如IP电话、实时视频会议等),以及广播或者多播,则必须使用 UDP 协议。
UDP实例:
==============================================================================
标志位的含义:
Wireshark 软件中查看 TCP 报文:
建立连接 - 三次握手
释放连接 - 四次握手
序号确认机制
若收到的报文段无差错,只是未按序号,那么应如何处理?
-
将不按序的报文段丢弃;
-
先将其暂存于接收缓冲区内,待所缺序号的报文段收齐后再一起上交应用层。
超时重传机制
超时重传时间RTO公式:RTO = RTT + 4 × RTTD
往返时延RTT公式:
-
RTTnew = RTTsample (第一次测量得到的RTT样本值)
-
RTTnew = α × RTTold + (l - α) × RTTsample(第二次以后的测量)
【例题】RTT 估算
如果 TCP 来回路程时间 RTT 的当前值是 32ms,随后应答在 40ms 时候到来,如果取 α=7/8,那么新的 RTT 估算值是多少。
答:根据上面的公式,RTTnew = α × RTTold + (l - α) × RTTsample,可以计算出 RTTnew = 40 * 7/8 + 32 * 1/8 = 33。
定时器
-
重传定时器
-
持续定时器、
-
保活定时器
-
时间等待计时器
采用大小可变滑动窗口的方式进行流量控制;
拥塞控制的基本功能是避免网络发生拥塞,或者缓解已经发生的拥塞
-
为了进行有效的拥塞控制,需要通过拥塞窗口cwnd(congestion window)来进行衡量网络的拥塞程度
-
发送窗口的取值依据拥塞窗口和接收窗口中的较小的值,即 Min[rwnd,cwnd]
-
rwnd 在流量控制中已阐述,在下文中将只关注 cwnd。
拥塞控制的四种方式: