计算机网络面试题整理
计算机网络面试题整理
咱们来回顾一下上次分享到的mongodb
的安装和使用
mongodb
的介绍mongodb
如何安装mongodb
如何简单使用- GO 如何操作
mongodb
mongodb
还有点兴趣的话,可以查看文章 一文便知 GO 中mongodb 的安装与使用今天咱们来看点面试题
文章图片
计算机网络面试题 网络字节序:
大端模式,低地址存高字节
本地字节序:
小端模式,低地址存低字节
三次握手
- 主动发起连接端,发送SYN标志为,请求建立连接。携带序号,数据字节大小(0),滑动窗口大小
- 被动接受端,发送
ACK
应答,SYN标志。携带序号,数据字节大小(0),确认序号,滑动窗口大小 - 主动发起连接端,发送
ACK
应答,携带确认序号
- 主动关闭连接端,发送FIN,
- 被动关闭端,发送
ACK
。 -- 半关闭 - 被动关闭端,发送FIN
- 主动关闭端,发送
ACK
应答 -- 连接全部关闭
文章图片
TCP第三次握手失败会出现什么
如果此时
ACK
在网络中丢失,过了超时计时器后,那么Server端会重新发送SYN+ACK
包重传次数根据
/proc/sys/net/ipv4/tcp_synack_retries
来指定,默认是 5
次如果重传指定次数到了后,仍然未收到
ACK
应答,那么一段时间后,Server自动关闭这个连接但是Client认为这个连接已经建立,如果
Client
端向Server
写数据,Server端将以RST
包响应,方能感知到Server
的错误。当失败时服务器并不会重传
ack
报文,而是直接发送RTS
报文段,进入CLOSED
状态这样做的目的是为了防止
SYN
洪泛攻击文章图片
长连接和短连接区别和优缺点
长连接:连接->传输数据->保持连接 -> 传输数据-> ………..->直到一方关闭连接,多是客户端关闭连接
长连接指建立SOCKET连接后不管是否使用都保持连接,但安全性较差。
- 优点
tcp建立/关闭
的操作,减少浪费,节省时间,对于频繁请求资源的客户,较适用于长连接;- 缺点
短连接
连接->传输数据->关闭连接
比如HTTP是无状态的的短链接,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。
- 优点:
- 缺点:
tcp
的建立和关闭上浪费时间。文章图片
滑动窗口
发送给对端连接,本段的缓冲区实时大小,保证数据不会丢失。
网络通信中 read 函数的返回值:
- = 0
- = -1
errno
的情况- errno == EAGAIN|EWOULDBLOCK
- errno == EINTR
- errno == 其他情况
查看端口号
netstat -antp
端口复用设置
int opt = 1;
setsockopt(fd,SOL_SOCKET,SO_REUSEADDR,(void *)&opt,sizeof(opt));
半关闭(FIN_WAIT_2)
终止一个连接要经过 4次 握手
这由TCP的半关闭
(half-close)
造成的CLOSE_WAIT
状态的问题情况父进程打开了
socket
,然后用派生子进程来处理业务,父进程继续对网络请求进行监听,永远不会终止客户端发
FIN
过来的时候,处理业务的子进程的read返回0,子进程发现对端已经关闭了,直接调用close()对本端进行关闭实际上,仅仅使
socket
的引用计数减1,socket
并没关闭。从而导致系统中又多了一个CLOSE_WAIT
的socket。。。如何避免上述情况?
子进程的关闭处理应该是这样的:
shutdown(sockfd, SHUT_RDWR);
close(sockfd);
这样处理,服务器的FIN会被发出,socket进入
LAST_ACK
状态,等待最后的ACK
到来,就能进入初始状态CLOSED
文章图片
shutdown()的函数说明
linux
系统下使用 shutdown
系统调用来控制socket的关闭方式int shutdown(int sockfd,int how);
参数
how
允许为shutdown
操作选择以下几种方式:- SHUT_RD
- SHUT_WR
- SHUT_RDWR
shutdown
两次:首先是以SHUT_RD,然后以SHUT_WR
注意:
在多进程中如果一个进程中
shutdown(sfd, SHUT_RDWR)
后其它的进程将无法进行通信,如果一个进程close(sfd)
将不会影响到其它进程2MSL
时长 TIME_WAIT
一定出现在主动关闭的一端,保证最后一个
ACK
对端能够收到。1.
TTL
是什么?TTL是 Time To Live的缩写
该字段指定
IP
包被路由器丢弃之前允许通过的最大网段数量。TTL是
IPv4
包头的一个8 bit
字段。2. TTL的作用
TTL的作用是限制
IP
数据包在计算机网络中的存在的时间。TTL的最大值是255,TTL的一个推荐值是64
3.
TTL
原理虽然
TTL
从字面上翻译,是可以存活的时间,但实际上TTL是IP
数据包在计算机网络中可以转发的最大跳数。TTL
字段由IP
数据包的发送者设置,在IP
数据包从源到目的的整个转发路径上每经过一个路由器,路由器都会修改这个
TTL
字段值,具体的做法是把该TTL的值减1,然后再将IP
包转发出去。如果在
IP
包到达目的IP
之前,TTL减少为0,路由器将会丢弃收到的TTL=0的IP
`包并向
IP包的发送者发送
ICMP` 发送超时报文。文章图片
c/s 模型和 b/s 模型的优缺点 c/s模型
优点:
C/S的最大优点是能够实现复杂的应用构造,安全性高,数据传输速度快。
- 结构简单。
- 支持分布式、并发环境。有效提高资源的利用率和共享程度。
- 服务器集中管理资源,有利于权限控制和系统安全。
- 可扩展性较好。客户和服务器均可单独地升级
- 不易部署(客户端逐一安装、挑平台)
- 维护困难(客户端需注意更新)
- 开发工作量大
- 打开一个通信通道,告知服务器进程所在主机将在某一端口上接受客户请求
- 等待客户的请求到达该端口
- 服务器接收到服务请求,处理该请求并发送应答
- 返回至第2步,等待并处理另一个客户的请求
- 关闭服务器
b/s
模型优点:
B/S
最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件,只要有一台能上网的电脑就能使用客户端零安装、零维护。系统的扩展非常容易。
分布式、易扩展、共享性强
相比较传统的
C/S
的优势:- 1.易部署(各平台自带通用浏览器)
- 2.容易维护(服务器端改变网页内容可实现所有用户同步更新)
- 3.页面动态刷新,响应速度明显降低。
- 开发工作量小
- 不能缓存大量数据
- 用户通过浏览器向
Web
服务器提出HTTP
请求。 Web
服务器根据浏览器请求调出相应文件,对相应文件不做处理或加以解释执行后,将纯客户端HTML
代码结果返回给浏览器。- 浏览器接收到
Web
服务器发回的页面内容(纯HTML
代码),显示给用户。
ICMP
协议过程例子
- A电脑(192.168.2.135)发起ping请求,ping 192.168.2.179
- A电脑广播发起
ARP
请求,查询 192.168.2.179的MAC地址。 - B电脑应答
ARP
请求,向A电脑发起单向应答,告诉A电脑自己的MAC地址为90:A4:DE:C2:DF:FE
- 知道了MAC地址后,开始进行真正的ping请求,由于B电脑可以根据A电脑发送的请求知道源MAC地址,所有就可以根据源MAC地址进行响应了。
ICMP
协议的,ICMP
协议的存在就是为了更高效的转发IP
数据报和提高交付成功的机会。ping命令除了依托于
ICMP
,在局域网下还要借助于ARP
协议,ARP
协议能根据IP
地址查出计算机MAC地址。ARP
是有缓存的,为了保证ARP
的准确性,计算机会更新ARP
缓存。ICMP
ICMP
是(Internet Control Message Protocol)Internet控制报文协议。ICMP协议
是一种面向无连接的协议,它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。ICMP是一个网络层协议。主要功能主要有:
- 确认
IP
包是否成功到达目标地址 - 通知在发送过程中
IP
包被丢弃的原因
- 计算机网络的三次握手,四次挥手
- TCP 第三次握手失败会出现什么
- 长连接和短连接的优缺点
- 滑动创后
- 网络通信中的
read
函数 - 什么是半关闭
- C/S 模型 和 B/S 模型
ICMP
你的支持和鼓励,是我坚持分享,提高质量的动力
文章图片
好了,本次就到这里
技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。
【计算机网络面试题整理】我是小魔童哪吒,欢迎点赞关注收藏,下次见~
推荐阅读
- PMSJ寻平面设计师之现代(Hyundai)
- 杜月笙的口才
- Linux下面如何查看tomcat已经使用多少线程
- 皮夹克
- 解读《摩根集团》(1)
- 绘本与写作
- 蓝桥杯试题
- 麦田社群
- 面对苦难——如何化解
- 葱爷说股20190107