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

找工作之计算机网络复习

2016-07-28 10:50 155 查看
1、OSI与TCP/IP各层的结构与功能,都有哪些协议

OSI共七层,分别是:

物理层:物理介质上位流的透明传输,主要协议包括IEEE802,IEEE802.2;

数据链路层:为网络层提供透明的帧传输服务(错误检查功能),主要协议包括SLIP,CSLIP,PPP,ARP,RARP,MTU

网络层:提供交换和路由选择功能,协议包括IP,ICMP,RIP,OSPF,BGP,IGMP;

传输层:提供端对端的接口,协议包括TCP,UDP

应用层:负责两个应用程序之间的信息交换,包括文件传输,电子邮件,文件服务,虚拟终端 TFTP,SNMP,(前面为UDP)HTTP,FTP,SMTP,DNS,Telnet(TCp)

以上5层是TCP/IP各层,OSI还要加上表示层和会话层

会话层:为表示层建立会晤连接

表示层:可确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取,主要做格式转换等等

2、TCP与UDP的区别

TCP是面向连接的可靠的传输;UDP是面向无连接的不可靠的传输;UDP的开销更小,数据传输速率更高,不必进行收发数据的确认,但是UDP可能丢包,不保证数据顺序。TCP一般用于文件传输,发送或者接受邮件,远程登录等等。UDP一般用于即时通信(QQ聊天)

3、TCP报文结构

16位源端口号 16位目的端口号
32位序号
32位确认序号
4位首部长度 保留6位 URG ACK PSH RST SYN FIN(6位) 16位窗口大小
16位校验和 16位紧急指针 (首部一般都是20个字节,UDP首部一般8字节)


URG 紧急指针有效

ACK 确认序列有效

PSH 接受方应该尽快将这个报文段交给应用层

RST 重新连接

SYN 同步序号用来发起一个连接

FIN 发端完成发送任务

扩展:IP报文格式

4位版本  4位首部长度(单位是4B) 8位服务类型  16位总长度
16位标示 3位标志 13位片偏移
8位生存时间  8位协议 16位首部检验和
32位源IP地址
32位目的IP地址


共20字节

4、TCP的三次握手与四次挥手过程,各个状态名称与含义,TIMEWAIT的作用

三次握手

第一次握手:建立连接时,客户端发送SYN包(syn=j)到服务端并进入SYN_SENT状态,等待服务端确认;

第二次握手:服务端收到SYN包,并发送ack+syn包,ack=j+1,syn=k服务器进入SYN_RECV状态;

第三次握手:客户端收到ack+syn包,向服务器发送确认包ack=k+1,服务端和客户端都进入ESTABLISH状态;

为什么要三次握手?防止已失效的请求报文突然到达服务端,造成错误。比如开始发送的请求报文到达之前客户端和服务端已经断开了连接,如果现在到达服务端,服务端发送ack包,但是这时客户端不会有任何响应,服务端会浪费大量时间等待客户端的回应。

四次挥手

(1) TCP客户端发送一个FIN,用来关闭客户到服务器的数据传送。

(2) 服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。

(3) 服务器关闭客户端的连接,发送一个FIN给客户端。

(4) 客户端发回ACK报文确认,并将确认序号设置为收到序号加1。

客户端的状态变化为 FIN_WAIT1,FIN_WAIT2,TIME_WAIT,CLOSE;

服务端的状态变化为CLOSE_WAIT,LAST_ACK,CLOSE;

TIME-WAIT -等待足够的时间以确保远程TCP接收到连接中断请求的确认;

CLOSED->SYN_SENT->ESTABLISHED->FIN_WAIT_1->FIN_WAIT_2->TIME_WAIT->CLOSED

服务器TCP状态迁移:

CLOSED->LISTEN->SYN_RECV->ESTABLISHED->CLOSE_WAIT->LAST_ACK->CLOSED

TCP如何保证可靠的传输?

数据包校验,超时重传,应答机制,对失序数据包重排序,流量控制

5、TCP拥塞控制

拥塞控制就是防止过多的数据注入网络中,这样可以使网络中的路由器或链路不致过载。

