25天 网络运维基础 TCP/IP模型

TCP/IP模型: 4层模型

模型组成:  接入层  网络层(互联网层)  传输层(主机到主机层)  应用层
模型作用:  
1) 定义各种网络通讯协议信息
2) 应用层:  HTTP*  FTP  NFS*  SMTP  SNMP(监控) DHCP DNS 协议=服务
            DHCP协议 --> 动态主机配置协议 作用: 自动获取IP地址
			DHCP协议原理:  
			第一个里程: 主机向局域网中发送广播包  获取IP地址
			第二个里程: 局域网中DHCP服务器        分配IP地址
                        配置过程:
						a 安装软件服务  dhcp软件程序
						b 编写配置文件  地址池信息    192.168.36.100 ~ 192.168.36.200
						                地址掩码信息  255.255.255.0
										网关地址信息  192.168.36.254
										DNS地址信息   1.2.4.8  223.5.5.5 114.114.114.114  ***
			第三个里程: 主机收到DHCP服务分配地址确认数据包发送  
            第四个里程: 局域网中DHCP服务器        收到确认信息  调整地址池信息				
                        地址池信息    192.168.36.101 ~ 192.168.36.200
			第五个里程: 局域网中DHCP服务器        定期发送IP地址使用确认信息
			第六个里程: 主机确认地址是否使用
			            地址在使用中   自动进行续租
						地址未使用中   地址分配给其他主机使用
            问题: 局域网中没有DHCP服务, 主机可以获得IP地址吗
			      会, 获得169.xxx, 系统给主机分配地址

   传输层:  TCP UDP
   TCP(Transmission Control Protocol): 传输控制协议
   概述说明: 面向连接网络协议
   特点说明: 可靠传输协议     传输过程有确认机制
   应用场景: 邮件服务 FTP HTTP 

   UDP(User Datagram Protocol)       : 用户报文协议
   概述说明: 无连接网络协议
   特点说明: 传输效率较高协议 传输过程验证机制
   应用场景: DNS解析 语音 视频  

预备知识: TCP报文结构

   端口: 1 ~ 65535  2*16次方
   源端口: 
   占用1bit  0   1            0  1         2的1次方  n占用多少个bit
   占用2bit  00  01  10  11   0  1  2  3   2的2次方
   占用3bit  000 001 010 011  0  1  2  3   2的3次方
             100 101 110 111  4  5  6  7	   
   占用16bit 2的16次方  65536  0号端口没有被TCP或者UDP协议使用
   1 ~ 1024  含有知名服务端口号码  22 23 80 111 110 21 20
   目标端口: 访问服务信息
   序列号:   标识拆分后数据包序号信息
   确认号:   标识下一次需要发送的数据包确认号信息
   控制字段: 6个字段 实现不同控制功能  0功能未开启  1功能开启
   SYN: 请求建立连接控制字段
   ACK: 数据确认控制字段
   FIN: 请求断开连接控制字段

TCP三次握手 四次挥手

TCP三次握手:  谈恋爱过程
   第一次握手过程: 客户端发送信息    发送TCP报文信息(控制字段 syn=1 seq=X)
   第二次握手过程: 服务端接收信息    发送TCP报文响应(控制字段 syn=1 ack=1 seq=y ack=x+1)
   第三次握手过程: 客户端发送信息    发送TCP报文信息(控制字段 ack=1 seq=x+1 ack=y+1)

   TCP四次挥手:  离婚过程
   第一次挥手过程: 主动方发送信息    发送TCP报文信息(控制字段 fin=1 ack=1)
   第二次挥手过程: 被动方发送信息    发送TCP报文信息(控制字段 ack=1)
   第三次挥手过程: 被动方发送信息    发送TCP报文信息(控制字段 fin=1 ack=1)
   第四次挥手过程: 主动方发送信息    发送TCP报文信息(控制字段 ack=1)

   PS: TCP协议可以保证数据可靠传输
   1) 拥有ACK确认控制字段:  保证数据包是否被对端接收
   2) 拥有SEQ和ACK字段信息: 确认数据包可以进行拆分/有效重组

TCP十一种状态集转换 优化准备

25天 网络运维基础 TCP/IP模型_第1张图片
实现网络通讯要素
1) 满足物理通讯需求
2) 满足逻辑通讯需求

三次握手状态转换

1) 初始状态信息   客户端(closed)    服务端(closed)
2) 准备状态信息   服务端创建socket  服务端(closed-listen)
3) 握手状态信息   客户端发送syn     客户端(closed-syn_sent)
                  服务端接收syn     服务端(listen-syn_rcvd)
				        发送ack syn 
                  客户端接收ack syn 客户端(syn_sent-established) 
				        发送ack 
                  服务端接收ack     服务端(syn_rcvd-established)

四次挥手状态转换

1) 初始状态信息   客户端(established) 服务端(established)
2) 挥手状态信息   主动端发送fin       主机端(established --> fin_wait1)
                  被动端接收fin       被动端(established --> close_wait)					  
                        发送ack 
				  主动端接收ack       主动端(fin_wait1   --> fin_wait2)
                  被动端发送ack fin   被动端(close_wait  --> last_ack)
				  主动端接收ack fin   主动端(fin_wait2   --> time_wait) 
				        发送ack 
				  被动端接收ack       被动端(last_ack    --> closed)
				  主动端等待2MSL 90s  主动端(time_wait   --> closed)     

问题

问题1: 为什么要有time_wait状态
       确保服务端可以接收到第四次挥手ack信息, 使连接可以进行释放
问题2: 为什么是四次挥手
       传输层--上面--会话层(负责建立或断开)
	   确认被动端数据是否传输完毕,才能发送fin
       可以三次挥手吗  可以三次

注意

    服务端可以被访问进行通讯, 必须创建socket 
    五元组概念: 协议  源IP地址 源端口  目标IP  目标端口 
	多个socket条目信息不能出现一致
	网络通讯限制并发连接数 设置连接超时时间

你可能感兴趣的:(小白学习)