面试必备干货 | 网络基础知识 & I/O模型

本文详细介绍了网络通信的基础知识,包括OSI网络参考模型的七个层次及其功能,如物理层、数据链路层、网络层、传输层等。文章还探讨了网络层的IP协议和 ARP 协议,以及传输层的TCP和UDP协议。此外,讨论了不同类型的I/O模型,如阻塞I/O、非阻塞I/O和IO多路复用,并重点讲解了IO多路复用中的epoll。最后,文章简述了HTTP请求响应过程及实时通信技术,如短轮询、长轮询、长连接和WebSocket。
摘要由CSDN通过智能技术生成

OSI网络参考模型

我们现在所处的网络,是由无数个子网构成的。而在一个局域网(子网)中,计算机的通信方式为广播。如果不在一个局域网,就采用路由的方式(向不同广播域/子网分发数据包)。

OSI参考模型把整个网络的通信功能划分为7个层次,由低到高分别为:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。也有将后面的会话层、表示层和应用层都统称为应用层。

其中物理层、链路层、网络层是面向数据通信,会话层、表示层、应用层是面向资源子网。

物理层:

是指网线、路由器等物理连接介质,即负责把两台计算机连起来,然后在计算机之间发送0101之类的数据。

数据链路层:

对物理层发送给的电信号进行分组。

最为常用的分组协议就是以太网协议。这个协议把每一组的电信号分为规定长度的报头部分还有不定长的数据部分。

其中报头部分包含发送者原地址、接收者目标地址还有数据类型,都是6个字节,所以报头部分固定为18个字节。数据部分则没有固定长度(最短46字节,最长1500字节)。

链路层有关的协议:

ARP协议:地址解析协议,是根据IP地址获取对方计算机的物理地址(即计算机MAC地址)的一个TCP/IP协议。

主机发送信息时将包含目标IP地址的ARP请求广播到网络上(同一个子网内)的所有主机,并接收返回消息,以此确定目标的物理地址(MAC地址)。比如说计算机A要给计算机B发送数据时,A会先向同一个子网里的每台计算机发送一个包含接收方IP地址的数据包,其他计算机接收到后会与自身的对比,B计算机发现相同则将自己的MAC地址回复给A,其他计算机则会丢弃这个数据包。这个过程中,A计算机就知道B计算机的MAC地址了。之后A会把B的IP地址以及对应的MAC地址信息缓存在自己的机器中。

如果说ARP协议是根据IP地址去寻找对方物理地址的,那么rARP协议就是通过物理地址去申请IP地址的。

RARP是一种逝去的地址分配技术,是Bootp和DHCP的鼻祖,目前我们的电脑基本不会用到这个协议,只有部分无盘工作站等情况需要用到。而现在新装的系统要获取IP地址都会通过DHCP协议去获取。

网络层

网络层的作用是建立主机到主机的通信。解决网络传输中的对方网络地址的问题,即IP地址。通过IP协议找到对方局域网的位置,再根据ARP协议通过IP地址找到对方计算机的物理地址(即计算机MAC地址)。

关于网络层有关的协议:

IP协议:用来确定对方局域网的位置。每一个计算机的IP地址都分为网络部分和主机部分,如果网络部分相同则说明处在同一个局域网。

但网络部分和主机部分所占的二进制位数是不固定的,需要通过将双方计算机中的IP地址的二进制数与自己本身的子网掩码的二进制数进行与(and)运算,然后进行比较,相同则处在同一个子网。

例如:192.168.43.1 和 192.168.43.2, 假如这两个 IP 地址的网络部分为 24 位,主机部分为 8 位,即双方的子网掩码都是255.255.255.0。那么他们的网络部分都为 192.168.43,所以他们处于同一个子网中。

​ 但如果第一个IP地址的子网掩码是255.255.0.0,第二个IP地址的子网掩码是255.255.255.0,分别将第一个的IP地址与自己的子网掩码做与运算,同理第二个也如此,最后做比较可以得出第一个IP地址网络部分是192.168,而第二个是 192.168.43,所以这两个IP地址不在同一个子网中。

传输层

传输层的作用是建立端口到端口之间的通信。上面三层帮助我们将数据从计算机A传送到计算机B,而这一层则帮我们解决传送到计算机B中的具体的某个应用中。

关于传输层有关的两个协议:

TCP协议:是一种面向连接,可靠的字节流传输控制协议。

UDP协议:是一种面向无连接,不可靠的基于报文的传输协议。

应用层

应用层处理传输层传过来的数据,并加工成我们看得懂的形式。

这里要注意,如果网络模型分成七层的话,那么应用层还可以细分为会话层、表示层和应用层。

表示层主要包括数据压缩和数据加密以及数据描述,数据描述使得应用程序不必担心计算机内部存储格式的问题。会话层提供了数据交换的定界和同步功能,包括建立检查点和恢复方案。应用层处理传输层传过来的数据,并加工成我们看得懂的形式。

现在你的计算机

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值