1)慢开始与拥塞避免

发送方维持一个叫做**拥塞窗口**cwnd(congestion window)的状态变量。拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化。发送方让自己的发送窗口等于拥塞窗口,另外考虑到接受方的接收能力,发送窗口可能小于拥塞窗口。

慢开始的思路是开始不要发送大量的数据,而是逐步增加(这里是倍数增加),超过设定的阈值的时候,会启用拥塞控制算法,拥塞窗口+1而不是加倍,当发生阻塞的时候,之前的阈值会改为发生拥塞时窗口的一半,然后把拥塞窗口设置为1,并启用慢启动算法。

2)快速重传和快速恢复

快重传要求接收方在收到一个失序的报文段后就立即发出重复确认(为的是使发送方及早知道有报文段没有到达对方)而不要等到自己发送数据时捎带确认。快重传算法规定,发送方只要一连收到三个重复确认就应当立即重传对方尚未收到的报文段,而不必继续等待设置的重传计时器时间到期。

快恢复算法:

①当发送方连续收到三个重复确认时,就执行“乘法减小”算法,把ssthresh门限减半。但是接下去并不执行慢开始算法。

②考虑到如果网络出现拥塞的话就不会收到好几个重复的确认,所以发送方现在认为网络可能没有出现拥塞。所以此时不执行慢开始算法,而是将cwnd设置为ssthresh的大小,然后执行拥塞避免算法。

6、TCP滑窗协议和回退N帧协议

发送窗口和接受窗口

发送窗口为1,接受窗口为1,停等协议

发送窗口>1,接受窗口为1,回退N帧协议

发送窗口>1,接受窗口>1,选择重传协议

  在后退n协议中,接收方若发现错误帧就不再接收后续的帧,即使是正确到达的帧,这显然是一种浪费。另一种效率更高的策略是当接收方发现某帧出错后,其后继续送来的正确的帧虽然不能立即递交给接收方的高层,但接收方仍可收下来,存放在一个缓冲区中,同时要求发送方重新传送出错的那一帧。一旦收到重新传来的帧后,就可以原已存于缓冲区中的其余帧一并按正确的顺序递交高层。这种方法称为选择重发(SELECTICE REPEAT),其工作过程如图所示。显然,选择重发减少了浪费,但要求接收方有足够大的缓冲区空间。

7、Http的报文结构

报文分为请求报文和响应报文

请求报文分为请求行 请求头 请求体

响应报文分为 响应行 响应头 响应体

请求行中包括请求方法(POST和GET),请求URL,HTTP协议及其版本

响应行中包括报文协议及其版本,状态码及其状态描述

POST和GET的区别:

1) get是从服务器上获取数据,post是向服务器传送数据;

2) get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制;

3) get安全性非常低,post安全性较高。但是执行效率却比Post方法好。

8、HTTP状态码及其含义

HTTP的响应状态码由5段组成:

1xx 消息,一般是告诉客户端,请求已经收到了,正在处理

2xx 处理成功,一般表示:请求收悉、我明白你要的、请求已受理、已经处理完成等信息.

3xx 重定向到其它地方。它让客户端再发起一个请求以完成整个处理。

4xx 处理发生错误,责任在客户端,如客户端的请求一个不存在的资源,客户端未被授权,禁止访问等。

5xx 处理发生错误,责任在服务端,如服务端抛出异常,路由出错,HTTP版本不支持等。

9、Http1.1和Http1.0的区别

1)HTTP/1.0协议使用非持久连接,即在非持久连接下,一个tcp连接只传输一个Web对象;

2)HTTP/1.1默认使用持久连接(然而,HTTP/1.1协议的客户机和服务器可以配置成使用非持久连接)。 在持久连接下,不必为每个Web对象的传送建立一个新的连接,一个连接中可以传输多个对象

10、Cookie与Session原理

cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。

11、电脑上访问一个网页,整个过程是怎么样的:DNS、HTTP、TCP、OSPF、IP、ARP

