总结一下网络方面的知识点(一)
在面试的过程中我发现网络这一块问的还是挺多的,但是我对这一块其实会的很有限,所以今天好好来整理一下。
1.分层方式
我们比较常见的有两种分层方式,第一种是OSI七层模型,第二种是TCP/IP模型。
OSI七层模型把计算机网络分成七个组成部分:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
TCP/IP模型把计算机网络分成五个组成部分:物理层、数据链路层、网络层、传输层、应用层
2.TCP/IP模型的工作流程
我觉得理解这个工作流程是非常必要的,这样我们才能知道各个层在数据传输的过程中做了什么。
我觉得这个图真的很完美:
tcp/ip各层所做处理通过这个图可以很清晰的看出来,在发送方,传输层给数据加tcp包首部,在网络层加ip包首部,通过加这些首部让接收方能够识别出传递的信息,进而解析出原来要传递的数据。
3.IP协议做什么
我们接触的最多的网络层协议就是IP协议,IP协议可以说是整个计算机网络的基础。IP协议主要负责什么呢,我们知道数据链路层协议负责数据在链路层正确的被传输到目的地,但是他并不知道这个数据要由谁传给谁。也就是说,网络层负责告诉链路层数据的发送发和接收方,实现点对点的通信,网络层不关心数据链路层用什么协议传输数据。
4.IP地址
IP地址是用来表示网络中的主机的。
IP地址由网络标识和主机标识两部分组成,这样一个IP地址就唯一的标识了某一个特定网络中的特定主机。
IPv6的ip地址长度是128bit,IPv4是32bit。
5.子网掩码
子网掩码可以把一个子网划分成更多的子网。
6.路由控制
主机a的数据要想发送到主机b可能需要经过多个路由进行转发,路由在转发的时候会查看自己的转发表,根据最长匹配原则找到与目的地址最接近的地址,然后把数据传递给这个地址对应的路由器,直到将数据转发到目的主机。
7.分片传输
fragment+reassembly分片和重组
因为每一种链路都有自己的最大传输单元MTU,不同的链路有不同的MTU,如果要传输的数据大于MTU就无法一次性传递,需要对数据进行分片,将分片一个一个传递,在接收方将这些分片组装起来。
分片和重组这个图就完美的解释了分片和重组的过程。
8.ip数据报的报文格式
IP数据报报文也是由两部分组成:报头+数据。
IP报文格式time to live:ttl表示这个报文的生命周期,每经过一个路由器就减1,直到为0的时候,这个报文被丢弃。
9.网络层相关技术
1.DNS域名解析系统,其实DNS并不是一个协议,他的作用就是通过域名找到对应的IP地址,而域名就在url也就是网址里。
2.ARP ARP就是用来进行IP地址到MAC地址的对应。什么是MAC地址呢,其实就是计算机在网络中的一个物理地址,一旦确定就不会改变了。
ARP的工作原理:简单点说,ARP就是通过ARP请求与ARP响应两种包来确定MAC地址。a询问MAC地址是什么,b回传给a一个包,告诉a自己的MAC地址。
⚠️:为什么同时需要MAC地址和IP地址?
因为如果数据在不同的链路传输,就需要用到路由,而路由工作在数据链路层,数据链路层是通过MAC地址去标识主机的,所以如果在不同链路传输就必须要用到 MAC地址。
3.NAT NAT这种技术主要是在本地网络使用私有地址,而需要和互联网通信的时候就转换成全局IP地址,主要是因为全局ip地址的数量有限。