五元组:
protocol 源ip 源port 目的ip 目的port
TCP与UDP相同性:
- 传输层的协议——都是坚决端对端的通信问题
- 五元组
- 校验和
不同点:
- 基本特点
- TCP:可靠,有链接,面向字节流
- UDP:不可靠,无连接,面向数据报
- UDP的传输效率高于TCP
- 使用场景不同
- TCP:发布文本消息,或者数据中间有错误,后面的数据全部不可以使用, 应用于文件传输, 重要状态更新等场景;
- UDP:偶尔丢一点数据没关系,乱序也没关系(应用层有自己的序号)UDP用于对高速传输和实时性要求较高的通信领域, 例如, 早期的QQ, 视频传输等. 另外UDP可以用于广播;
1.UDP是面向字节流的
发送端是“hello world"
接收端是“hello world"
TCP是面向流的
不保证接收到的是全部的信息
发送端是“hello world"
接收端可能接受的是"he" "llo" "world"
2.UDP无连接:没有调用connect
TCP 面向连接:connect 需要先进行连接服务器
3.UDP不可靠的
发了对方是否收到 我不知道
TCP 可靠的
发了对方一定可以收到
收不到我也知道是出错了
如何写一个UDP服务器
1.创建一个UDP socket
2.循环
-
等待对方发送UDP报文
-
回复对方一个UDP报文
如何写一个UDP客户端
1.创建一个UDP socket
2.循环
- 向一个server发送UDP报文
- 等待对方回复
如何写一个TCP服务端
1.创建一个TCPsocket进行绑定
2.循环
- 等待客户端连接上来
- 把该客户端的处理工作交给线程池去处理