计算机网络初识

网络

1.什么是计算机网络?

定义:计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。

这里的定义比较繁琐,通俗的来说,网络,就是把一群计算机通过一些硬件和协议连接起来,达到资源共享的东西。

2.计算机网络发展的发展

  1. 独立模式: 计算机之间相互独立;
  2. 网络互联: 多台计算机连接在一起, 完成数据共享;
  3. 局域网LAN: 计算机数量更多了, 通过交换机和路由器连接在一起;
  4. 广域网WAN: 将远隔千里的计算机都连在一起;

这就是计算机网络的发展,起初,电脑只是用作计算或者用于办公等,根本不需要连接网络。后来美国军方一通瞎操作,想搞一个信息传递的通道,就整出个网络,后来以这个为原型搞出一个飞机订票系统。这里不多说了,有兴趣的去看看这篇文章

这里要注意的一点是:所谓 “局域网” 和 “广域网” 只是一个相对的概念. 比如, 我们有 “天朝特色” 的广域网, 也可以看做一个比较大的局域网.

3.什么是协议?

网络协议:计算机网络中进行数据交换而建立的规则、标准或约定的集合。

通俗来说吧,就是约定如何交互解析信息。比如,我们都知道在计算机最底层,没有丰富的图片,音频,视频,汉字等,只有简简单单的0和1,那么一堆数字计算机怎么去解析呢?这里就需要一种约定,去规范双方的数据格式,也就是我们所谓的协议。

起初,制造计算机的各个厂家随便乱来,协议也都不统一,大家互相通信之间可能会导致不兼容的情况,后来计算机网络发展的越来越快,国际标准化组织(ISO)在1978年提出了“开放系统互联参考模型”,也被称为ISO七层模型。
计算机网络初识_第1张图片后来,大家在这个基础上又整了个TCP/IP五层模型:
计算机网络初识_第2张图片如果第一次接触网络的话,估计都迷了,那我所知道的Http,ARP,RAP,ICMP,哪些什么都跟什么啊?

我们所知道的TCP/IP协议,准确地应该是TCP/IP协议簇,它里面不同层之间有不同层的协议,用来规定数据如何加工
计算机网络初识_第3张图片这些协议我们后面再总结。

4.网络中硬件

NIC: 网卡在数据链路层工作,是连接计算机和传输介质的接口,实现与传输介质的物理连接和电信号匹配,同时还负责帧的发送与接收、帧的封装与拆封、介质访问控制、数据的编码与解码以及数据缓存的功能等。

Repeater: 中继器在物理层运行, 2 端口设备。放大信号,从而延长信号在同一网络上传输的长度。

HUB: 集线器在物理层运行,基本上是一个多端口中继器。集线器连接来自不同分支的多条电线,例如连接星形拓扑中的不同节点。集线器不能过滤数据,因此数据包将发送到所有连接的设备(广播)。集线器都有碰撞检测功能,每次只允许一个设备发送广播信号,效率低。

Bridge: 网桥在数据链路层运行,2 端口设备。跟集线器相比,网桥可以通过读取源和目的地的 MAC 地址来过滤内容,从而隔离网络。

Switch: 交换机在数据链路层运行,是一个多端口网桥。交换机中维护一张 Port-MAC 映射表,记录每个端口上的主机的 MAC 地址。跟集线器相比,交换机记录每个端口上主机的 MAC 地址,每次转发数据时都只会发送到指定的端口,而不是广播到所有主机,效率高。

Router: 路由器在网络层运行,类似交换机,但是根据 IP 地址发送数据包。家庭路由器通常将局域网和广域网连接在一起。路由器中有一个动态更新的路由表,以此作为决策依据。现在的路由器通常集成了多个功能,包括有 4 个端口的集线器、NAT(Network Address Translator 网络地址转换)、DHCP(Dynamic Host Configuration Protocol 动态主机配置协议)、DNS(Domain Name Service 域名服务)代理服务器和硬件防火墙。路由器有一个 WAN 端口,可以连接到电信或联通的网络。通过路由器内部的集线器可以方便的创建 LAN。借助 DHCP 和 NAT,这个 LAN 中的所有设备都可以使用唯一的 IP 地址访问网络。

Gateway: 网关是将两个网络连接在一起的通道,可以在不同的网络协议下工作。网关也称为协议转换器,可以在任何网络层运行。网关通常比交换机或路由器更复杂。路由器可以在相同网络间移动数据,相当于特殊的网关(IP 网关)。

5.IP地址和MAC地址

IP地址:

首先说明,IP协议有两个版本, IPv4和IPv6.。我们现在基本使用的都是IPV4,但前段时间IPV4的地址已经耗尽了,现在都在转变成IPV6。
IP地址是在IP协议中, 用来标识网络中不同主机的地址;

对于IPv4来说, IP地址是一个4字节, 32位的整数;(我们通常也使用 “点分十进制” 的字符串表示IP地址, 例如 192.168.0.1 ; 用点分割的每一个数字表示一个字节, 范围是 0 - 255)

对于IPv6来说,IP地址是一个16字节,也就是128位。(表示方法有三种:1.冒分十六进制表示法 2.0位压缩表示法 3.内嵌IPv4地址表示法)

