下述段落摘自:http://linux.chinaunix.net/techdoc/net/2009/06/15/1118762.shtml
引用
【三次握手的过程】
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;对应客户端的connect函数(Linux)。
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;对应服务器端的accept函数。
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。对应客户端的connect函数。
【为什么要3次握手】
TCP 使用三次握手的主要原因就是要消除旧有连接中的SYN消息对新连接的干扰。
理解:
因为IP包可能在网络中被延时。
比如上次客户端A发起连接的请求SYN a,但可能数据包并非在网络中丢失而是被延时了,当A端定时器超时后,它将重发包含SYN c的请求数据包。另一方面,上次连接中发送的SYN报文却在此时到达服务器端B,所以接收端对SYN的有效性是无法作出判断,他必须询问对方A来确认这个SYN。
简单点说:因为IP包在网络中有可能延时达到客户端定时器的超时时间,因此接收端无法确认收到的报文是否为有效报文,还需要跟客户端确认。
分享到:
相关推荐
三次握手,TCP/IP协议三次握手,TCP/IP协议三次握手
TCP/IP 协议群,三次握手四次死挥手 TCP/IP 协议群是计算机网络中最重要的基础协议之一,它是指一组使用 IP 进行通信时所必须用到的协议的统称。TCP/IP 协议群包括 IP、ICMP、TCP、UDP、TELNET、FTP、HTTP 等协议,...
传输层的TCP和UDP协议是整个卷一的核心,Stevens深入分析了TCP的三次握手、数据流控制和拥塞控制,为理解稳定可靠的网络通信打下基础。这部分内容对于网络通信的基础知识起到了至关重要的作用。 《TCP/IP详解卷二:...
TCP是一种面向连接的、可靠的传输协议,通过三次握手建立连接,通过滑动窗口机制实现流量控制和拥塞控制,确保数据的正确无误传输。书中详细阐述了TCP的各种算法,包括慢启动、快速重传和快速恢复等,这些都是TCP...
TCP通过三次握手建立连接,确保双方都有发送和接收能力。在数据传输过程中,TCP使用滑动窗口机制进行流量控制,防止拥塞,并通过确认和重传机制保证数据的可靠性。 IP(Internet Protocol)则是网络层的主要协议,...
在TCP/IP的连接建立过程中,三次握手是至关重要的步骤。这一过程确保了双方都能正确接收和理解彼此的连接请求,从而建立起可靠的通信链路。下面详细解析三次握手的过程: 1. **第一次握手**:客户端(如图中的...
书中深入探讨了这些协议的工作原理,如IP地址的分配、分片与重组、TCP的三次握手和四次挥手、拥塞控制等机制。 第二卷《TCP/IP实现》则侧重于实际的实现细节,比如TCP的连接管理、滑动窗口机制、超时与重传策略,...
卷3《TCP/IP详解:TCP事务协议》聚焦于TCP的事务处理,如TCP的三次握手和四次挥手过程,这是建立和断开TCP连接的关键步骤。同时,这本书也探讨了TCP的性能优化和异常情况处理,以及TCP与其他应用层协议的交互。 ...
在源码中,你会看到TCP连接的建立(三次握手)、数据传输、以及断开连接(四次挥手)的过程。此外,TCP还采用了滑动窗口机制来控制流量和实现拥塞避免。 2. **IP(网际协议)**:IP负责将数据包发送到目标地址,它...
在这一卷中,读者可以了解到IP地址的结构、子网掩码的运用、ICMP(Internet Control Message Protocol)的工作原理,以及TCP的三次握手和四次挥手过程。此外,还会探讨端口的概念,以及TCP如何保证数据的可靠传输。 ...
1. **建立连接**:TCP使用三次握手建立连接,确保双方都有能力并愿意进行通信。 2. **数据传输**:TCP通过滑动窗口机制来控制数据传输速率,避免拥塞,并确保数据的可靠传输。 3. **确认与重传**:TCP使用ACK(确认...
- TCP协议的工作机制,如三次握手、四次挥手、滑动窗口、拥塞控制等。 - UDP协议的特点和应用场景。 - 面向连接的服务与无连接服务的区别。 - 端口和套接字的概念,以及它们在通信过程中的作用。 - ARP(地址解析...
习题可能涉及到TCP的三次握手、四次挥手、拥塞控制、滑动窗口机制以及UDP的特点与应用场景。 应用层是最接近用户的层次,包含了众多的应用协议,如HTTP、FTP、SMTP、DNS等。HTTP用于网页浏览,FTP用于文件传输,...
1. **TCP连接管理**:包括三次握手建立连接和四次挥手断开连接的过程。源码中会展示如何处理SYN、ACK、FIN等不同类型的报文段,以及超时重传和半关闭状态的处理。 2. **滑动窗口机制**:TCP使用滑动窗口来控制流量...
讲解TCPip三次握手机制,是如何保证安全性和准确性的
3. TCP连接建立与释放:理解三次握手和四次挥手的过程。 4. ICMP与ARP:了解它们在网络诊断和地址解析中的作用。 5. DNS系统:深入理解域名解析的过程和DNS记录类型。 6. 应用层协议:学习HTTP、FTP、SMTP等协议的...
它确保数据能够按照发送顺序正确无误地到达接收方,通过使用三次握手建立连接,四次挥手断开连接。在TCP中,如果数据包在网络中丢失或损坏,TCP会自动重发这些包,从而保证数据的完整性。 IP(互联网协议)则是负责...
2. **TCP协议**:TCP是一种面向连接的、可靠的传输协议,它通过三次握手建立连接,并使用序列号和确认应答来确保数据的正确传输。TCP还具备流量控制和拥塞控制机制,以防止网络拥塞。 3. **IP协议**:IP协议处理...
探讨TCP连接建立过程中的注意事项,例如三次握手机制、超时设置等,确保连接的稳定性和可靠性。 - **技巧5**:优化UDP数据包传输。针对UDP协议的特点,提出了一系列减少丢包率、提高数据包传输速度的方法。 - **...
等源文件中,其关键功能包括三次握手建立连接、数据段的发送与接收、滑动窗口机制、重传策略等。 3. **IP协议**:IP协议位于网络层,负责将数据包发送到目标主机。Linux内核中的IP协议处理主要在`net/ipv4/ip.c`...