计算机网络科普

1、集线器

计算机之间的相互通信,你会怎么设计?

  • 如果是两台计算机,之间拉一条线,通信的方式就是将数据转换成0101这样的二进制高低电平信号通过这条线来传播

  • 如果现在不止两台计算机,要设计一个能够使每台计算机之间能够两两通信的网络,怎么设计?利用一个“中介”,所有计算机都拉一条线到这个“中介”上,再通过“中介”来转发,这样就能大大减少拉线的数量,节省成本。这里就提出了计算机网络设计中一个非常重要的思想——转发的思想

  • 既然有了“中介”,我们就可以通过中介来进行通信,那么问题又来了,中介收到了你发给他的消息后,他怎么知道要转发给谁呢?我们可以给网络中的每台计算机一个标识,相当于计算机的“身份证号”。这里就提出了计算机网络设计中另一个非常重要的思想——标识的思想。不需要该数据包的可以直接丢弃

  • 这种群发的通信方式称为广播。转发的“中介”是一个叫做集线器HUB的设备,所使用的”线“是双绞线,它是早期所使用的技术,但是是无条件转发

2、CSMA/CD协议

如果网络中同时有两台计算机发出消息,那么集线器会同时收到两束信号,这两束信号可能会杂糅在一起,造成冲突,怎么处理这个问题呢?

  • 针对这个问题,提出了一种协议——CSMA/CD协议。这个协议可以让这些计算机在发送前先进行载波侦听,就是先检测一下这个链路上有没有其他人正在发送数据,如果没有的话我再发送。这就是CSMA/CD协议最重要的功能,即防止冲突

3、交换机

集线器设备的这种”无脑转发“的方式虽然简单粗暴,但是有很多缺点——效率低下、带宽资源利用率低、不安全。怎么解决这个问题?

  • 在转发时可以采取另一种方式,中介拿到消息不是无脑散播出去,而是看一看接收者是谁,再将消息转发出去,这样的方式明显效率更高,而且更加安全

  • 这种方式也是现在所采用的技术,这里的”中介“叫做交换机SW或二层交换机或网桥

  • 交换机比集线器先进的地方在于,它设置了记录的机制。刚开始它和集线器一样,收到消息后就直接无脑转发。如1号发来消息时,他就知道这个端口连接的是1号,就在表中记录:1号对应xx端口。同时,在无脑转发后,他发现只有一条线上的计算机接收了消息,其他线上的计算机都把数据丢弃了。这个端口的线是通向3这台计算机的,于是他就在表中记录:3号对应xx端口。那么当下一次有消息要发给3号时,交换机在表中一查,就知道要发送到哪个端口了,无需无脑群发

  • 在实际中,采用的是MAC地址标识设备,MAC地址是每个网卡在出厂时就已经写死的,也就是说,MAC地址就是网卡的地址。将网卡插在计算机上,计算机就能参与网络,所以这里的标识标的是网卡而不是计算机

  • 网卡又称为网络适配器或网络接口卡NIC,每一个网卡在出厂时,都会给分配一个编号,这个编号就称之为mac地址

  • 交换机记录表记录的是MAC地址与交换机端口的映射关系,这个记录表称为交换表或MAC地址表

  • 交换机不会产生冲突的问题。因为集线器采用的是双绞线,而交换机采用的是我们现在的网线,网线中是有八根线的,正常情况下至少有四根线在工作,这种方式可以实现某台计算机同时在发消息也同时在收消息(走不同的线即可)

  • 这种能够同时在发消息也同时在收消息的通信称为全双工通信。而集线器这种可以发消息也可以收消息但不能同时进行的通信称为半双工通信。还有一种,一方只能发消息,另一方只能收消息的通信称为单工通信

  • 同一网段下的设备进行通信可以不用经过网关(路由器)

  • 计算机网络中数据采用分组交换的方式:通过标有地址的分组进行路由选择传送数据,使通信通道仅在传送期间被占用的一种交换方式【即传输出去就可以用来接收其他数据】。计算机网络中数据的交换方式—存储转发。节点收到分组,先暂时存储下来,再检查其首部,按照首部中的目的地址,找到合适的节点转发出去
    在这里插入图片描述

  • 目前交换机还具备了一些新的功能,如对VLAN(虚拟局域网)的支持、对链路汇聚的支持,甚至有的还具有防火墙(过滤mac地址,过滤ip地址,过滤端口号等)的功能

