TCP面试题

 

TCP/IP网络编程面试题

1、网络体系结构

2、TCP和UDP有什么区别

3、编写socket套接字的步骤

4、TCP三次握手和四次挥手,以及各个状态的作用

5、Http协议和TCP的区别

6、同步IO和异步IO的区别

7、什么是IOCP

8、什么是网络套接字(Socket)?流套接字(SOCK_STREAM)基于什么协议

9、IP首部、TCP首部、UDP首部、以太网首部

10、TCP和UDP的应用场景

11、如何实现可靠的UDP

12、详细说明TCP状态迁移过程

13、2MSL是什么状态?作用是什么

14、三次握手为什么不是两次或者四次

15、TCP重发机制

16、说说Nagle算法

17、TCP拥塞控制

18、TCP的滑动窗口

19、域名解析的过程

20、ARP的机制

21、RARP的实现

22、http/https 1.0 1.1 2.0的特点和区别

23、Get/post的区别

24、Http返回状态码

25、Http协议相关头

26、浏览器中输入一个URL发生什么,用到那些协议

27、五种IO模型

28、select,poll,epoll的区别

29、UDP中一个包的大小最大能多大

30、Time_wait,close_wait状态产生的原因,keeplive

31、列举你所知道的TCP选项

32、Connect会阻塞检测及防止,socket什么情况下可读

33、若select返回可读,结果只读到0字节,什么情况

34、socket什么情况下可读

35、Keepalive是什么东西,如何使用

36、UDP使用connect的好处

37、各层对应的网络设备(路由器、交换机、网关、网桥、集线器等),各层对应的协议

38、数据链路层的CSMA/CD协议

39、IP地址的分类,子网划分

40、TCP精髓问题: 停止等待协议、连续ARQ协议

41、HTTP缓存机制(cache-control、Expires之类)的一系列请求与相应的报头字段

42、session和cookied 区别,禁用cookie后怎么办

43、常用协议的端口

44、三层交换机和路由器的区别

45、什么是TCP的自连接,如何解决

46、单播、多播(组播)和广播的区别

47、当应用程序调用Send之后怎么判断对方是否成功接收

48、静态路由和动态路由各自的优缺点

49、路由器和交换机的不同之处有哪些

50、为什么有时ping服务器第一包丢失

51、tcp 阻塞socket send recv需要注意的操作

52、TCP封包和拆包

53、怎样理解阻塞非阻塞与同步异步的区别

54、epoll: EPOLLLT和EPOLLET的区别

55、epoll事件驱动框架使用注意事项

56、Linux-socket的close和shutdown区别及应用场景

57、TCP带外数据

58、网桥的作用

59、防火墙的端口防护

60、有哪些私有保留地址

61、Ping命令使用的那种报文

62、两台笔记本电脑连起来后ping不通,你觉得有哪些问题造成的

63、Vlan的特点

64、ICMP是属于什么协议,处于那一层

65、IP组播有什么好处

66、DNS欺骗的方式

67、reactor和proactor的区别

68、两台机器A-B进行TCP通讯,进程崩溃会怎么样进程死锁会怎么样进程或机器过载,反应变慢会怎么样进程死循环,拼命发消息会怎么样机器重启会怎么样机器死机会怎么样机器网卡抽风,丢包严重会怎么样交换机或路由器坏了或过载会怎么样路由器过热重启会怎么样A和B之间的带宽被别的服务占用了会怎么样如何诊断以上这些情况. 若A和B之间有防火墙,还会出哪些情况.

69、Linux 中每个 TCP 连接最少占用多少内存

70、TCP 能否发送0字节的数据包

71、tcp 协议中为什么syn会消耗一个序号

72、tcp/ip数据包在互联网传输过程中,有哪些头会保持不变

73、linux/unix socket编程并发时什么时候用进程(fork),什么时候用线程(池)

74、如何测量网络发送速度

75、若将同一个listening socket加入多个epoll, 是不是一种合理的设计?

76、Tcp客户端的正确关闭方式

77、对一个已经关闭了的socket 的Server 调用write操作

78、怎样实时判断socket链接状态

79、socket套接字在多线程发送数据时要加锁吗

80、TCP中已有SO_KEEPALIVE选项,为什么还要在应用层加入心跳包机制

81、TCP 协议下 socket 有可能丢包吗

82、如何理解 TCP/IP, SPDY, WebSocket 三者之间的关系

83、为什么每台电脑都要设置子网掩码

84、为什么以太网无法接收大于1500字节的数据包

85、OSI七层模型中,每一层的数据包都是谁生成和解包的

86、为什么网关与主机可以不在同一个网段

87、NAT和DHCP 的区别是什么

88、OSI模型中,一个协议应该属于哪一层是以什么为标准划分的

101、TCP三次握手的过程,seq的变化是一直都是加1吗

102、使用Linuxepoll模型,水平触发模式;当socket可写时,会不停的触发socket可写的事件,如何处理