计算机网络常见面试题

HTTP 常见状态码

200 success
301 permanently shifted (资源被永久转移到了其他URL)
403 forbidden
404 not found
500 internal error (服务器内部错误)

网络OSI模型7层架构

应用层
表达层
会话层
传输层
网络层
数据链路层
物理层

三次握手和四次挥手

TCP 在传输之前会进行三次沟通,一般称为“三次握手”,传完数据断开的时候要进行四次沟通,一般 称为“四次挥手”。

第一次握手:主机 A 发送位码为 syn=1,随机产生 seq number=1234567 的数据包到服务器,主机 B 由SYN=1知道,A要求建立联机;
第二次握手:主机 B 收到请求后要确认联机信息,向 A 发送 ack number=(主机 A 的 seq+1),syn=1,ack=1,随机产生seq=7654321 的包
第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码 ack是否为1,若正确,主机A会再发送ack number=(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建立成功。

TCP 建立连接要进行三次握手,而断开连接要进行四次。这是由于 TCP 的半关闭造成的。因为 TCP 连 接是全双工的(即数据可在两个方向上同时传递)所以进行关闭时每个方向上都要单独进行关闭。这个单 方向的关闭就叫半关闭。当一方完成它的数据发送任务,就发送一个FIN来向另一方通告将要终止这个 方向的连接。

1) 关闭客户端到服务器的连接:首先客户端 A 发送一个 FIN,用来关闭客户到服务器的数据传送, 然后等待服务器的确认。其中终止标志位FIN=1,序列号seq=u
2) 服务器收到这个FIN,它发回一个ACK,确认号ack为收到的序号加1。
3) 关闭服务器到客户端的连接:也是发送一个FIN给客户端。
4) 客户段收到FIN后,并发回一个 ACK报文确认,并将确认序号seq设置为收到序号加1。
首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。

主机A发送FIN后,进入终止等待状态, 服务器B 收到主机 A连接释放报文段后,就立即 给主机A发送确认,然后服务器B就进入close-wait 状态,此时TCP服务器进程就通知高 层应用进程,因而从A到 B的连接就释放了。此时是“半关闭”状态。即A不可以发送给 B,但是B 可以发送给A。此时,若B 没有数据报要发送给A了,其应用进程就通知TCP释 放连接,然后发送给A连接释放报文段,并等待确认。A发送确认后,进入time-wait,注 意,此时TCP连接还没有释放掉,然后经过时间等待计时器设置的 2MSL后,A才进入到 close状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值