当前位置:网站首页>面试重点——传输层的TCP协议
面试重点——传输层的TCP协议
2022-07-27 14:35:00 【瘦皮猴117】
目录
TCP概念
TCP:Transmission Control Protocol
目标:process to process 进程到进程
保障可靠性,但不是保证安全性
什么是可靠性?
1. TCP会尽自己所能,尽量将数据发送给对方;但并不能保证100%可以发给对方。2. TCP会在数据发送不给对方的情况下,给应用层一个错误通知。
应用层发送数据,要么发送给对方了,要么会知道数据丢失了。3. TCP可以保障接收方(应用层)严格按照发送时的数据顺序接收。
4. TCP保障数据不会出现无意间地损坏(UDP也做到这一点了)。
5. TCP尽可能的在维护网络质量。
TCP提供的机制(保障可靠性)
关于编号
TCP Segment的两种角色
关于重传
出现了丢包,如何进行重传?
快重传
当某一段报文段丢失之后,发送端会一直收到 1001 这样的ACK,就像是在提醒发送端 "我想
要的是 1001" 一样;
如果发送端主机连续三次收到了同样一个 "1001" 这样的应答,就会将对应的数据 1001 -
2000 重新发送;
这个时候接收端收到了 1001 之后,再次返回的ACK就是7001了(因为2001 - 7000)接收端
其实之前就已经收到了,被放到了接收端操作系统内核的接收缓冲区中;
这种机制被称为 "高速重发控制"(也叫 "快重传")。
超时时间
TCP的Header
TCP的缓冲区
TCP的连接
TCP连接(Connection)的概念,以及连接管理
(一条连接的一生 = 一开始的创建+正式使用+销毁)
三次握手
syn ack标志位
完整的三次握手
Wireshark抓包工具,演示TCP三次握手
4位头部长度(header length)
由于首部可能含有可选项内容,因此TCP报头的长度是不确定的,报头不包含任何任选字段则长度为20字节,4位首部长度字段所能表示的最大值为1111,转化为10进制为15,15*4= 60,故报头最大长度为60字节。首部长度也叫数据偏移,是因为首部长度实际上指示了数据区在报文段中的起始偏移值。
三次握手状态转移
三次握手小结
四次挥手阶段
标志位:(FIN) Final/Finish
主动挥手方:主动断开连接的一方
被动挥手方:被动断开连接的一方
同时关闭:双方都是主动挥手方
主动挥手方一定是主动连接方?否!(主动提分手的不一定是当时主动追求的人)
四次挥手状态变化
![]()
CLOSE_WAIT状态
TIME_WAIT状态
为何保留?
为何保留的示例
大量TIME_WAIT出现的现象
四次挥手小结
TCP中的异常情况
情况一
情况二
情况三
情况四
OS是硬件还是软件?
OS是软件。
软件就是程序,就是数据+指令就是要运行在CPU上指令,以及这些指令要处理的数据。
解决死链接的机制
通过命令行命令可以查看主机上的TCP连接情况(了解)
流量控制
流量控制
1. 需要知道对方的接收能力,最好是实时的感知到。
2. 拿到对方的接收能力->发送流量
3. 通过什么机制来控制发送量
1. 知道对象的接收能力
2. 拿到对方的接收能力
3. 控制发送量——滑动窗口机制
着重说明情况2
着重说明情况2
滑动窗口机制
拥塞控制
面向字节流的原因
面向字节流带来的粘包问题
TCP小结
UDP与TCP对比
边栏推荐
- 修改 Spark 支持远程访问OSS文件
- Spark 3.0 adaptive execution code implementation and data skew optimization
- JUC(JMM、Volatile)
- Inside router of network equipment hard core technology (10) disassembly of Cisco asr9900 (4)
- Unity3d learning note 10 - texture array
- Network equipment hard core technology insider router Chapter 7 tompkinson roaming the network world (Part 2)
- $router.back(-1)
- 初识结构体
- 传美国政府将向部分美企发放对华为销售许可证!
- C语言中交换两数的方法
猜你喜欢

Dan bin Investment Summit: on the importance of asset management!

QT (five) meta object properties

IJCAI 2022 outstanding papers were published, and 298 Chinese mainland authors won the first place in two items

Spark 本地程序启动缓慢问题排查

QT (IV) mixed development using code and UI files

Hyperlink parsing in MD: parsing `this$ Set() `, ` $` should be preceded by a space or escape character`\`

【剑指offer】面试题50:第一个只出现一次的字符——哈希表查找

Spark TroubleShooting整理

学习Parquet文件格式

折半查找
随机推荐
使用双星号代替Math.pow()
Troubleshooting the slow startup of spark local programs
[正则表达式] 匹配开头和结尾
Leetcode 1143. dynamic programming of the longest common subsequence /medium
QT (five) meta object properties
Spark 3.0 测试与使用
MySQL interview 40 consecutive questions, interviewer, if you continue to ask, I will turn my face
【云享读书会第13期】FFmpeg 查看媒体信息和处理音视频文件的常用方法
Network equipment hard core technology insider router Chapter 21 reconfigurable router
使用解构交换两个变量的值
C:浅谈函数
初识结构体
Pytorch replaces some components in numpy. / / please indicate the source of the reprint
C:什么是函数中的返回值(转)
md 中超链接的解析问题:解析`this.$set()`,`$`前要加空格或转义符 `\`
JS uses extension operators (...) to simplify code and simplify array merging
$router.back(-1)
【剑指offer】面试题49:丑数
“router-link”各种属性解释
C语言中交换两数的方法

















































解决死链接的机制








着重说明情况2 











