三次握手&四次挥手
三次握手
客户端 -> 服务器 SYN
客户端 <- 服务器 SYN/ACK
客户端 -> 服务器 ACK
客户端 -> 服务器 HTTP请求
客户端 <- 服务器 HTTP响应
四次挥手
客户端 <- 服务器 FIN
客户端 -> 服务器 ACK
客户端 -> 服务器 FIN
客户端 <- 服务器 ACK
本地回环演示三次握手&四次挥手
1、打开WireShark,选择Loopback: lo0
2、一种终端输入:nc -l 6060,6060是端口这个可以随便写
3、另一个终端输入:nc 127.0.0.1 6060,和上面的端口对应上
4、在WireShark中选中一条TCP记录、右键、Protocol Preferences、取消选中Relative sequence numbers,就会变成不是0了。选择不同的Protocol记录、右键、Protocol Preferences 显示的东西不一样
1 0.000000 127.0.0.1 127.0.0.1 TCP 68 58377 → 6060 [SYN] Seq=0 Win=65535 Len=0 MSS=16344 WS=64 TSval=1182962562 TSecr=0 SACK_PERM=1
2 0.000057 127.0.0.1 127.0.0.1 TCP 68 6060 → 58377 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=16344 WS=64 TSval=1182962562 TSecr=1182962562 SACK_PERM=1
3 0.000065 127.0.0.1 127.0.0.1 TCP 56 58377 → 6060 [ACK] Seq=1 Ack=1 Win=408256 Len=0 TSval=1182962562 TSecr=1182962562
4 0.000072 127.0.0.1 127.0.0.1 TCP 56 [TCP Window Update] 6060 → 58377 [ACK] Seq=1 Ack=1 Win=408256 Len=0 TSval=1182962562 TSecr=1182962562
四次挥手.png
29 225.931908 127.0.0.1 127.0.0.1 TCP 56 6060 → 58377 [FIN, ACK] Seq=1 Ack=1 Win=408256 Len=0 TSval=1183188317 TSecr=1182962562
30 225.931936 127.0.0.1 127.0.0.1 TCP 56 58377 → 6060 [ACK] Seq=1 Ack=2 Win=408256 Len=0 TSval=1183188317 TSecr=1183188317
31 225.931968 127.0.0.1 127.0.0.1 TCP 56 58377 → 6060 [FIN, ACK] Seq=1 Ack=2 Win=408256 Len=0 TSval=1183188317 TSecr=1183188317
32 225.931998 127.0.0.1 127.0.0.1 TCP 56 6060 → 58377 [ACK] Seq=2 Ack=2 Win=408256 Len=0 TSval=1183188317 TSecr=1183188317
OSI七层网络协议
- 应用层(应用层、表示层、会话层) hello
- 传输层 tcp/udp + hello
- 网络层 ip + tcp/udp + hello
- 数据链路层 Mac地址 + ip + tcp/udp + hello + 帧尾
- 物理层
通信方式
-
单工通信
: 所谓单工通信,是指消息只能单方向传输的工作方式。例如遥控、遥测,就是单工通信方式。 -
半双工通信
:半双工(Half Duplex
)数据传输指数据可以在一个信号载体的两个方向上传输,但是不能同时传输。 -
全双工通信
:全双工(Full Duplex
)是通讯传输的一个术语。通信允许数据在两个方向上同时传输,它在能力上相当于两个单工通信方式的结合。全双工指可以同时(瞬时)进行信号的双向传输(A→B且B→A)。指A→B的同时B→A,是瞬时同步的。
网友评论