【知识详解】计算机网络总览及物理、链路、网络(秋招总结)

物理、链路、网络及总览

不同层常用协议

image

问:为什么要分层?

复杂的系统需要分层,比如常用的项目也是需要分层的,比如数据库操作、业务操作、前后端交互等,比如计算机网络里的分层,这样每一层就只需要专注于一类事情。具体的,在计算机网络里

  • 1.各层之间相互独立,不需要关心其他层是怎么实现的,只需要知道自己如何调用下层的功能就可以了。
  • 2.提高了整体的灵活性,每一层都可以使用最适合的技术去实现,只需要保证自己的功能然后暴露接口就可以了。
  • 3.大问题化小,可以将复杂的问题分解为许多比较小的问题来进行处理和解决。这样整个系统就变的更简单容易实现了。

在TCP/IP协议中,TCP协议是基于IP协议的。IP协议是对应于网络层的协议,它是
一个不可靠的协议。TCP协议的可靠性保证给IP协议提供了可靠环境,从而使得IP协议可以不必考虑传输的可靠性,专注于网络层的功能。这也是协议分层的初衷。

image

应用层

应用层进程也就是应用程序间的通信交互,传输的数据单元称为报文,对于不同的网络应用需要用到不同的应用层协议

  • HTTP协议(HyperText Transfer Protocol)超文本传输控制协议 主要是为web浏览器和web服务器之间的通信设计的。TCP的80端口。
  • SMTP协议(Simple Mail Transfer Protocol)简单邮件传输协议,基于TCP协议,主要用来发送电子邮件。TCP的25端口。

IP协议解决了数据包的路由和传输,上层的TCP就可以不再关注路由和寻址;TCP协议解决了传输的可靠性和顺序问题,上层的应用层就可以直接使用TCP协议进行数据传输,不再需要关心数据段的丢失和重复

http是要基于TCP连接基础上的,简单的说,TCP就是单纯的简历连接,不涉及任何我们需要请求的数据;http协议使用来收发数据,就是为实际应用而来的;

物理层

  • 1.想一下,if两台计算机要进行通信,那该怎么做呢,是不是可以直接拿根线把两者拉到一起,这样就可以了;
    问题:那if多台计算机想要通信呢?每两台计算机之间都拉一条线吗?那线会不会有点多了?
  • 2.所以可以有一个集线器(hub),这是啥呢?就是把线都拉到一个设备上面,不用两两之间都去相连了,比如1if想和3进行通信,那就可以1先到hub上,然后hub就把数据转发到连在自己这的其他计算机上,比如2.3.4.5,然后3收到后看到后是给自己的,那就把信息收下,其他的就都丢掉了;
    问题:那if1.2同时发送呢,那这电信号肯定混在一起了,那目的机器解析不出来自己想要的数据了?
  • 3.CSMA/CA:载波监听,也就是在发送之前先监听一下子,看这些链路上有没有人在发数据,if没有,那再发;
    问题:那这样每次链路上只能有一个机器发数据,其他都得等着,这利用率也太低了;

数据链路层(MAC层)

  • 4.所以可以采用一个新的设备:交换机(SW):交换机从某个端口收到数据包的时候,通过读取数据包中的目的MAC地址,也就是物理地址,对照自己内存里的地址表查看这个MAC地址和哪个端口是对应的,然后把这个数据包直接发给这个端口,不再整个线路上去广播了;if没有找到,这时候再去广播,发给所有的端口,对应的计算机就会收到这个帧并接收,然后交换机把这个计算机的mac地址和端口号记录到地址表里,做一个更新;
    问题:那每台交换机的端口号其实是有有限的,大规模的设备该怎么办呢?
  • 5.桥接:交换机是可以桥接的,也就是把两个交换机接到一起,然后在地址表里更新为两个桥接的交换机的端口即可;但是这种利用率其实还是比较低;所以更适合在局域网里采用;

三个基本问题

封装成帧

在数据链路层传输是采用的帧这种格式,也就是对于上层网络层交付下来的ip数据报,数据链路层会将其封装成帧。在首尾添加帧首部(SOH)和帧尾部(EOH);

透明传输

在原始数据里可能存在SOH和EOH这样的帧开始符合帧结束符,所以需要进行字节填充,也就是在这些符号前添加转义字符ESC;

差错控制

在传输过程中,可能会出错,所以在数据链路层提供了简单的差错控制机制;最常用的比如就是循环冗余检验CRC

image

网络层

在整个世界上,不能几十亿台设备都靠广播,靠这种吼的方式,所以实际上采用一种方式来区分广播域,只有在一个广播域里面了,再去广播;

ip数据报

image

ip地址

image

网络层功能

网络层主要负责路由转发和分组

在路由表中,存了目的主机所在的网络地址和下一跳的地址
主要的过程就是拿目的ip地址和子网掩码去按位与,查看是否是在同一个网络ip里,if是了,那就可以直接交付,if不是,就发到路由器上,然后查找路由表;

ARP协议

ARP是地址解析协议,也就是将ip地址转换为mac地址;

单纯的一个ip地址并不能确定处于哪个子网,需要依靠子网掩码,也就是子网掩码与ip地址按位与判断是否处于同一个子网络;
通信时,要知道目的ip地址:

  • 判断源ip和目的ip在不在一个局域网内,也就是两者的子网地址是否一样;
  • if一样的,那就可以拿到2的mac地址,依靠ARP协议;

在一个局域网里

主要就是判断两个计算机的子网地址一样,if一样的话,那就证明在一个局域网里,然后获得计算机2的mac地址;然后拿到mac地址之后再进行数据发送;

image

不在一个局域网里

不在一个局域网的时候就需要去获取网关的mac地址;
mac地址只在局域网里,要么转成局域网中计算机的,要么是网关的;

image

posted @ 2021-11-29 22:24  Curryxin  阅读(334)  评论(0编辑  收藏  举报
Live2D