最近移植在弄网络协议栈的移植,找了不少关于协议栈的资料,这个是一些专业词汇的总结,特此记录,以备查阅。
1.几种数据交换方式、特点
线路交换:概念来源电话系统,硬件开关接通输入输出信号。延迟小,独享物理线路。需要建立线路,数据传送,释放线路三个步骤完成。
报文交换:不需建立连接线路,一种存储转发技术,但对传输数据块不加以限制
分组交换:严格限制数据块大小上限,吞吐率高,但存在拥塞、报文分片与重组、分组损失与失序
2.分组交换的传送方式有虚电路(面向连接)和数据报(无连接)两种
虚电路技术的主要特点是:在数据传输之前必须通过虚呼叫设置一条虚电路。它适用于两端之间长时间的数据交换。
优点:可靠、保持顺序;
缺点:如有故障,则经过故障点的数据全部丢失。
数据报的特点是:没有建立连接的过程,各数据报均携带信宿地址,传输时子网对各数据报单独路由,在目的地需要重新组装报文。
优点:如有故障可绕过故障点;
缺点:不能保证按顺序到达,丢失不能立即知晓。
3.端到端与点到点
点到点是物理拓扑,是网络层的(两机器直接相连)
端到端是逻辑链路,是传输层的(传输前先建立逻辑连接)
端到端与点到点的优缺点比较:
端到端建立连接后,一旦数据从源端发出,发送者知道信宿端一定能收到数据;点到点则不知道
不需要中间节点的对等实体进行存储转发,效率相对较高;
端到端的源机参与整个传输过程,时间浪费严重;点到点发出后就完成任务了
端到端如果对方没开机或暂时故障,就无法进行;点到点可以存储转发
4.以太网为每个硬件网络接口指定一个唯一的48位二进制数作为以太网地址,该地址又称为硬件地址、物理地址、MAC地址或第二层地址。 以太网目的地址可以有三种形式:单播地址、广播地址和组播地址。
5.以太网帧大小不小于64字节,不大于1518字节
6.为什么协议要分层?
网络级互联自然要求实行协议分层(应用软件与通信软件的分离) 协议分层使问题简化(解决网络通信中可能出现的各种问题采取分而治之的方法)
7.协议分层的特点
每一层只关注本层的细节,每一层为上层提供服务每一层通过相应的协议与对等层进行通信
8.IP数据报各项意义
版本:占 4 bit,指IP协议的版本目前的 IP 协议版本号为 4.首部长度:4 bit,报头的长度(以多少个32位比特来度量),一般除了可选字段及相应填充字段可变,其他字段都是固定长,最常见的报头是无可选字段及填充字段,总长为160比特位,首部长度值为5。服务类型:占 8 bit,用来指示所需的服务质量(QOS)。 目前优先级和这些比特位只是用户要求,对网络不具有强制性。目前大多数网络对此一般不作处理。但服务类别的字段是很重要的,它为今后业务的发展保留了进一步采用必要技术的手段。 总长度:占 16 bit,指首部和数据之和的长度,单位为字节。 IP分组的最大长度是65535标识:占 16 bit。它是一个计数器,用来产生数据包的标识。 源站每发送一个分组,标识值+1.标志位:占3bit,用于指示和控制分片功能的标志
9.直接路由与间接路由的区别
直接路由,是物理网络内部的路由,属于物理网络技术细节的一部分。在广播型的网络中不存在路由,而在存储转发网络则必须路由。间接路由,是在抽象网间网上的路由。
间接路由实际上是在不同的路由器之间作出选择,选择数据报传输过程的下一路由器;主机与路由器、路由器与路由器之间的物理传输,还要靠直接路由完成。 路由的对象不同,直接路由的对象是物理网络帧,间接路由的对象是IP层的数据单元——IP数据报
10外部网关协议(EGP)
如果两个路由器分属两个不同的自治系统,则它们称为外邻 如果属于同一个自治系统,称为内邻 外部网关协议就是用于外邻之间广播网络可达性的协议称为EGP,使用它的路由器称为外部路由器。
11.EGP的三个主要功能
邻机获取,即允许一个路由器请求另一个路由器同意二者应该交流可达性信息。这也称为一个路由器获得一个EGP对等或EGP邻居。EGP对等称为相邻的当且仅当它们要交换路由信息,而与地理位置的远近无关 。邻机测试,路由器要不断测试其EGP邻机是否可以到达 。EGP邻居通过发送路由更新报文周期性交换网络可达性信息
12.传输层要解决哪些问题
运输层为应用进程之间提供端到端的逻辑通信(但网络层是为主机之间提供逻辑通信)。
运输层还要对收到的报文进行差错检测。 运输层需要有两种不同的运输协议,即面向连接的 TCP 和无连接的 UDP。
13.端口的作用
端口的作用就是让应用层的各种应用进程都能将其数据通过端口向下交付给运输层,以及让运输层知道应当将其报文段中的数据向上通过端口交付给应用层相应的进程。 从这个意义上讲,端口是用来标志应用层的进程。
14.UDP伪首部的概念
伪首部是位于 UDP报头之前,由IP报头、UDP报头中的某些信息构成。计算校验和时,要包括伪报头,其作用是为了验证UDP数据报是否传到正确的信宿端。 UDP数据报发送、接收端计算校验和时均加上伪首部信息。假如接收端发现校验和正确,则在一定程度上说明UDP数据报到达了正确主机上的正确端口。 在UDP/IP这个协议栈中,UDP校验和时保证数据正确性的唯一保证。
15.流量控制
在面向连接的传输中,为了既能充分利用网络能力, 又能提供可靠性,设计者提出了一种方案:允许一次连续传输若干数据报文而不必等待其中任何一个的确认,但连续发送的报文数不超过一定限制,这就是滑动窗口协议。
16.三次握手法:
首先要求对本次连接的所有报文进行编号,常用方法是取当前时钟的最n位作为初始序号。由于序号域具有足够的长度,可以绝对保证序号循环一周回来时,使用同一序号的旧报文早已传输完毕。
17.四次握手
1.客户端向服务器端发送一个带有FIN段的报文,表示客户端已终止发送;2.收到FIN后,服务器端返回一个ACK报文应答对方;3.服务器端发送一个FIN报文(之前的FIN序号+1),表示服务器端已终止发送;4.客户端收到FIN后,向对方发送一个ACK确认应答;
至此,双方均已相互确认终止数据发送,TCP连接的关闭(四次握手)完成。
18. 面向连接和无连接服务各自的特点是什么
面向连接具有建立连接、数据传输和释放连接3个阶段。传输数据前必须先建立连接,传输后必须释放连接,在传送数据时按序传送。适合与在一定时间内要传输大量报文到同一目标地址的场景。
无连接情况下,两个通信实体之间不需要预先建立好一个连接,可以将通信资源动态分配。
无连接的优点是灵活方便和比较迅速,但缺点是不能防止报文的丢失、重复或失序。
19. ICMP的协议的要点是什么?
ICMP允许主机或路由器报告差错或异常情况,还可以提供通信量控制、改变路由、测试网络实体是否能够通信、询问地址掩码、测试路由时延等功能。 IP是一种不可靠的网络服务协议,只能“尽最大努力”传送,可能会丢弃数据报,ICMP则允许在数据报无法投递的情况下通知发送端。 ICMP报文封装在IP数据报中传送,但它不是高层协议,而仍然是IP层的协议。 ICMP报文分为差错报文和ICMP询问报文两类。改变路由(Redirect—重定向)是使用最频繁的ICMP差错报文,ICMP询问报文的一个典型用例是,应用程序PING(Packet InterNet Groper)使用回送(Echo)请求和回送应答报文来测试两个主机之间是否可达。
20. IGP和EGP这两类协议的主要区别是什么?
内部网关协议IGP,具体的协议有多种,如RIP和OSPF等;外部网关协议EGP,目前使用的协议是BGP。IGP主要是设法使数据报在一个自治系统中尽可能有效地从源站传送到目的站。在一个自治系统内部不需要考虑其它方面的策略。EGP,相比较IGP来说,因特网的规模太大,使得自治系统之间路由选择非常困难;对于自治系统之间的路由选择,要寻找最佳路由是很不现实的;自治系统之间的路由选择必须考虑有关策略。因此,边界网关协议BGP只能是力求寻找一条能够到达目的网络且比较好的路由,而非寻找一条最佳路由。
21. 试说明为什么在运输连接建立时要使用三次握手。说明如不这样做可能会出现什么情况
我们知道,3次握手完成两个重要的功能,既要双方做好发送数据的准备工作(双方都知道彼此已准备好),也要允许双方就初始序列号进行协商,这个序列号在握手过程中被发送和确认。现在把三次握手改成仅需要两次握手,死锁是可能发生的。作为例子,考虑计算机A和B之间的通信,假定B给A发送一个连接请求分组,A收到了这个分组,并发送了确认应答分组。按照两次握手的协定,A认为连接已经成功地建立了,可以开始发送数据分组。可是,B在A的应答分组在传输中被丢失的情况下,将不知道A是否已准备好,不知道A建议什么样的序列号,B甚至怀疑A是否收到自己的连接请求分组。在这种情况下,B认为连接还未建立成功,将忽略A发来的任何数据分组,只等待连接确认应答分组。而A在发出的分组超时后,重复发送同样的分组。这样就形成了死锁。
22. 为什么要使用TCP、UDP?将用户进程的数据直接打包成IP数据报并发送能行吗?
不行,IP数据报中虽然包含有目的IP地址,但是仅仅有IP地址是不够的,IP地址只能够寻址到目的地主机,但是却无法寻址到该主机上的应用进程。TCP、UDP报文包含目的端口,该信息是必要的,有了它,数据才能够投送到正确的进程。
23. IP数据报中的首部检验和并不检验数据报中的数据,这样做的最大好处是什么?坏处是什么?
在首部中的错误比在数据中的错误更严重。例如,一个坏的地址可能导致分组被投寄到错误的主机。许多主机并不检查投递给它们的分组是否确实是要投递给它们的。它们假定网络从来不会把本来是要前往另一主机的分组投递给它们。数据不参与检验和的计算,是因为如果数据参与检验和,时间上的额外开销会大大增加,因为数据通常比首部要长得多。再则高层协议通常会对数据进行这种检验工作,IP层对数据检验显得重复和多余。 因此,IP数据报中的首部检验和不检验数据报中的数据,可以加快分组的转发。缺点是数据部分出现差错时不能及早发现。
24.一个重要公式:RTT = a ´ RTT + ( 1- a ) ´ M