3.1 交换机的桥接

  • 交换机可以连接交换机,这种连接称为交换机的桥接
  • 桥接会产生多个mac地址可以对应一个端口

在这里插入图片描述

4、 路由器

一般来说MAC地址表能存的数量是几千,虽然已经比直接拉线效率高很多了,但对于实现全球互联网还是有很大的距离。那么我们还能够怎样进行改进呢?

  • 如果只是使用交换机来连接全球计算机,那么当一台计算机发出消息时,第一个交换机找不到,就会广播到下面几个交换机,还找不到就会再广播、再广播……一条消息发出去差不多要把全球的计算机遍历一遍,这种现象被称为消息洪泛

  • 这里可以引入一些概念,网络按照范围来分类,可以分成个域网、局域网、城域网、广域网。个域网一般是个人的一些设备比如电脑、手机、打印机相连组成的一个网络;局域网就范围稍大一些,比如公司网、校园网;城域网的范围就扩大到一个城市或几个城市;广域网是最大范围。

  • 既然交换机在局域网中是非常高效的,那么我们就在各个区域用交换机来连接成一个个局域网,各个局域网之间再设置一个更高级别的中介,这个中介负责把多个局域网连接起来。

  • 这个更高级别的中介就叫路由器或三层交换机或网关

  • 不同的网络又称为子网、网段

  • 具有判断网络地址和选择IP路径的功能的

  • 路由器工作在网络层,可以实现不同网段的主机之间进行通信

4.1 关于网关

  • 对同一网段的目的ip进行访问,访问的同时进行追踪:
    tracert -d xxx.xxx.xxx.xxx
    
  • 换b站的ip进行访问:
    在这里插入图片描述
  • 经过的网关中,第一个就是我路由器的网关
    在这里插入图片描述

5、 路由表

路由器又是如何怎么知道他要转发给谁呢?

  • 在交换机那里我们提出了MAC地址,用于标识连接进网络的各台设备(实际上手表、手机、甚至音响等等都可以作为网络设备联网)。在这里,我们需要一个新的标识,来标识各网络,因为路由器是各网络的中介,这里所引进的标识就是IP协议下的IP地址

  • IP地址不仅仅标识网络,同时也标识了设备。与MAC地址的处理方法一样,IP地址也是加在所要发送的数据的头部。路由器接收到发送来的数据时,也需要从中提取出IP地址。同样的,路由器也采用了交换机的策略,建立了映射表,这个表称为路由表,但不同的是,这个路由表的建立并不是像交换机那么简单,查不到就广播,而是有更加复杂的路由算法得到

  • 因此,路由器是工作在网络层的,IP协议是网络层下的一个协议

  • 标识网络可以理解为标识一个局域网内部所有IP地址的网络位。例如192.168.0.1就是就是一个IP地址,局域网内部的IP地址都是在192.168.0.1-192.168.0.255之间。所以路由器可以理解为维护了多个网络的IP起始地址,

6、IP地址

  • IP地址是一种Internet上的主机编址方式,也称为网际协议地址
  • 每台连接到互联网的设备都有一个分配给它的唯一数字标识符——IP 地址。
  • IP地址是任意一台主机在网络中的唯一标识

IP地址是怎么做到既标识网络,又标识设备的呢?

  • IP地址由4位0-255的十进制数组成,对应32位二进制数,比如192.168.1.1,下图表示从十进制转化为二进制的形式【十进制便于人读,二进制便于机器读】
    在这里插入图片描述

  • 在IP地址中分为网络位和主机位,网络位标识了网络,主机位标识了在该网络下的设备网络位和主机位的划分通过子网掩码来完成,子网掩码与IP地址一样,也是32位二进制数,子网掩码取1的部分为网络位,子网掩码取0的部分为主机位

  • 从属于同一网络下的各设备拥有相同的网络位,从属于不同网络下的各设备就有不同的网络位。这样就用IP地址+子网掩码做到了既标识网络,又标识设备

  • 子网ID不同的网络不能直接通信,如果要通信则需要路由器转发

  • 主机ID全为0的IP地址表示网段地址,例如192.168.2.0【不能被设备分配】

  • 主机ID全为1的IP地址表示该网段的广播地址,例如192.168.2.255【不能被设备分配】

