沙漏计时器型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。

网络协议之TCP/IP协议的更多相关文章

  1. 嵌入式linux的网络编程(1)--TCP/IP协议概述

    嵌入式linux的网络编程(1)--TCP/IP协议概述 1.OSI参考模型及TCP/IP参考模型 通信协议用于协调不同网络设备之间的信息交换,它们建立了设备之间互相识别的信息机制.大家一定都听说过著 ...

  2. 网络基础知识-TCP/IP协议各层详解

    TCP/IP简介 虽然大家现在对互联网很熟悉,但是计算机网络的出现比互联网要早很多. 计算机为了联网,就必须规定通信协议,早期的计算机网络,都是由各厂商自己规定一套协议,IBM.Apple和Micro ...

  3. 第12章 网络基础(1)_网络分层和TCP/IP协议族

    1. 协议的概念 (1)计算机网络中实现通信必须有一些约定.如对速率.传输代码.代码结构.传输控制步骤和出错控制等约定,这些约定即被称为通信协议 (2)在两个节点之间要成功地进行通信,两个节点之间必须 ...

  4. 【Linux网络基础】TCP/IP 协议簇(各个常见协议介绍)

    一.应用层协议 1. FTP   协议所在层次:应用层协议 名称:FTP协议 协议端口:20,21 协议说明: FTP(File Transfer Protocol,文件传输协议)是TCP/IP协议组 ...

  5. ISO/OSI网络体系结构和TCP/IP协议模型

    1. ISO/OSI的参考模型共有7层,由低层至高层分别为:物理层.数据链路层.网络层.传输层.会话层.表示层.     应用层.各层功能分别为: (1)物理层          提供建立.维护和拆除 ...

  6. 网络基础二 tcp/ip协议簇 端口 三次握手 四次挥手 11种状态集

    第1章 概念介绍 1.1 VLAN 1.1.1 什么是VLAN VLAN(Virtual LAN),翻译成中文是“虚拟局域网”.LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成 ...

  7. 【Linux网络基础】TCP/IP协议簇的详细介绍(三次握手四次断开,11种状态)

    一.TCP/IP协议簇(DoD参考模型) 用于简化OSI层次,以及相关的标准. 传输控制协议(tcp/ip)簇是相关国防部DoD所创建的,主要用来确保数据的完整性以及在毁灭性战争中维持通信 是由一组不 ...

  8. 网络基础之TCP/IP协议族

    一.TCP/IP协议族 1.什么是协议? 计算机与网络设备相互通信依赖于相同的方法,比如,双方通信基于何种语言等.而把通信所依赖的这一切方法统称为规则,而我们就把这种规则称为协议. 协议中存在各种各样 ...

  9. HTTP协议与TCP/IP协议

    OSI 是7层         TCP/IP 协议是 4层. OIS 包括的层 从底到上依次为 1.物理层 2.数据链路层 3.网络层 4.传输层 5.会话层 6.表示层 7.应用层 TCP/IP  ...

随机推荐

  1. 在CentOS7上无人值守安装Zabbix4.2

    #!/bin/bash # 检查操作系统版本,该脚本只能运行在 Centos .x 系统上 cat /etc/redhat-release |grep -i centos |grep '7.[[:di ...

  2. qt tableview里面添加控件

    在QStyledItemDelegate的paint方法里面 void MyItemModelDeletage::paint(QPainter *painter, const QStyleOption ...

  3. centos 安装配置LAMP平台

    实验环境: [root@nmserver-7 html]# cat /etc/redhat-release CentOS release 7.3.1611 (AltArch) [root@nmserv ...

  4. Delphi7 IDE

  5. Linux部署Redis及PHP-redis扩展

    Redis是一个key-value存储系统,属于我们常说的NoSQL.它遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.它常用在缓存.队列.P ...

  6. Linux日常之命令uniq

    命令uniq 作用是过滤文件内容重复部分 需要注意的是,该命令只是对相邻的行进行比较,若两个相同的行不相邻,不会被过滤掉 选项 -c,在每行行首显示出该行出现的次数 -d,只显示出重复的行 -u,只显 ...

  7. The Python Challenge 闯关笔记

    The Python Challenge : http://www.pythonchallenge.com/ Level 0: 看提示图片中为2**38,计算值为274877906944. Hint: ...

  8. 解决 i18n properties文件中文必须是unicode的问题

    解决 i18n properties文件中文必须是unicode的问题 i18n  unicode  UTF-8  目前产品需要做国际化,但 java 的 I18N 资源文件中中文必须转换成 unic ...

  9. 移动UI控件Telerik UI for Xamarin发布R2 2019|引入Map控件

    Telerik UI for Xamarin是一个构建跨平台移动应用程序的原生UI.Telerik UI for Xamarin使用Xamarin.Forms技术,它可以让开发人员从一个单一的共享C# ...

  10. java常用类与包装类--常用类字符串String类、StringBuffer类、Stringbuilder类

    1.String类 1.1String类的概念和储存结构: (1)字符串是一个比较特殊的对象,可以使用new,也可以不使用new来创建字符串对象 String s1 = new String(&quo ...