课程回顾:
两台主机如何进行通讯常见网络设备OSI7层模型封装与解封装
1.TCP/IP模型:网路层协议:
应用层: 用层协议:telnet(23),ssh(22)
TELNET:远程链接协议(http)FTP:上传下载协议(smtp)TFTP: 简单文件协议(无密码)(nfs)SNMP:简单网络管理协议(如:dhcp)DHCP:动态主机分配协议
DHCP协议原理过程:
应用层 主机要主机层 因特网层 网络接入层应用层协议:>01.客户端主机发出广播信息,请求获取IP地址>02.服务端从地址池里取出一个IP地址分配给客户端(192.168.1.1-192.168.1.250)>03.客户端返回确认信息。>04.服务端从地址池把已经分配的地址从地址池中删除,避免被他人使用>05.客户端可以在一定时间内使用分配的地址
TCP/UDP 协议(传输控制协议):
主机层协议:TCP: 文件传输控制协议 属于面向连接的网络协议-----在线传输文件,可靠文件传输,传输效率低UDP: 用户报文协议 属于无连接的网络协议----离线传输协议,效率高,传输数据不可靠
TCP/UDP协议对比:
传输控制协议(TCP) | 用户数据协议(UDP) |
面向连接 | 无连接 |
可靠传输 | 不可靠传输 |
流量控制 | 尽力而为,尽力传递 |
使用TCP应用:web浏览器,电子邮件 | UDP应用:域名系统(DNS);视屏流; IP语音(VoIP) |
UDP随机端口配置:
控制字段ACK/SYN
ACK表示控制字段,确认数据是否接收,控制字段1为有效,为0表示失效
SYN表示请求建立连接字段 ,控制字段1为有效,为0表示失效 FIN表示断开连接,控制字段1为有效,为0表示失效
TCP三次握手原理图
主动: SYN请求建立连接,syn=1 seq=100 被动方: ACK发出确认号,ack=100,syn=1,ACK=101 SYN确认ack1:ack=101syn=1,seq=101 被动方:确认 SYN确认ack1: syn=1,seq=102 ACK确认号,ack=102,syn=1,ACK=101 确认ack-1确认seq=102TCP/四次挥手
tcpdump 命令
tcpdump -i eth0 -nn -X -c 5 "port 53" ##抓取53端口的包tcpdump -i eth0 -nn -X -c 5 "port 53" -w /tmp/oldboy.pkg ##保存到文件-n : 转换域名转为IP-X : 输出包的头部数据,会以16进制和ASCII两种方式同时输出-XX: 输出包的头部数据,会以16进制和ASCII两种方式同时输出,更详细。
显示TCP 11 种 状态集 (参考:)
服务器启动时创建了一个 soket条目 对应了:客户端tcp IP地址 网关:随机端口 源协议: 源IP地址 源端口号 目标地址: 目标端口tcp 10.0.0.1 0 :22 10.0.0.1 : 2211种状态集图片解释:
11种状态: 任何状态都不能出现过多,否则会影响网络链接
四次挥手过程为什么不能变为三次?
TCP11种状态集的转换
网络报文结构:
Source Port Number (16 bits) 利用随机端口号 | Destination Port Number (16 bits) 80 22 23 | ||||||||||||||||||||||||||||||
0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
Sequence Number(重点) (32 bits) | |||||||||||||||||||||||||||||||
4 | 5 | 6 | 7 | ||||||||||||||||||||||||||||
Acknowledgement Number(重点) (32 bits) | |||||||||||||||||||||||||||||||
8 | 9 | 10 | 11 | ||||||||||||||||||||||||||||
Header Length (4 bits) | Reserved (6 bits) | URG | ACK | PSH | RST | SYN | FIN | Windows Size (16 bits) | |||||||||||||||||||||||
12 | 13 | 14 | 15 | ||||||||||||||||||||||||||||
TCP Checksum (16 bits) | Urgent Pointer (16 bits) | ||||||||||||||||||||||||||||||
16 | 17 | 18 | 19 | ||||||||||||||||||||||||||||
Options (if any,variable length,padded with 0's) | |||||||||||||||||||||||||||||||
20 | 21 | 22 | 23 | ||||||||||||||||||||||||||||
Data (if any) | |||||||||||||||||||||||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |