| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> JAVA—TCP,UDP -> 正文阅读 |
|
[网络协议]JAVA—TCP,UDP |
个人博客:haichenyi.com。感谢关注
1. 目录
2. 概念??首先,需要确定的就是他们是socket通信的两种协议。 ??TCP:一种面向连接,全双工可靠信道的传输层协议 ??UDP:一种无连接的,不可靠的传输层协议
3. 优缺点
4. 三次握手??我们都知道TCP是全双工可靠信道。什么是信道?感觉打字不如贴图,如图:
??然后,我们来看看这个TCP的通信图 已知:两个对象A和B,两个信道:信道1和信道2。 第一次握手:A从信道1中给B发消息:我要跟你连接了。(说明:A可以从信道1发消息) 第二次握手:B从信道2中给A回消息:好的,我同意了。(说明:B可以从信道2发消息,B可以从信道1收消息) 第三次握手:A从信道1中给B回消息:那我们开始连接吧(A可以从信道2收消息)。B收到之后就建立了连接。 为什么必须要三次握手,2次不行吗? ??全双工信道只能单方向发消息。如果是2次握手:表示A可以从信道1发消息。B可以从信道1收消息,信道2发消息。但是,B并不知道A能不能从信道2收到消息。所以,2次没法建立建立。
5. 四次挥手第一次挥手:A从信道1给B发消息:我的事情都处理完了,我要跟你断开连接了。 第二次挥手:B从信道1收到消息后,从信道2给A回一个消息:我知道了。然后,B继续处理未处理完的事情。 第三次挥手:B的事情处理完之后,B从信道2给A发消息:我的事情都处理完了,我要跟你断开连接了。 第四次挥手:A从信道2收到B发来的断开连接的消息之后。A从信道1给B回复:好的,我知道了,我们都断开吧。然后,A断开1,2信道。B从信道1收到了A的确认消息之后。B也断开1,2信道。
5. 通信流程
??一般如果没有限制必须要用原生的写,我一般都是用Netty,之前也写过一篇Netty用法的文章:Netty的简单使用,实现socket通讯 ??解决粘包,拆包:约定好每一条消息的规则。怎么约定呢? 举个栗子:
|
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 19:52:52- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |