昨天在markdown重新整理了一下网络协议有关知识、再次更新
1.1 TCP/IP协议组
TCP/IP协议(传输控制协议)由网络层的IP协议和传输层的TCP协议组成
- IP层负责网络主机的定位,数据传输的路由,由IP地址可以唯一的确定Internet上的一台主机。
- TCP层负责面向应用的可靠的或费可靠的数据传输机制,这是网络编程的主要对象。
TCP/IP是个协议组,可分为三个层次:网络层,传输层和应用层:
- 网络层:IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议
- 传输层:TCP协议与UDP协议;
- 应用层:FTP、HTTP、TELNET、SMTP、DNS等协议
HTTP是应用层协议,其传输都是被包装成TCP协议传输。可以用Socket实现HTTP。Socket是实现传输层协议的一种编程API,可以是TCP,也可以是UDP。
1.2 TCP
-
TCP(Transmission Control Protocol)
,即传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接前,TCP连接都将被一直保持下去。断开连接时服务器和客户端均可以主动发起断开TCP连接的请求。 -
TCP是一种面向连接的保证可靠传输的协议。
通过TCP协议,得到的是一个顺序的无差错的数据流。发送方和接收方的成对的两个Socket之间必须建立连接,以便在TCP协议的基础上进行通信,当一个Socket(通常都是Server Socket)等待建立连接时,另一个Socket可以要求进行连接,一旦这两个Socket连接起来,它们就可以进行双向数据传输,双方都可以进行发送和接收操作。
TCP特点
1. TCP是面向连接的协议,通过三次握手建立连接,通讯完成时要拆除连接,由于TCP是面向连接协议,所以只能用于点对点的通讯。而且建立连接也需要消耗时间和开销。
2. TCP传输数据无大小限制,进行大数据传输。
3. TCP是一个可靠的协议,它能保证接收方能够完整正确地接收到发送方发送的全部数据。
TCP的三次握手
第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手;
【适用情况】