6.1 DNS

  • 会将网址解析成一段ip地址

6.2 私有IP地址与公有IP地址

公有IP(可直接连接Internet)

  • 经由InterNIC所统一规划的IP

私有IP(不可直接连接Internet )

  • 主要用于局域网络内的主机联机规划

在这里插入图片描述

6.3 回环ip地址

通常 127.0.0.1 称为回环地址

功能

  • 主要是测试本机的网络配置,能ping通127.0.0.1说明本机的网卡和IP协议安装都没有问题

注意

  • 127.0.0.1~127.255.255.254中的任何地址都将回环到本地主机中
  • 不属于任何一个有类别地址类,它代表设备的本地虚拟接口

7、MAC地址

既然IP地址又标识网络又标识设备,那还需要MAC地址吗?

  • IP地址是网络层的提出的标识概念,实际的数据传输过程仍然走的是MAC地址

  • 路由器也是有MAC地址的,在数据链路层范畴内,路由器与其他参与网络的设备没有任何区别,交换机一样会把路由器当作一个有MAC地址的网络设备进行数据传输

8、ARP协议

既然数据传输过程仍然走的是MAC地址,那么IP地址是怎么转换成MAC地址的呢?基于网络层的通信过程又是什么样的呢?

  • APR协议可以使IP地址转换成MAC地址,首先设备会发出ARP广播,询问哪台设备的IP地址是这个啊,每台设备都会收到消息,IP地址是这个的设备收到消息后就回应,我的IP地址是这个,然后我的MAC地址是这个.……这样就完成了IP地址到MAC地址的转换

  • 比如网络1的IP为192.168.0.0/24,ps:【这个是 ip+网络号的表示。说明了:ip地址 192.168.0.0中的前24位为网络号,24位以后为主机号】,路由器中连接网络1的端口IP为192.168.0.1,属于网络1下的设备1IP为192.168.0.102;当端口IP为192.168.0要和设备1IP为192.168.0.102进行通信时,会发出ARP广播,询问哪台设备的IP地址是192.168.0.102,当IP地址是这个的设备收到消息后就回应设备的MAC地址,这样就可以在mac层传输数据,同理,在同一个路由器下的不同设备之间的通信也是采用ARP协议,在数据传输时IP地址不变,而是mac地址会变化

  • 192.168.0.0/24,表示这个是 ip+网络号。说明了:ip地址 192.168.0.0中的前24位为网络号,24位以后为主机号

  • 不同网络下设备1向设备2发出数据的流程:首先网络层会在数据前加头部,头部中包含源IP地址0.10和目的IP地址1.254;之后数据链路层在数据前加头部,由于目的IP地址与源IP地址不在同一网段下,因此目的MAC地址为路由器端口0.1的MAC地址;数据传输到路由器端口1后,经过解析和重新封装,目的IP地址和源IP地址不变,源MAC地址变为端口0.1的MAC地址,目的MAC地址变为1.52的MAC地址;传到端口2后,路由器再次对其解析和重新封装,目的IP地址和源IP地址不变,对于MAC地址,路由器发出ARP广播,得到目的MAC地址为1.254的MAC地址,源MAC地址为1.52的MAC地址,最终数据成功发送到设备2

9、关于网络层次模型

计算机网络是分层的,不同的层分管不同的任务,完成不同的功能,提供不同的服务

  • 交换机属于数据链路层【负责加和解析MAC地址的就是数据链路层】
  • 集线器是属于物理层【物理层负责的是搞电信号和数据之间的转换的】

10、路由器

在这里插入图片描述

路由器具有()块网卡和()个硬件地址。

路由器由于同时连接到两个网络上,因此它有两块网卡和两个硬件地址

  • wan口可以认为是对外的IP,用于和其他路由器进行通信的标识
  • lan口可以认为是对内的IP,他的IPv4地址就可以认为是标识网络

11、猫/光猫

  • 猫和光猫是不一样的,区别在于猫不支持光纤,需要直接拉网线,而光猫直接光纤入户。
  • 光猫的作用就是:将光信号转换成电信号,再通过网线连接路由器
    在这里插入图片描述

12、TCP/IP协议简介