这里要细说IP地址,IP地址是由网络地址与主机地址两部分所组成,分为A类,B类,C类,D类,E类

 最初设计互联网络时,为了便于寻址以及层次化构造网络,每个IP地址包括两个标识码(ID),即网络ID和主机ID。同一个物理网络上的所有主机都使用同一个网络ID,网络上的一个主机(包括网络上工作站,服务器和路由器等)有一个主机ID与其对应。IP地址根据网络ID的不同分为5种类型,A类地址、B类地址、C类地址、D类地址和E类地址。

1. A类IP地址 一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”, 地址范围从1.0.0.0 到126.0.0.0。可用的A类网络有126个,每个网络能容纳1亿多个主机。  

2. B类IP地址 一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,地址范围从128.0.0.0到191.255.255.255。可用的B类网络有16382个,每个网络能容纳6万多个主机 。 

3. C类IP地址 一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”。范围从192.0.0.0到223.255.255.255。C类网络可达209万余个,每个网络能容纳254个主机。 

4. D类地址用于多点广播(Multicast)。 D类IP地址第一个字节以“lll0”开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。224.0.0.0到239.255.255.255用于多点广播 。

5. E类IP地址 以“llll0”开始,为将来使用保留。240.0.0.0到255.255.255.254

这块吧,能理解多少是多少,反正要是光写程序,了解就好,我们一般是应用层。。。

MAC地址

MAC地址用来识别数据链路层中相连的节点;
mac地址长度为48位, 及6个字节.
一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)
在网卡出厂时就确定了, 不能修改. mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址)

IP地址和MAC地址的区别

IP地址相当于你们家的地址,而MAC地址相当于你的身份证号,家能知道你的位置但家的位置可能搬来搬去,而身份证号,一生只有一个,无法更改。
也就是说,IP地址就是你电脑在网络上的位置的,但这玩意是不固定的,当你设备连上网络,DHCP服务自动为你设备分配一个IP地址,你断开连接后,这个IP地址就不是你的了。而MAC地址就是你设备的唯一标识,直接烧录在网卡,无法更改(也不绝对,有动手能力的黑客可以改吧),这个是唯一的,永远是你设备的。

6.一次通讯的过程

我们上网,打开一个网页,就简简单单的鼠标一点,其实在后台已经发生了许多事情了。这里我们以访问一个本地主机为例,ip为192.168.0.100;

(1)数据包封装

前置条件
1.服务端:局域网内有192.168.0.100的ip主机,提供服务;(目的IP+目的端口号)
2. 客户端:本机在浏览器访问192.168.0.100

流程

  1. 应用层:浏览器将请求数据(ip)封装为Http协议(默认端口80)的数据(ip+port)
  2. 传输层:本机传输层tcp将前一个封装数据再次封装为tcp数据包
  3. 网络层:网络层ip协议再次封装
  4. 数据链路层:携带mac
  5. 请求端—>发送数据---->局域网主机
    下图为数据的变化:
    计算机网络初识_第4张图片到此一个数据就封装好了,然后交给物理层(网线)进行传递。
数据包分用

接收端处理数据

  1. 数据链路层:操作系统在网卡接受数据,由系统解析
  2. 网络层:系统处理ip头
  3. 传输层:系统处理tcp头(ip+port),知道了端口号,就知道应用程序,系统把数据包交给程序进行执行
  4. 应用层:应用程序处理数据(根据协议)

计算机网络初识_第5张图片

整个过程的流向,除了物理层是真实连接以外,其余都是虚通讯。
计算机网络初识_第6张图片

7.MAC地址的来源

我们刚说了,在数据链路层会携带mac地址,那么mac地址怎么来的呢?
我们分三种情况:
局域网内发送数据(没有交换机,没有路由器):
现在只知道目的ip,不知道目的mac,(本机ARP缓存表ip<---->mac映射关系),
(1)查找 本机缓存表 ,找到了就发送目的mac主机。
(2)如果找不到, 广播 一条请求mac地址的数据(不是发送目的mac,是发送目的ip),局域网所有主机都收到这条消息,检查自己ip和请求ip地址,不一致就丢弃,一致则说明是请求我, 响应 我的mac消息。
(3)请求方知道目的mac以后,再 发送 数据包(包含目的ip,目的port,目的mac)(局域网所有主机接收到该数据包,如果发现目的mac和自己不一致,就丢弃,如果一致,就处理数据)

碰撞域/冲突域 :局域网内主机接收数据包,mac地址冲突

局域网发送数据(有交换机,没有路由器)
发送端封装和接收端分用的过程一样
前置条件:
交换机MAC地址转换表:转换IP和局域网MAC;交换机由多个端口号处理局域网主机数据报
(1)发送数据到 交换机
(2)交换机处理数据:查看 MAC地址转换表 ,如果有目的ip的mac,就直接发送;如果没有,就发送请求mac的 广播 报,所有局域网主机都接收到,不是自己的ip,就丢弃,是我,就把我的mac发送给交换机
(3)交换机 更新 MAC地址转换表
(4)知道了目的MAC, 发送 数据

碰撞域/冲突域 :仍然存在,但是减小了碰撞几率

局域网发送数据(有交换机,也有路由器)
发送端封装和接收端分用的过程一样
前置条件:交换机处理逻辑和之前一样
IP:分为网络号(前三位)+主机号(最后一位)
子网掩码:利用子网掩码可以判断一个ip是否是同一个局域网(按位与操作)
网关(路由器):路由的功能,路由表来实现。提供网关ip
局域网内所有主机配置子网掩码,网关ip

你可能感兴趣的:(网络)