一、OSI——开放式系统互联参考模型
OSI参考模型的核心思想——分层(将复杂的问题简单化;可以保证各个层次之间具有关联的同时又保留独立性)
1、应用层:将抽象语言转化成编码,提供人机交互的接口。
2、表示层:将编码转化成二进制。
3、会化层:维持网络应用与网络服务器之间的连接。
4、传输层:实现端到端的传输,即应用到应用之间的传输。通过端口号标记不同的应用,端口号由16位二进制组成,其取值范围为1-65535,其中1-1023为知名端口号。例如HTTP—80;HTTPS—443;FTP—20,21;DHCP—67,68;telnet—23。
TCP:是一种面向连接的可靠的传输协议。
UDP:是一种非面向连接的不可靠的传输协议。
如何保证可靠性:确认机制、重传机制
如何保证面向连接:TCP的三次握手机制
TCP的三次握手:
TCP的四次挥手:
5、网络层:基于IP地址实现逻辑寻址。
6、数据链路层:将二进制转换成电信号,实现控制物理层的效果。在以太网中,基于MAC地址实现物理寻址。
获取目标MAC地址的方法:ARP(地址解析协议)——通过一种地址获取另一种地址。
正向ARP—通过对方的IP地址请求对方的MAC地址。
反向ARP—通过对方的MAC地址请求对方的IP地址。
逆向 ARP--- 帧中继中使用。
无故ARP—免费ARP ,用来检测地址冲突的。
代理 ARP-proxy ARP。
7、物理层:转发和处理电信号。
二、TCP/IP模型
OSI 与 TCP/IP 模型区别:
相同点:均是定义了数据的封装标准。
不同点:
1、OSI 模型数据封装必须具有完整的封装; TCP/IP 支持跨层封装
2、OSI 一般理论; TCP/IP 一般用于工业生产
3、OSI 支持多种网络层协议; TCP/IP 仅仅支持 IP 协议栈( IPV4 IPV6 )
4、 层数不同
协议数据单元(PDU):在分层网络结构中,传输系统的每一层都将建立PDU。PDU包含来自上层的信息和当前层的实体附加的信息,这个PDU会被传送到下一较低的层。
应用层——数据报文
传输层——数据段
网络层——数据包
数据链路层——数据帧
物理层——比特流
三、IPV4数据包结构
IPv4数据包共5行,每行32bit,因此IPv4头部默认20个字节。
version:占4bit,表示IP版本。
IHL(IP Header Length):占4bit,表示IP头部大小,默认值一般为0101,单位为32bit,即5×4=20字节。IPv4头部的最大值为1111,即15×4=60字节。
Type of Service:占8bit,表示服务类型。对数据进行标记时使用。
三种方法:
1、IP precedence,采用3+5的形式,前3个bit对流量进行标记,后5个bit无实际作用。将流量分为0-7级:000 001 010 011 100 101 110 111
一般语音视频流量为101=5级,协议流量如ospf为110=6级。
2、DSCP(区分服务代码点),采用6+2的形式,前6个bit对流量进行标记,后两个bit为ECN(显示拥塞通告),后两位一般为00,当为11时表示网络出现了拥塞。
3、PHB(逐跳行为),兼容模式,共定义了21个不同的分类,既包含了所有的IP preference中的所有分类,还包含了DSCP中的部分分类。
CS转发——兼容IP preference中的8种。
AF转发——定义了转发优先级和丢弃优先级。
Total Length:占16bit,表示IP数据包的总长度。
Identification:标识符,占16bit。
Flags:标记位,占3bit,第一个bit为R位,保留位。第二位为DF,为1时表示没被分片过,为0表示被分片了。第三位为MF,为1时表示后面还有分片,为0时表示这是最后一个分片。
Fragement Offset:分片偏移,占13bit,单位为字节。表示该分片距离完整数据包头部的分片偏移值。
Time to Live:生存时间,占8bit。表示数据包的存活时间即可被路由次数,范围为0~255。
Protocol:协议字段,占8bit。范围为0~255,其中0被保留了,因此可用范围为1~255。用来描述上层使用的什么协议。例如TCP—6,UDP—17,ICMP—1,ospf—89。
Header Checksum:包头校验核,占16bit。用来计算IP数据包头部的完整性。
Source Address:源IP地址,占32bit。
Destination Address:目标IP地址,占32bit。
Options:可选项,定义数据的传输过程中进行标识,包括严格选路、松散选路、记录路由、时间戳。