网络编程总结

一.TCP协议

1.TCP---》SOCK_STREAM  可靠的---》三次握手 四次挥手

TCP通过以下措施保证可靠性:

  1. TCP通过三次握手建立连接
  2. TCP超时没有收到对端的响应,会重发数据
  3. TCP会把重复的包丢弃
  4. 出错的数据会被丢弃,等待重发数据
  5. 滑动窗口机制解决写消息速度快,读消息速度慢的问题

接收端通过窗口大小通知发送端能发多少数据。

2.UDP-->SOCK_DGRAM   不可靠的 丢包 重传  实时性好

UDP是无连接的,不保证可靠的传输层协议。

UDP没有发送缓冲区,有接收缓冲区。

UDP数据报有最大长度限制。

UDP没有建立连接的过程,没有三次握手。

UDP为什么不能保证可靠性:

  1. UDP头里没有序列号和确认序列号,没有响应确认机制,UDP数据报可能在网络传输中丢失,没有重发机制。
  2. UDP头里的校验和是允许关闭的,如果关闭,出错了,UDP无法校验出来。

UDP使用场景:

  1. 对传输效率要求高,对可靠性要求不高的场景,比如视频聊天,语音聊天。
  2. 发送小尺寸数据,比如查询DNS服务(通过域名查询IP地址)。
  3. 广播和组播必须使用UDP编程。

实时性 > 可靠性,选择UDP

可靠性 > 实时性,选择TCP

tcp客户端流程

socket ---- bind ---- connect ---- send/recv ---close

tcp客户端流程分为四步,创建流式套接字,客户端连接服务器,发/收消息,关闭套接字。

UDP服务端流程

socket --- connect --- send/recv---close

UDP客户端流程

socket ---- bind ----- send/recv ---close

tcp服务端流程

socket --- connect --- send/recv----close

1.socket

2.connect

3.send/recv

4.bind

5.listen

6.accept

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值