- 熟知端口
其数值一般为 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。
拥塞控制的四种方式:
-
慢启动
-
拥塞避免
-
快速重传
-
快速恢复
解:
(1)IP数据报中,哪几个是由主机H发送的?
答案:1、3、4 由主机发出,2、5、6 由服务器发出。
(2)根据默认端口,请问该南京邮电大学服务器开通的是什么应用服务?
答案:根据 协议 06
可知是 TCP,目的端口 00 50
(80端口)默认 HTTP 服务。
(3)前三个IP数据报的内容完成了TCP协议的什么功能?
答案:完成了 TCP 的三次握手。
(4)题表中的IP数据报,主机H和服务器分别发送了应用层数据字节数是多少?如果第 7 个报文段是对第 6 个报文段的确认,那确认号应该是多少?
答案:主机H 发送了 536 字节,服务器S 发送了 491 字节。
(5)TCP报文段的窗口值有什么变化?表示什么意思?
========================================================================
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
更多:Java进阶核心知识集
包含:JVM,JAVA集合,网络,JAVA多线程并发,JAVA基础,Spring原理,微服务,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存等等
高效学习视频
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
g" alt=“img” style=“zoom: 33%;” />
更多:Java进阶核心知识集
包含:JVM,JAVA集合,网络,JAVA多线程并发,JAVA基础,Spring原理,微服务,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存等等
[外链图片转存中…(img-9jLWAtQg-1713553812965)]
高效学习视频
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!