1)DNS来获取网站的IP地址,如果本地DNS服务器上得不到,需要借助于更高层的DNS服务器;

2)得到IP,下一步是使用TCP协议,建立TCP连接。

在TCP协议中,建立TCP需要与百度服务器握手三次,你先告诉服务器你要给服务器发东西(SYN),服务器应答你并告诉你它也要给你发东西(SYN、ACK),然后你应答服务器(SYN、ACK),总共来回了3次,称为3次握手。

其中TCP消息传输需要用到IP协议,OSPF协议,ARP协议

IP协议提供了源IP和目的IP,OSPF提供了路由的最佳路径,ARP将传输的路由器的IP地址转换为MAC地址,便于数据底层传输。

3)HTTP协议请求网页内容

12、Ping过程和ICMP报文

Ping过程:假定主机A的IP地址是192.168.1.1,主机B的IP地址是192.168.1.2,都在同一子网内,则当你在主机A上运行“Ping 192.168.1.2”

首先,Ping命令会构建一个固定格式的ICMP请求数据包,然后由ICMP协议将这个数据包连同地址“192.168.1.2”一起交给IP层协议(和ICMP一样,实际上是一组后台运行的进程),IP层协议将以地址“192.168.1.2”作为目的地址,本机IP地址作为源地址,加上一些其他的控制信息,构建一个IP数据包,并在一个映射表中查找出IP地址192.168.1.2所对应的物理地址(也叫MAC地址,熟悉网卡配置的朋友不会陌生,这是数据链路层协议构建数据链路层的传输单元——帧所必需的),一并交给数据链路层。后者构建一个数据帧,目的地址是IP层传过来的物理地址,源地址则是本机的物理地址,还要附加上一些控制信息,依据以太网的介质访问规则,将它们传送出去。

ICMP封装在IP数据包内部,其中包括8位类型,8位代码,16位检验和

当传送IP数据包发生错误--比如主机不可达,路由不可达等等,ICMP协议将会把错误信息封包,然后传送回给主机。给主机一个处理错误的机会,这 也就是为什么说建立在IP层以上的协议是可能做到安全的原因。ICMP数据包由8bit的错误类型和8bit的代码和16bit的校验和组成。而前 16bit就组成了ICMP所要传递的信息。

尽管在大多数情况下,错误的包传送应该给出ICMP报文,但是在特殊情况下,是不产生ICMP错误报文的。如下:

1)ICMP差错报文不会产生ICMP差错报文(出IMCP查询报文)(防止IMCP的无限产生和传送)

2)目的地址是广播地址或多播地址的IP数据报。

3)作为链路层广播的数据报。

4)不是IP分片的第一片。

5)源地址不是单个主机的数据报。这就是说,源地址不能为零地址、环回地址、广播地 址或多播地址

13、 C/S模式下使用socket通信,几个关键函数。

服务器调用socket()bind()listen()完成初始化后,调用accept()阻塞等待,处于监听端口的状态,客户端调用socket()初始化后,调用connect()发出SYN段并阻塞等待服务器应答,服务器应答一个SYN-ACK段,客户端收到后从connect()返回,同时应答一个ACK段,服务器收到后从accept()返回。

14、IP地址分类

A类 0.0.0.0-127.255.255.255(网络号7位)

B类 128.0.0.0-191.255.255.255 (网络号14位)

C类 192.0.0.0-223.255.255.255 (网络号21位)

指向网络的广播地址 netID.255.255.255

指向子网的广播 主机号为全1 有特定子网号的地址

15、路由器与交换机区别

1,路由器工作于OSI模型的网络层,能够识别IP地址,并根据IP地址转发数据包,并维护着路由表,能够基于路由表进行最佳路线选择;

2,路由器上还能开启ACL访问控制列表、NAT地址转换等功能,扩展网络应用;

3,传统交换机工作于OSI模型的数据链路层,能够识别MAC地址,根据MAC地址转发数据帧,并维护着一张桥表,根据桥表上MAC地址和端口的对应关系进行数据帧转发;

4,交换机能够隔离冲突域,并划分VLAN。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  计算机 网络 找工作