软件测试之网络基础知识

  1. OIS七层网络模型
应用层为应用程序提供服务
表示层数据格式化,数据加密
会话层建立、管理和维护会话
传输层建立、管理和维护端到端的连接
网络层ip选址及路由选择
数据链路层

提供介质访问和链路管理

mac地址(网卡)  

物理层物理介质(网线,光纤)

TCP协议和UDP协议

  • 相同点:都在传输层,目标都是在程序之前传输数据(文本文件、图片视频)
  • 区别:TCP属于连接的,UDP属于非连接的
  • TCP:确认连接的三个点:三次握手、传输确认、四次挥手

三次握手建立连接(为了在不可靠的信道上进行可靠的连接断开确认)

(可双向连接)

原理:握手1、假设客户端发送一个请求数据包(SYN)给服务端,询问能否与之建立连接

           握手2、如果服务端同意连接就会回复SYN+ACK包

           握手3、客户端收到后就会返回一包ACK包后,连接建立。

问题:1、为什么是三次握手不是两次

           原因:为了防止已失效的请求报文突然又传到服务器引起错误,假设只有两次握手,客户端发送SYN1给服务端,因为某些未知原因并未达到服务器,在中间的某个网络节点进行滞留,为了建立连接客户端会重发SYN2包,送法后服务端发送SYN+ACK给客户端后建立连接,但第一包SYN1突然恢复,这时候服务端会以为是客户端发送的一个新连接,从而在两次握手后进入等待状态,如果在三次握手的情况下,客户端没有收到服务端的ACK,自然不会认为是连接建立成功。

SYN:连接请求数据标识符

ACK:回复确认标识符=序列号+长度

四次挥手关闭连接  (为了在不可靠的信道上建立可靠的连接)

 (可双向关闭)

原理:挥手1、假设客户端发起一个关闭连接请求(FIN)给服务端,然后客户端进行等待状态1

          挥手2、服务端给客户端发送一个ACK包后进行关闭等待状态,客户端收到后进行等待状态2

          挥手3、服务端发送一个FIN给客户端后进行最后确认状态

          挥手4、客户端回复ACK包后进入超时等待状态,经过超时等待后关闭连接,而服务端收到                         ACK后立刻关闭连接

问题:1、为什么要设置超时等待

            原因:为了确保对方真的收到ACK,假设客户端发送ACK包后就释放连接,如果ACK在中途丢失,那么服务端将不会关闭连接,停留在最后确认状态,如果服务端没有收到ACK包,那么会重新发一次FIN包,客户端会重发ACK和刷新超时时间。

FIN:关闭连接包

该篇为学习记录,学习连接如下:

一条视频讲清楚TCP协议与UDP协议-什么是三次握手与四次挥手_哔哩哔哩_bilibili

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值