一、OSI七层模型
应用层
应用层位于 OSI 参考模型的第七层,其作用是通过应用程序间的交互来完成特定的网络应用
表示层
表示层的作用是使通信的应用程序能够解释交换数据的含义,其位于 OSI参考模型的第六层,向上为应用层提供服务,向下接收来自会话层的服务
该层提供的服务主要包括数据压缩,数据加密以及数据描述,使应用程序不必担心在各台计算机中表示和存储的内部格式差异
会话层
会话层就是负责建立、管理和终止表示层实体之间的通信会话
该层提供了数据交换的定界和同步功能,包括了建立检查点和恢复方案的方法
传输层
传输层的主要任务是为两台主机进程之间的通信提供服务,处理数据包错误、数据包次序,以及其他一些关键传输问题
传输层向高层屏蔽了下层数据通信的细节。因此,它是计算机通信体系结构中关键的一层
其中,主要的传输层协议是TCP和UDP
网络层
两台计算机之间传送数据时其通信链路往往不止一条,所传输的信息甚至可能经过很多通信子网
网络层的主要任务就是选择合适的网间路由和交换节点,确保数据按时成功传送
在发送数据时,网络层把传输层产生的报文或用户数据报封装成分组和包,向下传输到数据链路层
在网络层使用的协议是无连接的网际协议(Internet Protocol)和许多路由协议,因此我们通常把该层简单地称为 IP 层
数据链路层
数据链路层通常也叫做链路层,在物理层和网络层之间。两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专门的链路层协议
在两个相邻节点之间传送数据时,数据链路层将网络层交下来的 IP数据报组装成帧,在两个相邻节点间的链路上传送帧
每一帧的数据可以分成:报头head和数据data两部分:
head 标明数据发送者、接受者、数据类型,如 MAC地址
data 存储了计算机之间交互的数据
通过控制信息我们可以知道一个帧的起止比特位置,此外,也能使接收端检测出所收到的帧有无差错,如果发现差错,数据链路层能够简单的丢弃掉这个帧,以避免继续占用网络资源
物理层
作为OSI 参考模型中最低的一层,物理层的作用是实现计算机节点之间比特流的透明传送
该层的主要任务是确定与传输媒体的接口的一些特性(机械特性、电气特性、功能特性,过程特性)
传输过程
二、IP地址
IP地址就是一个唯一标识,是一段网络编码(二进制),32位数
国际标准组织ISO定义地址分类:五大类(是以IP地址的第一位进行区分的)
A类:1-126默认子网掩码:255.0.0.0
B类:128-191默认子网掩码:255.255.0.0
C类:192-223默认子网掩码:255.255.255.0
D类:224-239组播地址
E类:240-254科研使用特殊IP地址:
1、主机位全0 不是一个可用ip地址,用于代表整个网段
2、主机位全1 不是一个可用ip地址,直接广播地址
3、255.255.255.255 受限广播地址(受到路由器的限制,路由器不转发该信息到其他广播域) 4、0.0.0.0 无效地址(代表没有)/ 缺省地址(代表所有)
5、169.254.0.0/16 本地链路地址 --终端通过多次广播DHCP请求后,依然没有任何的DHCP应答后,本地自动生成的ip地址;网络位固定16位,主机位本地随机生成
6、127.0.0.1 win默认环回地址,用于测试系统的TCP/IP的网络组建是否可以正常工作
DHCP---动态主机配置协议
1、作用及特点
DHCP可以自动分配IP、子网掩码、网关、DNS。
DHCP客户端使用的端口68,服务端使用端口67,使用的UDP应用层的协议。
DHCP一般不为服务器分配IP,因为他们要使用固定IP,所以DHCP一般只为办公环境的主机分配IP。
DHCP服务器和客户端需要在一个局域网内,在为客户端分配IP的时候需要进行多次广播。但DHCP也可以为其他网段内主机分配IP,只要连接两个网段中间的路由器能转发DHCP配置请求即可,但这要求路由器配置中继功能。
TCP--传输控制协议
TCP:传输控制协议
面向连接得可靠传输协议
面向连接:在传输之前进行3次握手建议TCP端到端的会话
可靠传输:4种可靠传输机制 --确认、重传、排序、流控(滑动窗口)
分片(IP协议):受MTU(最大传输单元,默认1500字节)限制
分段(TCP协议):MSS(最大传输段)
PMTU --路径MTU发现:发现传输路径中最小的MTU
1.三次握手
三次握手(Three-way Handshake)是指在建立一个TCP连接时,客户端和服务器会一共发送三个报文段。
初始时客户端和服务器都处于CLOSED状态,当服务器应用程序创建一个监听套接字时,服务器处于LISTEN状态。
1.第一次握手:客户端向服务器发送一个SYN报文段,报文段的首部中的标志位SYN置为1,另外还会指明自己的初始化序号seq=x,此时客户端处于SYN_SENT状态。
2.第二次握手:服务器收到SYN的报文段后,会以自己的SYN-ACK报文进行应答。该应答报文的首部有三个重要信息:首先SYN被置为1;其次,确认号字段ack=x+1;最后服务器选择自己的初始序号seq=y。该报文段表明:“我收到了你发起建立连接的请求,该请求报文的初始序号是x(确认号ack=x+1就表明了我收到了初始序号seq=x的报文),我同意建立该连接,我的初始序号是y。”此时服务器处于SYN_RCVD状态。
3.第三次握手:客户端收到SYN-ACK报文后,会发送一个ACK报文段,该报文段中序号seq=x+1,确认号ack=y+1,表明我已经收到了你的确认。此时客户端处于ESTABLISHED状态。
服务器收到 ACK 报文之后,也处于 ESTABLISHED 状态,此时,双方以建立起了链接。
需要注意的是:第一次握手和第二次握手都只是消耗掉一个序号,但不能携带数据;第三次握手可以携带数据。
2.四次挥手
四次挥手也就是客户端与服务器断开连接时,需要一共发送四个报文段来完成断开TCP连接。
初始时,客户端与服务器都处于ESTABLISHED状态,假如客户端发起断开连接的请求(服务器也可以发起),四次挥手过程如下:
1.第一次挥手:客户端发送一个FIN报文段,报文段中指定序号seq=u。此时客户端处于FIN_WAIT_1状态。
2.第二次挥手:服务器收到FIN报文后,立即发送一个ACK报文段,确认号为ack=u+1,序号设为seq=v。表明已经收到了客户端的报文。此时服务器处于CLOSE_WAIT状态。
在第二次挥手和第三次挥手之间的时间段内,由于只是半关闭的状态,数据还是可以从服务器传送到客户端的。
3.第三次挥手:如果数据传送完毕,服务器也想断开连接,那么就发送一个FIN报文,并重新指定一个序号seq=w,确认号还是ack=u+1,表明可以断开连接。
4.第四次挥手:客户端收到报文后,一样发出一个ACK报文段做出应答,上一次客户端发送的报文段序号为u,那么这次序号就是seq=u+1,确认号为ack=w+1。此时客户端处于TIME_WAIT状态,需要经过一段时间确保服务器收到自己的应答报文后,才会进入CLOSED状态。
服务器收到ACK报文后,就关闭连接,也处于CLOSED状态了。
实验
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 10.1.12.2 24
[R1-GigabitEthernet0/0/0]int g0/0/1
[R1-GigabitEthernet0/0/1]ip add 10.1.23.2 24
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip add 10.1.12.1 24
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]ip add 10.1.134.1 24
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ip add 10.1.23.1 24
[R3-GigabitEthernet0/0/0]int g0/0/1
[R3-GigabitEthernet0/0/1]ip add 10.1.134.3 24
[R4]int g0/0/0
[R4-GigabitEthernet0/0/0]ip add 10.1.134.2 24
[R4-GigabitEthernet0/0/0]int l0
[R4-LoopBack0]ip add 10.9.9.1 24
测试
进行bdf配置
[R1]bfd
[R1-bfd]q
[R1]bfd 11 bind peer-ip 10.1.134.1
[R1-bfd-session-11]discriminator local 13
[R1-bfd-session-11]dis re 31
[R1-bfd-session-11]commit
[R2]bfd
[R2-bfd]q
[R2]bfd 22 bind peer-ip 10.1.12.2
[R2-bfd-session-22]dis lo 31
[R2-bfd-session-22]dis re 13
[R2-bfd-session-22]comm