TCP的三次握手和四次挥手

三次握手

1.客户端发送 SYN(SEQ=x)报文给服务器端,进入 SYN_SEND 状态。
2.服务器端收到 SYN 报文,回应一个 SYN (SEQ=y)ACK(ACK=x+1)报文,进入 SYN_RECV 状态。
3.客户端收到服务器端的 SYN 报文,回应一个 ACK(ACK=y+1)报文,进入 Established 状态。

打电话例子: 
A:“喂,你听得到吗?” A->SYNSEND 
B:“我听得到呀,你听得到我吗?” 应答与请求同时发出 B->SYN_RCVD | A->ESTABLISHED 
A:“我能听到你,今天 balabala……” B->ESTABLISHED

四次挥手

1.某个应用进程首先调用 close,称该端执行“主动关闭”(active close)。该端的 TCP 于是发送一个 FIN 分节,表示数据发送完毕。
2.接收到这个 FIN 的对端执行 “被动关闭”(passive close),这个 FIN 由 TCP 确认。
3.一段时间后,接收到这个文件结束符的应用进程将调用 close 关闭它的套接字。这导致它的 TCP 也发送一个 FIN。
4.接收这个最终FIN的原发送端 TCP(即执行主动关闭的那一端)确认这个 FIN。 既然每个方向都需要一个 FIN 和一个 ACK,因此通常需要 4 个分节。

打电话例子:
A:“喂,我不说了。” A->FIN_WAIT1 
B:“我知道了。等下,上一句还没说完。Balabala…..” B->CLOSE_WAIT | A->FIN_WAIT2 
B:”好了,说完了,我也不说了。” B->LAST_ACK 
A:”我知道了。” A->TIME_WAIT | B->CLOSED

为什么TCP连接只要三次而释放需要四次呢?

这是由于TCP的半闭造成,因为TCP连接是全双工,所以进行关闭时每个方向都需要单独关闭,这个单方向的关闭叫做半关闭。当一方完成它数据发送任务的时候,就发送一个FIN来向另一方通告对方我将要终止这个方向的连接。

TCP的状态(SYN,FIN,ACK,PSH,RST,URG)

1.SYN(synchronous):建立连接
2.FIN(finish):结束连接
3.ACK(acknowledgement):确认
4.PSH(push):传送
5.RST(reset):重置
6.URG(urgent):紧急

常用的TCP端口及功能

端口协议说明
21FTPFTP服务器所开放的控制端口
23TELNET用于远程登录,可以远程控制管理目标计算机
25SMTPSMTP服务器开放的端口,用于发送邮件
80HTTP超文本传输协议
110PoP用于邮件的接受

常用的UDP端口号及功能

端口协议说明
69TFTP简单的文件传输协议
111RPC远程过程调用
123NTP网络时间协议

转载自http://blog.51cto.com/13803922/2128765

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值