物理层
主要是解决信道的问题,
- 涉及的技术:【信号的调制解调技术】
- 采用的设备:【modern(俗称 猫)】
【modern】
其实就是Modulator(调制器)与Demodula-tor(解调器)的简称。所谓调制,就是把数字信号转换成电话线上传输的模拟信号;解调,即把模拟信号转换成数字信号,合称调制解调器。它在发送端通过调制将数字信号转换为模拟信号,在接收端通过解调再将模拟信号转换为数字信号。
可以简单理解,大部分的电脑都是接电话线连入网络的。但是我们可以通过一个媒介(调制解调器),用这个东西连入互联网。互联网上的模拟信号,也是通过调制解调器转化为数字信号才被我们的电脑显示出来的。
物理层只关注信号的传输(逻辑01),而且是异构的(可以是卫星,也可以是电话线,也可以是光纤)。
链路层
关注的是利用信道发送数据帧。
用到的协议:
PPP协议(点对点通讯协议),用于网关点对点接入ISP时用到的协议。
还有CSMA/CD(Carrier Sense Multiple Access with Collision Detection)即带冲突检测的载波监听多路访问技术(载波监听多点接入/碰撞检测),用于局域网共用信道时使用的协议,采用的工作方式是,发送者广播消息,局域网网内所有主机都能接收到数据帧,如果数据帧的目的物理地址是自己,并且CRC校验通过就接收,否则就抛弃。
链路层是不可靠传输,**分为2种模式**:
- 1. 高效的不稳定模式,用于网络环境稳定的,【没有重发机制】。
- 2. 对于网络环境不稳定的(如WIFI),则采用了【重发机制】。
链路层2个重要特点:
- 拥有最大数据大小(不包含头部和尾部),一般为1500byte.
网络层的数据包经过数据链路层封装之后就叫“帧”,帧的头部共14字节,尾部4字节,所以,帧的大小其实就是数据包长度加18字节。MTU规定的是数据包长度,即帧的负载长度,比如MTU为1500,那么帧长就是1518。但是帧还规定了最小长度为64字节,也就是说,如果数据包长度小于46字节( 64-18 = 46 ) 的话,在数据链路层封装时会利用填充字段把整个帧填充够64字节。
也就是说链路层的帧长度是 46~1518之间
- 另一个特点就是 链路层的以太帧对于网络层是透明的,采用了转义机制,在发送前把数据中包含的特殊字符进行转义,在解释的时候去掉转义符号。
数据链路层用到的设备:
1.集线器(hub):
用一根主干线将所有的主机连接起来,可以理解为多个接入口的电线。
2.网桥(brige):
是一个智能设备,维护着一张地址表,使得消息的不再像集线器一样到处传播,而是根据地址表的规则去传播以太帧,只有2个接口,用来连接2跟主干线,可以理解为智能集线器。
3.交换机( Switch):
被称为多接口网桥,可以理解为在集线器上安装很多个网桥,也是链路层设备的进化的最终形态,在这里我们可以按照自己的需求将所有接入网桥的主机组合成各种局域网,我们叫虚拟局域网(VLAN)。
网络层:
规定了互联网的逻辑地址规则,采用了树形结构的拓扑,将各个局域网连接起来,先运用ARP协议 广播一次获取目的主机的物理地址,将逻辑地址映射为物理地址(减少广播的次数 )。
(注: RARP 已经被抛弃,取而代之的是DHCP,局域网的动态IP分配协议)
网络层主要是掌握IP地址。
其中值得注意的是,有一类IP叫做 专网IP(10开头,192.168开头等),这类IP不会路由器转发,一般用来做内网IP使用,所以可以重复使用缓解了IP地址不够用的问题(但是仍然不够用)。由于专网地址不被转发,所以就出现了另一种技术,NAT网络地址转换技术,他将内网地址端口映射(缓存)为路由器(网关)的外网IP和随机端口,使得专用网的消息也能在互联网流动,让局域网与互联网连成一片。
此外参考NAT的功能,还出现了另一门技术,用于连接2个异地(远距离)的局域网的技术,一般用于企业内部,叫 虚拟专用网技术(VPN)。
对于路由协议,需要:
- 路由数据报采用分组转发,TTL限制了路由数据报在路由器之间转发的次数.
- 路由数据报的大小(包括头部和尾部)受到:
-1. 链路层MTU大小的限制(<1500byte),
-2. 路由数据报自身长度字段的限制(16位,即2的16次方个字节= 65535字节),
-3. 由于规定路由器最少能接受的数据大小为576 字节 (注 : IPv4为576 字节 ,IPv6 1500字节),由于IP数据报的头部20byte,可选为8byte,所以数据报能发送的数据最佳最大为548byte.
综上所述,路由数据报最佳长度为: 548 byte
关于分组发送:
标识:是一个自增的ID,当一个要发送的数据报大于链路层的最大发送大小(1500byte)的时候就会被分片成很多个小数据报(分片也是数据报),这个字段用来标识这些分片原先属于同一个数据报。
标志:是一个状态码,最低位MF表示是否为原先数据报的最后一个分片,第二位DF表示,是否允许分片。( DF=0时才允许分片)
段偏移:表示分片的起始位偏移
最后,利用这 三个字段 在接收端进行重组成【分片前原先的数据报】。