自己的方式理解TCP和UDP

每次要求说明白TCP和UDP的区别的时候,我们总是要记一对概念跟作用.记忆压力大.

但如果我们直接去看他们的包头. 只需要记住简单的几个关键点. 就能完全散发思考出他们的作用和区别.

比如你看到TCP里有个序列, 这就是用来做有序接收包的,就能够提供可靠性.
再者 你看UDP的包头如此简单,你就知道 UDP效率肯定比TCP高.

TCP [ Transmission Control Protocol ]

1. 来源端口
2. 目的端口
3. 序列号   用于区分这是第几个包
4. 确认号(ack)  期望收到的数据的开始序列号,也就是已经收到的下一个
5. 数据偏移  数据段开始地址的偏移值
6. 标示符 用于指定一些商议好的含义信息
7. 窗口 接收窗口大小用于流量控制
8. 校验和 数据校验

可靠: 序列+超时重传完整: 校验和+确认号安全: 随机序列流量控制: 窗口

由于协议本身带有超时检测所以属于有连接. 包头内容齐全所以具备可靠性. 但效率相对就低了.

UDP [ User Datagram Protocol ]

1. 来源端口
2. 目的端口
3. 报文长度
4. 校验和

包头超简单,所以效率非常高. 同样也就缺乏可靠性. 且逻辑上属于无连接.

posted @ 2020-03-19 18:28  水蒸蛋不好吃  阅读(119)  评论(0编辑  收藏  举报