python3 day08 练习题

'''
1、互联网协议osi七层模型?
应用层---表示层---会话层---传输层---网络层---数据链路层---物理层

2、arp协议属于七层模型中的那一层,并简述协议内容?
arp协议属于网络层
ARP : Address Resolution Protocol即地址解析协议,实现通过IP地址得知其物理地址。
主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将
该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个
主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本
机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个
ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。

3、列举网络层、数据链路层的硬件设备?
网络层的硬件设备:路由器
数据链路层硬件设备:网卡、网桥中、继器、集线器。

4、TCP和UDP协议属于七层模型中的那一层?他们的区别?
TCP和UDP协议属于传输层
TCP(Transmission Control Protocol):
a.可靠的
b.面向连接的协议(eg:打电话)
c.传输效率低全双工通信(发送缓存&接收缓存)
d.面向字节流。
使用TCP的应用:Web浏览器;文件传输程序。
UDP(User Datagram Protocol):
a.不可靠的
b.无连接的服务
c.传输效率高(发送前时延小)
d.一对一、一对多、多对一、多对多、面向报文(数据包),尽最大努力服务,无拥塞控制。
使用UDP的应用:域名系统 (DNS);视频流;IP语音(VoIP)。

5、tcp连接建立的时候3次握手(四次挥手)的具体过程,以及每一步原因?
三次握手:
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号
(Synchronize Sequence Numbers)。
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务
器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入
ESTABLISHED(TCP连接成功)状态,完成三次握手。
3次握手完成两个重要的功能,既要双方做好发送数据的准备工作(双方都知道彼此已准备好),也要允许双方就初始序列号进行协商,
这个序列号在握手过程中被发送和确认。

老师把三次握手写成段子非常好(打电话):
客户端:喂,你能听到我说话吗?
服务端:我能听到你说话,你能听到我说话吗?
客户端:我能听到你说话,我们开始愉快的聊天吧!

四次挥手:
(1)客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送。
(2)服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。
(3)服务器B关闭与客户端A的连接,发送一个FIN给客户端A。
(4)客户端A发回ACK报文确认,并将确认序号设置为收到序号加1。
当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。
但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,
"你发的FIN报文我收到了"。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。

老师把四次挥手写成段子非常好(挂电话):
客户端:我的话讲完了,这次要不就先这样吧?
服务端:你要挂电话啊?我还没有说完,你等下.吧啦吧啦...
服务端:好了,我的话说完了,可以挂电话了.
客户端:好的,拜拜.
'''

猜你喜欢

转载自www.cnblogs.com/lilyxiaoyy/p/11022643.html