TCP与UDP总结

参考的博客

一文搞定 UDPTCP 高频面试题! - 知乎

TCP为什么是三次握手,而不是两次或四次?

UDP协议的详细解析

UDP协议面试题总结

书籍:计算机网络(第8版)谢希仁

TCP与UDP所在的传输层

网络层只把分组发送到目的主机,但是真正通信的并不是主机而是主机中的进程。传输层提供了进程间的逻辑通信,传输层向高层用户屏蔽了下面网络层的核心细节,使应用程序看起来像是在两个传输层实体之间有一条端到端的逻辑通信信道

TCP与UDP区别

TCP UDP
客户端服务端是否连接 连接 无连接
资源消耗 较多20+ 较少8+
结构 复杂 简单
数据模式 字节流 数据报
可靠性 可靠(数据正确) 不可靠(丢包)
数据顺序 保证顺序 不保证顺序
通讯模式 全双工通信 一对一 可多对多
  1. 基于连接与无连接;
  2. 对系统资源的要求(TCP较多,UDP少);
  3. UDP程序结构较简单;
  4. 流模式与数据报模式 ;
  5. TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。

TCP 传输控制协议

特点

  1. 面向连接
    一对一的连接,保证信息的可靠性与顺序
  2. 全双工通信
    支持连接双方同时读写
  3. 面向字节流

首部

TCP首部

  1. 序号[32位]: 用于对字节流进行编号,例如序号为 301,表示第一个字节的编号为 301,如果携带的数据长度为 100 字节,那么下一个报文段的序号应为 401。
  2. 确认号[32位]: 期望收到的下一个报文段的序号。例如 B 正确收到 A 发送来的一个报文段,序号为 501,携带的数据长度为 200 字节,因此 B 期望下一个报文段的序号为 701,B 发送给 A 的确认报文段中确认号就为 701。
  3. 数据偏移[4位]: 指的是数据部分距离报文段起始处的偏移量,实际上指的是首部的长度。最大为16*4=60字节
  4. 控制位[8位]: 八位从左到右分别是 CWR,ECE,URG,ACK,PSH,RST,SYN,FIN。
    1. CWR: CWR 标志与后面的 ECE 标志都用于 IP 首部的 ECN 字段,ECE 标志为 1 时,则通知对方已将拥塞窗口缩小;
    2. ECE: 若其值为 1 则会通知对方,从对方到这边的网络有阻塞。在收到数据包的 IP 首部中 ECN 为 1 时将 TCP 首部中的 ECE 设为 1;
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值