1、OSI七层模型
●OSI(Open System Interconnection,开放系统互连),7层网络模型被称为开放式系统互联参考模型。
●把网络从逻辑上分为7层,每一层都有相关、相对应的物理设备。
●OSI七层网络模型最主要的功能——帮助不同类型的主机实现数据传输。
第一层(物理层):是以0 1的二进制数据进行发送到网络其他设备中。
第二层(数据链路层):实现网络互联,连接到不同的主机,不同的主机之间还要进行数据传输。
第三层(网络层):网络地址IP使用,通过路由器传送到对应的地方。
第四层(传输层):TCP/UDP协议,都是属于操作系统。
第五层(会话层):通信管理,负责建立和断开通信连接。
第六层(表示层):主要是应用程序的沟通,包括FTP文件传输协议等。
七层模型在落地时,第五层和第六层实现不了,它既复杂又不实用;所以,一般是按照TCP/IP的五层模型进行讲解。
2、TCP/IP五层模型
●物理层:负责光/电信号的传递方式。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层。
●数据链路层: 负责设备之间的数据帧的传送和识别。
●网络层:负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由)。
●传输层:负责两台主机之间的数据传输,确保数据可靠的从源主机发送到目标主机。
●应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等. 我们的网络编程主要就是针对应用层
3、阐述一下IP地址、MAC地址、Port端口号?
IP地址:为互联网中的每一个网络和每一台主机分配一个逻辑地址,来和物理地址进行区分。在网络中唯一标识一台主机,使用“点分十进制”来表示IP地址。
MAC地址:标识数据链路层中相连的节点,硬件设备找主机是通过MAC地址来找的。
Port端口号:端口号是传输层协议的内容,是用来标识一个进程,告诉操作系统,当前的这个数据要交给哪一个进程来处理。
其中MAC地址与IP地址的区别是:
4、计算机网络中的各种协议?
5、TCP三次握手与四次挥手?
总而言之,三次握手是处在建立连接;四次挥手是处在断开连接。
三次握手(客户端向服务端,请求建立连接):
第一次握手:从客户端发送SYN到服务端,证明客户端发送能力没有问题。
第二次握手:服务端将SYN+ACK返回到客户端,这一次证明服务端的接收能力没有问题,同时也证明服务端的发送能力没有问题。
第三次握手:客户端接收到信号后,返回到服务端。这一次握手,证明客户端的接收能力没有问题。
四次挥手(客户端向服务端请求断开连接):
第一次挥手:客户端向服务端发送FIN包,表示要关闭连接,自己进入终止等待1状态。
第二次挥手:服务端接收到FIN包后,向客户端发送ACK包,表示自己进入了等待关闭状态、而客户端进入终止等待2状态。
第三次挥手:等待服务端发送完最后一波数据之后,发送一包FIN包,表示服务端进入最终确认状态。
第四次挥手:客户端收到FIN包之后,回复ACK包,此时客户端进入超时等待状态,经过超时时间之后关闭连接。而服务端收到ACK包之后,立即关闭连接。
四次挥手和三次握手,在本质上,是为了保证在不可靠的网络链路中,进行可靠的连接断开确认。
第四次挥手中,为什么客户端需要等待超时时间?
答:这是为了保证对方已收到ACK包,因为假设客户端发送完最后一包ACK包后就释放了连接,一旦ACK包在网络中丢失,服务端将一直停留在最后确认状态。如果客户端发送最后一包ACK包后,等待一段时间,这时服务端因为没有收到ACK包,会重发FIN包,客户端会响应这个fin包,重发ACK包并刷新超时时间。
6、TCP和UDP的区别?
传输控制协议(TCP,Transmission Control Protocol)、用户数据报协议(UDP,User Datagram Protocol)
●TCP面向连接,通过三次握手建立连接,四次挥手接除连接; UDP是无连接的,即发送数据不需要建立连接。因此UDP传输效率较高,但是数据发送成功率不能保证。
●TCP是一对一的两点服务; 而UDP是支持一对一、一对多、多对多的交互通信。
●TCP是可靠交付数据的; UDP不能保证可靠性。
●TCP的头部开销大; UDP的头部开销大
●TCP是面向字节流的; 而UDP是面向报文的。
●TCP会产生粘包问题; UDP会产生丢包问题。
7、在浏览器中输入URL(如www.baidu.com)到显示页面经历了哪些过程,涉及到了哪些协议呢?
●浏览器首先要将URL解析为IP地址,解析域名就要用到DNS协议。
●得到IP地址之后,浏览器就要与服务器建立一个http连接,因此要用到http协议。 如果采用了https的话,还会使用https协议先对http数据进行加密。
●http生成一个get请求报文,将该报文传给TCP层处理,所以用到了TCP协议。
●TCP的数据包然后会发送给IP层,用到IP协议。IP层通过路由选路,一跳一跳发送到目的地址。当然在一个网段内的寻址是通过以太网协议实现(也可以是其他物理层协议,比如PPP,SLIP),以太网协议需要直到目的IP地址的物理地址,有需要ARP协议。