二、CCNA-TCP/IP概述

2.1  TCP/IP协议簇

2.2  应用层

2.3  主机到主机层

2.3.1  TCP/UDP

TCP头:源端口号、目端口号、序列号(分段后保证对方收到有序)、确认号(确保可靠传输行为)…..。

UDP头:源端口、目端口…..。无法保证可靠连接

  • 第一步:A随机生成序列号seq,SYN标记TCP报文是初始化同步位。(TCP头部SYN标志位置为1);
  • 第二步:B收到SYN后,知道是打招呼的,建立TCP连接。应答确认报文,随机产生新的序列号,同时应答A的确认序列号+1,设置同步和应答标志。
  • 第三步:将B的确认号作为序列号,将B的序列号+1作为确认号,设置确认号标志位。

源端口号随机分配,访问23端口,对应的TELNET服务。

窗口机制:弹性处理。

  • 第一步:A发了3条消息给B;
  • 第二步:B应答时ACK为3,表示希望收到下一条序号为3,同时将大小设置为2 ,告诉A,B一次只能处理两条消息;
  • 第三步:A收到后,知道B只能同时处理两条消息,所以重发3,并接着发4,连发2条消息;
  • 第四步:B收到两条消息后,告诉A,下一条序号为5;

2.4  因特网层

网际互联协议IP:负责三层转发和路由。

  • 主要协议:
  • ICMP:如PING;

2.4.1  IP协议

  • TTL:避免无休止跳转;
  • 协议号:识别上层协议;

2.4.2  ARP协议

  • 通过IP地址寻找MAC地址;
  • ARP表:关联MAC和IP表;
  • MAC地址又称为物理地址,路由器端口、交换机端口、网卡都有MAC地址;
  • MAC地址是二层地址,LAN传输使用;
  • IP地址是三层寻址,网络间路由和寻址;

命令:arp –a可以查看arr表

  • 最开始ARP表示空的;
  • PC1想出外网,先需要把帧送到网关,就得知道网关MAC地址;
  • PC1发ARP包请求MAC地址,目标MAC不知道时先填0;
  • 该报文会广播给所有人,因为目标MAC地址是全FF;
  • 网关和PC2都会收到这个广播帧,但是PC2会忽略(目标IP地址不是PC2的),而网关会接受。
  • 网关应答PC1的ARP请求,将自己的MAC地址和IP返回。
  • 至此,PC1知道了网关的MAC地址。
  • 通过ARP的广播,域内就都互相知道了对方的MAC地址和IP对应关系,维护自己的ARP表项。
  • ARP表项是动态的,会定时更新,一旦重启,会清空,需要重新请求更新。

2.4.3  Ping(ICMP)

基于ICMP协议的ping工具;

2.4.4  Traceroute/Tracert

多路径是,追踪路径

2.5  问题1

PCA Telnet PCB过程:CS模式

  • 构建应用层数据包;
  • 传输层添加TCP头:源端口号(随机)+目的端口号(23);
  • 网络层添加IP头:源IP(PCA IP)+目的IP(PCB IP);
  • 链路层添加帧头:初始不知道网关MAC地址的情况下,发送ARP广播请求网关MAC地址;封帧源MAC地址(PCA MAC)+目的MAC地址(网关左边MAC)
  • 路由器收到帧后,查看帧目标MAC是自己的,接着拆包,查看目标IP地址,发现目标IP地址是PCB,不是自己的,也就是说帧是给自己的,但是IP包不是给自己的。
  • 路由器接着封帧,初始时路由器不知道PCB的MAC地址,还需要发ARP广播获取PCB的MAC地址。接着封帧源MAC地址(网关右边MAC)+目的MAC地址(PCB MAC)
  • PCB收到帧后,对比目标MAC地址是自己的,然后解帧,对比IP地址,发现IP地址也是自己的,就知道这个包是发给自己的。
  • 接着解帧,获取端口号,发现是TELNET服务; 交给TELNET服务程序。

发表回复