OSI分层(由上往下):
应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
分层的原因:就像公司需要分部门一样,方便管理。
--PDU:协议数据单元,可以理解为每一层的一个传输数据单位的一个名称。(对等层之间的传输单元,数据包、数据流、数据帧)
一层:物理层(Bit比特流):
- 定义:
介质类型(线缆(目前最快的是光纤))
连接器类型(接口)
信令类型(传输方式)
- 线缆:双绞线、同轴电缆(已被淘汰,传输速率最快10Mbit/s)、光纤。
补充:
***搭网线:熔纤机(光纤入户的光纤要螺旋着放置,因为光纤很脆弱)
***双绞线:铜
***RJ45/水晶头
***只要定义了传输介质,那接口和传输方式也会跟着确定了
***一条网线最长的传输距离:100米(教科书说法,事实上没到这么长,要看环境干扰)
***一条链路上,最多不超过4个中继器/集线器
***远距离传输一般用广域网的串行链路或者光纤
***中继器/集线器淘汰原因:a.传输介质的升级 b.安全性 c.半双工设备 d.接口同属于一个冲突域
- 双绞线线序(1326对调)
- 568A:白绿,绿,白橙,蓝,白蓝,橙,白棕,棕
- 568B:白橙,橙,白绿,蓝,白蓝,绿,白棕,棕
- 接口:RJ45、STLC
- 传输方式:电信号、光信号
- 设备:网卡(网络适配器)、网线、中继器(放大再生电信号)、集线器(HUB:多个接口的中继器)。
***集线器缺点:属于半双工工作模式的设备。对于数据的转发只有泛洪,容易产生环路。
二层:数据链路层(数据帧):
- 定义:
物理地址/MAC地址:在设备出产时,烧录进设备(刻在设备面板上)的一个地址,全球唯一,用于标识每个网络设备(接口)的。长度为48位,分前24位和后24位,每8位为一组,以16进制标识,如:11:AD:4F:89:00:1A或11-AD-4F-89-00-1A。前24位需要厂商去申请,后24位厂商自己定义。可修改,一般不建议修改。
- 设备:交换机
- 相关术语:
- 半双工:在同一时刻,设备只能发送或者接收数据。
- 全双工:在同一时刻,设备可以同时发送数据和接收数据。
半双工和全双工可以通过网卡的设置来调整,双工模式也可以自动协商。如果一根链路当中,有一端只支持半双工的工作模式,那么另外一端即使是全双工,那么它的工作效率也是按照半双工来的。
- 单播:一对一通信。例如:QQ里面的单独一个好友对话。
- 组播:一对一组通信,需要加入到特定组的设备才能够接收处理。例如:QQ里面的Q群对话。
- 广播:一对所有人(对一个广播域内的所有人)。例如:QQ里面的QQ广告发送。
- 冲突:两个及两个以上的节点,在传输过程当中,在物理链路上发生碰撞,导致数据丢失。只有在半双工的工作模式下才会出现。
- 冲突域:汇聚点(一个支持共享介质的网段)。
- 广播域:一个广播帧能够辐射的范围。
- CSMA/CD:载波监听多路访问/冲突检测机制。红绿灯。
<先听后发,边听边发,冲突停法,随机延迟后重发>
三层:网络层(数据报):
- 定义:
逻辑地址(IP地址)、路由选择
路由寻址:
~根据IP报文的目的地址查找路由表
~最短路径优先原则
- IP地址:标识设备在网络中的逻辑位置。(身份证,三层的通信地址)
- IP地址概括:
每个节点都有一个独一无二的IP地址。
IP长度为32位。约共有42.9亿(准确来说4,294,967,296)个,每8位为一组,使用点分十进制表示,如:192.168.1.1
其中,一部分为网络位,一部分为主机位。使用子网掩码来确定哪里是网络位,哪里是主机位。
- IP分类:A,B,C,D,E类。其中,ABC可以分配在节点(网络设备、路由器接口、电脑、冰箱等),D类为组播地址,E类为保留科研用。
- 类别的取值范围:主要看前8位的数值来确认是哪一类IP。
A:0-127,其中127开头的是一个特殊的IP
B:128-191
C:192-223
D:224-239
E:240-255
- 私有IP:
在A.B.C类中,取一部分,作为私有IP。为了缓解IPv4耗尽问题,配置NAT使用,在园区网内部使用的IP地址,叫做私有IP。在公网中,没有私有IP网段的路由。
范围:
A:10.0.0.0-10.255.255.255
B:172.16.0.0-172.31.255.255
C:192.168.0.0-192.168.255.255
- 特殊IP:
0.0.0.0 代表任何网络
127 开头的地址,回环测试地址。(loopback)
255.255.255.255 全网广播
二进制数主机位全0该子网(网段)网络号
二进制数主机位全1该子网(网段)广播地址
- MTU:最大传输单元,限定每个包的最大字节数,如果超出MTU的数据包需要进行IP分片,一般,MTU的设定为1500(可改)。
- IP数据报头:
- 版本:用于标识此IP报文是使用什么IP版本,当前主流为IPv4和IPv6
- 首部长度:用于标识IP报头的长度(大小)
- 服务类型:用于QOS
- 总长度:IP报文的总大小(IP报头和数据部分的长度之和)
- 标识:唯一的标识主机每发送一个数据包。通常每发送一个报文,标识的值就会加一。当报文超过MTU的值,需要分片时,这个标识复制到所有的数据分片里面,作用于数据分片抵达目的后可以依照标识字段的内容重组装。
- 标志:它有三个位:R,DF,MF。目前,只使用后两位。
DF:为1表示不分片,0表示分片
MF:为1表示更多分片,0表示最后一片
- TTL(生存时间Time To Life):当IP报文发送出去时,会赋予一个数值,取值范围0-255。当每经过一个路由设备,都会减1,防火墙默认不减,可以通过设置来减。没有固定的初始值,RFC(文档)建议64。
- 协议:标识上层协议是何种协议。使用数字来标识,我们管它叫协议号。如:协议号6代表4层协议使用TC,协议号17代表上层协议为UDP。
- 首部校验和:检查IP报头的完整性
- 源IP:标识这个数据报文发出者,在传输的过程中,源IP不变,除非遇到NAT。
- 目的IP:标识这个数据报文所有抵达的目的地。
- 设备:
路由器(不仅仅只有路由器,防火墙、三层交换机等也有)
***二层交换机看MAC,三层交换机看IP
四层:传输层:
- 用于区分上层应用(决定数据包给谁<QQ、微信等>处理)。
- 定义的协议:TCP,UDP
- TCP(传输控制协议):可靠连接,在建立TCP连接之前需要进行三次握手来确保这个连接的有效性。
- 三次握手:A---------B
a-1.发送者A先发送SYN同步请求。
a-2.接收者B发送SYN同步加ACK确认同步请求。
a-3.发送者A发送ACK确认接收者B的同步请求。
A的SYN序列号=100。B的SYN序列号=300,ACK=101,A的SYN=101,A的ACK=301。
- 确认号ACK=对方的序列号+1
- TCP确认机制:每次发送数据都需要对端回复ACK后才算发送完成。如果没有收到对方的回复,TCP将会重新发送。
- TCP滑动窗口机制:如果每次发送一个数据就要收到一个回复,将会加大网络的负担和浪费资源。所以TCP出现了滑动窗口机制,主要工作,用于确认每次发送多少个IP报文才发送一个确认,窗口的大小由接收者决定。
- UDP
UDP:不可靠连接,尽力传输。报文封装相对简单,节约带宽流量。主要用于:语音、视频流。
TCP与UDP都有端口号这个概念。传输层如何区分上层应用?主要就是这个端口号。不同的端口号,对应不同的上层应用。端口号的取值范围:0-65535,共有65535个端口。
常用端口号码:
Application Layer:FTP Telnet HTTP DNS TFTP SNMP
Port Numbers: 21 23 80 53 69 161
Transport Layer: TCP TCP TCP TCP/UDP UDP UDP
可靠/不可靠服务
TCP vs UDP(可靠性≠安全性):
*TCP三次握手看对方有没有回复(同步请求),有重传机制
*UDP一般用于语音流和视频流,但没有任何重传机制
***TCP报头前16个字节范围(0-65535)
***TCP三次握手(ACK=序列号+1)
***PC机同名不会导致TCP三次握手发的ACK冲突
五层:会话层:
*建立会话、管理会话、终止会话
*区分不同的上层数据
六层:表示层:
*定义数据的格式
*数据的加密、解密、压缩、解压缩
七层:应用层:
最接近用户的一层,主要定义了一些应用层的协议,如:HTTP,FTP,OICQ,TELNET,SNMP,POP3等。
QQ、浏览器等这些都属于应用程序,它们背后的协议,才是我们应用层所定义的东西。
- 总结:OSI优点和缺点
- 优点:
- OSI提供了一个参考的作用,用于各大厂商开发的一个参考标准。
- 模块分层的结构便于升级和维护
- 缺点:
- 多个层次的功能重复
- 各层任务的任务量不均匀
- 总结2:TCP/IP:
- 是现在应用范围最广的协议
- 灵活的地址结构
- 可用于多种操作系统和平台上
- 拥有很多工具和应用软件
- TCP/IP协议栈的组成部分有网络接入层,网络层、传输层、应用层