【网络编程和并发】

1、简述OSI七层模型

四层模型:应用层、传输层、网络层、数据接口层
五层模型:应用层、传输层、网络层、数据链路层、物理层
七层模型:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层

应用层:网络服务与最终端用户的接口,常见协议有http、DNS、ftp、SMTP、SNTP
表示层:数据的表示、安全、压缩。确保一个系统的应用层所发出的信息能被另一个系统的应用层所读取。
会话层:建立、管理、中止会话,对应主机进程,指本地主机与远程主机正在进行的会话。
传输层:定义传输数据的协议端口号,以及流控和差错校验。协议有tcp,udp
网络层:进行逻辑地址寻址,实现不同网络之间的路径选择。协议有ICMP、IGMP、IP
数据链路层:在物理层提供比特流服务的基础上,建立相邻节点之间的数据链路
物理层:建立、维护、断开物理连接。

2、什么事C/S和B/S架构

C/S结构:Client/Server(客户端/服务器)架构。
优点:
1、交互性强:客户端有着一套完整的应用程序,相对B/S有着更强大的功能,还可以实现子程序之间的切换。
2、安全性强:只适用于局域网,相对来说其安全性能比较好。
3、处理信息能力强在:C/S的通信量相对B/S来说少了很多。
4、速度较快,更加利于处理大量数据。
缺点:
1、只适用于局域网
2、客户端要安装相应的客户端软件
3、系统升级是,每台客户端都要重新安装一下
4、操作系统可能会有限制

B/S结构:Browser/Server(浏览器/服务器)结构。
优点;
1、客户端零维护。
2、系统扩展容易。
3、在电脑可上网前提下,可以在任何操作系统上使用,并且不需要安装专门的软件。
缺点:
1、相对C/S来说交互性差,不能在子程序间自由切换。
2、安全性较差,B/S其安全性只能靠数据库服务器上管理密码的数据库来保证。
3、逻辑结构比C/S多一层,处理速度较慢。

3、简述三次握手和四次挥手流程》

三次握手:
(1)第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。
(2)第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。
(3)第三次握手:Client收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给Server,Server检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。

四次挥手:
(1)第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。
(2)第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。
(3)第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。
(4)第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。

4、什么是arp协议?

ARP协议,全称“Address Resolution Protocol”,中文名是地址解析协议,使用ARP协议可实现通过IP地址获得对应主机物理地址(MAC地址)的TCP/IP协议。
1、ARP全称“Address Resolution Protocol”
2、实现局域网内通过IP地址获取主机的MAC地址。
3、MAC地址48位主机的物理地址,局域网内唯一。
4、ARP协议类似DNS服务,但不需要配置服务。
5、ARP协议是三层协议。

5、TCP和UDP的区别。

1) TCP提供面向连接的传输,通信前要先建立连接(三次握手机制); UDP提供无连接的传输,通信前不需要建立连接。
2) TCP提供可靠的传输(有序,无差错,不丢失,不重复); UDP提供不可靠的传输。
3) TCP面向字节流的传输,因此它能将信息分割成组,并在接收端将其重组; UDP是面向数据报的传输,没有分组开销。
4) TCP提供拥塞控制和流量控制机制; UDP不提供拥塞控制和流量控制机制。

6、什么是socket,简述基于tcp协议的套接字通信流程。

Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部。

服务端:创建socket对象,绑定ip端口bind(),  设置最大链接数listen(),  accept()与客户端的connect()创建双向管道, send(), recv(),close()

客户端:创建socket对象,connect()与服务端accept()创建双向管道 ,  send(), recv(),close()

7、什么是粘包? socket 中造成粘包的原因是什么?

粘包:数据量粘在一起
主要原因:接收方不知道消息之间的界限,不知道一次提取多少字节的数据导致的。

8、I/O多路复用

单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力

9、nginx是什么及作用

Nginx是一个轻量级、高性能、稳定性高、并发性好的HTTP和反向代理服务器。
作用:反向代理、负载均衡、动静分离
反向代理:
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值