TCP/IP
TCP/IP协议是一个协议集合,按照层次分为链路层、网络层、传输层、应用层四个层次。
1.链路层:用来处理连接网络的硬件部分,包括控制操作系统、硬件的设备驱动和网络适配器,及光纤等物理可见的部分。硬件上的范畴均属于链路层的作用范围之内。
2.网络层:用来处理网络上流动的数据包(网络传输中最小的数据单元),规定了怎样的路径把数据包传输到目标计算机,并把数据包传送给对方。
3.传输层:主要包括TCP协议、UDP协议。
TCP协议是一种面向连接、可靠的、基于字节流的传输层协议,采用了确认机制、超时重传机制,还会对接收到的TCP报文段进行重新排列整理。
UDP协议是一种不可靠无连接的传输层协议,不考虑流控制、错误控制,没有重传机制,不会对分组进行顺序检查和排序。
TCP优点:能保证可靠性、稳定性。适合用于端到端的通信,适用于对可靠性要求较高的服务。
UDP优点:控制选项少,无须建立连接,从而使得数据传输过程中的延迟小、数据传输效率高。UDP适合对可靠性不高,或网络质量有保障,或对实时性要求较高的应用程序。
注意:三次握手中,发送的包都不包含数据,当三次握手完成后,客户端才开始正式发送数据。
4.应用层:负责直接和应用程序接口并提供常见的网络应用服务。(有HTTP协议、FTP协议、TFTP协议、Telnet协议、DNS协议)
OSI七层和TCP/IP四层的关系
1.OSI引入了服务、接口、协议、分层的概念,TCP/IP借鉴了OSI的这些概念建立TCP/IP模型。
2.OSI先有模型,后有协议,先有标准,后进行实践;而TCP/IP则相反,先有协议和应用再提出了模型,且是参照的OSI模型。
3.OSI是一种理论下的模型,而TCP/IP已被广泛使用,网络协议中的标准。
OSI七层
物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
TCP协议通过三次握手建立一个可靠的连接。
1.客户端尝试连接服务器,向服务器发送SYN包(同步序列编号Synchronize Sequence Numbers),SYN=j,客户端进入SYN_SEND状态等待服务器确认。
2.服务器接收客户端SYN包并确认(ack=j+1),同时向客户端发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态。
3.客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
HTTP状态码
1×× 信息状态码,表示成功接收请求。
2×× 成功状态码。
3×× 重定向状态码。
4×× 客户端错误。
5×× 服务器错误。