七、java-计算机网络-1

1. 计算机网络

1.1 请介绍七层网络体系结构。

参考回答

  1. 为什么分七层

    支持异构网络的互联互通。

  2. 七层分别负责的内容(功能)

    ​ OSI 模型把网络通信的工作分为 7 层,从下到上分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层

    (1) 物理层

    ​ 任务:透明地传输比特流。

    ​ 功能:为数据段设备提供传送数据通路

    ​ 传输单位:比特

    ​ 所实现的硬件:集线器,中继器

    (2)数据链路层

    ​ 任务:将网络层传输下来的IP数据报组装成帧

    ​ 功能:a. 链路连接的建立、拆除和分离

    ​ b. 帧定界和帧同步

    ​ c.差错检测

    ​ 传输单位:帧

    ​ 所实现的硬件:交换机、网桥

    ​ 协议:PPP,HDLC、SDLC、STP、ARQ

    (3)网络层

    ​ 任务:a. 将传输层传下来的报文段封装成分组

    ​ b.选择合适的路由,使得传输层传下来的分组能够交付到目的主机

    ​ 功能:a. 为传输层提供服务

    ​ b. 组包和拆包

    ​ c. 路由选择

    ​ d.拥塞控制

    ​ 传输单位:数据段

    ​ 所实现的硬件:路由器

    ​ 协议:ICMP、ARP、RARP、IP、IGMP、OSPF

    (4)传输层

    ​ 任务:负责主机中两个进程之间的通信

    ​ 功能:

    ​ a. 为端到端连接提供可靠的服务

    ​ b. 为端到端连接提供流量控制、差错控制、服务质量等管理服务

    ​ 传输单位:报文段(TCP)或用户数据报(UDP)

    ​ 协议:TCP、UDP

    (5)会话层

    ​ 任务:不同主机上各进程间的对话

    ​ 功能:管理主机间的会话进程,包括建立、管理以及终止进程间的会话。是一种端到端的服务

    (6)表示层

    ​ 负责处理在两个内部数据表示结构不同的通信系统之间交换信息的表示格式,为数据加密和解密以及为提高传输效率提供必需的数据压缩以及解压等功能。

    (7)应用层

    ​ 任务:提供系统与用户的接口

    ​ 功能:

    ​ a.文件传输

    ​ b. 访问和管理

    ​ c. 电子邮件服务

    ​ 协议:FTP、SMTP、POP3、HTTP、DNS、TELnet

1.2 请介绍五层网络体系结构。

参考回答

五层网络体系结构分分别为:应用层、运输层、网络层、数据链路层、物理层。各层功能分别如下:

  1. 第五层——应用层(application layer)

    (1) 应用层(application layer):是体系结构中的最高。直接为用户的应用进程提供服务。

    (2) 在因特网中的应用层协议很多,如支持万维网应用的HTTP协议,支持电子邮件的SMTP协议,支持文件传送的FTP协议等等。

  2. 第四层——运输层(transport layer)

    (1) 运输层(transport layer):负责向两个主机中进程之间的通信提供服务。由于一个主机可同时运行多个进程,因此运输层有复用分用的功能。

    ​ a. 复用,就是多个应用层进程可同时使用下面运输层的服务。

    ​ b. 分用,就是把收到的信息分别交付给上面应用层中相应的进程。

    (2) 运输层主要使用以下两种协议:

    **(1) 传输控制协议TCP(Transmission Control Protocol):**面向连接的,数据传输的单位是报文段,能够提供可靠的交付。 
    **(2) 用户数据包协议UDP(User Datagram Protocol):**无连接的,数据传输的单位是用户数据报,不保证提供可靠的交付,只能提供“尽最大努力交付”。
  3. 第三层——网络层(network layer)

    ​ 网络层(network layer)主要包括以下两个任务:

    ​ (1) 负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层残生的报文段或用户数据报封装成分组或包进行传送。在TCP/IP体系中,由于网络层使用IP协议,因此分组也叫做IP数据报,或简称为数据报。

    ​ (2) 选中合适的路由,使源主机运输层所传下来的分组,能够通过网络中的路由器找到目的主机。

  4. 第二层——数据链路层(data link layer)

    数据链路层(data link layer):常简称为链路层,我们知道,两个主机之间的数据传输,总是在一段一段的链路上传送的,也就是说,在两个相邻结点之间传送数据是直接传送的(点对点),这时就需要使用专门的链路层的协议。

    ​ 在两个相邻结点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧(framing),在两个相邻结点之间的链路上“透明”地传送帧中的数据。

    ​ 每一帧包括数据和必要的控制信息(如同步信息、地址信息、差错控制等)。典型的帧长是几百字节到一千多字节。

    注意:”透明”是一个很重要的术语。它表示,某一个实际存在的事物看起来却好像不存在一样。”在数据链路层透明传送数据”表示无力什么样的比特组合的数据都能够通过这个数据链路层。因此,对所传送的数据来说,这些数据就“看不见”数据链路层。或者说,数据链路层对这些数据来说是透明的。

    (1) 在接收数据时,控制信息使接收端能知道一个帧从哪个比特开始和到哪个比特结束。这样,数据链路层在收到一个帧后,就可从中提取出数据部分,上交给网络层。 
    (2) 控制信息还使接收端能检测到所收到的帧中有无差错。如发现有差错,数据链路层就简单地丢弃这个出了差错的帧,以免继续传送下去白白浪费网络资源。如需改正错误,就由运输层的TCP协议来完成。
  5. 第一层——物理层(physical layer)

    物理层(physical layer):在物理层上所传数据的单位是比特。物理层的任务就是透明地传送比特流。

