1、如何发现网络拓扑信息?
虽然目前 Unix 系统在网络配置和管理方面没有统一标准,但大多数 Unix 系统提供了两个基本命令来发现网络的一些细节: netstat 和 ifconfig 。
可查看系统上这些命令的手册( man )页面,以了解输出信息的详细内容。
需注意,一些厂商会将这些命令放在管理目录(如 /sbin 或 /usr/sbin )而非普通的 /usr/bin 目录中,这些目录可能不在正常的 shell 搜索路径( PATH )中。
具体步骤如下:
- 使用
netstat -i命令提供接口信息,同时指定-n标志以打印数字地址,而非尝试查找网络名称,这样能显示接口及其名称。
2、获取TCP日间客户端的源代码。编译并测试该客户端程序。多次运行该程序,每次都将不同的IP地址作为命令行参数指定。
首先获取TCP日间客户端代码,进行编译。编译完成后,多次运行该程序,每次运行时在命令行传入不同的IP地址作为参数进行测试。
3、我们提到了 IP 版本 4 和 6。版本 5 是怎么回事,版本 0、1、2 和 3 又是什么情况?
访问 http://www.iana.org/numbers.htm 并找到“IP 版本号”注册表可知,版本 0 保留,版本 1 - 3 未分配,版本 5 是互联网流协议。
4、在一个以太网主机(其TCP通告的最大段大小(MSS)为1460)和一个令牌环网主机(其TCP通告的MSS为4096)之间建立了连接。两台主机都未实现路径最大传输单元(MTU)发现。观察数据包时,我们在任何方向上都从未看到超过1460字节的数据。为什么?
因为在未实现路径MTU发现时,连接会采用双方中较小的MSS值来传输数据,所以数据传输中不会超过1460字节。
5、开放式最短路径优先协议(OSPF)直接使用IP。对于这些OSPF数据报,IPv4报头中的协议字段值是多少?
89
6、为什么像套接字地址结构长度这样的值 - 结果参数必须通过引用传递?
因为这个长度参数在函数调用时是一个值(它告知内核该结构的大小,以便内核在填充结构时不会越界写入),在函数返回时是一个结果(它告知进程内核实际存储在该结构中的信息有多少)。
7、由 头文件定义的INADDR_常量是主机字节序的,我们如何判断这一点呢?
- 查看除
INADDR_ANY(全为零比特)和INADDR_NONE(全为一比特)之外以INADDR_开头的常量定义。 - 例如,类D组播地址
INADDR_MAX_LOCAL_GROUP被定义为0xe00000ff,注释为 “224.0.0.255”,这显然是主机字节序。
8、在并发服务器中,假设调用fork后子进程先运行。子进程在fork调用返回给父进程之前完成了对客户端的服务。两次close调用会发生什么情况?
以下是调整为 Markdown 格式的文本内容:
子进程调用 close(connfd) 时,由于 fork 后 connfd 在父子进程间共享,其文件表项引用计数为 2,此次调用将引用计数从 2 减为 1;父进程调用 close(connfd) 时,会将引用计数从 1 减为 0,此时才会进行套接字的实际清理和释放。

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



