网络基础 -- 网络分层与三次握手、四次挥手

本文详细介绍了网络通信中的分层模型,包括OSI七层模型和TCP/IP四层模型。重点讲解了TCP协议的三次握手过程,用于建立可靠连接,以及四次挥手用于断开连接的机制。同时阐述了各步骤中序列号和确认号的作用,确保数据传输的准确性和完整性。
摘要由CSDN通过智能技术生成

网络分层

OSI协议网络分层为七层,从上到下分别是
应用层(application layer)
表示层(presentation layer)
会话层(session layer)
传输层(transport layer)
网络层(network layer)
数据链路层(data-link layer)
物理层(physacal layer)
TCP/IP协议网络分为4层
应用层
运输层		TCP
网际层		IP
网络接口层

TCP协议三次握手和四次挥手

三次握手(建立网络连接)三次握手示意图
  1. 第一步,客户端向服务端发送连接请求(SYN = 1),和一个随机起始序列号(seq),例如SYN=1(这个请求是连接请求),seq=100(这个数字是随机的一个数字)。
  2. 第二步,服务端收到客户端请求之后,发现SYN = 1,发现这个是一个连接请求,那么将seq存起来,并生成一个随机序列号(seq)例如300,seq = 300,然后给客户端回复一段报文,发送ACK = 1(说明收到了客户端连接请求),SYN = 1(这个请求是连接请求),seq = 300, ack = 101(客户端seq + 1)。
  3. 第三步,收到服务端请求后,发现ACK = 1, ack = 101,说明客户端同意这次连接,于是把服务端序列号(300)存了起来,然后给客户端发送一段报文,包含ACK = 1,seq= 101(客户端前面请求序列号 + 1),因为上次请求已经用掉了随机序列号,ack = 301(说明收到了服务端的连接请求)。

简化:
1、证明客户端发送能力
2、证明服务端收发能力
3、证明客户端接收能力

四次挥手(断开网络连接)

四次挥手示意图
假设客户端初始化序列号是100,服务端初始化序列号是300,TCP连接后,客户端发送报文为1000个字节的数据,服务端在客户端发送FIN之前共收到2000个字节的数据。服务端收到FIN请求之后还有50个字节数据需要发送到客户端。

  1. 客户端向服务端发送FIN = 1(释放连接请求),并带上seq = 1101(100 + 1 + 1000)初始化序列号+连接用掉1个,加上一共发送1000个字节数据。客户端发送FIN,只是不能发送数据,还可以接收数据
  2. 服务端收到客户端请求后,给客户端发送确认信息,ACK = 1,seq = 2300, ack = 1102(1101 + 1)
  3. 服务端发送完最后50个自己数据后,给客户端发送FIN = 1(释放连接请求),ACK = 1(确认报文),seq = 2350, ack = 1012。
  4. 客户端确认收到服务端断开连接请求,发送报文ACK = 1, seq = 1012, ack = 2351。并等待2MSL时间后关闭连接(因为存在丢包,会存回2次报文最大存活时间)。服务端收到后会立马断开连接。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值