osi七层模型和TCP/IP五层模型
1、OSI七层模型结构
从低到高 物数网传会示用 (无数网传会使用)
- 物理层:负责传送数据帧,负责管理电脑通信设备和网络媒体之间的互通。主要指底层传送的物理设备,包含网卡、中继、路由等
- 数据链路层:负责网络寻址、错误侦测和改错。分为两个子层:逻辑链路控制(LLC)和介质访问控制(MAC)
- 网络层:数据路径选择和转发,将网络表头加至数据包,以形成报文。网络表头包含了网络数据,例如:互联网协议(ip)等。
- 传输层:把传输表头加至数据形成数据包。传输表头包含所使用的协议等发送信息。例如:传输控制协议(tcp)等。
- 会话层:负责在数据传输中设置和维护网络中两台设备之间的通信连接。
- 表示层:把数据转换为能与接收者的系统格式并适合传输的格式
- 应用层:提供为应用软件而设的接口,以设置与另一应用软件之间的通信。例如:HTTP、HTTPS、FTP、TELENT、SSH、SMTP、POP3、MYSQL等
2、TCP/IP 五层模型
从低到高 物数网传用
- 物理层:对应OSI七层模型的物理层(比特)
- 数据链路层:对应OSI七层模型的数据链路层(帧)
- interent层:对应OSI七层模型的网络层(报文)
- 传输层:对应OSI七层模型的传输层(段)
- 应用层:对应OSI七层模型中的会话层、表示层、应用层的集合(PDU)
3、TCP三次握手四次挥手
3.1 tcp三次握手
TCP建立链接需要经历三次握手
第一次:客户端主动向服务器发送访问请求,发送的数据包SYN=1,ACK=0,seq=x 表示请求建立链接,发出请求后状态由CLOSED切换为SYN-SENT。
第二次:服务器监听到客户端发出的数据包后,发送SYN=1,ACK=1,seq=y,ack=x+1的数据包,表示收到请求、同意建立链接,收到x的包并请求下一个包x+1,同时切换为SYN-RVD状态
第三次:客户端收到服务器发出的数据包后,发出新的数据包,ACK=1,seq=x+1,ack=y+1,表示收到服务端发送的包,开始建立链接,请求下一个包y+1。客户端切换为ESTAB-LISHED状态,表示已建立链接。服务端收到数据包后也切换为ESTAB-LISHED状态,表示已建立链接。
3.2 tcp四次挥手
第一次:客户端主动发起结束请求,发送数据包FIN=1,seq=u,发出结束请求,状态切换为FIN-WAIT1
第二次:服务端收到客户端发出的数据包后,发出数据包ACK=1,seq=v,ack=u+1,表示收到客户端发送的结束请求。服务端状态切换为CLOSE-WAIT,客户端收到数据包后状态切换为FIN-WAIT2
第三次:服务端收到客户端发出的数据包后,同时发送数据包FIN=1,ACK=1,seq=w,ack=u+1,表示同意结束请求并请求下一个数据包,状态切换为LAST-ACK
第四次:客户端收到从服务端发送的TCP数据报文,发送 ACK=1,seq=u+1,ack=w+1 数据包,准备断开链接,状态切换为TIME-WAIT,等待2msl后自动关闭。服务器收到客户端数据后关闭链接,同时两端状态切换为CLOSED。
4、TCP和UDP区别
相同:
工作在传输层
不同:
tcp特性
面向连接协议提供可靠的网络访问全双工协议半关闭错误检查将数据打包成段,排序确认机制数据恢复、重传流量控制、滑动窗口拥塞控制、慢启动和拥塞避免算法
udp特性
非面向连接协议提供不可靠的网络访问有限的错误检查传输性能高无数据恢复特性