1.3 了解网络编程协议吗?客户端发送给服务器的请求,怎么确定具体的协议?

参考回答

​ 了解,客户端发送给服务器端的请求,可以根据统一资源定位系统(uniform resource locator,URL)来确定具体使用的协议。

答案解析

​ 一个完整的URL包括–协议部分、网址、文件地址部分。协议部分以//为分隔符,在interner中,我们可以使用多种协议:

​ HTTP——HyperText Transfer Protocol(超文本传输协议)

​ FTP——File Transfer Protocol(文件传输协议)

​ Gopher——The Internet Gopher Protocol(网际Gopher协议)

​ File——本地文件传输协议

​ HTTPS——安全套接字层超文本传输协议(http的安全版)

例如牛客网址:http://nowcoder.com,可以看出使用的是http协议。

1.4 TCP、HTTP、FTP分别属于哪一层?

参考回答

​ TCP、HTTP、FTP分别属于传输层、应用层、应用层。

答案解析

  1. TCP协议简介

    (1)TCP协议的特性

    ​ TCP是面向连接的,提供全双工的服务,数据流可以双向传输。也是点对点的,即在单个发送放方和单个接收方之间的连接。

    (2)TCP 报文段结构

    序号:TCP 的序号是数据流中的字节数,不是分组的序号。表示该报文段数据字段首字节的序号。

    确认号:TCP 使用累积确认,确认号是第一个未收到的字节序号,表示希望接收到的下一个字节。

    首部长度:通常选项字段为空,所以一般 TCP 首部的长度是 20 字节

    选项字段(可选与变长的):用于发送方与接收方协商 MSS(最大报文段长),或在高速网络环境下用作窗口

    调节因子。

    标志字段

    ACK:指示确认字段中的值是有效的

    RST,SYN,FIN:连接建立与拆除

    PSH:指示接收方应立即将数据交给上层

    URG:报文段中存在着(被发送方的上层实体置位)“紧急”的数据

    接收窗口:用于流量控制(表示接收方还有多少可用的缓存空间)。

    ​ TCP RFC 并没有规定失序到达的分组应该如何处理,而是交给程序员。可以选择丢弃或保留。如果发生超时,TCP 只重传第一个已发送而未确认的分组,超时时间间隔会设置为原来的 2 倍。

    (3)流量控制

    ​ 如果应用程序读取数据相当慢,而发送方发送数据太多、太快,会很容易使接收方的接收缓存溢出,流量控制就是用来进行发送速度和接收速度的匹配。发送方维护一个“接收窗口”变量,这个变量表示接收方当前可用的缓存空间。

  2. HTTP(超文本传输协议)简介

    (1)HTTP协议的特性

    ​ HTTP 协议一共有五大特点:a. 支持客户/服务器模式;b. 简单快速;c. 灵活;d. 无连接;e. 无状态。

    无连接含义:限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

    无状态含义:指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。即我们给服务器发送 HTTP 请求之后,服务器根据请求,会给我们发送数据过来,但是,发送完,不会记录任何信息。

    (2)HTTP 客户机及服务器

    ​ HTTP 客户机:web 浏览器

    ​ HTTP 服务器:web 服务器,包含 web 对象(HTML 文件、JPEG 文件、java 小程序、视频片段等)

    (3)HTTP 方法字段:

    GET:绝大部分 HTTP 请求报文使用 GET 方法

    POST:用户提交表单时(如向搜索引擎提供关键字),但提交表单不一定要用 POST 方法

    HEAD:类似于 GET,区别在于服务器返回的响应报文中不包含请求对象(常用于故障跟踪)

    PUT:用于向服务器上传对象

    DELETE:用于删除服务器上的对象

    (4)HTTP 状态信息

    301 Permanently Moved 被请求的资源已永久移动到新位置,新的URL在Location头中给出,浏览器应该自动地访问新的URL。

    302 Found 请求的资源现在临时从不同的URL响应请求。301是永久重定向,而302是临时重定向。

    200 OK 表示从客户端发来的请求在服务器端被正确处理

    304 Not Modified 304状态码是告诉浏览器可以从缓存中获取所请求的资源。

    400 bad request 请求报文存在语法错误

    403 forbidden 表示对请求资源的访问被服务器拒绝

    404 not found 表示在服务器上没有找到请求的资源

    500 internal sever error 表示服务器端在执行请求时发生了错误

    503 service unavailable 表明服务器暂时处于超负载或正在停机维护,无法处理请求

    (4)HTTP中常见的文件格式

    ​ text/html: HTML格式

    ​ text/plain:纯文本格式

    ​ image/jpeg:jpg图片格式

    ​ application/json: JSON数据格式

    ​ application/x-www-form-urlencoded: form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据格式)

    ​ multipart/form-data: 在表单中进行文件上传时使用

  3. FTP(文件传输协议简介)

    FTP 使用两个并行的 TCP 连接来传输文件:

    (1)控制连接(持久):传输控制信息,如用户标识、口令、改变远程目录命令、文件获取上传的命令;

    (2)数据连接(非持久):传输实际文件。

    ​ FTP 客户机发起向 FTP 服务器的控制连接,然后在该连接上发送用户标识和口令、改变远程目录的命令。FTP服务器收到命令后,发起一个到客户机的数据连接,在该连接上准确地传送一个文件并关闭连接。

    有状态的协议:FTP 服务器在整个会话期间保留用户的状态信息。服务器必须把特定的用户账号和控制连接

    联系起来。

  4. 传输层简介

    (1)传输层的服务基本原理

    ​ a. 多路复用和解复用(分路)技术

    复用:发送方的不同的应用进程都可以使用同一个传输层协议传送数据;

    分路技术:接收方的传输层剥去报文首部之后能把这些数据正确的传输到正确的应用进程上。

    ​ b. 可靠数据传输

    ​ c. 流量控制和拥塞控制

    (2)传输层提供的服务

    ​ a. 传输层寻址和端口

    ​ 端口号就是用来标识应用进程的数字标识。其端口号的长度为16Bit;也就是能够标识2^16个不同的端口号。另外端口号根据端口范围分为2类。分别为服务端使用的端口号(熟知端口号数值范围:0-1023;登记端口号数值范围:1024-49151)客户端使用的端口号(数值范围为49152-65535)。常见端口号如下:

    FTP:21

    TELNET:23

    SMTP:25

    DNS:53

    TFTP:69

    HTTP:80

    SNMP:161

    ​ b. 无连接服务和面向连接服务

    (3)流量控制和拥塞控制

    ​ a. 流量控制:如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失。

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

    ​ 两者的区别:流量控制是为了预防拥塞。如:在马路上行车,交警跟红绿灯是流量控制,当发生拥塞时,如何进行疏散,是拥塞控制。流量控制指点对点通信量的控制。而拥塞控制是全局性的,涉及到所有的主机和降低网络性能的因素。

  5. 应用层简介

    ​ 应用层的具体内容就是规定应用进程在通信时所遵循的协议。应用层协议分类如下:

    ​ (1). 域名系统(Domain Name System,DNS):用于实现网络设备名字到IP地址映射的网络服务。

    ​ (2). 文件传输协议(File Transfer Protocol,FTP):用于实现交互式文件传输功能。

    ​ (3). 简单邮件传送协议(Simple Mail Transfer Protocol, SMTP):用于实现电子邮箱传送功能

    ​ (4). 超文本传输协议(HyperText Transfer Protocol,HTTP):用于实现WWW服务。

    ​ (5). 简单网络管理协议(simple Network Management Protocol,SNMP):用于管理与监视网络设备。

    ​ (6). 远程登录协议(Telnet):用于实现远程登录功能。

全部评论

相关推荐

大摆哥:刚好要做个聊天软件,直接让你帮他干活了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务