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