V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  qakito  ›  全部回复第 1 页 / 共 3 页
回复总数  58
1  2  3  
270 天前
回复了 julyclyde 创建的主题 Linux systemd 的时区是怎么确定下来的?
initramfs 只负责启动,启动过程中由 systemd 挂载真正的 rootfs(log 里也有 switching root)
/etc /usr 之类的目录都是由 systemd-mount 挂载完毕后才指向实际硬盘里的内容
这就牵涉到 path mtu
但 TCP 是置了 DF 位,除非外层有其他 VPN(IPSec/MPLS/GRE 之类的),否则不可能抓到分片报文
TCP 为了传输效率是不允许分片的。如何做到不分片请查阅 MSS 。
最简单就是 ping 大包了:
ping A.B.C.D -l 10000(windows)
ping A.B.C.D -s 10000(linux)
305 天前
回复了 amiwrong123 创建的主题 程序员 三次握手和欢迎套接字的问题?
另,关于 TCP server 在 unix 网络编程中也有相关章节介绍
无论是子进程的方式,还是 select 复用
305 天前
回复了 amiwrong123 创建的主题 程序员 三次握手和欢迎套接字的问题?
listen socket 只用来接收客户端的 TCP 连接
1.完成握手后,该 client 连接信息(IP:PORT + SERVER:PORT)加入 listen socket 的连接完成队列,同时 accept 函数返回
2.accept 函数从 listen socket 的连接完成队列中取队列元素,并生成新的 socket 与其关联
3.server 可以通过新的 socket 与 client 通信

代码中,listen socket 只需要完成
fd = socket(AF_INET, SOCK_STREAM, 0);
bind(fd, 相应的 TCP 端口)
listen(fd)
new_conn = accept(fd)
当新 TCP 连接完成,new_conn 即可用于实际数据通信

至于 new_conn 的实际交互流程,可以放在子进程(or 线程),也可以在同一个进程里完成

你要的答案 TCP/IP 详解卷 2 里有 socket 的相关实现
314 天前
回复了 Osk 创建的主题 分享发现 Windows 10 商店里面的一些优秀开源软件
@jsq2627
不能粘贴有点伤

苦于旧版本的 clover 在 win10 上支持不好;新版本有广告页,还以为 files 能是个好的替代
335 天前
回复了 station 创建的主题 Linux sed 删除匹配行 ?
uci 配置文件有提供统一的读写接口:
Usage: uci [<options>] <command> [<arguments>]

Commands:
batch
export [<config>]
import [<config>]
changes [<config>]
commit [<config>]
add <config> <section-type>
add_list <config>.<section>.<option>=<string>
del_list <config>.<section>.<option>=<string>
show [<config>[.<section>[.<option>]]]
get <config>.<section>[.<option>]
set <config>.<section>[.<option>]=<value>
delete <config>[.<section>[[.<option>][=<id>]]]
rename <config>.<section>[.<option>]=<name>
revert <config>[.<section>[.<option>]]
reorder <config>.<section>=<position>

Options:
-c <path> set the search path for config files (default: /etc/config)
-d <str> set the delimiter for list values in uci show
-f <file> use <file> as input instead of stdin
-m when importing, merge data into an existing package
-n name unnamed sections on export (default)
-N don't name unnamed sections
-p <path> add a search path for config change files
-P <path> add a search path for config change files and use as default
-q quiet mode (don't print error messages)
-s force strict mode (stop on parser errors, default)
-S disable strict mode
-X do not use extended syntax on 'show'
2020-09-06 18:55:36 +08:00
回复了 bear2000 创建的主题 Linux select poll epoll 在哪本书里有讲到?
The Linux Programming Interface CH 63
2020-09-02 13:09:42 +08:00
回复了 shiroikuma 创建的主题 程序员 会多门自然语言对程序员来说算不算加分项
加分
当海外用户丢给你一些本地资料说:我要这个这个这个时,能更好理解需求
2020-06-27 10:29:54 +08:00
回复了 x97bgt 创建的主题 程序员 不懂就问,为啥同一个软件不能用在 x86 和 amd 的 CPU 上?
1. 如果是可执行的二进制文件,本身就是机器码;不同架构机器码不同;函数出入栈规范不同;寄存器使用规范不同
2. 如果是可执行的脚本文件,没差
3. 即便是相同的 API,不同架构上也有部分差异,比如部分信号值在不同架构上是不同的(详见 man 7 signal)
2020-06-24 12:23:21 +08:00
回复了 Meano 创建的主题 Linux Linux 内核如何在启动时配置参数到/sys/bus/pci/devices
systemd-sysctl.service 是在 systemd-modules-load.service 之后运行的
2020-06-23 21:38:10 +08:00
回复了 Meano 创建的主题 Linux Linux 内核如何在启动时配置参数到/sys/bus/pci/devices
sysctl.d 里修改该值不行么
1. 常规场景中使用到的 buffer 远小于 SSIZE_MAX
如果你的代码里出现了一个 4G 大小的 buffer,更应该审视代码的合理性
2. API 只需保证你的 buffer 不溢出,不保证你的 buffer 全部塞满
2020-04-10 13:21:54 +08:00
回复了 lancelock 创建的主题 职场话题 找工作心态爆炸。。。
对于应届生来说,科班出身很重要,但不是最重要;我的学弟拥有 7 年工作经验,写功能依然需要别人手把手教。
个人感觉楼主主要的问题是换了好几次方向,每个方向上都没有很好的积累,如果对方只要熟练工的话,必然是吃亏的;但如果你能让对方看到态度以及学习能力的话,肯带你的公司还是有机会的,只是一开始你的薪资期望不能达到预期
2020-04-09 13:26:27 +08:00
回复了 revival83 创建的主题 健康 有老兄做过普通胃镜么?看别人反馈生不如死
侵入感 /恶心,比不上某些疾病的疼痛感
2020-04-01 12:20:14 +08:00
回复了 sadfQED2 创建的主题 分享发现 卧槽,以后地铁真的不能抖音外放了
重点是如何执行?
按照规定里的内容:拒不遵守乘车规范的,运营单位有权予以制止,制止无效的,应报有关部门依法处理
那就是地铁运营进行制止,那么在地铁运行过程中,如何有效联系到相关人员?发现就呼叫地铁司机么?

我不知道各位身边的禁烟令执行得如何了。
1. 没有开启 TCP keepalive
2. 业务没有 keepalive
3. 对端的 FIN 丢失了
2020-03-26 08:41:11 +08:00
回复了 xiaoz 创建的主题 Linux 请教下怎样控制 Linux 的出口访问,只允许 Linux 访问指定域名?
一种做法:
LAN 口针对 UDP dport=53 的报文做 redirect 到本地,本地的 DNS server 就可以对黑名单里的域名进行干预(例如返回 No such domain)
缺点是:
如果本地通过 hosts 文件提前解析,你无能为力
2020-03-21 10:37:28 +08:00
回复了 feng32 创建的主题 程序员 实现 NAT (Masquerade) TCP 状态管理的极简方案
NAT 表对于 TCP 和 UDP 的表项维持时间是不同的; UDP 表项通常维持在 2 分钟-5 分钟; TCP 表项通常维持在 30 分钟-60 分钟。
通过 TCP 状态(比如 RST 标识等),能够较及时的清除已经断开的 TCP NAT 表项;否则的话,要么失效的 TCP 表项会长时间残留,要么一段时间空闲的 TCP 会话会因中间的 NAT 表项超时断开。

UDP 会话没有状态,只要看到一来一回,conntrack 就是 establish 状态了;对于一个需要长时间保持的 UDP 会话(比如 IPSec ESP 穿越 NAT),如果一段时间内没有流量,NAT 表失效就意味着 UDP 会话断开,因此对于这种情况,通常靠协议发送 keepalive 来维持 NAT 表

TCP 会话有状态,如果没有开启 keepalive 选项,且会话闲置了一段时间,NAT 表超时就会导致 TCP 会话断开(比如 ssh 连接)
2020-03-05 09:02:34 +08:00
回复了 wjs9092 创建的主题 上海 现在虹桥机场打车怎么这么恶心啊?近的地方都不接
如果是行业规则,请明确在排队前告知;别让人傻乎乎地上了车然后被司机全程臭骂
1  2  3  
关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2599 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 37ms · UTC 13:53 · PVG 21:53 · LAX 05:53 · JFK 08:53
♥ Do have faith in what you're doing.