计算机网络 极客十道面试题
目录
分层名称 | 功能 | 每层功能概览 |
---|---|---|
应用层 | 针对特定的应用协议 | Hppt协议,邮件协议 |
表示层 | 网络标准数据格式 | 接受不同形式的文本、图像、声音 |
会话层 | 通信的管理 | 何时建立连接,何时断开连接,保持多久连接 |
传输层 | TCP协议 | 两个进程之间的数据传输 |
网络层 | 地址管理和路由选择 | 经过哪个路由器传递到目标地址 |
数据链路层 | 通过MAC地址实现传输 互联设备之间传送和识别帧 |
由数据流变成比特帧 |
物理层 | 电压的高低和灯光的闪灭 | 比特流和电子信号的切换 |
TCP三次握手和四次挥手?
为什么要进行握手
TCP协议是可靠的传输协议,也就是我给你发完消息,我要知道明确知道你收到了,然后再发下一条,所以要进行握手。挥手的时候,对于双工的网络,由其中一方可以停止发送,但是另一方可以继续发,这个要分别确定,所以挥手要四次
为什么握手是三次而不是四次
因为如果是进行四次握手,比如我给你说,我要传数据了,你说好的,你说 “我也要给你传数据了”,我也说好的,这个过程过程中,如果你给我发的,我没收到,此时的网络就会处于一种 半打开
的状态,这种状态在 linux 系统中,可以持续半个月之久,关闭的时候可以半打开状态,但是发送的时候,tcp协议不允许出现这种状态,所以只能是三次而不是四次
握手时候的序列号为什么不能从0开始
因为从0开始,发生断开重连的时候,那么序列号就有可能重复
HTTP中的缓存处理流程
输入 url 后,网络世界发生了什么?
HTTP长链接有什么优点?
- http协议是基于 tcp协议的,这样就可以减少tcp握手的次数提高效率
- 减少慢启动的影响
缺点
TCP协议是字符流协议,也就是说他传文件的时候,会从文件的头传到文佳的位,一个字符一个字符的传,绝对不能乱。那么串行的时候,就会有对头阻塞
问题
介绍一下多播怎么实现的?
多播一般是在局域网内实现的,多播分为光播
、组播
如果把 IP 地址中的地址位全部置成 1 ,就成了广播,比如
127.20.255.255
,
服务器的最大并发连接数是多少?
服务器大概有6万多个端口,但是最大连接数是六万吗?其实受制于 源ip/目的ip
,源端口号/目的端口号
受制于tcp报头。
其次是端口号
TCP和UDP的区别
TCP协议
- 传输任意长度消息:(因为他是字符流)
- 可靠传输
- 流量控制,阻塞控制。(通过滑动窗口,慢启动等来控制)
UDP协议
- 一对多通信
- 效率高、简单,:因为他的 head 要比 TCP的头部小很多
- 时效性好,无队头阻塞
为什么说http协议是无状态的,如何加状态信息
http本身是无状态的,第一次访问和第二次访问,没有任何区别。
如何让 http协议变得有状态呢?通过添加 cookie
和 session
, cookie
是保存在客户端的,session
是保存在服务器端的。不过都是有服务器写的。