• 为什么要分层?
○ 协议太多,将众多协议分层解决,能提高效率,复杂问题简单化,更容易发现问题,并针对性解决问题。
• OSI七层模型
○ 同层使用相同的协议,下层为上层提供服务。
○
○ 但在实际应用中,表示层和会话层合并到了应用层也就变成了五层模型,大家都称之为TCP/IP五层协议。
○ 再后来又有人提出了四层模型的概念,四层模型也就是将数据链路层和物理层合并为了网络接口层。
• TCP/IP五层协议簇
○ 应用层
■ 应用层生成了数据,有的人喜欢称之为PDU
□ 工作在应用层的常见协议(都需有自己专属的端口号):
✦ HTTP 80
✦ HTTPS 443
✦ Telnet 23
✦ SSH 22
✦ FTP 20/21
✦ DHCP 67/68
✦ DNS 53
✦ SMTP 25
✦ POP3 110
✦ RDP 3389
✦ SMB 445
✦ Mysql 3306
○ 传输层
■ 将应用层的数据添加了TCP或UDP包头,生成了数据段(Fragment)。
■ 标明了对应应用的端口号,还确认了连接方式是面向连接的还是无连接的
□ 传输层的协议:
✦ TCP (协议号:6)
◊ 哪些服务依赖于TCP呢?
◊
✦ UDP(协议号:17)
◊ 哪些服务依赖于UDP呢?
○ 网络层
■ 将数据段进一步封装了IP包头,称为报文或者包或者IP包(Packet)
■ 指明了目标主机的IP地址,和自己的IP地址
□ 网络层的协议:
✦ ICMP
◊ 探测协议,ping就是这个协议。
◊ icmp先跑到ip那加个包头就出去了
✦ IP
◊ 只有IP协议有能够封装IP包头的协议
✦ ARP
○ 数据链路层
■ 数据链路层将包进一步封装成帧(Frame)
■ 指明了目标主机的MAC地址,向包添加一个头,这个头叫MAC子层,其中包含了MAC地址,尾部添加了FCS,FCS是用于验证数据的完整性,占四个字节
□ 数据链路层的协议:
✦ MAC子层协议,可能因为国家不同而略有区别。
✦ 帧头包含:
◊ 目标MAC
◊ 去到哪里?
◊ 源MAC
◊ 来自哪里?
◊ 类型
◊ 类型为了识别上层协议,为上层协议提供服务。
} 0x0800:代表是IP协议流下来的
– 0x0800是(四位16进制,每位是四位二进制 4*4=16)16位二进制
– 占2字节 (16b/8=2B)
} 0x0806:代表是ARP协议流下来的
✦ 802.3 有线传输协议
✦ 802.11 无线传输协议
✦ 802开头的就是国际标准
◊ IEEE是电气电子工程师学会
◊ 802代表有802个科学家
◊ 为了纪念他们都是用802
□ 数据链路层:
✦ 中国MTU最大1500字节
✦
○ 物理层
■ 以数字信号进行传输
■ 传输单位是比特(Bit)
□ 1比特(Bit)就是1个电脉冲,可以理解成一个二进制数
□ 8Bit=1Byte=1字节
□ 一般运营商就是b为单位,如100Mb/s,实际下载速度也就是100/8=12.5MB/s
○ 详细内容以及图片来源:https://www.bilibili.com/video/BV1i7411G7vm?p=52
○