首页 > 代码库 > 计算机网络中的协议

计算机网络中的协议

物理层


物理层考虑的是怎样才能连接各种计算机传输媒体上传输的数据比特流,而不是具体的传输媒体,用于物理层的协议叫做物理层的规程。

数据链路层


对于点对点的链路,PPP协议书目前应用最广泛的数据链路层协议

PPP协议的组成

1)一个将数据报封装到串行链路的方法,PPP既支持异步链路,有支持面向比特的同步链路。IP数据报在PPP帧中就是其信息部分。

2)一个用来建立,配置和测试数据链路连接的链路控制协议LCP。通信双方可协商一些选项。链路控制,PPP为用户发起呼叫以建立链路,在建立链路是协商以参数选择,通信过程中随时测试链路。

3)一套网络控制协议NCP,其中的每个协议支持不同的网络层协议。如IP、OSI。来为上层提供服务接口。针对上层不同的协议类型,会使用不同的NCP组件。如对于IP提供IPCP接口,对于IPX提供IPXCP接口,对于APPLETALK提供ATCP接口等。

CSMA/CA协议是重要的一个协议

工作流程

1.送出数据前,监听媒体状态,等没有人使用媒体,维持一段时间后,才送出数据,由于每个设备的随机时间不同,所以可以 减少冲突的时间。

2.送出数据之前,前进行一小段的请求传送报文给目标端,等待目标端回应CTS(clear to send)报文后,才开始传送。利用RTS-CTS握手程序,确保接下来的传送资料时,才不会发生碰撞。由于RTS-CTS封包很小,让传送的无效开销很小。

工作原理

1)首先检测信道是否有用,如果检测出信道繁忙,则等待一段时间后,才送出数据。

2)接收端如果能收到此帧,则过一段时间间隔后,向发送端发出确认帧ACK。

3)发送端收到ACK帧,确定数据正确传输,则经历一段时间间隔后,会出现一段空闲时间。

CSMA/CD协议提供寻址和媒体存取的控制方式,使得不同设备或网络上的节点可以在多点的网络上通信而不产生冲突。

作用:在传统的共享以太网中,所有节点共享传输介质,如何保证传输介质有序、高效地为许多节点提供传输服务,就是以太网的介质访问控制协议要解决的问题。

工作原理

发送数据前先帧听信道是否空闲,若空闲,即立即发送数据,若信道忙碌,则等待一段时间至信道中的信息传输结束后再发送数据;若上一段信息发送结束后,同时又两个或者两个以上节点都提出发送请求,则判定为冲突,若帧听到冲突,即停止发送数据,等待一段随机时间再尝试。、

所谓载波帧听,意思就是网络上个工作站在发生数据前要帧听总线上有没有数据传输。

所谓冲突就是若网络上有两个或者两个以上的工作站同时发送数据,就会产生信号的混合,两个工作站都辨不出什么,这种情况又称数据冲突又称碰撞。

CSMA/CA和CSMA/CD协议的主要差别

CSMA/CD:带有冲突检测的载波监听多路访问,可以检测冲突,但无法避免。

CSMA/CA:带有冲避免的载波帧听多路访问,发送包的同时不能检测到信道上有无冲突,只能尽量“避免”。

1.两者传输介质不同,VSMA/CD用于总线式以太网,而CSMA/CA则用于无线局域网等。

2.检测方式不同,CSMA/CD通过电缆中的电压变化来检测,CSMA/CA采用能量检测(ED),载波检测(CS),和能量载波混合检测三种检测信道忙闲的方式。

3.WALN中,对于某个节点来说,刚发出的信号强度远远大于来自其他节点的信号强度,也是说自己的信号会把其他节点的信号覆盖掉。

4.本节点有冲突,并不意味着其他节点有冲突。

综上。WALN中实现CSMA/CD是比较困难的。

网络层


网际协议IP

与IP协议配套使用的还有以下几种协议

1).地址解析协议ARP

2)逆地址解析协议RARP

3)网际控制协议ICMP

4)网际组管理协议IGMP

IP协议:如果有许多计算机通过一些路由器进行互联,由于参加的计算机网络都使用相同的网际协议IP,因此互联之后的计算机网络构成了虚拟互联网络。IP协议就能使这些性能各异的网络在网络层上看起来像一个统一的网络。

ARP:已经知道了一个机器(主机或路由器)的IP地址,需要找出相应的物理地址。

RARP:已经找到了物理地址,需要相应的IP地址。

ICMP:允许主机或路由器报告差错情况和提供有关的异常报告情况。

ICMP差错报告有5种

  1. 终点不可达:当路由器或主机不能交付数据报时

  2. 源点抑制:当路由器或主机由于拥塞而丢弃数据报时,向发送源点发送抑制报文。

  3. 时间超时:当路由器收到生存时间为零的数据报时丢弃数据报,并发送超时报文。

  4. 参数问题:当路由器或目的主机收到数据报首部中有的字段值不正确时。丢弃数据报并发送参数问题的报文。

  5. 改变路由(重定向)。把改变路由的报文发送给主机。以便下次正确找到。

不应该发送ICMP差错报文的几种情况

  1. 不能对差错报告再发送差错报告

  2. 对第一个时间片所有后续数据报片不发送ICMP差错报告。

  3. 对具有多播地址的数据报不发送ICMP差错报告。

  4. 对具有特殊地质(如127.0.0.0或0.0.0.0)的数据报并不发生ICMP差错报告。

