TCP/IP的分层模型
OSI协议参考模型,它是基于国际标准化组织(ISO)的建议发展起来的, 它分为7个层次:应用层、表示层、会话层、传输层、网络层、数据链路层及物理层。 这个7层的协议模型虽然规定得非常细致和完善,但在实际中却得不到广泛的应用,其重要的原因之一就在于它过于复杂。 但它仍是此后很多协议模型的基础。与此相区别的TCP/IP协议模型将OSI的7层协议模型简化为4层,从而更有利于实现和使用。
1. 网络接口层
网络接口层是TCP/IP的最底层,负责将二进制流转换成数据帧,并进行数据帧的发送和接收。数据帧是网络传输的基本单元。
2.网络层
网络层负责在主机之间的通信中选择数据包的传输路径,即 路由。当网络收到传输层的请求后,使用路由算法来确定是直接交付数据包,还是把它传递给路由器,最后把数据包交给适当的网络接口进行传输。
3. 传输层
负责实现应用程序之间的通信服务,又称为端到端通信。
传输层要提供可靠的传输服务,以确保数据到达无差错、无乱序。为了达到这个目的,传输层协议软件要进行协商。传输层协议软件要把传输的数据流分为分组。
4.应用层
应用层是分层模型的最高层。应用程序使用相应的应用层协议,把封装好的数据交给传输层或是传输层接收数据并处理。
TCP/IP的分层模型
网络接口层
网络接口层是TCP/IP协议软件的最底层,负责将二进制流转换为数据帧,并进行数据帧的发送和接收。数据帧是网络传输的基本单元。
网络层
网络层负责在主机之间的通信中选择数据报的传输路径,即路由。当网络层接收到传输层的请求后,传输某个具有目的地址信息的分组。该层把分组封装在IP数据报中,填入数据报的首部,使用路由算法来确定是直接交付数据报,还是把它传递给路由器,然后把数据报交给适当的网络接口进行传输。
传输层
传输层负责提供应用程序之间的通信服务。这种通信又称为端到端通信。传输层要系统地管理信息的流动,还要提供可靠的传输服务,以确保数据到达无差错、无乱序。为了达到这个目的,传输层协议软件要进行协商,让接收方回送确认信息及让发送方重发丢失的分组。传输层协议软件把要传输的数据流划分为分组,把每个分组连同目的地址交给网络层去发送。
三次握手
TCP是面向连接的,所谓面向连接,就是当计算机双方通信时必需先建立连接,然后进行数据通信,最后拆除连接三个过程。TCP在建立连接时又分三步走:
第一步(A->B):主机A向主机B发送一个包含SYN即同步(Synchronize)标志的TCP报文,SYN同步报文会指明客户端使用的端口以及TCP连接的初始序号;
第二步(B->A):主机B在收到客户端的SYN报文后,将返回一个SYN+ACK的报文,表示主机B的请求被接受,同时TCP序号被加一,ACK即确认(Acknowledgement)。
第三步(A->B):主机A也返回一个确认报文ACK给服务器端,同样TCP序列号被加一,到此一个TCP连接完成。