网络编程练习

1. 简述 OSI 七层协议
1) 物理层: 建立、维护、断开物理连接。(由底层网络定义协议)
物理层的主要功能是:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。

2) 数据链路层
数据链路层负责建立和管理节点间的链路。
该层的主要功能是:通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。
该层通常又被分为介质访问控制(MAC)和逻辑链路控制(LLC)两个子层。
MAC子层的主要任务是解决共享型网络中多用户对信道竞争的问题,完成网络介质的访问控制。
LLC子层的主要任务是建立和维护网络连接,执行差错校验、流量控制和链路控制。

3) 网络层
网络层的主要任务是:通过路由选择算法,为报文或分组通过通信子网选择最适当的路径。该层控制数据链路层与传输层之间的信息转发,建立、维持和终止网络的连接。

4) 传输层
主要的协议有 : TCP / UDP协议
主要任务: 向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输。传输层的作用是向高层屏蔽下层数据通信的细节,即向用户透明地传送报文。
该层常见的协议:TCP/IP中的TCP协议、Novell网络中的SPX协议和微软的NetBIOS/NetBEUI协议。

5) 会话层 : 建立、管理、终止会话
主要任务是:向两个实体的表示层提供建立和使用连接的方法。将不同实体之间的表示层的连接称为会话。因此会话层的任务就是组织和协调两个会话进程之间的通信,并对数据交换进行管理。

6) 表示层
表示层是对来自应用层的命令和数据进行解释,对各种语法赋予相应的含义,并按照一定的格式传送给会话层。其主要功能是“处理用户信息的表示问题,如编码、数据格式转换和加密解密

7) 应用层: 是网络服务与最终用户的一个接口。
功能是直接向用户提供服务,完成用户希望在网络上完成的各种工作。
应用层为用户提供的服务和协议有:文件服务、目录服务、文件传输服务(FTP)、远程登录服务(Telnet)、电子邮件服务(E-mail)、打印服务、安全服务、网络管理服务、数据库服务

2. 简述TCP/IP四层协议。
1) 主机连接到网络层。
2) 网络互连层: 网络互连层定义了分组格式和协议,即IP协议(Internet Protocol) , 作用就是分组发往目标网络或主机。
3) 传输层:有两个协议: 传输控制协议TCP(transmission control protocol)和用户数据报协议UDP(user datagram protocol) 
4) 应用层

3. TCP和UDP的区别是什么?
不同点:
1 ) 连接性: UDP :无连接 , TCP : 面向连接
2) 可靠性: UDP : 不可靠 , TCP : 可靠
3) 报文: UDP :面向字节流 , TCP : 面向报文
4) 效率: UDP : 传输效率高 , TCP : 传输效率低
5) 流量控制 UDP : 无 , TCP : 有
6) 双工性: UDP : 一对一,一对多,多对一,多对多
TCP : 全双工

4. TCP连接建立的时候3次握手的具体过程,以及其中的每一步是为 什么?

第一次握手: 客户端向服务器发送连接请求时,客户端回答送同步序列标号SYN 到服务器,假设SYN = x ,等待服务器确认,这时客户端地的状态是 SYN_ SENT

第二次握手: 当服务器收到客户端发送的SYN 之后,服务器 要确认客户端发过来的SYN , 在这里服务器发送确认包ACK , 这里ACK + 1 , 意思就是: “ 已经成功接收到发送的SYN 了” , 同时服务端也会向客户端发送一个SYN 打包,这时服务器的状态时SYN_RECV.

第三次握手: 客户端收到服务器发送的SYN 和ACK 包之后, 需要向服务器发送确认包ACK , “我也收到你发送的SYN 了,我也会给你发送个确认”,发送完毕后,客户端和服务端的状态就是ESTABLISH , 即TCP 连接成功

5. TCP断开连接的具体过程,其中每一步是为什么那么做?
第一次分手: 客户端向服务端发送一个带有FIN 标记的报文段

第二次分手: 服务端收到客户端发送的FIN , 服务端可能还有数据没有传输结束,所以服务端不会立刻向客户端发送FIN ,而是先发送一个ACK ,意思是 “ 你的请断开链接求我收到了,但我数据没有发送完,稍等”

第三次分手: 当服务端的数据传输结束后,服务端便可以断开连接,服务端会向客户端发送FIN

第四次分手: 客户端收到服务端发送的FIN之后,会向服务端发送确认ACK ,然后经过两个MSL 时长之后断开连接

6. TCP的十一种状态?
(1)SYN_SENT (2)FIN_WAIT1 (3)FIN_WAIT2 (4)CLOSING (5)TIME_WAIT (6)LISTEN (7)SYN_RCVD (8)CLOSE_WAIT (9)LAST_ACK (10)CLOSED (11)ESTABLISHED

7. 什么是socket?简述基于tcp协议的套接字通信流程。
socket.serever : 创建socket对象 , 绑定地址和端口 , 监听是否有客户连接, 接收客户的连接, 接收客户发送的消息, 给客户回复消息, 关闭socket对象。
socket. client : 创建socket 对象, 连接服务端, 给服务端回复消息, 接收服务端的消息, 关闭socket对象

