网络 TCP/UDP协议(笔记)

1. TCP协议

  • TCP协议类似于打电话,需要建立链接,TCP协议又分为以下三个步骤
  • 三次握手,就是为了解决网络信道不可靠的问题
    1. 客户端先向服务端发送一个SYN包,询问能否建立链接
    2. 服务端同意链接后,向客户端发送一个SYN+ACK包
    3. 客户端收到后,在向服务端发送一个ACK包,因此建立连接
  • 传输确认,会有丢包问题和乱序问题
    1. 发送缓冲:把数据分成0~N个字节
    2. 发送报文:TCP协议头中会附带序列号和长度,序列号 + 长度 = 数据内容
    3. 回复确认:ACK = 序列号 + 长度 = 下一个包起始序列号
    4. 切割发送:根据序列号和长度重组,如果丢包重发也不会乱序
    5. 在传输的过程中,不分客户端与服务端,他们是互通的
  • 四次挥手,也是为了解决网络信道不可靠的问题
    1. 客户端向服务端发送一个FIN包,表示要关闭链接,客户端进入关闭等到状态
    2. 服务端收到FIN包后,向客户端发送一个ACK包,服务端进入关闭等到状态,这个过程中服务端还可以发送数据,客户端还可以接收数据
    3. 等服务端数据全部发送完成后,再次向客户端发送一个FIN包,进入最后确认状态
    4. 客户端收到之后,向服务端发送ACK包,客户端进入超时等待状态,超过超时时间后关闭链接,而服务端收到ACK包后立即关闭链接
    5. 注意:在第四次挥手时,如果服务端没有收到ACK包,会重新向客户端发送FIN包,客户端收到之后,重新向服务端发送ACK包,并刷新超时等待状态,为了防止在第四次挥手时,服务端没有收到ACK包,会一直处于等待状态

2. UDP协议

udp协议是基于非连接的,发送数据就是简单的把数据包装一下,然后从网卡发出就可以了

3. TCP与UDP的区别

3.1 TCP 稳定可靠
  • TCP是基于连接的,性能损耗多,资源占用多,稳定性强,传输信息准确无误
  • TCP的应用场景,传输文件、发送邮件、浏览网页等
3.2 UDP 速度快
  • UDP是基于非连接的,性能损耗少,资源占用少,稳定性弱容易丢包
  • UDP的应用场景,域名查询、语音通话、视频直播等
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值