UDP/TCP介绍、TCP的三次握手四次挥手

关于UDP/TCP的学习在慕课网专栏《网络协议那些事儿》看到两篇文章,写的不错,在此处做个总结整理。

UDP协议

UDP/TCP协议是OSI七层网络模型中第四层传输层用到的协议,根据使用目的的不同,人们需要能分别达到以下两点要求:

  1. 传输简单快捷,但传输不可靠,有可能在传输过程中丢失数据报或者接收方没有正确接收数据(UDP)。
  2. 传输稳定可靠,每一次发送报文必须要求接收方对传输结果作出反馈,所以传输速度相对较慢(TCP)。

根据这两点要求,就有了现在的UDP/TCP协议。

先说说UDP协议,UDP(User Datagram Protocol 缩写)表示用户数据报协议。UDP是一种无连接的协议,发送方只管发送报文,对于是否正确发送和正确接收一无所知。

UDP的数据报格式:
UDP数据报格式
其中Checksum是“校验和”,用于确保发送方发送的数据和接收方接收的数据是一致的。

TCP协议

再说说TCP协议:TCP(Transmission Control Protocol缩写)表示传输控制协议。TCP的协议需要先建立连接之后,再进行通信。

TCP报文段格式:
TCP报文格式
在建立连接时,客户端和服务器通过空数据报进行请求和响应,在空数据报的报头中有标志位Flag,这些标志位是可以为0、1的bit位,根据这些标志位可以表示发送信息的类型,如下图所示:
Flags标志位展示
连接的建立

  1. 客户端发送将报头中的SYN标志位设置为1,表示请求与服务器建立通信。
  2. 服务器成功接收后,响应数据报的报头设置标志位ACK为1,并将SYN设置为1后响应给客户端,表示确认建立客户端到服务端通信,并请求与客户端建立通信。
  3. 客户端接收到服务器返回的报文后,向服务器发送标志位ACK为1的数据报,表示同意建立服务端到客户端通信。

这时整个连接建立完成,也就是我们常说的TCP三次握手,图解如下:
TCP建立连接图解
保持连接

保持连接时数据包的报头标志位ACK设置位1,表示对上次的数据报接收的确认。

终止连接

连接的终止需要用到标志位FIN,过程如下:

  1. 客户端向服务端发送数据报,报头标志位FIN设置为1,表示请求与服务端断开连接。
  2. 服务端接收报文后,响应标志位ACK为1的数据报,表示同意断开客户端到服务端的通信。
  3. 服务端向客户端发送数据报,报头标志位FIN设置为1,表示请求与客户的断开连接。
  4. 客户端接收到报文后,响应标志位ACK为1的数据报,表示同意断开服务端到客户端的通信。

至此,连接中断,这个过程我们称为TCP的4次挥手,图解如下:
TCP的四次挥手

补充:
关于Socket,用我的理解简单的说就是,为了方便使用UDP/TCP,Socket是对UDP/TCP的封装,我们通过调用Socket对外提供的接口,对网络应用进行开发。
Socket区别于http协议,http协议是以TCP协议为基础,是OSI模型的应用层协议,而Socket是对TCP协议的封装。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值