TCP介绍及常见问题
TCP介绍及常见问题
OSI七层模型先来个OSI七层模型压压惊。
TCP三次握手
(此图片为引用 如有侵权,请联系删除)
这是我本机(192.168.1.101)连接百度服务器(39.159.66.14)时候发送的数据包。
1、本机向百度发送一个SYN包
2、百度回复我一个SYN+ACK
3、我向百度回复一个ACK包
常见问题:为什么是三次握手,不是四次握手或者两次握手
首先TCP的核心思想是:既要保证数据传输可靠,又要保证传输效率。
三次握手正好可以满足以上两点
假设有两台机器,分别为A 和 B,A 向 B 发送消息。
首先A 会随机选取一个32位的***(ISN),假设为100,然后对自己要发送的数据以100为起点进行编号,101,102,103,104…,并且把自己的***告诉 B,让B知道那些数据是合法的(100之后的编号是合法的,100之前的编号是非法的),这样B收到消息判断编号的合法性后,就给A发送一个数据包,包含了最后一个编号。(B也是用同样的方式向A发送的消息)
A收到B发送的数据包之后,就知道B已经成功的接收了自己的多少个字节的数据,然后A在向B发***,确认收到了B的消息。
这样一次TCP连接就结束了。
如果是两次握手的话,最后B不能确定A是否收到了自己发送的确认包(ACK),
可以看出三次握手已经完全满足了安全高效传输,如果在加一步(也是可以的)的话,明显是多余并且耗时的。所以是三次握手。
ISN:是为了解决网络包乱序的问题
常见问题:会不会发生丢包的情况?
会,因为网络传输是不可靠的,可能因为网络原因、或者硬件问题等等。
TCP有重试机制,就是会重新发送,在发送一定次数后还没有收到响应包,就会提示连接超时。
如果重试n次后连接上了,会接收到n个数据包,他会选取第一个数据包,把其余的忽略掉
TCP四次挥手
(此图片为引用 如有侵权,请联系删除)
SYN攻击
Syn攻击就是 攻击方通过伪造大量IP向被攻击服务器不间断的发送syn包,服务器收到数据包之后,回复被攻击者,因为IP是伪造的,所以服务不断重发至超时。这些syn包将长时间占用服务器的资源,使正常的syn请求被拒绝请求。降低服务器的运行速度,严重时会造成网络阻塞和系统瘫痪。
Syn攻击就是DDOS攻击的一种方式
服务被攻击有什么特征?
- 服务器不明原因运行缓慢
- 有许多半连接状态
- ip地址是随机的
排版有问题,下次会改进的。