网络协议之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。
网络协议之TCP/IP协议的更多相关文章
- 嵌入式linux的网络编程(1)--TCP/IP协议概述
嵌入式linux的网络编程(1)--TCP/IP协议概述 1.OSI参考模型及TCP/IP参考模型 通信协议用于协调不同网络设备之间的信息交换,它们建立了设备之间互相识别的信息机制.大家一定都听说过著 ...
- 网络基础知识-TCP/IP协议各层详解
TCP/IP简介 虽然大家现在对互联网很熟悉,但是计算机网络的出现比互联网要早很多. 计算机为了联网,就必须规定通信协议,早期的计算机网络,都是由各厂商自己规定一套协议,IBM.Apple和Micro ...
- 第12章 网络基础(1)_网络分层和TCP/IP协议族
1. 协议的概念 (1)计算机网络中实现通信必须有一些约定.如对速率.传输代码.代码结构.传输控制步骤和出错控制等约定,这些约定即被称为通信协议 (2)在两个节点之间要成功地进行通信,两个节点之间必须 ...
- 【Linux网络基础】TCP/IP 协议簇(各个常见协议介绍)
一.应用层协议 1. FTP 协议所在层次:应用层协议 名称:FTP协议 协议端口:20,21 协议说明: FTP(File Transfer Protocol,文件传输协议)是TCP/IP协议组 ...
- ISO/OSI网络体系结构和TCP/IP协议模型
1. ISO/OSI的参考模型共有7层,由低层至高层分别为:物理层.数据链路层.网络层.传输层.会话层.表示层. 应用层.各层功能分别为: (1)物理层 提供建立.维护和拆除 ...
- 网络基础二 tcp/ip协议簇 端口 三次握手 四次挥手 11种状态集
第1章 概念介绍 1.1 VLAN 1.1.1 什么是VLAN VLAN(Virtual LAN),翻译成中文是“虚拟局域网”.LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成 ...
- 【Linux网络基础】TCP/IP协议簇的详细介绍(三次握手四次断开,11种状态)
一.TCP/IP协议簇(DoD参考模型) 用于简化OSI层次,以及相关的标准. 传输控制协议(tcp/ip)簇是相关国防部DoD所创建的,主要用来确保数据的完整性以及在毁灭性战争中维持通信 是由一组不 ...
- 网络基础之TCP/IP协议族
一.TCP/IP协议族 1.什么是协议? 计算机与网络设备相互通信依赖于相同的方法,比如,双方通信基于何种语言等.而把通信所依赖的这一切方法统称为规则,而我们就把这种规则称为协议. 协议中存在各种各样 ...
- HTTP协议与TCP/IP协议
OSI 是7层 TCP/IP 协议是 4层. OIS 包括的层 从底到上依次为 1.物理层 2.数据链路层 3.网络层 4.传输层 5.会话层 6.表示层 7.应用层 TCP/IP ...
随机推荐
- 简单告诉你-"border:0"与"border:none"的区别
"border:0"与"border:none"的差异主要体现在性能差异和兼容差异.1.性能差异"border:0"表示把border定义为 ...
- js 动态生成表格案例
<1>布局:一个table表格,表格分为两个部分,上面是thead表头,表头里面仅一行,有4列(th), 下面是tbody表格内容,要求tbody中的每一行都是用js动态创建的 < ...
- 解决echarts内存泄露的问题
clear方法和dispose方法 一种是调用clear方法,一种是dispose方法.第一种是清理echarts 但是不销毁实例.第二种是销毁实例,再次使用需要重新构建实例 1. var chart ...
- 68. Text Justification (JAVA)
Given an array of words and a width maxWidth, format the text such that each line has exactly maxWid ...
- 用户吐槽不断:Android 10.0没法用
如果你升级到Android Q第三个测试版的话,那么最近是不是被设备不断重启搞崩溃了,事实上也确实如此,因为有很多用户都遇到了类似的情况,大家吐槽谷歌的声音越来越大. 不少用户发现,自己设备升级至An ...
- phpstorm配置总结
phpstorm配合laravel框架作为项目开发,需要添加自动提示,减少查看文档的次数,本次使用的是idel-helper插件 在当前项目下 编辑composer.json文件文件,添加如下字符 & ...
- 报表解决方案Telerik Reporting发布R2 2019 SP1|支持MS Access
Telerik Reporting拥有直观.无代码的Win.网页与PDF报表的创建功能,直观的设计与具有特定风格的报表,无代码数据打包.向导.语法开发工具.自动操作.分类整理.过滤.有条件格式化.转化 ...
- mac中登陆mysql忘记密码解决办法
1.打开终端,输入命令:cd /usr/local/mysql/bin 2.mysql -uroot -p,用这条命令登陆时报错信息: 报错:Enter password: ERROR 1045 (2 ...
- 移动端 使用 vConsole调试
前言 用vue 写移动端代码,有个报名页面 就在iOS 9下出现问题,vue的循环渲染都正常,一开始的数据也能取到.证明不是vue的兼容性问题 但是在用户点击按钮发现不能点击进入跳转 工具 推荐使用 ...
- 判断request中是否有文件
ServletFileUpload.isMultipartContent(request)