计算机网络之物理层、数据链路层、网络层

1. 物理层
① 三种通信方式
  • 根据信息在传输线上的传送方向,分为以下三种通信方式:
  1. 单工通信:只能有一个方向的通信而没有反方向的交互。只能A向B发信息,不能B向A发信息。
  2. 半双工通信:通信的双方都可以发送信息,但不能双方同时发送(当然也就不能同时接收)。A向B发信息时,B不能向A发信息;反之亦然。
  3. 全双工通信:通信的双方可以同时发送和接收信息在这里插入代码片
② 基带调制、带通调制
  • 数字信号离散的信号,模拟信号连续的信号。
  • 数字信号又叫基带信号,将数字信号调制为数字信号,叫基带调制
  • 数字信号调制为模拟信号,叫带通调制
  • 基本的带通调制方法:
  1. 调幅(AM): 载波的振幅随基带数字信号而变化。
  2. 调频(FM): 载波的频率随基带数字信号而变化。
  3. 调相(PM): 载波的初始相位随基带数字信号而变化。
    在这里插入图片描述
2. 数据链路层
① 三个基本问题

封装成帧

  • 将网络层传递下来的IP数据报加上帧首部和帧尾部,用于标记帧的开始和结束
  • 为了进行帧定界,在帧的最前面加一个控制字符SOH(start of header,帧开始符),表示帧的首部开始;在帧的最后面加一个控制字符EOT(end of transmission,帧结束符),表示帧的结束
    在这里插入图片描述

透明传输

  • 如果帧中出现了定界控制符(SOH或者EOT),数据链路就会错误地找到帧的边界,使得只有部分帧被收下,剩余部分被当做无效帧丢弃。
    在这里插入图片描述
  • 为了实现透明传输,即帧数据中的定界控制字符不影响整个帧定界,采用字符填充方法(又叫字节填充方法):
  1. 在数据中出现SOH或者EOT的前面插入一个转义字符ESC接收端将帧送往网络层之前,删除之前插入的转义字符。
  2. 在数据中出现转义字符ESC,就在转义自字符的前面再添加转义字符接收端收到连续的两个转义字符,就删除其中前面的一个。
    在这里插入图片描述

差错控制

  • 目前数据链路层广泛使用了**循环冗余检验(CRC)**来检查比特差错
② MAC地址、交换机、以太网MAC帧

MAC地址

  • MAC 地址是链路层地址,长度为 6 字节(48 位),用于唯一标识网络适配器(网卡)
  • 一台主机拥有多少个网络适配器就有多少个 MAC 地址。例如笔记本电脑普遍存在无线网络适配器有线网络适配器,因此就有两个 MAC 地址
  • Ubuntu中使用ifconfig -a命令查看mac地址:
    在这里插入图片描述
    交换机
  • 交换机具有自学习能力,学习的是交换表的内容,交换表中存储着 MAC 地址到接口的映射。正是由于这种自学习能力,因此交换机是一种即插即用设备不需要网络管理员手动配置交换表内容
  • 自学习过程举例:
  1. 主机 A 向主机 B 发送数据帧时,交换机把主机 A 到接口 1 的映射写入交换表中。
  2. 为了发送数据帧到 B,先查交换表,此时没有主机 B 的表项。那么主机 A 就发送广播帧,主机 C 和主机 D 会丢弃该帧。
  3. 主机 B 回应该帧向主机 A 发送数据包时,交换机查找交换表得到主机 A 映射的接口为 1,就发送数据帧到接口 1,同时交换机添加主机 B 到接口 2 的映射。
    在这里插入图片描述

以太网的MAC帧

  • 常用的以太网MAC有两种类型,介绍使用的最多的以太网v2的MAC帧格式。
  1. 目的地址、源地址:6字节,目的主机和源主机的MAC地址
  2. 类型:2字节,标识上一层使用的协议
  3. 数据:46~1500字节,整个MAC帧的长度最小为64字节,减去首部和尾部的18字节,数据长度最小为46字节。长度不够时,在末尾加上填充字段
  4. FSC:4字节,帧检验序列,使用CRC检验
    在这里插入图片描述
  • 注意: 以太网v2的MAC帧在发送前会在头部插入8个字节前7个字节为前同步码最后一个字节为帧开始定界符,定义为10101011
③ PPP协议(point to point protocol)
  • 互联网用户通常需要连接到某个 ISP 之后才能接入到互联网,PPP 协议用户计算机和 ISP 进行通信时所使用的数据链路层协议
  • PPP帧格式:
  1. F:帧的标识字段,即帧的定界符
  2. A 和 C 字段:暂时没有意义
  3. FCS 字段:帧检验序列,2个字节,PPP协议使用的是 CRC检验
  4. 协议:2个字节,0x0021表示信息部分为IP数据报0xC021表示信息部分为LCP的数据
  5. 信息部分:长度可变,但长度不超过 1500
    在这里插入图片描述
