0
点赞
收藏
分享

微信扫一扫

网络编程(三次握手)

Alex富贵 2022-01-12 阅读 51

1.需要注意的是:三次握手在connect()阶段就已经完成了
而accept()能完成的只是已经完成三次握手的信息
在这里插入图片描述
三次握手中含有序列号和确认号。
syn泛洪攻击:SYN泛洪攻击利用TCP三次握手协议的缺陷,向目标主机发送大量的伪造源地址的SYN连接请求,使得被攻击方资源耗尽,从而不能够为正常用户提供服务。
2.linux上抓包的实现:
使用tcpdump来实现观察网卡上出现的数据
在这里插入图片描述
51256先为6000,发送一个数据,附带它的序列号921,第二步,另一端接收到消息,返回一个序列号(683)和确认号,确认号等于发送方的序列号加一,即922,最后,51256接收到消息,再返回一个确认号即为684

可能会出现的问题:
1.超时重传机制?
确认信息丢失,需要在重新发送。
解决方法:去重。
此外,乱序重排都用来保证tcp的可靠性。
2.滑动窗口的作用:
进行流量控制。
3.粘包:在这里插入图片描述
解决方法:利用分隔符解决。

一.服务器端:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
唯一判断客户端关闭的方法就是:n==0,没有接受到数据时。
在这里插入图片描述
这里服务器的地址可以先设置为本机的地址,用ifconfig来查看。
在这里插入图片描述
二.客户端
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
接收成功,实现三次握手协议。

举报

相关推荐

0 条评论