zoukankan      html  css  js  c++  java
  • 网络协议之TCP/IP协议

    沙漏计时器型TCP/IP协议族,允许IP on everyting,即支持多种形式和物理层和数据链路层实现;同时支持多种多样的应用层协议,扩展了各式各样的服务。

    IP协议(网际协议)

    与IP协议配套使用的协议包括:

    1)地址解析协议ARP(Address Resolution Protocol)

          通过IP地址解析出物理地址,RAP协议的实现原理是在主机的ARP高速缓存中存放IP地址和物理地址的映射表,并根据实际主机的变动情况动态更新该映射表。

    2)逆地址解析协议RARP(Reverse Address Resolution Protocol)

          通过物理地址解析出IP地址,现在该功能已经包含到DHCP协议中,不再使用单独的RARP协议。

    3)网际控制报文协议ICMP(Internet Control Message Protocol)

          ICMP允许主机或者路由器报告差错情况和提供有关异常情况的报告。ICMP报文作为IP数据包的数据,加上IP数据包的首部,组成IP数据包传输。

          ICMP报文的种类有两种,即ICMP差错报告报文和ICMP询问报文。ICMP报文的前4个字节是统一格式的,共三个字段:类型、代码和校验和。

          ICMP的一个重要应用就是分组间探测PING(Packet InterNet Groper),用来测试两个主机之间的连通性。PING使用ICMP回送请求与回送应答报文。PING是应用层直接使用ICMP,没有通过TCP或者UDP。

          ICMP的另一个重要应用是tracerouter(Windows下为tracert命令),用来测试路由路径。

    4)网际组管理协议IGMP(Internet Group Mgmt Protocol)

    其中,ICMP和IGMP协议使用IP协议,而IP协议使用RARP和ARP协议。

    IP数据包格式

    路由选择协议

    路由选择协议有两大类:

    1)内部网关协议IGP(Interior Gateway Protocol)

         即一个ISP内部使用的路由协议,如RIP和OSPF协议。

         RIP(Routing Information Protocol)是一种基于距离向量的路由选择协议,RIP协议要求网络中的每一个路由器都要维护从它自己到其他目的网络的距离记录(通过的路由器数量,也叫跳数hop count),RIP协议允许一条路径最多只能包含15个路由器。

          RIP协议使用UDP数据包进行传输,即UDP端口520。

    2)外部网关协议EGP(External Gateway Protocol)

          目前最常用的外部网关协议是BGP-4协议(边界网关协议)。

    MAC地址

    6个字节,高3字节为OUI(Organizationally Unique Identifier),也称为公司标识符;低3字节由厂家自行指派,称为扩展标识符(Extended Identifier)。

    IEEE规定MAC地址第一个字节的最低位为I/G位,表示Individual/Group。当I/G位为1时表示组地址,用来进行多播;当I/G位为0时,表示一个单个站地址。

    IEEE还规定MAC地址第一个字节的最低第二位为G/L位,表示Global/Local。当G/L位为1时是全球管理,为0时是本地管理,这时用户可以任意分配网络上的地址。

    适配器有过滤功能,适配器从网络上每接收到一个MAC帧,首先用硬件检查MAC帧中的目的地址,包括:

    1)单播(unicast)帧(一对一),即收到的帧的目的MAC地址与本机MAC地址完全相同;

    2)广播(broadcast)帧(一对全体),即发送给本局域网上所有站点的帧(全1地址);

    3)多播(multicast)帧(一对多),即发送往本局域网上一部分站点的帧。

    MAC帧格式

    1)DIX Ethernet V2标准(最常用)

    类型字段用来标志上一层使用什么协议,以便把收到的MAC帧的数据上交给上一层协议,例如0x0800表示IP数据包。

    实际上,在传输媒体上实际传送要比MAC帧多8个字节的前导,这是因为当一个站在刚开始接收MAC帧时,由于适配器的时钟尚未与到达的比特流达成同步,因此MAC帧的最前面若干位就无法接收,结果使整个的MAC帧失效。为了接收端迅速实现位同步,从MAC层向物理层发送数据时插入8个字节前导(由硬件生成),它由两个字段组成。前7个字节位前同步码(1和0交替码),它的作用是使接收端的适配器在接收MAC帧时能够迅速调整其时钟频率,使它和发送端时钟同步;最后一个字节为帧开始定界符,定义为10101011,告诉接收端适配器:“MAC帧信息马上就要来了,请适配器注意接收”。

    2)IEEE的802.3标准

    IEEE 802.3规定MAC帧的第三个字段为“长度/类型”,当这个字段值大于0x0600时,就表示类型。这样的帧和以太网V2 MAC帧完全一致。只有当这个字段小于0x0600时才表示”长度“,即MAC帧的数据部分长度(MTU)。

    IEEE 802.3标准规定凡是出现下列情况之一即视为无效MAC帧:

    a) 帧长度不是整数个字节;

    b) FCS帧检验序列有差错;

    c) 收到的帧的MAC帧MTU长度不在46~1500字节之间。考虑到MAC帧首部和尾部长度共有18个字节,可以得出有效的MAC帧长度为64~1518字节之间。

    网桥和VLAN

    多路网桥就是以太网交换机,以太网交换机有多种类型,如“具有第三层特性的二层交换机”和“多层交换机”,前者具有某些三层功能,如数据报的分片和对多播通信量的管理,后者可以根据三层IP地址对分组进行过滤。

    使用以太网交换机可以方便实现VLAN划分。

    1988年IEEE 802.3ac标准,定义了以太网的帧格式的扩展,以便支持VLAN,即在以太网帧格式中插入4字节的VLAN标识字段,称为VLAN Tag,用来指明发送该帧的工作站属于哪一个VLAN。

    VLAN标记字段的前两个字节总是设置为0x8100,称为IEEE 802.1Q标记类型;后两个字节为VLAN ID,唯一标记该以太网帧属于哪一个VLAN。

  • 相关阅读:
    LintCode Python 简单级题目 488.快乐数
    LintCode Python 简单级题目 100.删除排序数组中的重复数字 101.删除排序数组中的重复数字II
    LintCode Python 简单级题目 373.奇偶分割数组
    LintCode Python 简单级题目 39.恢复旋转排序数组
    LintCode Python 简单级题目 35.翻转链表
    LintCode Python 简单级题目 451.两两交换链表中的节点
    LintCode Python 简单级题目 174.删除链表中倒数第n个节点
    aws查看官方centos镜像imageid
    linux shell脚本查找重复行/查找非重复行/去除重复行/重复行统计
    php配置优化-生产环境应用版
  • 原文地址:https://www.cnblogs.com/justin-y-lin/p/10928362.html
Copyright © 2011-2022 走看看