计算机最开始是作为计算的辅助工具,随着时间的发展,逐渐演变成人们的通讯工具。将少量计算机进行连接,就构成了人类最早的网络——对等网。组网中的计算机相互连接,相互通信。
常用的网线为RJ-45s双绞线,内部是互相缠绕的金属导线,目的是为了降低干扰。双绞线的最长传输距离为100m。
传输过程中电信号会逐渐减弱,为了扩大传输距离,出现了用于将信号扩大的中继器。
拓扑结构
线路与设备的物理布局,可以分为五种
直线型拓扑结构(总线型)
所有设备被同一条传输介质相连,一台设备发出的信息,它之后的所有设备都能接收到,结构简单,安装容易
环形拓扑结构
所有设备被一条传输介质连接,通信线路形成闭环,设备可以与线路上的所有设备进行通信,结构简单,投资少
树状拓扑结构
像数据结构中的树一样的层次结构,查找快,延迟低,安全性比直线型更高,但越接近根结点的设备如果出现问题,那么下层的设备都会受到影响
波环形(网状)拓扑结构
每台设备都两两相连,查找快,数据传输安全,但成本过高
星形拓扑结构
以一个中央结点为中心,其余结点点对点与中心结点相连,查找快,结构简单,延迟小,但对中心结点的设备要求较高
地址
两台设备互相连接时,可以用通过电脑上的网口与网线互相连接,但多台设备需要连接时,网口显然满足不了需求。为了解决这种问题,出现了HUB集线器、交换机与路由器
为了区分不同设备,也为了将不同的信息送到对应的设备上,我们用地址来做出标识
MAC地址
物理地址
位于网卡上,由48位二进制构成,以16进制显示,每个MAC地址都是唯一且不可修改的
IP地址
逻辑地址
临时使用的地址,生效在某个范围内,有IPV4与IPV6
IPV4:由32位二进制构成,点分十进制标识,分为网络位与主机位
分为ABCDE五类
A类地址:单播地址,1-126 前八位为网络位
B类地址:单播地址,128-191 前十六位为网络位
C类地址:单播地址,192-223 前二十四位为网络位
D类地址:组播地址,224-239 不区分网络位与主机位,只能作为目标IP使用
E类地址:240-254
子网掩码:由连续的1(网络位)和连续的0(主机位)构成
A类:255.0.0.0
B类:255.255.0.0
C类:255.255.255.0
IPV6:由128位二进制构成,冒分十六进制标识
特殊地址:127为回环地址,用于检测本机使用
主机位全0,如192.168.1.0,代表一个网段
主机位全1,如192.168.255,直接广播地址
255.255.255.255,受限广播地址
无类域间路由(CIDR)
因为IPV4的网络分配方案会导致IP地址的分配产生大量浪费,使用更灵活的CIDR方法改变网络位长度,有效解决了IPV4地址不够的问题
通信过程
在对等网的前提下,人们对网络通信的需求日益增加,需要网络中接入更多的设备,需要传输更远的距离,需要单播的数据传递
载波侦听多路访问/冲突检测机制 (CSMA/CD)
为了防止信息同时发送,造成信息的抵消,在发送信息前使用监听功能,监听信道上是否有别的信息正在传输
如果有,则停止发送,进行排队
如果没有,则发送信息
当消息相撞时,双方各自发送一个随机的阈值,以阈值大小来发送信息
交换机
对于同一个网段中的两台设备而言,数据的传输是通过交换机来进行的,交换机中存储mac地址。
首先数据帧进入交换机,此时交换机会将该数据的接口信息与源mac地址映射到mac地址表中,并且在mac地址表中查找是否有目标mac地址的记录,如果找到,则将其转发给对应的接口,如果没有找到,则泛洪此数据。
若是只知道对方的ip地址而不知道mac地址,则先提交一个ARP包,用来获取对方的mac地址,里面包含有源ip地址与源mac地址,和目标ip地址与目标mac地址FF-FF-FF-FF-FF-FF
而对方接受到此ARP包后,返回的信息会里包含有自身的mac地址
路由器
在网络层转发数据包,识别的地址标识为IP地址
处于同一个子网的信息由交换机转发,不同子网的信息就由路由器转发,当一台设备想要给不同子网的另一台设备发送信息时,则发送的包的地址为此网段的网关
路由器接受到数据包后,和交换机一样,会在自己的路由表中查找对应的网段,并进行转发
另外,路由器也隔绝了泛洪的范围,防止延迟过高
OSI七层模型
用户发送、读取信息时,会通过OSI七层模型对数据进行封装与解封装
应用层:用户使用,人机交互,实现抽象语言与编码的转换
表示层:实现编码与二进制的转换
会话层:提供会话号,维持通信与结束通信,保障不同进程有不同的会话号进行区分
传输层:定义传输数据的协议与端口,如TCP/UDP,将数据分段,保障数据完整
网络层:IP 互联网协议
数据链路层:介质访问控制层MAC+逻辑链路控制层LLC
物理层:物理硬件
其中,应用层、表示层、会话层对数据做出处理
传输层、网络层、数据链路层、物理层对数据进行传输
封装时,从高层往低层层层封装,每一层都会对数据进行处理,并添加报头,最后在物理层被封装为比特流,将比特流转化为电信号,然后发送出去
解封装时,从低层往高层层层解封,每一层都会去掉一个报头,将比特流变还为数据。解封装过程中,若发现mac地址不是自己,则丢弃数据,若IP地址不是自己,则交给该网段中的下一个地址
TCP/IP
对于OSI七层模型而言,TCP/IP标准模型与他的对应关系如下
应用层、表示层 、会话层 ——> 应用层 (FTP、Telnet、SMTP、NFS、SNMP)
传输层 ——> 传输层 (TCP UDP)
网络层 ——> 网络层 (IP ICMP ARP RARP)
数据链路层、物理层 ——> 网络访问层 (IEEE802.3 FDDI IEEE802.5 ARCnet)
TCP/IP对等模型如下
应用层 数据报文
传输层 数据段
网络层 数据包
数据链路层 数据帧
物理层 比特流
数据包传输时有一个生存周期(TTL),每经过一个路由器,TTL值都会减一,当TTL值为0时,数据包就会死亡,不再继续转发
TTL值最大为255,推荐为64,常见的TTL值为128
以太网II型帧
前导符 目标地址 源地址 类型 数据 校验
8 6 6 2 46-1500 4 (字节长度)
三次握手与四次挥手
三次握手:客户端请求连接 SYN
服务器确认请求,并向客户端请求建立连接ACK+SYN
客户端确认请求 ACK
四次挥手:客户端请求断开连接 FIN
服务器确认请求 ACK
服务器请求断开连接 FIN 此处是为了防止服务器还有未发送完毕的信息
客户端确定请求 ACK
tcp:传输控制协议,面向连接的可靠协议
udp:用户数据报协议,非面向连接的不可靠协议