开放系统互连参考模型为实现开放系统互连所建立的通信功能分层模型,简称OSI参考模型。其目的是为异种计算机互连提供一个共同的基础和标准框架,并为保持相关标准的一致性和兼容性提供共同的参考。这里所说的开放系统,实质上指的是遵循OSI参考模型和相关协议能够实现互连的具有各种应用目的的计算机系统。
物理层 位 bit
2.数据链路层 帧 frame
3.网络层 数据包packet/package
4.传输层 网段segmet
5.会话层 message
6.表示层
7.应用层
二. TCP/IP 协议栈
标准TCP/IP协议是用于计算机通信的一组协议,通常被称为TCP/IP协议栈,以它为基础组建的互联网是目前国际上规模最大的计算机网络。正因为互联网的广泛应用,使得TCP/IP成为了事实上的网络标准。
TCP/IP和OSI模型对比图
TCP特性:
工作在传输层面向连接协议
全双工协议
半关闭
错误检查
将数据打包成段,排序
确认机制
数据恢复,重传
流量控制,滑动窗口
拥塞控制,慢启动和拥塞避免算法
TCP是主机对主机层的传输控制协议,提供可靠的连接服务,通过三次握手建立一个连接
TCP 三次握手图示:
TCP标志位有六种标识:SYN:建立联机 ACK:确认 PSH:传送 FIN:结束 RST:重置 URG:紧急
Seq:序号 ack :确认号
第一次握手:客户端A向服务器发送SYN=1 ,随机产生seq=x(序号为x) 的数据包,进入SYN-SENT状态,服务器B由SYN=1得知A要建立连机。
第二次握手:服务端B收到请求后确认信息,向客户端返回SYN=1,ACK=1 ,seq=y,ack=x+1(表示客户A下一次发送的数据包号为x+1),此时服务器B进入SYN-RCVD状态。
第三次握手:客户端A收到后检查ack(确认号)是否正确,即第一次发送的序号+1和ACK是否为1.若正确,客户端A再次发送ACK=1,发送序号为seq=x+1,确认号为y+1,服务端B收到后确认seq与ack=1,此时客户A和服务器B进入ESTABLISHED状态,完成三次握手。
完成三次握手,客户端和服务器开始传送数据。
四次挥手
由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。客户A和服务器B都可以主动断开连接,如果A客户发送完数据后不主动断开就会占有服务器B的资源。
第一次挥手:客户A和服务器B都处于ESTABLISHED建立状态,客户A向服务器B发送FIN=1来结束A到B的数据传送。客户A就进入FIN-WAIT-1状态。
第二次挥手:服务器B收到这个FIN,它返回一个ACK,确认序号为收到的序号加1,和SYN一样,一个FIN将占用一个序号,服务器B进入COLSE-WAIT状态。
第三次挥手:服务器B关闭与客户A的连接,发送一个FIN给客户A。服务器B进入closed状态
第四次挥手:客户A返回ACK确认,并将确认序号设置为收到的序号加1,客户A进入TIME-WAIT状态,到此四次挥手完成。
本文转自 honeyorange 51CTO博客,原文链接:http://blog.51cto.com/13172732/1962297