您的位置:首页 > 理论基础 > 计算机网络

Mini-Notes: 计算机网络-网络每一层及其基本协议简介

2016-09-26 00:10 232 查看

什么是互联网OSI模型?

OSI(Open System Interconnection)是指开放系统互联模型

OSI是ISO(国际标准化组织)规定的网络的七层结构

OSI产生的原因:当时TCP / IP还没出来,各个生产商用各自的协议,生产出很多不同的网络,相互不兼容,造成通信困难,这时候需要有一个标准来规范网络的生产。

每一层为其上一层提供服务

每一层及其作用

物理层

通过线路传送原始的比特流

只完成一个节点到另一个节点的传送

数据链路层

通过物理网络传送包(这里的包指的是数据报)

只完成一个节点到另一个节点的传送

实现点到点的可靠传输

网络层

把包里面的目的地址拿出来,进行路由选择,决定要往哪个方向传输

负责从源通过路由选择到目的地的过程,达到从源主机传输数据到目标主机的目的

传输层

网络层只是把数据送到主机,但不会送到进程,传输层负责进程与主机间的传输,主机到主机的传输交由网络层负责

传输层实现端到端的可靠传送

会话层

通过数据流建立会话关系

展示层

数据压缩、解压、加密、解密、数据类型、格式变换等一切与数据展示有关的操作

应用层

专门针对某些应用提供服务

OSI的历史背景

OSI参考模型是学术上和法律上的国际标准,是完整的权威的网络参考模型

TCP / IP参考模型是事实上的国际标准,即现实生活中被广泛使用的网络参考模型

国际标准化组织为了解决网络不兼容的问题而制定OSI标准,然而当专家们把网络通信问题研究透彻,制定好OSI标准的时候,(现实中网络的发展和需求不等人)TCP / IP已经占领了整个市场。

网络每一层的基本协议简介

物理层

数据链路层

PPP

Ethernet

网络层

IP协议

网络之间互联的协议

在源地址和目的地址之间传送一种称为数据包的东西**

IP数据报由IP头部和具体数据两部分构成**

分段方法:根据链路层对传输帧的大小限制进行分段以及重新组装**

TTL原理:每经过一个路由器TTL减1,如果TTL减到0,路由器直接丢包,同时发ICMP回源主机

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

当路由器要在链路层上通过局域网(LAN)进行数据传输时,需要通过ARP协议在本子网内广播ARP帧,询问MAC地址,进行IP地址和MAC地址的映射

DHCP协议(Dynamic Host Configuration Protocol,动态主机配置协议)

IP地址的动态分配和续租

使用UDP协议工作

ICMP协议(Internet Control Message Protocol,Internet控制报文协议)

用于在IP主机、路由器之间传递控制信息(网络诊断)

控制信息是指网络通不通、主机是否可达、路由是否可用等网络本身的信息

Routing protocols(路由协议)

静态路由(经过手动配置生成的路由称为静态路由)

IGP(Interior Gateway Protocol,内部网关协议,自治域内通过内部网关协议建路由)

RIP协议(Routing Information Protocol)

是动态路由的内部网关协议中的一种路由协议

这个协议的目的是通过距离向量方法在自治域内部建立动态路由

寻路的原理是:询问邻居路由到目的地的距离,并结合自己到邻居的距离,计算自己到目的地的距离

技术细节:

初始时每个路由器只有自己直连网的路由

每30s左右会将自己的路由表送给邻居

邻居收到以后更新自己的路由表

OSPF协议(Open Shortest Path First)

链路状态算法:所有路由器都保存了全网的拓扑和每条链路的权值

OSPF路由发布规则

每30分钟或是路由有更新时全网发布路由器链路状态通告和网络链路状态通告

每个路由器都会将收到的这些信息保存在数据库中以成图(链路状态数据库),60分钟内没有更新会删除

成图后每个路由器都保存了全网结构图后,路由器通过最短路径算法算路由规则并加入到自己的路由表中(OSPF不交换路由表,路由表是每个路由器自己计算出来的)

EGP(Exterior Gateway Protocol,外部网关协议,自治域内有网关,网关与网关之间通过外部网关协议建路由)

为什么全世界的网不用RIP或者OSPF连起来?

技术原因:RIP和OSPF这种协议在网络直径太大的情况下效率不高

市场原因:不同的自治域可以划分给不同的网络提供商提供对应的服务,每个自治域内的服务提供商可以在里面应用自己的域内算法或改进原有的算法以提供满足对应客户群体需求的服务。

BGP(Border Gateway Protocol,边界网关协议)

BGP是EGP协议的一个最为典型的代表

BGP是自治系统间的路由协议

BGP通过维护IP路由表或“前缀表”来实现自治系统之间的可达性

传输层

TCP(Transmission Control Protocol,传输控制协议)

简介

是一种典型的面向连接的传输协议

需要经历建立连接,关闭连接的过程

特别适合文件发送

TCP建立会话:三次握手

三次握手的具体内容

第一次:客户机发起请求

建立连接

客户端发送连接请求报文

SYN(同步位)置为1,说明发起新的连接

指定SEQ = x,说明这个段的序列号是多少

第二次:服务器响应请求

服务器收到SYN报文

确认ACK = x + 1,说明客户机序列号为x的TCP段内部请求已收到,期待接收序列号为x + 1的数据段

SEQ = y

第三次:客户机确认连接建立,服务器分配资源端口

客户端收到SYN + ACK报文段

发送ACK = y + 1

指定SEQ = x + 1

这个报文发送完毕以后,客户端和服务器端都进入ESTABLISHED状态,完成TCP三次握手

为什么建立连接要进行三次握手,一次或者两次握手行不行?

一次握手:客户机根本不知道连接的有效性

两次握手:服务器无法确认该请求的合法性

为什么建立连接时序列号要随便选?

为了防止之前遗留下来的包的影响

TCP连接释放

连接释放的两种方式

强制释放

协商释放

连接释放的具体方法:四次握手

第一步:释放连接的发起方发起释放连接请求

第二步:释放连接的接收方回复释放连接请求

第三步:释放连接的接收方同意释放连接请求

第四步:释放连接的发起方回复释放连接请求

为什么发起方在第四次握手发出ACK后会等一段时间才释放连接,而接收方在收到第四次握手结束的信息后会立即释放连接?

发起方发送对于FIN的ACK后(也就是第四次握手),等待一段时间可以保证接收方能够收到,如果ACK在返回过程中丢失会导致接收方超时,这时会接收方会再发一个FIN给发起方

消耗掉遗留下来的数据包,防止它们干扰接收方的接收

UDP(User Datagram Protocol,用户数据报协议)

简介

UDP是一种典型的无连接服务

不需要建立连接直接发送,因此也不需要释放连接。服务器在接收到以后也不需要进行反馈

特别适合流媒体应用

TCP协议和UDP协议的区别以及典型的应用场景

都是传输层的协议

TCP协议是面向连接的协议,有流量控制、拥塞控制

流量控制:flow control,由接收端决定,发送端的速率要适应接收端的能力

拥塞控制:congestion control,由网络决定,要适应网络的能力

UDP协议是基于无连接的不可靠协议

TCP传输效率比UDP低

应用场景主要看对效率和对数据准确性的要求

TCP一般用于文件传输、发送或接收邮件、远程登陆等

UDP一般用于即时通信、在线视频、网络语音动画等

应用层

FTP协议

SMTP协议

HTTP协议

应用层的其他一些除了协议之外的重要内容

DNS

CDN

P2P
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息