TCPARP协议

Posted Aisa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCPARP协议相关的知识,希望对你有一定的参考价值。

ARP协议
\'\'\'
APR 地址解析协议,用于实现从IP地址到MAC地址的映射,即询问目标IP对应的MAC地址
\'\'\'

arp协议的两方面用途:

1. arp协议会把ip地址解析成mac地址
2. 根据ip以及子网标识子网地址

arp协议工作流程:

# 模拟定义一个源地址以及目标地址:
# 源地址:192.168.1.10/24
# 目标地址:192.168.1.20/24
1. 通信的第一步先拿到目标主机的ip地址和子网掩码,即192.168.1.20/24
2. arp协议算出本机的网段以及目标主机的网段,源地址:192.168.1.0,目标地址:192.168.1.0
3. 此时的话就可以判断出源地址与目标地址网段一致(在一个子网内),即可直接使用mac地址定位目标

交换机只有在两种情况下才把包广播

    目标mac是:FF-FF-FF-FF-FF-FF
    目标mac不存在于mac地址表中
\'\'\'
    如果在一个子网里面,数据包的走向为: 源地址>本地交换机>目标主机
    1. 如果在一个子网内进行通信,则靠的是mac地址定位到对方在哪里
    2. 发送arp协议的广播包拿到目标主机的mac地址(因为我们现在有的只是目标的ip地址),格式如下
        "自己的mac地址 FF-FF-FF-FF-FF-FF 192.168.1.10/24 192.168.1.20/24 数据部分"
        "在未得到目标mac地址的情况下,先用FF代替,然后交换机进行广播,通过ip地址来辨别目标身份"
    3. 发起真正的通信(通过上面发送的广播包拿到mac地址后)
        "自己的mac地址  目标主机的mac地址 192.168.1.10/24  192.168.1.20/24 源端口 目标端口 数据部分"
\'\'\'

# 修改上述同在一个子网内的地址
# 源地址:192.168.1.10/24
# 目标地址:101.200.10.22/24
1. 首先拿到目标主机的ip地址和子网掩码,即172.16.1.10/24
2. arp协议算出本机与目标地址的网段是否一样(明显不在一个子网内)
\'\'\'
    不在一个子网的话,先前的主力就从交换机变到路由器了
    发送arp协议的广播包要先拿到网关的mac地址,格式如下(跟上面步骤一样,不过把目标主机换成了网关):
        "自己的mac地址 FF-FF-FF-FF-FF-FF 192.168.1.10/24 网关的ip地址 数据部分"
        "通过上述方式获取到网关的mac地址后,经由路由器转发到目标地址,因为三层主要依靠ip协议"
    真正通信:
        "自己mac地址 网关的mac地址 192.168.1.10/24 101.200.10.22/24 源端口 目标端口 数据部分”
\'\'\'

二层隔离和三层隔离

主要针对于子网划分

  1. 二层隔离: 即使用不同的交换机来划分不同的局域网
  2. 三层隔离: 主要是通过更改子网掩码来实现逻辑上的子网划分

总结

  1. 二层隔离与三层隔离要保持一致
  2. 二层联通,三层可以隔离,即两台计算机接入一台交换机,但不一定在一个子网内

IP地址与子网划分基础知识

根据tcp/ip协议,连接在internet上的每个设备都需要有ip地址,它是一个32位二进制数,也可以用点分十进制来表示,每八位一组,用一个十进制表示即0~255,每组用\'.\'隔开。例如:172.16.1.1

  1. 特殊的IP地址
    "IP地址被分为常用的A类(1126),B类(128191),C类(192~223);还有不经常用的D和E类"
    广播地址: 主机号部分全为1(即255)的ip地址称之为广播地址,如192.168.1.255
    有限广播地址:指的是32位全为1(255.255.255.255)的ip地址,用于本网广播
    网络地址:主机号全为0的ip地址称之为玩过地址,如172.16.45.0就是一个B类的网络地址
    回环地址:127.0.0.1即自己本机网络,用于回路测试
    私有地址:只能在局域网中使用,有以下几种:
    1. 10.0.0.0----10.255.255.255 1个A类
    2. 172.16.0.0----172.31.255.255 16个B类地址
    3. 192.168.0.0----192.168.255.255 256个C类地址
  2. 子网掩码
    "子网掩码用来识别ip地址中的网络地址和主机地址"
    "子网掩码也是32位二进制数字,在子网掩码中,对应与网络地址部分全用1表示,主机部分用0表示"
  3. 子网划分
    "子网划分与vlam都可以做到隔离广播域,子网是划分三层隔离,vlan是二层隔离"
    优点:减少网络流量,提高网络性能,简化管理,易于扩大地理范围

TCP三次握手以及四次挥手
三次握手(主要用来建立双向链接):
1. 客户端发送链接请求;此时客户端得状态为syn_sent
链接过程由syn=1表示,为了安全起见将随机产生一个序列号即:seq=x
2. 服务端确认链接请求,并同时向客户端发送连接请求,此时服务端得状态为syn_RCVD
链接过程由syn=1表示,ack=1+x表示回应和回应的序列号,seq=y重新生成一个序列号
3. 客户端确定链接请求,此时客户端状态为ESTABLISHED,服务端接收到状态也为ESTABLISHED
链接过程只有客户端的回应操作,即ack=1+y.
经过以上三个步骤后,双向链接已经建立,之后便可正常传输数据


四次挥手(用来断开双向链接)
1. 客户端发送断链请求;此时客户端状态为fin_wait_1
断链过程由fin=1表示
2. 服务端确认断链请求;此时服务端状态为close_wait,客户端状态为fin_wait2,此时第一条链接已断
回应过程由ack=1表示
3. 服务端发送第二条的断链请求,此时服务端状态为last_ack,
请求状态由fin=1表示
4. 客户端确认请求;此时客户端的状态为time_wite
回应过程由ack=1表示

以上是关于TCPARP协议的主要内容,如果未能解决你的问题,请参考以下文章

协议切换成功与否

href="javascript:;"

Flutter 报错 DioError [DioErrorType.DEFAULT]: Bad state: Insecure HTTP is not allowed by platform(代码片段

串行通信协议

SpringCloud系列十一:SpringCloudStream(SpringCloudStream 简介创建消息生产者创建消息消费者自定义消息通道分组与持久化设置 RoutingKey)(代码片段

怎么用http协议实现安卓数据