1、OSI七层模型
OSI(Open System Interconnection)中的上面4层(应用层、表示层、会话层、传输层)为高层,定义了程序的功能;下面3层(网络层、数据链路层、物理层)为底层,主要是处理面向网络端到端的数据流。
应用层:提供用户接口和网络服务,支持应用程序的高层协议。包括各种网络应用,如电子邮件、文件传输和远程登录等。
表示层:负责数据格式的转换,确保应用层能够理解传输的数据。处理数据加密、压缩和编码等
会话层:负责建立、管理和终止会话,实现数据的同步和恢复。提供对话控制,使不同设备上的应用能够建立连接。
传输层:提供端到端的通信控制,确保数据的可靠性和完整性。
网络层:负责在网络中选择最佳路径,实现逻辑寻址和路由。提供数据分组的传输服务,使用ip地址标识设备。工作设备:路由器
数据链路层:提供对物理层的透明访问,确保可靠的数据传输。负责数据帧的组装和解析,以及错误检测和纠正。工作设备:网桥,交换机
物理层:主要传输比特流,处理物理介质和连接器的细节。工作设备:网卡、集线器、中继器
补充:一个设备工作在那一层,通常是看他工作时利用哪一层的数据头部信息,网桥工作时,是以MAC头部来决定转发端口的,因此他是数据链路层的设备。网关工作在传输层及其以上。
2、什么是TCP/IP协议
TCP/IP协议指的是能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP(文件传输协议)、SMTP(简单邮件传输协议)、TCP(传输控制协议)、UDP(用户数据包协议)、IP(网际互连协议)等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。简单来说,互联网相关各类协议簇的总称称为TCP/IP协议。
应用层:应用层是TCP/IP协议的第一层,是直接为应用进程提供服务的。
传输层:运输层是TCP/IP协议的第二层,传输层在整个TCP/IP协议中起到了中流砥柱的作用。作用与OSI参考模型相差不大。
网络层:网络层在TCP/IP协议中的位于第三层。在TCP/IP协议中网络层可以进行网络连接的建立和终止以及IP地址的寻找等功能。
网络接口层:在TCP/IP协议中,网络接口层位于第四层。由于网络接口层兼并了物理层和数据链路层所以,网络接口层既是传输数据的物理媒介,也可以为网络层提供一条准确无误的线路。
3、TCP协议和UDP协议
传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
用户数据报协议(User Datagram Protocol)是一种面向无连接的、不可靠的、基于数据报文的传输层协议。
两者的区别:
TCP协议 | UDP协议 | |
可靠性 | 可靠 | 不可靠 |
连接性 | 面向连接 | 面向无连接 |
报文 | 面向字节流 | 面向数据报文 |
效率 | 可靠 | 不可靠 |
双工性 | 全双工 | 一对一、一对多、多对一、多对多 |
流量控制 | 滑动窗口 | 无 |
传输速度 | 慢 | 快 |
应用场景 | 对效率要求低、对准确性要求高或者要求有连接的场景(文件传输(准确高要求高、但是速度可以相对慢)、接受邮件、远程登录,视频) | 对效率要求高、对准确性要求低(qq聊天、直播、网络语音电话、广播通信(广播、多播)) |
4、三次握手
三次握手(Three-way Handshake)其实就是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。进行三次握手的主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备。实质上其实就是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号,交换TCP窗口大小信息。
第一次握手:客户端发送网络包,服务端收到了。
这样服务端就能得出结论:客户端的发送能力、服务端的接收能力是正常的。
第二次握手:服务端发包,客户端收到了。
这样客户端就能得出结论:服务端的接收、发送能力,客户端的接收、发送能力是正常的。不过此时服务器并不能确认客户端的接收能力是否正常。
第三次握手:客户端发包,服务端收到了。
这样服务端就能得出结论:客户端的接收、发送能力正常,服务器自己的发送、接收能力也正常。
因此,需要三次握手才能确认双方的接收与发送能力是否正常。