面试重点——传输层的TCP协议

目录

TCP概念

TCP提供的机制(保障可靠性)

关于编号

关于重传

快重传

超时时间

TCP的Header

TCP的缓冲区

TCP的连接

三次握手

完整的三次握手

Wireshark抓包工具,演示TCP三次握手

三次握手状态转移

三次握手小结

四次挥手阶段 

四次挥手状态变化

四次挥手小结

TCP中的异常情况

情况一

情况二

情况三

情况四 

通过命令行命令可以查看主机上的TCP连接情况(了解)

流量控制

1. 知道对象的接收能力 

2. 拿到对方的接收能力 

3. 控制发送量——滑动窗口机制

滑动窗口机制 

拥塞控制

面向字节流的原因

面向字节流带来的粘包问题

TCP小结

UDP与TCP对比


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对比

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瘦皮猴117

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值