8. 简述基于udp协议的套接字通信流程。
socket.server 创建socket消息对象,绑定IP ,接收客户连接,给客户回复消息,关闭socket对象。
socket.client : 创建socked对象,发送消息,接收消息,结束关闭

9. TCP为什么不是两次连接?而是三次握手?
因为TCP 在连接 的时候,客户端先给服务端发送消息,然后服务端接收到消息之后,连接,给客户端发送消息。 客户端接收到消息之后,再给服务端反馈确认消息。 如果只有两次,客户端不给服务端反馈 确认消息,那么 服务端不能确定客户端是否确认已经连接,为了安全,那么服务端会保留所有的相关连接数据, 如果连接的客户端很多,那么会造成内存过多占用的情况。

10. 为何基于tcp协议的通信比基于udp协议的通信更可靠?
因为UDP 在传输数据前不用在客户端和服务端建立一个连接,并且没有超时重发等操作,因此在UDP 传输的时候,不论客户端是否接收到信息 ,都会继续发。在传输的时候不能确保每次的信息都能成功 传输。 而 TCP 协议需要先确认客户端和服务端是否成功连接之后再传输信息,并且如果客户端没有接收到消息,TCP 协议有超时重发机制,那么就可以保证每次的信息传输都是成功的。

11. 网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?
多进程:多进程是每一个进程都有一个独立的内存,在连接的时候可以为每一个客户端都创建一个独立的进程,并且能够同时为多个客户端进行服务。 但是如果客户端的数量特别多的时候,采用多进程的方式就会占用 很多资源。
多线程: 多线程是多个线程在同一个内存空间中,这样的好处是可以很快的进行资源共享,并且能节省内存空间,传输的速度相对于多进程的方式也会快很多。

选择题:
1.
在这里插入图片描述
运输层主要的协议是: UDP 和 TCP 协议,所以选择 A

在这里插入图片描述

选择B
DNS 是将域名和IP地址联系在一起的服务,有了DNS 就不用输入IP地址来访问,而是通过网址就可以访问网页了

在这里插入图片描述
无连接的系统是采用UDP 协议, 选择B

在这里插入图片描述
选择C
IP地址:
ipv4 : 点分十进制
ipv6 : 冒分十六进制

在这里插入图片描述
选择D

OSI将层与层之间交换的数据的单位称为服务数据单元SDU

协议: 网络协议是通信计算机双方必须共同遵从的一组约定。
协议与服务的区别:
1、协议的实现保证了能够向上一层提供服务。本层的服务用户只能看见服务而无法看见下面的协议。下面的协议对上面的服务用户是透明的。
2、协议是“水平的”,即协议是控制两个对等实体进行通信的规则。但服务是“垂直的”,即服务是由下层通过层间接口向上层提供的。上层使用所提供的服务必须与下层交换一些命令,这些命令在OSI中称为服务原语。

在这里插入图片描述
选择B
能够提供多播服务的是UDP 服务,因为UDP服务是无连接的面向数据报文的
不可靠的服务。 可以提供多播的服务

在这里插入图片描述
为了保证连接的可靠性通常采用三次握手, 选择A

8 .
在这里插入图片描述
选择C , 端口号
ip 地址是用来唯一标识互联网上计算机的逻辑地址, 让电脑之间可以相互通信。
端口号: 在TCP/IP 协议中,每个服务都有固定的端口号,比如 :htttp : 80端口

在这里插入图片描述
在建立联系的时候,三次握手发送消息的顺序是:
1) 客户端先向服务端发送同步序列标号 SYN
2)然后服务端接收后向客户端反馈同步序列标号SYN ,和确认包ACK,
3)最后由客户端向服务端发送确认包ACK
因此以上没有正确的选择, 选E

在这里插入图片描述
1) 物理层
2) 数据链路层
3) 网络层
4) 传输层
5) 会话层
6) 表示层
7) 应用层
因此选择 C

在这里插入图片描述
选择 C
在建立联系的时候,三次握手发送消息的顺序是:
1) 客户端先向服务端发送同步序列标号 SYN (X)
2)然后服务端接收后向客户端反馈同步序列标号SYN(Y) ,和确认包ACK(x+1),
3)最后由客户端向服务端发送确认包ACK(y+1)

在这里插入图片描述
网络类别和其子网掩码
A类网络IP地址范围为:1.0.0.1-126.255.255.254,子网掩码为255.0.0.0
B类网络IP地址范围为:128.1.0.1-191.255.255.254,子网掩码为255.255.0.0
C类网络IP地址范围为:192.0.1.1-223.255.255.254,子网掩码为255.255.255.0

选择 D

在这里插入图片描述

选择 D

在这里插入图片描述

选择 B

在这里插入图片描述

网络协议的主要要素: 语法, 语义 , 定时
选择 C

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值