tcp协议的特点:
面向连接的,可靠的,流式服务
//面试常问:
一、通过抓包观察三次握手、四次挥手
工具:tcpdump 命令
抓冲我到他从他到我的数据包。
需要管理员权限。

运行示例:
进入管理员权限,使用tcpdump命令



客户端与服务器端连接成功:三次握手




发送数据:

加-S后(不简便化确认信息)

断开连接:四次挥手,也可能发生三次挥手
正常四次挥手


这里是三次挥手,比较特别

二、链接的状态、tcp状态转移图
反映的是tcp链接的状态,为tcp状态转移图。
例如:手机关于打电话来说,有待机状态、拨出状态、响铃状态、通话中状态、通话结束状态。。。

工具
netstat -natp
listen状态

发起链接后,已完成三次握手状态


监听对联改成1
理论上可以连接两个客户端,第三个不能正常连接。

链接一个:

链接两个:

链接时,服务器关闭

借宿服务器端:

还能看到链接状态一段时间,一段时间后为改变。以下是关闭服务器端后,一段时间内的变化:



三、TIME_WAIT 存在的原因

2min为报文生存期的两倍。

示例:快速链接,关闭服务器端,关闭客户端观察:
1、运行服务器端:

2、客户端链接

可正常通讯:

此时状态为:

3、关闭服务器端:

此时状态:

4、客户端关闭:

注意:此时不能立刻重启服务器端,为了防止迟来的报文段发送到这个服务器端,保证有足够的时间识别并丢弃迟来的tcp报文段,时间大概为2min,为报文段生产周期的两倍。它是发送给上一个刚刚关闭的服务器端的,如果立刻重启,会错误接收。




















