TCP Transmission Control Protocol
面向连接的,可靠的,基于字节流的传输层通信协议
TCP传输的数据单元是它的报文段,包括首部和数据
传输过程中,报文都会进行封装后再传输(封装-->传输)
TCP报文首部(包头)
TCP Header
TCP包头为20字节
TCP包头解释
line 1:源端口号、目的端口号,用于建立连接时,确认源端口(本机)和目的主机的端口号
line 2:序号,用来表示发送端到接收端的数据字节流
line 3:确认序号,表示下一次所期望收到的数据的序列号,只有ACK标志为1时,确认号字段才有效。一旦建立连接,ACK标志被设置为1
line 4:数据偏移、保留、TCP的标志位、窗口
标志位:
URG:紧急指针有效
ACK:确认序号有效
PSH:接收方应该尽快将这个报文交给应用层
RST:重置连接
SYN:同步序号用来发起了一个新连接
FIN:释放一个连接
line 5:校验和、紧急指针
line 6:参数
UDP
User Datagram Protocol
面向无连接的服务
没有超时重传、出错重传
报文不会拆分、合并,没有拥塞控制
UDP报文首部(包头)
UDP Header
UDP包头有8个字节
源端口、目的端口、长度、校验
在采用tcpdump抓包时,对于UDP抓包数据实际为:IP首部+UDP首部+UDP数据
tcpdump抓udp包的数据构成
抓UPD包示例:tcpdump - i wlan0 udp -nn port 9877 -X
udp抓包示例
按源IP和端口匹配udp包:
[root@wen~]# tcpdump -i wlan0 udp -nn port 9877 and src 192.168.0.108 -X
按目的IP和端口匹配udp包:
[root@wen~]# tcpdump -i wlan0 udp -nn port 9877 and dst 192.168.0.106 -X