如何自己实现简单实现 tcp 协议,需要那些前置知识呢?

273 天前
 magicZ

最近做了一个 websocket 相关的项目,发现自己的网络编程水平比较差,目前想要重新学习一下, 最后希望用 java 实现一下 tcp 协议,希望大家能给一点指导建议。

2116 次点击
所在节点    奇思妙想
19 条回复
kljsandjb
273 天前
参考参考 lwIP
pagxir
273 天前
Web socket 不需要实现 tcp 协议吧。难道你 Java 是跑在裸板上,连个操作系统没有?
aminobody
273 天前
cs144
opengps
273 天前
tcp 协议你只需要知道怎么收发,怎么异步收发。处理好稳定性,自动断线重建。再就是知道怎么定义自己的数据通信协议解析规则,也可以说通信规约,这就足够了
Pony69
273 天前
Java 的话,要不尝试一下 netty 。
Znemo
273 天前
普遍意义上说的 TCP 协议是操作系统实现的。
vsyf
273 天前
@pagxir 有这样的 JVM 吗?没见过诶。
这个节点选得不错。
vsyf
273 天前
@vsyf 还真有,JX & JavaOS ,孤陋寡闻了。
Rehtt
273 天前
tcp 是操作系统内核实现的,java 只是调用系统提供的 socket 接口
selca
273 天前
要不要试试用 kotlin+netty 实现 trojan 代理协议,跟 Java 差不多。
https://github.com/selcarpa/surfer
这是仓库地址,当前完整的介绍文档正在筹划中,里面也有很多坑没填,比如 kcp ,比如 UDP 代理。
Nazz
273 天前
实现个可靠 UDP 得了
ybz
273 天前
好家伙,手撸 tcp 协议,很复杂的兄弟,可靠传输、流量控制、拥塞控制、连接建立。。。。光一个可靠传输就让人头皮发麻。
wanguorui123
273 天前
quic
iOCZ
273 天前
会用 socket 就行了,想自己实现 TCPIP 协议栈的话。。。。想屁吃
mmdsun
272 天前
tcp ip 详解卷 2 ,就是讲实现的照着撸一遍。再试着用 Java 写吧
Saturn72
272 天前
可以看下中国大学慕课上哈工大的计网课程,讲的还是很全面的,当年上大学没认真学计网,上半年在 MOOC 上补的课,讲的真的很好
smirkcat
272 天前
java 就别了 别给自己找没用事做。。。
xmt328
271 天前
从问题来看,我觉得 OP 先要了解下 websocket 和 Tcp 的关系
xsen
271 天前
1. 实现 tcp server ,可支持多客户端连接及一定并发量
2. 实现 tcp client ,可实现多客户端(如数百、数千),支持重传、重连
3. 实现 request/reply 、主动推送消息模型
4. 设计 binary protocol 并实现( magic 、header-cmd/subcmd 、crc 、seqno 等)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/963882

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX