OSI七层模型基础
1.OSI七层图解
2.OSI七层协议
3.OSI各层详解
- 物理层:在连接各种计算机的传输媒体上传输数据比特流 (将我们发送的数据转换成二进制比特流传输)
- 数据链路层:将比特流组合成字节进而组合成帧,使用用MAC地址寻址 (我们所说的二层交换机就工作在这一层)
- 网络:使用ip地址寻址,实现不同网络之间的路径选择。 (我们所说的路由求就工作在这一层)
- 传输层:传输层定义了主机与应用程序之间端到端的连通性,是源端到目的端对数据传送进行控制从低到高的最后一层。
- 会话层:建立、管理、终止会话。(在五层模型里面已经合并到了应用层)
- 表示层:数据的表示、安全、压缩。(在五层模型里面已经合并到了应用层)
- 应用层:网络服务与最终用户的一个接口。
TCP与UDP
1.TCP与UDP比较
- TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接
- TCP提供可靠的服务,也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;
UDP尽最大努力交付,即不保证可靠交付 - Tcp通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输。
- UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。
- 每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
- TCP对系统资源要求较多,UDP对系统资源要求较少。
- 注:UDP一般用于即时通信(QQ聊天 对数据准确性和丢包要求比较低,但速度必须快),在线视频等
2.tcp/udp相关协议
- TCP: STMP, TELNET, HTTP, FTP
- UDP: DNS,TFTP,RIP,DHCP,SNMP
TCP三次握手 四次挥手
1.三次握手
'''1、第一次握手'''
# 建立连接时,客户端发送SYN包到服务器,其中包含客户端的初始序号seq=x,并进入SYN_SENT状态,等待服务器确认。
'''2、第二次握手'''
# 服务器收到请求后,必须确认客户的数据包。同时自己也发送一个SYN包,即SYN+ACK包,此时服务器进入SYN_RECV状态。
'''3、第三次握手'''
# 客户端收到服务器的SYN+ACK包,向服务器发送一个序列号(seq=x+1),确认号为ack(客户端)=y+1,此包发送完毕,
# 客户端和服务器进入ESTAB_LISHED(TCP连接成功)状态,完成三次握手。
2.四层挥手
'''1、第一次挥手 '''
# 首先,客户端发送一个FIN,用来关闭客户端到服务器的数据传送,然后等待服务器的确认。其中终止标志位FIN=1,序列号seq=u。
''' 2、第二次挥手 '''
# 服务器收到这个FIN,它发送一个ACK,确认ack为收到的序号加一。
'''3、第三次挥手 '''
# 关闭服务器到客户端的连接,发送一个FIN给客户端。
'''4、第四次挥手 '''
# 客户端收到FIN后,并发回一个ACK报文确认,并将确认序号seq设置为收到序号加一。
# 首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。
3.三次握手、四次挥手图解