计算机网络

1.TCP协议在数据传输过程中收发双方如何保证数据包的可靠性的?

答:

(1)       为了保证数据包的可靠传递,把已发送的数据包保留在缓冲区。

(2)       为每个已发送的数据包启动一个超时定时器。

(3)       如果收到接收方发送的确认,则释放该数据包的缓冲区。否则,进行数据包的重传或者重传次数达到最大的次数为止。

UDP用校验和字段用来保证UDP数据包的完整性。

2.TCP协议与UDP协议的区别

答:

(1)       TCP是面向连接的,UDP是无连接的。

(2)       TCP是安全可靠的,UDP是不可靠的。

(3)       TCP需要的系统资源比UDP多。

(4)       UDP程序结构简单,传输速度快。

(5)       具体编程的时候也有不同。

3.进程和线程的区别

答:

(1)       进程是系统进行资源分配和调度的基本单位,线程是CPU调度和分配的基本单位。

(2)       线程是进程的实体,基本不拥有系统资源,仅需一些必不可少的资

源(程序计数器,堆栈等),同一进程的多个线程共享该进程的全部资源。

(3)       一个线程可以创建和撤销另一个线程,同一进程的多个线程之间可以并发执行。

4.TCP/IP协议中三次握手建立连接,四次挥手释放连接

答:

确认ack:期待收到下一个报文段的第一个数据字节的序号。

确认ACK:仅当ACK=1时,确认字段才有效,ACK=0,确认号无效。

同步SYN:连接建立用同步序号,当SYN=1,ACK=0表示这是一个连接请求报文段。SYN=1,ACK=1,响应报文。

终止FIN:用来释放一个连接,FIN=1表示,报文段的发送方的数据已经发送完毕,并要求释放连接。

第一次握手:客户端发送SYN=1,seq=x报文给服务器;

第二次握手:服务器发送,ACK=1,ack=x+1,SYN=1,seq=y报文给客户端;

第三次握手:客户端发送,ACK=1,ack=y+1,seq=x+1报文给客户端。正式建立连接

Q:为什么需要第三次握手才建立连接

A:这是为了防止已经失效的连接请求报文段突然传到了服务器,因而产生了错误。

四次挥手:

(1)       客户端发送FIN=1,seq=u报文给服务器;

(2)       服务器发送ACK=1,seq=v,ack=u+1确认报文给客户端,进入CLOSE-WAIT关闭等待状态;

(3)       此时TCP服务器进程通知高层应用进程,客户端和服务器的连接释放了。此时是半关闭状态,只能服务器发送报文给客户端。服务器发送给客户端连接释放报文段,等待确认。FIN=1,ACK=1,seq=w,ack=u+1

(4)       客户端发送确认之后,进入TIME-WAIT状态,服务器收到确认后,就进入CLOSED状态。此时TCP连接还没有释放掉,经过时间等待2MSL之后,进入CLOSED状态。

ACK=1,seq=u+1,ack=w+1

Q:为什么要等待?

A:(1)为了保证客户端发送的最后一个ACK报文段能够到达服务器。

  (2)防止“已失效的连接请求报文段”出现在连接中。

服务器段结束TCP连接的时间比客户端早,因为服务器收到确认就断开连接,而客户端还等待2MSL。

5.滑动窗口协议是解决传输效率和流量控制问题(通过设置发送窗口的滑动窗口的大小)的。

6.IP地址

IP地址分类:

(1)       A类地址网络号1字节,主机号3字节,网络号以0开头。

(2)       B类地址网络号2字节,主机号2字节,网络号以10开头。

(3)       C类地址网络号3字节,主机号1字节,网络号以110开头。

私有地址:

(1)       A类:10.0.0.0—10.255.255.255

(2)       B类:172.16.0.0—172.31.255.255

(3)       C类:192.168.0.0—192.168.255.255

7.UDP协议通讯的时候怎么样得知目标机是否获得了数据包?

可以在每个数据包中插入一个唯一的ID,比如timestamp或者递增的int,发送方在发送数据时将此ID和发送时间记录在本地,接收方在收到数据后将ID发给发送方作为回应。发送方收到回应,则知道接收方收到相应的数据包。否则,数据包可能丢失。重复发送,直到对方收到。

8.同步通信和异步通信的区别

(1)       同步通信要求接收端时钟频率和发送端时钟频率一致,发送端发送连续的比特流;异步通信不要求接收端时钟和发送端时钟同步,发送端发送完一个字节后,可经过任意长的时间间隔在发送下一个字节。

(2)       同步通信效率高;异步通信效率较低。

(3)       同步通信较为复杂,双方时钟的允许误差较小;异步通信简单,双方时钟可允许一定误差。

(4)       同步通信可用于点对多点;异步通信只适用于点对点。

9.进程之间通信的方式有哪些?

信号、信号量、消息队列、共享内存

10.浏览器输入一个网址,会发生什么?

(1)       浏览器查找域名的IP地址

(2)       浏览器给web服务器发送一个HTTP请求

(3)       服务的永久重定向响应

(4)       浏览器跟踪重定向地址

(5)       服务器处理请求

(6)       服务器发回一个HTML响应

(7)       浏览器开始显示HTML

(8)       浏览器发送获取嵌入在HTML中的对象

用户输入网址,经过DNS服务器,找到服务器主机,向服务器发送一个请求,服务器经过解析之后,发送给用户浏览器HTML等文件,然后浏览器进行解析。

11.http协议

(1)       http是一个属于应用层的面向对象的协议

(2)       http请求由三部分组成,分布是:请求行、消息报头、请求正文

(3)       常见的状态代码

200 OK 400bad request 401unauthorized 403forbidden 404Not Found

500 Internal Server Error 503 Server Unavailable

原文地址:https://www.cnblogs.com/xiaolei-meow/p/6582320.html