【持续更新】linux网络编程试题
问题1
请简要说明TCP/IP协议栈的四层结构,并分别举出每一层出现的典型协议或应用。
答案
应用层:ping,telnet,dns
传输层:tcp,udp
网络层:ip,icmp
数据链路层:arp,rarp
问题2
下列协议或应用分别属于TCP/IP协议栈哪一层?
ARP,TCP,DNS,ICMP,TELNET
答案
arp:数据链路层
tcp:传输层
dns:应用层
icmp:网络层
telnet:应用层
问题3
简述以下协议的主要作用:
ARP,ICMP,TCP,UDP
答案
arp:网络层使用IP地址寻址一台机器,而数据链路层使用物理地址寻址一台机器,因此网络层必须先将目标机器的IP地址转化成其物理地,才能使用数据链路层提供的服务。
icmp:用于网络诊断和差错报告,查询服务,比如ping就是用icmp查询的。
tcp:面向连接的可靠传输协议
udp:无连接的不可靠传输协议
dns:提供机器域名到IP地址的转换
问题4
简述ping命令从应用层到物理层的典型数据传输流程,涉及哪些协议?
答案
ping命令通过ICMP协议在网络层传递数据,最终通过IP协议封装,经过数据链路层(如以太网)发送到物理媒介。
问题5
“socket”在传输层和应用层之间,请解释socket的作用,以及为什么需要socket接口。
答案
socket是应用层与传输层之间的接口,应用程序通过socket与TCP/UDP通信,实现网络数据的收发。
问题6
linux系统中有用户空间和内核空间,请说明这两者的区别,并举例说明哪些协议或应用运行在用户空间,哪些运行在内核空间。
答案
- 用户空间:应用程序运行的空间,如ping、telnet、DNS等
- 内核空间:操作系统内核管理的空间,如TCP、UDP、IP、ICMP、ARP等协议的实现
问题7
TCP和UDP分别依赖于哪一层的协议进行数据传输?ICMP和IP之间是什么关系?
答案
- TCP和UDP都依赖于IP协议进行数据传输
- ICMP是IP协议的辅助协议,属于网络层,常用于网络诊断
问题8
为什么说udp提供的服务是不可靠的?
答案