④ CSMA/CD 协议
  • 载波监听 (carrier sense): 每个主机都必须不停地监听信道。在发送前,如果监听到信道正在使用,就暂不发送,等到信道空闲才发送。
  • 多点接入(multiple access) : 说明这是总线型网络许多主机以多点的方式连接到总线上
  • 碰撞检测(collision detection) :
  1. 边发送边监听: 在发送中,如果监听到信道已有其它主机正在发送数据,就表示发生了碰撞。
  2. 虽然每个主机在发送数据之前都已经监听到信道为空闲,但是由于电磁波的传播时延的存在,还是有可能会发生碰撞
  3. 发生碰撞后,网络适配器立即停止发送,等待一段随机时间后再次发送。
3. 网络层
① IP数据报
  • 一个 IP 数据报由首部和数据两部分组成。
  1. 首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的
  2. 在首部的固定部分的后面是一些可选字段其长度是可变的。但必须是4字节的整数倍,如果不够用0填充

在这里插入图片描述

  1. 版本: 4 bit,有 4(IPv4)和 6(IPv6)两个值;
  2. 首部长度 : 4 bit,最大值为15( 2 4 − 1 2^4-1 241)。值为 1 表示的是 1 个 32 位字的长度,也就是 4 字节。因为固定部分长度为 20 字节,因此该值最小为 5。如果可选字段的长度不是 4 字节的整数倍,就用进行尾部填充。
  3. 区分服务 : 8 bit,用来获得更好的服务,一般情况下不使用
  4. 总长度 : 16bit,整个IP数据报的长度,包括首部长度和数据部分长度
  5. 生存时间 : TTL(time to live),8 bit,用于指定IP数据报被路由器丢弃之前允许通过的最大网段数量。
    目的: 为了防止无法交付的数据报在互联网中不断兜圈子。以路由器跳数为单位,当 TTL 为 0 时就丢弃数据报
    最大值为255( 2 8 − 1 2^8-1 281),建议值为64
  6. 协议 : 8 bit,指出该分组应该由哪种上层协议进行处理,例如 ICMP、TCP、UDP 等。
  7. 首部检验和 : 16 bit,因为数据报每经过一个路由器,都要重新计算检验和,因此检验和不包含数据部分可以减少计算的工作量
  8. 标识 : 16 bit,它是一个计数器用来产生数据报的标识。在数据报长度过长从而发生分片的情况下,相同数据报的不同分片具有相同的标识
  9. 标志: 3 bit,用于指示是否分片
  10. 片偏移 : 和标识符一起,用于发生分片的情况。片偏移的单位为 8 字节

实例: 一个数据报的总长度为3820字节,其中首部占20字节,数据长度为3800字节。要求每个分片的长度不超过1420字节,即数据长度不超过1400字节,于是将3800字节的数据分为3片0 ~ 13991400 ~ 27992800~ 3799
**加粗样式**

② IP地址的编码方式
  • IP地址长度为32 bit,网络号和主机号,其中不同分类具有不同的网络号长度,并且是固定的。
    I P 地 址 : : = < 网 络 号 > , < 主 机 号 > IP 地址 ::= {< 网络号 >, < 主机号 >} IP::=<>,<>
    在这里插入图片描述
  • IP地址采用点分十进制记法,提高可读性。
    在这里插入图片描述
  • IP地址的范围以及特殊用途:
类型初始bit 值网络取值范围最大主机数默认子网掩码
A类0开头,网络号占8 bit1~127,其中127为回环地址,127.0.0.1表示主机本身,用于本地机器测试 2 24 2^{24} 224个主机255.0.0.0
B类10开头,网络号占16 bit128~191 2 16 2^{16} 216个主机255.255.0.0
C类110开头,网络号占24 bit192~223 2 8 2^8 28个主机255.255.255.0
D类1110开头,多播地址224~239
E类1111开头,保留为今后使用240~255,255.255.255.255用于广播地址
③ 其他协议

ARP 地址解析协议

  • 网络层实现主机之间的通信,而链路层实现具体每段链路之间的通信。因此在通信过程中,IP 数据报的源地址和目的地址始终不变,而 MAC 地址随着链路的改变而改变
  • ARP可以实现由 IP 地址得到 MAC 地址

ICMP 网际控制报文协议

  • ICMP 是为了更有效地转发 IP 数据报提高交付成功的机会。它封装在 IP 数据报中,但是不属于高层协议
  • ICMP的重要应用:pingTraceroute

NAT 网络地址转换

  • 专用网内部的主机使用本地 IP 地址又想和互联网上的主机通信时,可以使用 NAT 来将本地 IP 转换为全球 IP
  • 分布式集群有自己的本地ip地址192.168.100.1,需要进行外网访问时,通过NAT将其转换为172.38.1.54就可以实现外网访问。
  • 了更有效地利用全球 IP 地址,现在常用的 NAT 转换表把传输层的端口号也用上了,使得多个专用网内部的主机共用一个全球 IP 地址
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值