1.应用层有哪些协议?
域名系统DNS;
文件传送协议FTP;
远程终端协议TELNET;
简单邮件传送协议SMTP;
超文本协议HTTP;
简单网络管理协议 SNMP;
邮件读取协议POP3和IMAP;
动态主机协议DHCP;
2.传输层有什么协议?
用户数据报协议UDP
传输控制协议TCP
3.传输层有什么功能特性,提供什么服务?
传输层的任务就是负责向两个主机中进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。该服务可以包括以下功能:
1.连接导向式通信:通常对于一个应用进程来说,把连接解读为数据流(英语:data stream)而非处理底层的无连接模型(如用户数据报协议(UDP)与网际协议(IP)的数据报文模型)更加容易。
2.相同次序交付:网络层通常不保证数据包到达顺序与发送顺序相同,但这往往是一个可取的特点。这通常是通过给报文段编号来完成的,接收者按次序将它们传给应用进程。这可能会造成队头阻塞。
3.可靠性:由于网络拥塞和错误,数据包可能在传输过程中丢失。通过检错码,传输协议可以检查数据是否损坏,并通过向发送者传ACK或NACK消息确认正确接收。自动重发请求方案可用于重新传输丢失或损坏的数据。
4.流量控制:有时必须控制两个节点之间的数据传输速率以阻止快速的发送者传输超出接收缓冲器所能承受的数据,造成缓冲区溢出。这也可以通过减少缓冲区不足来提高效率。
5.拥塞避免:拥塞控制可以控制进入到电信网络的流量。
6.多路复用: 端口可以在单个节点上提供多个端点。例如,邮政地址的名称是一种多路复用,并区分同一位置的不同收件人。每个计算机应用进程会监听它们自己的端口,这使得在同一时间可以使用多个网络服务。它是在TCP/IP模型中是传输层的一部分,但在OSI模型中属于会话层。
4.TCP有哪些服务?
提供面向连接的,可靠的数据传输服务。
5.UDP有哪些服务?
提供无连接的,尽最大努力的数据传输服务。
6.快速重传机制
这是数据丢包的情况下给出的一种修补机制。一般来说,重传发生在超时之后,但是如果发送端接受到3个以上的重复ACK的情况下,就应该意识到,数据丢了,需要重新传递。这个机制是不需要等到重传定时器溢出的,所以叫做快速重传,它可以避免发送端因等待重
传计时器的超时而空闲较长时间,以此增加网络吞吐量。而重新传递以后,因为走的不是慢启动而是拥塞避免算法,所以这又叫做快速恢复算法。流程如下:
当收到第3个重复的ACK时,将ssthresh设置为当前拥塞窗口cwnd的一半。重传丢失的 报文段。设置cwnd为ssthresh加上3倍的报文段大小。每次收到另一个重复的ACK时, cwnd增加1个报文段大小并发送1个分组(如果新的 cwnd允许发送)。当下一个确认新数据的ACK到达时,设置cwnd为ssthresh(在第1步中设置的值)。这个 ACK应该是在进行重传后的一个往返时间内对步骤1中重传的确认。另外,这个ACK也应该是对丢失的分组和收到的第1个重复的ACK之间的所有中间报文段 的确认。这一步采用的是拥塞避免。ICMP不会引起重新传递,TCP会坚持用自己的定时器,但是TCP会保留下ICMP的错误并且通知用户。
超时重传是TCP协议保证数据可靠性的一个重要机制,其原理是在发送一个数据以后就开启一个计时器,在一定时间内如果没有得到发送数据报的ACK报文,那么就重新发送数据,直到发送成功为止。这是数据包丢失的情况下给出的一种修补机制。一般来说,重传发生在超时之后,但是如果发送端接收到3个以上的重复ACK,就应该意识到,数据丢了,需要重新传递。这个机制不需要等到重传定时器溢出,所以叫做快速重传。而快速重传以后,因为走的不是慢启动而是拥塞避免算法,所以这又叫做快速恢复算法。
快速重传和快速恢复旨在:快速恢复丢失的数据包。
没有快速重传和快速恢复,TCP将会使用定时器来要求传输暂停。在暂停这段时间内,没有新的数据包被发送。
7、延迟确认机制与Nagle算法:
8.SYN flood attack解决办法?
从防御角度来说,有几种简单的解决方法:
第一种是缩短SYN Timeout时间:
由于SYN Flood攻击的效果取决于服务器上保持的SYN半连接数,这个值=SYN攻击的频度 x SYN Timeout,所以通过缩短从接收到SYN报文到确定这个报文无效并丢弃该连接的时间,例如设置为20秒以下(过低的SYN Timeout设置可能会影响客户的正常访问),可以成倍的降低服务器的负荷。
第二种方法是设置SYN Cookie:
就是给每一个请求连接的IP地址分配一个Cookie,如果短时间内连续受到某个IP的重复SYN报文,就认定是受到了攻击,以后从这个IP地址来的包会被丢弃。 可是上述的两种方法只能对付比较原始的SYN Flood攻击,缩短SYN Timeout时间仅在对方攻击频度不高的情况下生效,SYN Cookie更依赖于对方使用真实的IP地址,如果攻击者以数万/秒的速度发送SYN报文,同时利用随机改写IP报文中的源地址,以上的方法将毫无用武之地。例如SOCK_RAW返回的套接字通过适当的设置可以自己完全控制IP头的内容从而实现IP欺骗。
9.拥塞表现形式?
指在分组交换网络中传送分组的数目太多时,由于存储转发节点的资源有限而造成网络传输性能下降的情况。当网络发生拥塞时,一般会出现数据丢失,时延增加,吞吐量下降,严重时甚至会导致“拥塞崩溃”(congestion collapse)。通常情况下,当网络中负载过度增加致使网络性能下降时,就会发生网络拥塞。
10.拥塞控制解决办法?
TCP Tahoe:Tahoe算法是TCP的早期版本,它的核心思想是:让cwnd以指数增长方式迅速逼近可用信道容量,然后慢慢接近均衡。Tahoe包括3个基本的拥塞控制算法:慢启动、拥塞避免、快速重传。我们可以看到,Tahoe不存在快速恢复算法。这也是它的不足之处。 在收到3个重复ACK或者在超时的情况下,Tahoe置cwnd为1,然后进入慢启动阶段。这一方面会引起网络的激烈震荡,另一方面大大降低了网络的利用率。
而Renoe在快重传之后采用快恢复算法而不是采用慢开始算法,这就解决了上述问题。
11.IP层有哪些功能,有哪些协议(越全面越好)
IP层提供路由和寻址的功能,使两终端系统能够互连且决定最佳路径,并具有一定的拥塞控制和流量控制的能力。
网际协议IP,地址解析协议ARP,网际控制报文协议ICMP,逆地址解析协议RARP。
12.tansrote机制
程序利用增加存活时间(TTL)值来实现其功能的。每当数据包经过一个路由器,其存活时间就会减1。当其存活时间是0时,主机便取消数据包,并传送一个ICMP TTL数据包给原数据包的发出者。
程序发出的首3个数据包TTL值是1,之后3个是2,如此类推,它便得到一连串数据包路径。注意IP不保证每个数据包走的路径都一样。
13.比较链路状态算法和距离矢量算法
距离矢量路由协议,更新的是“路由条目”。一条核心的链路如果发生变化,这个时候网络需通告多条涉及到的路由条目!
距离矢量路由协议发送周期性更新、完整路由表更新。
链路状态路由协议,更新的是“拓扑”。 每台路由器上都有完全相同的拓扑,他们各自分别进行SPF算法,计算出路由条目!相对于距离矢量路由,一条核心链路的变化,只需发送一条链路 通告,只需要告知其它路由器本链路发生变化。其它路由器会根据链路状态,改变自已的拓扑数据库,重新计算路由条目。
14.计算udp校验和
课本195
15.流量控制
如果发送方吧数据发送太快,接收方就可能来不及接收,这就会造成数据丢失。所谓流量控制就是让发送方的发送速率不要过快,要让接收方来得及接收。而利用滑动窗口机制就可以很方便地在TCP连接上实现对发送方的流量控制。
16.PDU
在分层网络结构,例如在开放式系统互联(OSI)模型中,在传输系统的每一层都将建立协议数据单元(PDU)。网络层的PDU是数据包(packet),传输层的 PDU是数据段(segment),其他更高层次的PDU是报文(message)。PDU包含来自上层的信息,以及当前层的实体附加的信息。然后,这个PDU被传送到下一较低的层。物理层实际以一种编帧的位流形式传输这些PDU,但是由协议栈的较高层建造这些PDU。接收系统自下而上传送这些分组通过协
议栈,并在协议栈的每一层分离出PDU中的相关信息。重要的一点是,每一层附加到PDU上的信息,是指定给另一个系统的同等层的。这就是对等层如何进行一次通信会话协调的。通过从传输层段剥离报头,执行协议数据检测以确定作为传输层段的部分数据的协议段的数据,以及执行标志验证和剥离,从而处理数据段。还提供用于处理数据段的技术,其中接收到协议数据单元的报头部分。利用所接收的报头部分来确定将储存在应用空间中的数据的字节数。而且,利用所接收的报头部分来确定下一个协议数据单元的下一个报头部分。然后,发出窥视命令以获得下一个报头部分。另外提供用于利用所储存的部分循环冗余校验摘要和剩余数据来执行循环冗余校验的技术。
17.DNS递归查询
递归查询是域名服务器将代替提出请求的客户机(下级DNS服务器)进行域名查询,若域名服务器不能直接回答,则域名服务器会在域各树中的各分支的上下进行递归查询,最终将返回查询结果给客户机,在域名服务器查询期间,客户机将完全处于等待状态。
当收到DNS工作站的查询请求后,DNS服务器在自己的缓存或区域数据库中查找,如找到则返回结果,如找不到,返回错误结果。即DNS服务器只会向DNS工作站返回两种信息:要么是在该DNS服务器上查找到的结果,要么是查询失败。该DNS工作站自行向该DNS服务器询问。“递归”的意思是有来有往,并且来、往的次数是一致的。一般由DNS工作站提出的查询请求便属于递归查询。
18.Piggy backing在计算机通信中,当一个数据帧到达的时候,接收方并不是立即发送一个单独的控制帧,而是抑制一下自己并且开始等待,直到网络层传递给它下一个分组。然后,确认信息被附在往外发送的数据帧上(使用帧头中的ack域)。实际上,确认报文搭了下一个外发数据帧的便车。这种“将确认暂时延迟以便可以钩到下一个外发数据帧”的技术称为捎带确认(piggybacking)。
当主机收到远程主机的TCP数据包之后,通常不马上发送ACK数据包,而是等上一个短暂的时间,如果这段时间里面主机还有发送到远程主机的TCP数据包,那么就把这个ACK数据包“捎带”着发送出去,把本来两个TCP数据包整合成一个发送。一般的,这个时间是200ms。可以明显地看到这个策略可以把TCP数据包的利用率提高很多。
一个TCP连接允许数据在任何一个方向流动,并允许任何一个应用程序在任何时刻发送数据。即当两个进程 A 和 B 建立连接后,任何一方均能发送数据给另一方。当分组从 A 发往B 时,可携带对 B 发来数据的确认。同理,当分组从 B 发往 A 时,可携带对 A 发来数据的确认。即采用捎带确认的机制。
1.应用层有哪些协议?
域名系统DNS;
文件传送协议FTP;
远程终端协议TELNET;
简单邮件传送协议SMTP;
超文本协议HTTP;
简单网络管理协议 SNMP;
邮件读取协议POP3和IMAP;
动态主机协议DHCP;
2.传输层有什么协议?
用户数据报协议UDP
传输控制协议TCP
3.传输层有什么功能特性,提供什么服务?
传输层的任务就是负责向两个主机中进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。该服务可以包括以下功能:
1.连接导向式通信:通常对于一个应用进程来说,把连接解读为数据流(英语:data stream)而非处理底层的无连接模型(如用户数据报协议(UDP)与网际协议(IP)的数据报文模型)更加容易。
2.相同次序交付:网络层通常不保证数据包到达顺序与发送顺序相同,但这往往是一个可取的特点。这通常是通过给报文段编号来完成的,接收者按次序将它们传给应用进程。这可能会造成队头阻塞。
3.可靠性:由于网络拥塞和错误,数据包可能在传输过程中丢失。通过检错码,传输协议可以检查数据是否损坏,并通过向发送者传ACK或NACK消息确认正确接收。自动重发请求方案可用于重新传输丢失或损坏的数据。
4.流量控制:有时必须控制两个节点之间的数据传输速率以阻止快速的发送者传输超出接收缓冲器所能承受的数据,造成缓冲区溢出。这也可以通过减少缓冲区不足来提高效率。
5.拥塞避免:拥塞控制可以控制进入到电信网络的流量。
6.多路复用: 端口可以在单个节点上提供多个端点。例如,邮政地址的名称是一种多路复用,并区分同一位置的不同收件人。每个计算机应用进程会监听它们自己的端口,这使得在同一时间可以使用多个网络服务。它是在TCP/IP模型中是传输层的一部分,但在OSI模型中属于会话层。
4.TCP有哪些服务?
提供面向连接的,可靠的数据传输服务。
5.UDP有哪些服务?
提供无连接的,尽最大努力的数据传输服务。
6.快速重传机制
这是数据丢包的情况下给出的一种修补机制。一般来说,重传发生在超时之后,但是如果发送端接受到3个以上的重复ACK的情况下,就应该意识到,数据丢了,需要重新传递。这个机制是不需要等到重传定时器溢出的,所以叫做快速重传,它可以避免发送端因等待重
传计时器的超时而空闲较长时间,以此增加网络吞吐量。而重新传递以后,因为走的不是慢启动而是拥塞避免算法,所以这又叫做快速恢复算法。流程如下:
当收到第3个重复的ACK时,将ssthresh设置为当前拥塞窗口cwnd的一半。重传丢失的 报文段。设置cwnd为ssthresh加上3倍的报文段大小。每次收到另一个重复的ACK时, cwnd增加1个报文段大小并发送1个分组(如果新的 cwnd允许发送)。当下一个确认新数据的ACK到达时,设置cwnd为ssthresh(在第1步中设置的值)。这个 ACK应该是在进行重传后的一个往返时间内对步骤1中重传的确认。另外,这个ACK也应该是对丢失的分组和收到的第1个重复的ACK之间的所有中间报文段 的确认。这一步采用的是拥塞避免。ICMP不会引起重新传递,TCP会坚持用自己的定时器,但是TCP会保留下ICMP的错误并且通知用户。
超时重传是TCP协议保证数据可靠性的一个重要机制,其原理是在发送一个数据以后就开启一个计时器,在一定时间内如果没有得到发送数据报的ACK报文,那么就重新发送数据,直到发送成功为止。这是数据包丢失的情况下给出的一种修补机制。一般来说,重传发生在超时之后,但是如果发送端接收到3个以上的重复ACK,就应该意识到,数据丢了,需要重新传递。这个机制不需要等到重传定时器溢出,所以叫做快速重传。而快速重传以后,因为走的不是慢启动而是拥塞避免算法,所以这又叫做快速恢复算法。
快速重传和快速恢复旨在:快速恢复丢失的数据包。
没有快速重传和快速恢复,TCP将会使用定时器来要求传输暂停。在暂停这段时间内,没有新的数据包被发送。
7、延迟确认机制与Nagle算法:
8.SYN flood attack解决办法?
从防御角度来说,有几种简单的解决方法:
第一种是缩短SYN Timeout时间:
由于SYN Flood攻击的效果取决于服务器上保持的SYN半连接数,这个值=SYN攻击的频度 x SYN Timeout,所以通过缩短从接收到SYN报文到确定这个报文无效并丢弃该连接的时间,例如设置为20秒以下(过低的SYN Timeout设置可能会影响客户的正常访问),可以成倍的降低服务器的负荷。
第二种方法是设置SYN Cookie:
就是给每一个请求连接的IP地址分配一个Cookie,如果短时间内连续受到某个IP的重复SYN报文,就认定是受到了攻击,以后从这个IP地址来的包会被丢弃。 可是上述的两种方法只能对付比较原始的SYN Flood攻击,缩短SYN Timeout时间仅在对方攻击频度不高的情况下生效,SYN Cookie更依赖于对方使用真实的IP地址,如果攻击者以数万/秒的速度发送SYN报文,同时利用随机改写IP报文中的源地址,以上的方法将毫无用武之地。例如SOCK_RAW返回的套接字通过适当的设置可以自己完全控制IP头的内容从而实现IP欺骗。
9.拥塞表现形式?
指在分组交换网络中传送分组的数目太多时,由于存储转发节点的资源有限而造成网络传输性能下降的情况。当网络发生拥塞时,一般会出现数据丢失,时延增加,吞吐量下降,严重时甚至会导致“拥塞崩溃”(congestion collapse)。通常情况下,当网络中负载过度增加致使网络性能下降时,就会发生网络拥塞。
10.拥塞控制解决办法?
TCP Tahoe:Tahoe算法是TCP的早期版本,它的核心思想是:让cwnd以指数增长方式迅速逼近可用信道容量,然后慢慢接近均衡。Tahoe包括3个基本的拥塞控制算法:慢启动、拥塞避免、快速重传。我们可以看到,Tahoe不存在快速恢复算法。这也是它的不足之处。 在收到3个重复ACK或者在超时的情况下,Tahoe置cwnd为1,然后进入慢启动阶段。这一方面会引起网络的激烈震荡,另一方面大大降低了网络的利用率。
而Renoe在快重传之后采用快恢复算法而不是采用慢开始算法,这就解决了上述问题。
11.IP层有哪些功能,有哪些协议(越全面越好)
IP层提供路由和寻址的功能,使两终端系统能够互连且决定最佳路径,并具有一定的拥塞控制和流量控制的能力。
网际协议IP,地址解析协议ARP,网际控制报文协议ICMP,逆地址解析协议RARP。
12.tansrote机制
程序利用增加存活时间(TTL)值来实现其功能的。每当数据包经过一个路由器,其存活时间就会减1。当其存活时间是0时,主机便取消数据包,并传送一个ICMP TTL数据包给原数据包的发出者。
程序发出的首3个数据包TTL值是1,之后3个是2,如此类推,它便得到一连串数据包路径。注意IP不保证每个数据包走的路径都一样。
13.比较链路状态算法和距离矢量算法
距离矢量路由协议,更新的是“路由条目”。一条核心的链路如果发生变化,这个时候网络需通告多条涉及到的路由条目!
距离矢量路由协议发送周期性更新、完整路由表更新。
链路状态路由协议,更新的是“拓扑”。 每台路由器上都有完全相同的拓扑,他们各自分别进行SPF算法,计算出路由条目!相对于距离矢量路由,一条核心链路的变化,只需发送一条链路 通告,只需要告知其它路由器本链路发生变化。其它路由器会根据链路状态,改变自已的拓扑数据库,重新计算路由条目。
14.计算udp校验和
课本195
15.流量控制
如果发送方吧数据发送太快,接收方就可能来不及接收,这就会造成数据丢失。所谓流量控制就是让发送方的发送速率不要过快,要让接收方来得及接收。而利用滑动窗口机制就可以很方便地在TCP连接上实现对发送方的流量控制。
16.PDU
在分层网络结构,例如在开放式系统互联(OSI)模型中,在传输系统的每一层都将建立协议数据单元(PDU)。网络层的PDU是数据包(packet),传输层的 PDU是数据段(segment),其他更高层次的PDU是报文(message)。PDU包含来自上层的信息,以及当前层的实体附加的信息。然后,这个PDU被传送到下一较低的层。物理层实际以一种编帧的位流形式传输这些PDU,但是由协议栈的较高层建造这些PDU。接收系统自下而上传送这些分组通过协
议栈,并在协议栈的每一层分离出PDU中的相关信息。重要的一点是,每一层附加到PDU上的信息,是指定给另一个系统的同等层的。这就是对等层如何进行一次通信会话协调的。通过从传输层段剥离报头,执行协议数据检测以确定作为传输层段的部分数据的协议段的数据,以及执行标志验证和剥离,从而处理数据段。还提供用于处理数据段的技术,其中接收到协议数据单元的报头部分。利用所接收的报头部分来确定将储存在应用空间中的数据的字节数。而且,利用所接收的报头部分来确定下一个协议数据单元的下一个报头部分。然后,发出窥视命令以获得下一个报头部分。另外提供用于利用所储存的部分循环冗余校验摘要和剩余数据来执行循环冗余校验的技术。
17.DNS递归查询
递归查询是域名服务器将代替提出请求的客户机(下级DNS服务器)进行域名查询,若域名服务器不能直接回答,则域名服务器会在域各树中的各分支的上下进行递归查询,最终将返回查询结果给客户机,在域名服务器查询期间,客户机将完全处于等待状态。
当收到DNS工作站的查询请求后,DNS服务器在自己的缓存或区域数据库中查找,如找到则返回结果,如找不到,返回错误结果。即DNS服务器只会向DNS工作站返回两种信息:要么是在该DNS服务器上查找到的结果,要么是查询失败。该DNS工作站自行向该DNS服务器询问。“递归”的意思是有来有往,并且来、往的次数是一致的。一般由DNS工作站提出的查询请求便属于递归查询。
18.Piggy backing在计算机通信中,当一个数据帧到达的时候,接收方并不是立即发送一个单独的控制帧,而是抑制一下自己并且开始等待,直到网络层传递给它下一个分组。然后,确认信息被附在往外发送的数据帧上(使用帧头中的ack域)。实际上,确认报文搭了下一个外发数据帧的便车。这种“将确认暂时延迟以便可以钩到下一个外发数据帧”的技术称为捎带确认(piggybacking)。
当主机收到远程主机的TCP数据包之后,通常不马上发送ACK数据包,而是等上一个短暂的时间,如果这段时间里面主机还有发送到远程主机的TCP数据包,那么就把这个ACK数据包“捎带”着发送出去,把本来两个TCP数据包整合成一个发送。一般的,这个时间是200ms。可以明显地看到这个策略可以把TCP数据包的利用率提高很多。
一个TCP连接允许数据在任何一个方向流动,并允许任何一个应用程序在任何时刻发送数据。即当两个进程 A 和 B 建立连接后,任何一方均能发送数据给另一方。当分组从 A 发往B 时,可携带对 B 发来数据的确认。同理,当分组从 B 发往 A 时,可携带对 A 发来数据的确认。即采用捎带确认的机制。