网络最开始是为了数据通信。
以前通过ARPA网络,卫星来实现几个计算机的互相通信。
IBM推出自己的网络协议,这时网络没有标准。
1977年:TCP/IP标准。
1980年:ARPAnet全面向TCP/IP迁移。
1984年:ISO-网络标准,国籍标准化组织机构-定制各行各业的标准。
OSI开放式系统互联,同时TCP/IP模型全面推出。
1 字节(byte/B) = 8 比特(bit)
1 千字节(KB) = 1024 字节
1 兆字节(MB) = 1024 KB
1 吉字节(GB) = 1024 MB
1 太字节(TB) = 1024 GB
1 拍字节(PB) = 1024 TB
为高层隐藏底层的实现细节,高层拿来用就可以了,不必关注底层实现的细节。
OSI7层 | 作用 |
---|---|
应用层 | 为应用程序提供网络服务(最靠近用户的层) |
表示层 | 数据的解码编译 |
会话层 | 实现应用级别不同的服务区分(依靠进程来区分) |
传输层 | 实现同一个设备上不同应用的区分(依靠端口来区分) |
网络层 | 从全局定位某一台设备 IP地址 |
数据链路层 | 差错检测,链路上mac地址信息 |
物理层 | 规范传输介质的标准-差错检测 |
OSI(开放系统互连)参考模型是一个由国际标准化组织(ISO)制定的用于计算机或通讯系统互连的标准体系,它将通信体系划分为七个层次,从应用层至物理层。
中继器(RP repeater)又称转发器,主要功能是将信号整形并放大再转发出去,以消除信号经过一长段电缆后,因噪声或其他原因而造成的失真和衰减,使信号的波形和强度达到所需要的要求,进而扩大网络传输的距离。
集线器(Hub) 实质上是一个多端口的中继器。
二层交换机是一种用于局域网(LAN)的网络设备。它在数据链路层(第二层)上进行数据包转发和交换的操作。与传统的集线器(Hub)相比,交换机能够更智能地根据目标MAC地址来选择性地将数据包转发到目标设备,从而提升了网络的传输效率和安全性。(只要存在MAC地址那么交换机就认为是一台网络设备)
二层交换机通过学习和维护一个MAC地址表(来实现数据包的转发。当收到一个数据包时,交换机会查找目标MAC地址,并查询MAC地址表确定应该将数据包转发到哪个端口。如果MAC地址表中没有对应的目标地址记录,交换机会将数据包广播到所有的端口,以便让目标设备回应并更新相应的记录。
三层交换机是一种网络设备,用于在计算机网络中进行数据包转发和路由功能。它位于网络的第三层(网络层),因此又称为网络交换机或路由交换机。三层交换机具有部分路由器功能的交换机,三层交换机的最重要目的是加快大型局域网内部的数据交换,所具有的路由功能也是为这目的服务的,能够做到一次路由,多次转发。
路由器是一种具有多个输入/输出端口的专用计算机,其任务是连接不同的网络(连接异构网络)并完成路由转发。在多个逻辑网络(即多个广播域)互联时必须使用路由器。
网关(Gateway) 就是一个网络连接到另一个网络的“关口”。也就是网络关卡。网关又称网间连接器、协议转换器。默认网关在网络层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关的结构也和路由器类似,不同的是互连层。网关既可以用于广域网互连,也可以用于局域网互连。
交换机的应用
路由器的应用
为什么有时候还要在路由器的后面先接1台交换机再接计算机
二层交换机和三层交换机的区别
核心是网络层和传输层。
TCP/IP | 作用 |
---|---|
应用层 | 通过各种协议向终端提供业务应用,处理特定应用程序细节 |
传输层 | 保证源端到目的端的可靠传输,应用到应用的会话 |
网络层 | 处理分组在网络中的活动,例如分组选路 |
网络接口层(数据链路层,物理层) | 处理与电缆的物理接口细节 |
TCP/IP不关注底层物理的介质,主要关注终端之间逻辑数据流的转发。
设备之间的互联:
两台设备之间的互联–网线。
多台设备之间的互联–交换机设备。
应用程序通常是用户进程,而下三层一般在内核执行(链路层,网络层,传输层)。
通信网络除了包含通信设备本身之外,还包含连接这些设备的传输介质,如同轴电缆、网线、双绞线和光纤等。不同的传输介质具有不同的特性,这些特性直接影响到通信的诸多方面,如线路编码方式、传输速度和传输距离等。
简单网络
两个终端,用一条能承载数据传输的物理介质(也称为传输介质)连接起来就组成了一个最简单的网络。
介质-同轴电缆
介质-双绞线
介质-光纤
单模光纤相对于多模光纤传输的更远。
冲突域:共享式网络中进行双向传输的时候,所有节点的集合,当一个冲突域的主机同时发送数据的时候,数据在到达目的之前可能会发生的冲突。
冲突域是指同一时间只有一台设备发送信息的范围,说白了就是一次只有一个设备发送信息,其他的只能等待。因为如果同一个物理网段中的 两台设备同时传输数据,将发生冲突(即两台设备的数字信号将在线路上相互干扰),导致设备必须在之后重传数据。冲突对网络性能有严重的负面影响,因此绝对要避免冲突。
同轴电缆又称为共享介质。
共享式网络中可能会出现信号冲突现象。
使用同轴电缆上网的时候有一个技术是载波侦听多路访问技术,也叫冲突检测技术(CSMA/CD)。
CSMA/CD载波侦听多路访问/冲突检测。
技术工作原理:例如终端设备不停的检测共享式线路的状态,如果现在的线路是空闲的,则可以发送数据,如果不空闲则等待一段时间后继续检测,如果另外一个设备同时发送数据,那么两个设备会产生数据冲突。终端设备检测到冲突后会马上停止数据的发送,并发送一个特殊的阻塞信号,以强化冲突的信息,使得线路上其他的站点检测到冲突。终端设备检测到冲突后会等待一段时间后再进行数据的发送。等待时间通过退避算法来计算。
总结:先听后发,边发边听,冲突停发,随机延迟后重发。
CSMA/CD:共享式网络中检测并避免冲突的机制。
双工模式
半双工模式:通信双方都可以接受和发送数据,但是不能同时进行,例如:对讲机
全双工模式:通信双方都可以同时接受和发送数据。例如:电话
两种双工模式都支持双向数据传输。
网络中传输数据时需要定义并遵循一些标准,以太网是根据IEEE802.3标准来管理和控制数据帧的。
不同的协议栈用于定义和管理不同网络的数据转发规则。
应用层数据要经过TCP/IP每一层处理后通过网络传输到达目的端。每一层上都使用了该层是数据协议单元(PDU)彼此交换信息。不同层的PDU包含了不同的信息和名称。
说明:
传输层:Segment数据段
网络层:Packet数据包
网络接口层:Frame数据帧、Bit比特
逐层向下传递数据添加报头和报尾。
数据包在以太网物理介质上传播之前必须经过封装头部信息和尾部信息。
封装后的数据包称为数据帧。数据帧中封装的信息决定了数据如何传输。
以太网传输数据帧有两种格式,选择哪种格式由TCP/IP中的协议簇中的网络层决定。
说明:
Header:头部信息。
Traile:尾部信息。
说明:Type值<=1500的时候,帧使用的是IEEE802.3格式。type值>=1536的时候,(Ethernet_II以太网2)格式。
说明:
D.MAC:目的mac地址(接受者),6个字节。
S.MAC:源mac地址(发送者),6个字节。
Type:标识数据段包含的高层协议(类型字段)。
Data:网络层数据,最小长度为46个字节最大1500个字节。
FCS:帧校验字段(循环冗余校验字段),提供了错误检测机制。
说明:
D.MAC:目的mac地址(接受者)
S.MAC:源mac地址(发送者)
Length:Data的字节数多大Length就是多大
LLC:逻辑链路控制,目的服务访问点
SNAP:机构代码和类型字段
Data:网络层数据,最小长度为38个字节,最大是1492个字节。
FCS:帧校验字段(循环冗余校验字段),提供了错误检测机制
CDP(思科设备的协议)
VTP(思科网络设备中用于在交换机之间自动同步VLAN配置信息的协议)
在TCP/IP中,以太网IP数据报的封装是在RFC894中定义的,IEEE802网络的IP数据报封装是在RFC1042中定义的。
最常使用的封装格式是RFC894定义的格式。两种帧格式都采用48位(6字节)的目的地址和源地址。这就是所称的硬件地址或以太网地址(我们口语通常说的MAC地址)。在以太网帧格式中,类型字段之后就是数据;而在802帧格式中,跟随在后面的是3字节的802.2LLC和5字节的802.2SNAP。CRC字段用于帧内后续字节差错的循环冗余码检验(检验和)(它也被称为FCS或帧检验序列)。
802.3标准定义的帧和以太网的帧都有最小长度要求。802.3规定数据部分必须至少为38字节,而对于以太网,则要求最少要有46字节。为了保证这一点,必须在不满足最小长度要求的数据后面插入填充(pad)字节。
不足最小长度,那么就补足最小长度。例如ARP请求,由于不满足以太网数据包的最小长度,所以会有补齐的位数。
最大传输单元MTU
以太网和802.3对数据帧的长度都有一个限制,其最大值分别是1500和1492字节。链路层的这个特性称作MTU,最大传输单元。如果IP层有一个数据报要传,而且数据的长度比链路层的MTU还大,那么IP层就需要进行分片,把数据报分成若干片,这样每一片都小于MTU。
路径MTU
当在同一个网络上的两台主机互相进行通信时,该网络的MTU是非常重要的。但是如果两台主机之间的通信要通过多个网络,那么每个网络的链路层就可能有不同的MTU。重要的不是两台主机所在网络的MTU的值,重要的是两台通信主机路径中的最小MTU。它被称作路径MTU。
注意:
数据链路层通过MAC地址来标识网络设备。数据链路层基于MAC地址进行帧传输。
大多数的厂商把MAC地址写入ROM中。
发送端使用接受端的mac地址(主机B的MAC地址)作为目的端的mac地址,以太网封装完成后通过物理层转换成比特流在物理介质上传输。
由48位二进制数组成,通常表示为12个十六进制的数。
MAC地址由两部分组成分别是供应商代码和序列号。
单播:单一的源端发送到单一的目的端,每个主机接口都有一个唯一的MAC地址。
MAC地址OUI中第一个字节的第8位比特表示地址类型,主机MAC地址这个比特固定为==0==,表示发送到唯一的目的端。
说明:在冲突域中所有的主机都可以收到源主机发送的单播帧,但是其他主机发现目的mac地址不是自己的会丢弃该帧,只有真正的mac地址才会接受并处理该帧。比如发送给主机B,那么主机C和主机D会丢弃该单播帧。
TCP是面向连接的协议,意味着分别运行于两主机(由IP地址确定)内的两进程(由端口号确定)间存在条连接。是属于单播。
说明:帧从单一的源发送到共享式以太网,广播帧目的mac地址为16进制(全为FF…),所有收到该广播帧的主机都要接受并处理帧,所有机器都处理。
广播仅应用于==UDP==,对需将报文同时传往多个接收者的应用来说十分重要。
一旦有设备发送广播数据,则广播域内所有设备都会收到这个数据包,并且不得不耗费资源去处理,大量的广播数据包将消耗网络带宽及设备资源。
TFTP 的广播操作
TFTP(Trivial File Transfer Protocol)是一种简单的文件传输协议,它基于UDP协议实现,用于在计算机网络中进行简单的文件传输。TFTP旨在提供一个轻量级的、无状态的文件传输协议,可以用于向远程主机传输文件或从远程主机获取文件。
说明:
多播仅应用于==UDP==,对需将报文同时传往多个接收者的应用来说十分重要。
多播处于单播和广播之间:帧仅传送给属于多播组的多个主机。
可以选择性的广播,主机侦听特定的组播地址,接受并处理目的mac地址为该组播的mac地址帧。
当需要网络上的一组主机接受相同的信息,可以设置组播。当然这些接收者需要加入到相应的组播组中才会收到发往该组播组的报文。
组播MAC地址和单播MAC地址是通过第一个字节中的第8个比特来区分,组播MAC地址是1,单播MAC地址0。
D类IP地址格式
一个MAC地址对应多个组播地址。
当主机接收到的数据帧所包含的目的MAC地址是自己的时候,会把以太网封装剥掉后送往上层协议。
终端设备接到数据帧的处理方式:
广播相对于组播来说不太好,广播会在和应用层交互的时候,如果应用程序没有开放对应的端口号,就会被丢弃,从而占用大量的网络资源。而组播处理,直接在接口卡向驱动程序提交的时候,就可以看到其MAC和组播组的MAC地址是否一致。