ICMP的应用举例

  1. PING:分组网间探测PING同来测试两个主机之间的连通性。PING使用了ICMP会送请求与会送回答报文。PING是应用层直接使用网络层ICMP的例子。没有通过传输层UDP和TCP

  2. Tracerout:用来跟踪从原点到终点的路径。发送一连串的IP数据报,数据报中封装的是无法交付的UDP数据报,第一个数据报P1生存时间设置为1,当到达第一个路由器R1时,收下他,并把生存时间TTL减1,由于TTL等于0了,R1就把P1丢弃了,并向源主机发送ICMP时间超过报文。源主机接着发送第二个报文,并把TTL设置为2,若到达R2路由器TTL为0,则向源主机发送ICMP不可达报文。同样的道理,知道最后一个ICMP不可达报文是有目的主机发送。

路由选择协议

内部网关协议IGP:若RIP和OSPF等

外部网关协议EGP:BGP

RIP协议的特点:

(1)仅和相邻的路由器交换信息

(2)路由交换信息是当前本路由器所知道的全部信息,即自己的路由表。

(3)按固定时间间隔交换信息,例如,30秒。

OSPF的特点是不像RIP那样是面向距离的,

(1)像本自制系统的所有路由器发送信息

(2)发送信息就是与本路由器相邻的所有路由器的链路状态。所谓链路状态,就是本路由器和哪些路由器相邻。

(3)只要链路状态发送变化时,路由器才像所有路由器用洪范法发送信息。

BGP:不同的AS(自治系统)的路由器之间交换信息的协议。BGP只能是力寻一条能够到达目的网络的且比较好的路由,BGP采用了路径向量路由选择协议,与距离向量协议和链路协议有很大的区别。BGP发言人一般说是边界路由。

网际组管理协议IGMP

IGMP协议是让连接在本地局域网上的多播路由器知道本局域网上是否有主机(严格的讲是主机上的某个进程)参加或退出了某个多播组。(仅有IGMP还不能完成多播任务,还需要使用多播路由选择协议)

运输层


用户数据报协议UDP

该协议只在IP数据报服务上增加了一点小小的功能。它的特点是:

  1. 是无连接的:发送之前不需要建立练接

  2. 尽最大的努力交付:即不保证可靠交付,因此主机不需要维持复杂的练接状态表。

  3. UDP是面向报文的:UDP一次交付完整的报文,既不合并也不拆分。交给IP层后,若太长,可能进行分片。

  4. UDP没有拥塞控制:网络中出现拥塞不会是源主机的发送效率降低,对某些实时应用是很重要的,如IP电话,实时视频会议等,要求源主机以恒定速度发送数据。并且允许网络发送阻塞时丢失一些数据,但不允许有太大的时延。

  5. UDP支持一对一,一对多,多对一和多对多的交互通信。

  6. UDP的首部开销小。只要8个字节,TCP20个字节。

传输控制协议TCP

   1.面向连接的传输协议。应用程序在使用TCP协议之前,必须建立练接,传输数据完毕后必须释放连接

   2.每一条TCP只能连接两个端点

   3.TCP提供可靠交付服务:TCP传输数据无差错,不丢失,不重复,且按序到达。

   4.TCP提供全双工服务:允许通信双发的应用进程在任何时候都发送数据,两端都设有发送缓存和接受缓存。

   5.面向字节流:虽然应用程序和TCP的交互式一次一个数据块,但TCP把应用程序交下来的数据块看出仅仅是一连串无结构的字节流。

TCP的连接建立与连接释放采用“三次握手四次挥手”的方式。问题:为什么要三次握手?

为什么A还要发一次确认呢?

只要是方式已失效的练接请求报文突然又传到B,因而产生错误。

所谓“以失效的练接请求报文”是这样差生的

(1)正常情况,发出练接请求,但因练接请求报文段丢失而未收到确认,于是又重传了一次请求,后来收到了确认,建立了连接,数据传输完毕后,释放了连接,A共发送了两个请求报文段,一个丢失,另一个到达了B。

(2)异常情况,即A发送的请求报文并没有丢失,而是在某些网络节点滞留了,以致到了连接释放后的某个时间才到达B,本来就是一个已失效的报文,但B收到实效的报文连接请求报文段后,误认为A再次发出新的连接请求,于是向A发送了确认报文段,同意建立连接,假定不采用三次握手,那么只要B发出确认,新的连接就建立了。

由于现在A并没有发出连接建立请求,故不会理睬B的确认,也不会发出数据,但B确一直以为新的连接建立了,一直等到A发来数据,B处于阻塞状态,并且好多资源都白白浪费了。

为什么主动发起连接释放的一端在收到对端的确认后,把确认报文段的ACK置1,确认好ACK=w+1,而自己的序号为seq=u+1,进入TIME-WAIT状态?

  1. 为了保证发送最后一个ACK报文段到达B,这个ACK报文段很可能丢失,因而是处在LAST-ACK状态的B收不到对自己已发送的FIN+ACK报文段确认的确认,B会超时重传这个FIN+ACK报文段,而A能在2MSL时间内收到这个重传的FIN+ACK报文段,接着,A重传一次确认。重新启动2MSL计时器。如果不等待2MSL,那么B就收不到重传的FIN+ACK报文段,因而也不会再一次发出确认报文段,故B就无法按正常步骤进入close状态。

  2. 防止“已失效的连接”出现在本连接中,经过2MSL,可以使连接等待的时间内所有产生的报文段都从网络中消失,这样就可以使下一个新的连接中不会出现旧的连接请求报文段。

应用层


文本传输协议FTP






















物理层使用的中间设备叫转发器(repeater)

数据链路层使用的中间设备叫网桥(bridge)

网络层使用的中间设备叫路由器(router)

在网络层以上使用的中间设备叫做网关(Gateway)



计算机网络中的协议