06 IP/TCP报文

  1. IP
    1.1 以太2型:目的Mac+源Mac+TYPE+数据部分
    1.2 IP头部:
    IP头部
    Version:版本,为IPv4
    IHL:头部长度(一般情况下为20字节标准头部,如果有扩展,则为60字节)
    DSCP:差分服务代码点,可以为不同的流量设置不同的服务级别
    Total Length:IP报文总长度(头部+数据)
    Identification:标识是否为同一会话
    Flags:分片标志。3层可以分片,MTU最大传输单元默认为1500。但有些应用不允许分片,例如http、qq。设置不允许分片的1500字节的报文:思科设备(思科可以通信)ping 202.100.1.2 size 1500 df-bit;华为设备(华为无法通信,因为-s不是设置的总报文长度,而是数据部分的长度,若要通信需要改为1472(1500-20字节头部-8字节icmp头部))ping -s 1500 -f 202.100.1.2
    Offset:偏移量。
    TTL:生存时间,数值为0时,IP报文被丢弃,每经过一个网络TTL减1。非常重要的IP报文的防环机制。
    Protocol:IP报文承载的协议类型,TCP为6,UDP为17,ICMP为1
    Options:扩展项,一般不用。使用举例记录路由:ping -r 202.100.1.2
# 华为设备调整MTU
int g0/0/0
mtu 1600
# 思科设备调整MTU
int s1/0
mtu 4072
  1. 华为设备上FTP实施
    文件传输协议,主要用于设备的系统升级
    华为设备升级使用FTP,而思科设备使用TFTP
    华为VRP系统即可以作为FTP客户端,也可以作为服务端
    FTP的2个端口20/tcp(数据传输)和21/tcp(命令传输),FTP存在主动模式(port)和被动模式(pasv)
# R2开启ftp服务
ftp server enable  # 开启ftp服务
aaa
local-user hcia password cipher hciapwd  # 添加用户名和密码
local-user hcia service-type ftp  # 该用户服务于ftp
local-user hcia privilege level 15  # 设置用户级别
local-user hcia ftp-directory flash:  # 设置ftp的目录,注意flash后面需要冒号
q
dis tcp status # 查看tcp链接状态
# R1测试
ftp 202.100.1.2  #输入用户名和密码
ls # 查看所有文件
get "文件名称"  # 从服务器下载文件
put "文件名称"  # 上传文件到服务器
  1. TCP
    传输层不能分片,因为没有对应字段的支持
    查看tcp状态(五元组)dis tcp status,通过五元组可以确定一条会话。
    tcp报文的开销比较大(头部复杂,占用字节较多);udp报文开销比较小。
    使用目的端口号来区分不同的服务。
    3.1 TCP的封装格式:
    端口号大的一端主动发起连接
    TCP的封装格式
  • 32位序列号,数据段标记,用于到目的端对到达包的重组
  • 32位确认号,对发送端的确认信息,告诉发送端这个序号之前的数据段都收到了
  • URG,紧急指针有效位,与16位的紧急指针配合使用
  • ACK,确认序列号有效位,表明该数据包包含确认信息
  • PSH,通知接收端立即将数据提交给用户进程,不在缓存中停留,等待更多的数据
  • RST,为1时,请求重新建立TCP连接
  • SYN位,请求建立TCP会话的一个标识
  • FIN,为1时,数据发送完毕,请求断开连接
  • 16位窗口大小,滑动窗口大小,指名本地可接收数据的字节数
  • 可选项:4字节/个,常用可选项举例:MSS,最大报文段长度,默认是1460=1500-20-20),用于企业网关通过PPPoE连接互联网后,需要调整MSS才能去正常访问WEB应用(故障:能ping通外网,但是WEB极慢或者打不开)。
    3.2 3次握手和4次断开
    3次握手:a到b的SYN---->b到a的SYN和ACK---->a到b的ACK
    4次断开:a到bFIN(可能包含PSH\ACK)---->b到aACK---->b到aFIN(可能包含PSH\ACK)---->a到bACK
  1. UDP
    UDP头部
    华为和华三设备只能最为TFTP的客户端,从服务器获取文件。
    使用UDP协议下的TFTP协议(端口号69)备份(升级)思科IOS的一个实验(模拟器无法实施此实验)
# TFTPD64工具,配置PC开启TFTP服务
# 配置交换机或者路由器IP地址之后,实现PC和交换设备之间的通信
# 备份
copy flash:c3560....bin tftp:  # 将镜像文件备份到tftp服务器,输入tftp服务器地址(PC地址)
# 升级
copy  tftp:  flash:update.zip # 输入tftp服务地址,然后输入文件名称
boot system update.zip # 设定新的启动文件,即更新
# 将思科设备的TFTP服务端打开
tftp-server flash: