Unix网络编程卷1-问题汇总
# 协议
# XTI与Sockets
XTI与Socket都是进行网络通信通信的接口
XTI (X/Open Transport Interface) 是一个协议无关的通信接口
Sockets(Berkeley sockets)
参考:https://en.wikipedia.org/wiki/X/Open_Transport_Interface
# SCTP
# TCP握手时,为什么需要协商序号(而不是从0开始?)
# TCP TIME_WAIT
为何是主动关闭连接的一方进入TimeWait
# 为何要丢弃ICMP?
# 路径MTU的应用
# 内核为任意一个监听套接字维护2个队列
# 当发送服务器FIN且得到ACK后,客户端仍可向socket中write数据?
# TCP 低水位标记
只影响select,不影响write/read?
# 带外数据
# 能不能手动发送一个FIN,使得TCP成为“单向”通道并保持?
# TCP缓冲区大小与“带宽-延迟积”的关系(长胖管道?)
# UDP没有发送缓冲区?
# SO_REUSEADDR 的应用场景
# 若创建了在IPV6上监听socket,则无需在同一端口上创建IPV4的socket?
UNP P250
# C++
# 将socketaddr_in强制转换为socketaddr
在C++中定义struct,内部属性在内存中的顺序严格按照定义时的顺序吗
# C中返回char指针的函数,其数据保存在哪里?
(可重入函数/不可重入函数)
# Linux
# fork后,文件描述符由2个进程共同持有?那close会如何?
每个文件/socket都有引用计数
# errno == EINTR
为什么不能异步/并行处理中断?非得打断系统调用。。
# select在EINTR后自动重启,计时器归零还是保持之前的状态?
# select中的fd_set只有1024位,那是不是意味着使用select的进程最多只能同时处理1024个fd?
# 更进一步的,fork以后fd不变,是不是意味着fd是系统级的(一个fd值在整个系统只能一个)
# select每次返回,fd_set中只会有一个bit被置1吗
# getaddrinfo返回的链表,内存是怎么分配的?又是怎么删除的?
通过malloc,因此需要调用freeaddrinfo
上次更新: 2021/03/27, 23:40:59