参考博文:计算机网络——7层OSI网络模型

  • 为了能够实现不同类型的计算机和不同类型的操作系统之间进行通信【例如手机端qq和电脑端qq】,引入了分层的概念最早的分层体系结构是OSI开放系统互联模型,是由国际化标准组织(ISO)指定的,由于OSI过于复杂,所以到现在为止也没有适用,而使用的是TCP/IP协议族
  • 对比
    在这里插入图片描述

13、NAT网络地址转换+端口映射技术

  • 将局域网内部的ip地址映射为网关的ip,并记录好映射表,该映射表中有端口和ip地址的映射关系,网关会以不同的端口去和外网交互。【有两个映射,ip地址的映射和端口号的映射】
    在这里插入图片描述
  • 公网ip和私网ip:私网IP就是寄宿在公网IP下,在广域网上进行数据交互的就是公网IP
    在这里插入图片描述

14、端口

14.1 端口概述

  • TCP/IP协议采用端口标识通信的进程
  • 用于区分一个系统里的多个进程

特点

  • 1、对于同一个端口,在不同系统中对应着不同的进程
  • 2、对于同一个系统,一个端口只能被一个进程拥有
  • 3、一个进程拥有一个端口后,传输层送到该端口的数据全部被该进程接收,同样,进
    程送交传输层的数据也通过该端口被送出

14.2 端口号

类似pid标识一个进程;在网络程序中,用端口号(port)来标识一个运行的网络程序是为了方便通信【进程号是有系统随机分配】
特点

  • 1、端口号是无符号短整型的类型
  • 2、每个端口都拥有一个端口号
  • 3、TCP、UDP维护各自独立的端口号
  • 4、网络应用程序,至少要占用一个端口号,也可以占有多个端口号

知名端口(1~1023)

  • 由互联网数字分配机构(IANA)根据用户需要进行统一分配
  • 例如:FTP—21,HTTP—80等
  • 服务器通常使用的范围;
  • 若强制使用,须加root特权

动态端口(1024~65535)

  • 应用程序通常使用的范围
  • 一般我们可以使用的端口号就是在这个范围,比如6666、7777、8888、9999、10000、10001

注意

  • 端口号类似于进程号,同一时刻只能标志一个进程
  • 可以重复使用

15、网络编程

16、网络通信过程分析软件

模拟通信过程(PC+switch)

在这里插入图片描述
可以通过仿真查看数据包的流通过程
在这里插入图片描述

  • 如果PC不知目标IP所对应的MAC,那么可以看出,PC会先发送ARP广播,得到对方的MAC然后,再进行数据的传送
  • 当switch第一次收到ARP广播数据,会把ARP广播数据包转发给所有端口(除来源端口);如果以后还有PC询问此IP的MAC,那么只是向目标的端口进行转发数据
  • 每台PC都会有一个ARP缓存表,用来记录IP所对应的的MAC,在终端通过arp -a指令可以查看,注意arp表不是永久的,过一段时间之后就会将没有通信的主机的ip地址以及其mac地址从表中移除

模拟通信过程(PC+switch+router)

在这里插入图片描述

  • 路由器只有两个网口,所以要采用上图的形式去连接,同时两个网口在不同的网段下
  • 不在同一网段的PC,需要设置pc机的默认网关才能把数据传送过去(也就是让pc机往那个路由器发送数据包),通常情况下,都会把路由器设为默认网关
  • 当路由器收到一个其它网段的数据包时,会根据“路由表”来决定把此数据包发送到哪个端口;
  • 路由表的设定有静态和动态方法,可以在终端通过route print指令来查看
  • 设置路由表就是设置下一跳,指定当前网段的主机与另一个网段主机通信是数据报应该交给那个路由器
    在这里插入图片描述
    • network设置想要访问的网段的ip地址
    • new hop填写下一个路由器网口的ip地址(是同一个网段下的ip地址)
    • 同一个路由器不同网段(两个网口)之间是可以任意通信的

模拟通信过程(浏览器跨网访问Web服务器)

在这里插入图片描述

1、DNS服务器的作用是解析出IP
2、DFGATEWAY指定发往其它网段的数据包转发的路径
3、在路由器中路由表指定数据包的“下一跳”的地址
4、公有IP、私有IP

pc机需要设置dns服务器地址
在这里插入图片描述
通过网页进行访问
在这里插入图片描述

17、原始套接字


视频:【网络】半小时看懂<计算机网络>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值