或者有不基于 socket 实现的 http server 吗?
或者有不基于 socket 实现的 http server 吗?
|
1
你是想用 dpdk 吗
|
|
2
嵌入式操作系统里有那种纯粹的 tcp 协议包,底层是自己处理芯片驱动,也可以随便改
|
|
3
socket 只是 unix 那边的东西,win 这边完全可以绕开 winsocks(1/2)实现 http 。。。比如那个著名的 http.sys https://docs.microsoft.com/en-us/windows/win32/http/http-server-sample-application
|
|
xumng123Jul 23, 2020 via iPhone
4
quic,参考一下
|
|
5
当然有,非 Unix 就没 socket 啊
|
|
wellscJul 23, 2020
6
dkpk
|
|
sujin190Jul 23, 2020
7
写个驱动直接操作网卡?但是又有个啥用呢,该解决的问题你还是得解决一遍啊
|
|
shansingJul 23, 2020
9
又一个 XY problem ?
|
|
10
|
|
MistwaveJul 23, 2020 via iPhone
11
@nightwitch 请问这是哪本书的图?
|
|
ZehaiZhangJul 23, 2020
12
请教:socket 不是基于 TCP/IP 协议的么,lz 的意思是,(非) socket 实现 TCP 协议?
|
|
KeyesJul 23, 2020 via iPhone
13
socket 就像字面意思一样是个套儿而已
|
|
14
@Mistwave The Linux Programming Interface 有中文版
|
|
15
socket 只是个名字,表示<hostname:port>,你们不要针对它好不咯,楼上一堆瞎扯,还非 unix 就没有 socket...
|
|
16
楼主应该看下 #10 楼的解释。
给你明确下,Socket 并不是使用 tcp 协议唯一路径,但是确实是最最流行和通用的(考虑下 cross-platform )方案。你可以把 socket 的理解为一套使用 tcp 的库。毕竟谁也不太想考虑 tcp 包序,syn 握手啥的。 你可以参考下嵌入式设备最长使用的 Lwip,使用 tcp 方案应该有好几种,记得可以使用 netconn 方案啥的。 在高级 os 内,你可以直接操作驱动来构造 tcp 报文,然后 send/recv 。一些异性报文或者 exploit 就是这么做到的。可以参考下 winpcap,或者 winddk 直接造。( unix like 的,可以直接用 socket 的 raw 方案做报文,不需要直接 drv 层。windows 之前可以,后来出于安全,给禁掉了。忘记是 win2k 还是 xp 上禁掉的,当时死了一批猴子脚本工具)。 他们说的 dpdk,我记得是修改驱动的中断方式,貌似和 socket 关系不大。那是做高频和游戏高并发用的。 |
|
17
你这里的 socket 指 Berkeley socket 吧? wikipedia 说得很清楚了: https://en.wikipedia.org/wiki/Berkeley_sockets
这是一种 API,当然可以有其他的 API,windows 的 TCP 实现就不是用 posix socket 的。 |
|
18
我理解的是 socket 是一种 Interface,是 BSD 对 tcp 协议抽象出的一组接口,并且在 Unix-link 的操作系统上都实现了 socket,并提供给应用使用;我是想理论上来说应该是有非 socket 实现的 tcp 协议,没 Google 到所以来问问,顺便理清一下思路。
多谢楼上各位的回答。 |
|
misaka19000Jul 23, 2020
19
你甚至可以自己操作网卡发送 raw 数据包
|
|
VDimosJul 23, 2020 via Android
20
完全可以,你只要愿意,最底层可以直接通过串口来写
|
|
MistwaveJul 23, 2020
22
@nightwitch 非常感谢!
|
|
yuyukoJul 24, 2020 via iPhone
23
XTI ?
|
|
sariyaJul 24, 2020 via Android
25
用 USB 协议,232 发都可以,只是一个载体
|
|
sbillyJul 28, 2020
26
印象中 dpdk 并不包含协议栈,不知道新版本是不是已经包含了。你可以用 “用户态协议栈” 或者 “userland tcp ip stack” 搜一下。IwIP 、libuinet 、…… 之类开源的以外,还有比较多的商业产品。
|