客户服务器方式与对等通信方式的主要区别是什么?有没有相同的地方?

前者严格区分服务和被服务者,后者无此区别。后者实际上是前者的双向应用。

论述具有五层协议的网络体系结构的要点,包括各层的主要功能。

答:综合OSI 和TCP/IP 的优点,采用一种原理体系结构。各层的主要功能:

  • 物理层 物理层的任务就是透明地传送比特流。(注意:传递信息的物理媒体,如双绞线、同轴电缆、光缆等,是在物理层的下面,当做第0 层。) 物理层还要确定连接电缆插头的定义及连接法。
  • 数据链路层 数据链路层的任务是在两个相邻结点间的线路上无差错地传送以帧(frame)为单位的数据。每一帧包括数据和必要的控制信息。
  • 网络层 网络层的任务就是要选择合适的路由,使 发送站的运输层所传下来的分组能够正确无误地按照地址找到目的站,并交付给目的站的运输层。
  • 运输层 运输层的任务是向上一层的进行通信的两个进程之间提供一个可靠的端到端服务,使它们看不见运输层以下的数据通信的细节。
  • 应用层 应用层直接为用户的应用进程提供服务。

数据链路层的三个基本问题(封装成帧、透明传输和差错检测)为什么都必须加以解决?

答:
封装成帧 是分组交换的必然要求
透明传输 避免消息符号与帧定界符号相混淆
差错检测 防止合差错的无效数据帧浪费后续路由上的传输和处理资源

要发送的数据为1101011011。采用CRC的生成多项式是P(X)=X4+X+1。试求应添加在数据后面的余数。数据在传输过程中最后一个1变成了0,问接收端能否发现?若数据在传输过程中最后两个1都变成了0,问接收端能否发现?采用CRC检验后,数据链路层的传输是否就变成了可靠的传输?

答:作二进制除法,1101011011 0000 10011 得余数1110 ,添加的检验序列是1110.作二进制除法,两种错误均可发展仅仅采用了CRC检验,缺重传机制,数据链路层的传输还不是可靠的传输。

一个PPP帧的数据部分(用十六进制写出)是7D 5E FE 27 7D 5D 7D 5D 65 7D 5E。试问真正的数据是什么(用十六进制写出)?

答:7D 5E FE 27 7D 5D 7D 5D 65 7D 5E
7E FE 27 7D 7D 65 7E

1
7D 5E->7E

假定1km长的CSMA/CD网络的数据率为1Gb/s。设信号在网络上的传播速率为200000km/s。求能够使用此协议的最短帧长。

答:对于1km电缆,单程传播时间为1/200000=5为微秒,来回路程传播时间为10微秒,为了能够按照CSMA/CD工作,最小帧的发射时间不能小于10微秒,以Gb/s速率工作,10微秒可以发送的比特数等于1010^-6/110^-9=10000,因此,最短帧是10000位或1250字节长

假定在使用CSMA/CD协议的10Mb/s以太网中某个站在发送数据时检测到碰撞,执行退避算法时选择了随机数r=100。试问这个站需要等待多长时间后才能再次发送数据?如果是100Mb/s的以太网呢?

答:对于10mb/s的以太网,以太网把争用期定为51.2微秒,要退后100个争用期,等待时间是51.2(微秒)100=5.12ms
对于100mb/s的以太网,以太网把争用期定为5.12微秒,要退后100个争用期,等待时间是5.12(微秒)
100=512微秒

试说明IP地址与硬件地址的区别,为什么要使用这两种不同的地址?

IP 地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是唯一的 32 位的标识符。从而把整个因特网看成为一个单一的、抽象的网络
在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。
MAC地址在一定程度上与硬件一致,基于物理、能够标识具体的链路通信对象、IP地址给予逻辑域的划分、不受硬件限制。

(1)子网掩码为255.255.255.0代表什么意思?

有三种含义
其一是一个A类网的子网掩码,对于A类网络的IP地址,前8位表示网络号,后24位表示主机号,使用子网掩码255.255.255.0表示前8位为网络号,中间16位用于子网段的划分,最后8位为主机号。
第二种情况为一个B类网,对于B类网络的IP地址,前16位表示网络号,后16位表示主机号,使用子网掩码255.255.255.0表示前16位为网络号,中间8位用于子网段的划分,最后8位为主机号。
第三种情况为一个C类网,这个子网掩码为C类网的默认子网掩码。

(2)一网络的现在掩码为255.255.255.248,问该网络能够连接多少个主机?

255.255.255.248即11111111.11111111.11111111.11111000.
每一个子网上的主机为(2^3)=6 台
掩码位数29,该网络能够连接8个主机,扣除全1和全0后为6台。

(3)一A类网络和一B网络的子网号subnet-id分别为16个1和8个1,问这两个子网掩码有何不同?

A类网络:11111111 11111111 11111111 00000000
给定子网号(16位“1”)则子网掩码为255.255.255.0
B类网络 11111111 11111111 11111111 00000000
给定子网号(8位“1”)则子网掩码为255.255.255.0但子网数目不同

(4)一个B类地址的子网掩码是255.255.240.0。试问在其中每一个子网上的主机数最多是多少?

(240)10=(128+64+32+16)10=(11110000)2
Host-id的位数为4+8=12,因此,最大主机数为:
2^12-2=4096-2=4094
11111111.11111111.11110000.00000000 主机数2^12-2

(5)一A类网络的子网掩码为255.255.0.255;它是否为一个有效的子网掩码?

是 10111111 11111111 00000000 11111111

(6)某个IP地址的十六进制表示C2.2F.14.81,试将其转化为点分十进制的形式。这个地址是哪一类IP地址?

C2 2F 14 81–à(1216+2).(216+15).(16+4).(8*16+1)—à194.47.20.129
C2 2F 14 81 —à11000010.00101111.00010100.10000001
C类地址

(7)C类网络使用子网掩码有无实际意义?为什么?

有实际意义.C类子网IP地址的32位中,前24位用于确定网络号,后8位用于确定主机号.如果划分子网,可以选择后8位中的高位,这样做可以进一步划分网络,并且不增加路由表的内容,但是代价是主机数相信减少.

10.试辨认以下IP地址的网络类别。

(1)128.36.199.3
(2)21.12.240.17
(3)183.194.76.253
(4)192.12.69.248
(5)89.3.0.1
(6)200.3.6.2
(2)和(5)是A类,(1)和(3)是B类,(4)和(6)是C类.

当某个路由器发现一IP数据报的检验和有差错时,为什么采取丢弃的办法而不是要求源站重传此数据报?计算首部检验和为什么不采用CRC检验码?

答:纠错控制由上层(传输层)执行
IP首部中的源站地址也可能出错请错误的源地址重传数据报是没有意义的
不采用CRC简化解码计算量,提高路由器的吞吐量

设某路由器建立了如下路由表:

目的网络 子网掩码 下一跳
128.96.39.0 255.255.255.128 接口m0
128.96.39.128 255.255.255.128 接口m1
128.96.40.0 255.255.255.128 R2
192.4.153.0 255.255.255.192 R3
*(默认) —— R4
现共收到5个分组,其目的地址分别为:
(1)128.96.39.10
(2)128.96.40.12
(3)128.96.40.151
(4)192.153.17
(5)192.4.153.90

#####(1)分组的目的站IP地址为:128.96.39.10。先与子网掩码255.255.255.128相与,得128.96.39.0,可见该分组经接口0转发。

#####(2)分组的目的IP地址为:128.96.40.12。
① 与子网掩码255.255.255.128相与得128.96.40.0,不等于128.96.39.0。
② 与子网掩码255.255.255.128相与得128.96.40.0,经查路由表可知,该项分组经R2转发。

#####(3)分组的目的IP地址为:128.96.40.151,与子网掩码255.255.255.128相与后得128.96.40.128,与子网掩码255.255.255.192相与后得128.96.40.128,经查路由表知,该分组转发选择默认路由,经R4转发。

#####(4)分组的目的IP地址为:192.4.153.17。与子网掩码255.255.255.128相与后得192.4.153.0。与子网掩码255.255.255.192相与后得192.4.153.0,经查路由表知,该分组经R3转发。

#####(5)分组的目的IP地址为:192.4.153.90,与子网掩码255.255.255.128相与后得192.4.153.0。与子网掩码255.255.255.192相与后得192.4.153.64,经查路由表知,该分组转发选择默认路由,经R4转发。

一个大公司有一个总部和三个下属部门。公司分配到的网络前缀是192.77.33/24.公司的网络布局如图4-56示。总部共有五个局域网,其中的LAN1-LAN4都连接到路由器R1上,R1再通过LAN5与路由器R5相连。R5和远地的三个部门的局域网LAN6~LAN8通过广域网相连。每一个局域网旁边标明的数字是局域网上的主机数。试给每一个局域网分配一个合适的网络的前缀。

(P380)

已知地址块中的一个地址是140.120.84.24/20。试求这个地址块中的最小地址和最大地址。地址掩码是什么?地址块中共有多少个地址?相当于多少个C类地址?

140.120.84.24 è 140.120.(0101 0100).24
最小地址是 140.120.(0101 0000).0/20 (80)
最大地址是 140.120.(0101 1111).255/20 (95)
地址数是4096.相当于16个C类地址。

假定网络中的路由器B的路由表有如下的项目(这三列分别表示“目的网络”、“距离”和“下一跳路由器”)

N1 7 A
N2 2 B
N6 8 F
N8 4 E
N9 4 F
现在B收到从C发来的路由信息(这两列分别表示“目的网络”“距离”):
N2 4
N3 8
N6 4
N8 3
N9 5
试求出路由器B更新后的路由表(详细说明每一个步骤)。

路由器B更新后的路由表如下:

N1   7  A    无新信息,不改变
N2   5  C    相同的下一跳,更新
N3   9  C    新的项目,添加进来
N6   5  C    不同的下一跳,距离更短,更新
N8   4  E    不同的下一跳,距离一样,不改变
N9   4  F    不同的下一跳,距离更大,不改变

评论和共享

网络层

网络层提供的两种服务

网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。网络在发送分组时不需要先建立连接。每一个分组(也就是IP数据报)独立发送,与其后面的分组无关(不进行编号)。网络层不提供服务质量的承诺

对比的方面 虚电路服务 数据服务
思路 可靠通信应当由网络来保证 可靠通信应当由用户主机来保证
链接的建立 必须有 不需要
终点地址 仅在链接建立阶段使用,每个分组使用短的虚电路号 每个分组都有终点的完整地址
分组的转发 属于同一条虚电路的分组均按照同一路由进行转发 每个分组独立选择路由进行转发
当结点出故障时 所有通过故障的虚电路均不能工作 出故障的节点可能会丢失分组,一些路由可能发生变化
分组的顺序 总是按发送顺序到达终点 到达时间不一定按照发送顺序
端到端差错处理和流量控制 可以由网络负责,也可以由用户主机负责 由用户主机负责

网际协议IP

网际协议IP是TCP/IP体系中两个最主要的协议之一,与之配套使用的还有三个协议:

  • 地址解析协议 ARP(Address Resolution Protocol)
  • 网际控制报文协议 ICMP (Internet Control Message Protocol)
  • 网络组管理协议 IGMP(Internet Group Management Protocol)

虚拟互联网络

将网络互相链接起来要使用一些中间设备。根据中间设备所在的层次,可以有以下四种不同的中间设备。

  • 物理层:转发器
  • 数据链路层:网桥桥接器
  • 网络层:路由器
  • 网络层以上:网关,用网关链接连个不兼容的系统需要在高层进行协议转换。

分类的IP地址

IP地址:给因特网上的每一个主机(或路由器)的每一个接口分配一个在全世界范围是唯一的32位的标识符。
IP地址的编址方法:

  1. 分类的IP地址
  2. 子网的划分
  3. 构成超网

分类IP地址:每一类地址都是由两个固定长度的字段组成,其中一个字段是网络号,它标志主机(或路由器)所链接到的网络。第二个字段是主机号,它标志该主机(或路由器)。主机号在前面网络号所指明的范围是唯一的。

地址类别 地址前缀 网络号长度 可指派网络号 每个网路号可指派的地址
A类地址 0 8 126 (27-2)包括全0和127(环回地址) 16777214 (214-1)
B类地址 10 16 16383 (214-1) 65534 (216-2)
C类地址 110 24 2097151 (221-1) 254 (28-1)
D类地址 1110 多播地址 - -
E类地址 1111 保留为今后使用 - -

IP地址放在IP数据的首部,而硬件地址则放在MAC帧的首部。在网络层和网络层以上使用的是IP地址,而数据链路层及以上使用的是硬件地址。

地址解析协议ARP

为了解决:已经知道一个机器(主机或路由器)的IP地址,需要找出其相应的硬件地址。

解决方法:在主机ARP高速缓存中存放一个从IP地址到硬件地址的映射表,并且这个映射表还经常动态更新(新增或动态删除)。

过程:

  1. 广播发送ARP请求分组
  2. 在本局域网上的所有主机上运行的ARP进程都收到此ARP请求分组
  3. 如果有一个主机的IP与查询IP一致,则就收下这个ARP请求,并发送ARP响应分组。不一致则不理睬,所以ARP响应是单播。
  4. 源主机收到ARP响应分组后,在ARP高速缓存中写下主机B的IP地址到硬件地址的映射。

IP数据报的格式

一个IP数据报由首部和数据两部分组成。首部前一部分是固定长度,共20字节,是所有IP数据报必须具有的。首部的后面一部分是可选字段,长度可变。

评论和共享

JavaEE 考点

解决乱码

1
response.setContentType("text/html;charset=UTF-8");

接收参数

1
req.getParameter("words");

接收多个参数 返回数组

1
req.getParameterValues("接收多个参数");

输出

1
PrintWriter out = response.getWriter();

跳转JSP

1
req.getRequestDispatcher("calculator.jsp").forward(req, resp);

重定向

1
response.sendRedirect("http://www.baidu.com");

传参

1
req.setAttribute("number","hello");

JSP设置编码

1
<%@ page contentType="text/html;charset=UTF-8" language="java" import="??,??" %>

注解方式

1
@WebServlet(name = "Annotate", urlPatterns = {"/Annotate"})

Cookie

1
2
3
4
5
6
//javax.servlet.http.cookie
Cookie[] cookies = req.getCookies();
cookie = new Cookie("name","killer");
cookie.setPath(req.getContextPath());
cookie.setMaxAge(30);
resp.addCookie(cookie);

Session

1
2
HttpSession session = req.getSession(true);
session.setAttribute("max","1");

Servlet Context 用来不同Servlet传递数据

1
String s = (String)getServletContext().getAttribute("temp");

Filter

1
2
3
4
5
6
7
8
9
10
11
@WebFilter(filterName = "LoginFilter", urlPatterns = {"/Login"})
public class LoginFilter implements Filter{
@Override
public void init(FilterConfig filterConfig) throws ServletException {}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
filterChain.doFilter(servletRequest,servletResponse);
}
@Override
public void destroy() {}
}

操作数据库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public class DatabaseManager {
private Connection connection;

public void init(){
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/table?useUnicode=true& characterEncoding=utf8","root","");
}catch (Exception e){
e.printStackTrace();
}
}

public void close(){
try {
connection.close();
}catch (Exception e){
e.printStackTrace();
}
}

public boolean addOrDeleteOrUpdate(String sql){
boolean i = true;
try {
PreparedStatement ps = connection.prepareStatement(sql);
i = ps.execute();
} catch (Exception e){
e.printStackTrace();
}
return i;
}
}

  • JavaEE 是一个标准中间件体系结构,是企业分布式应用开发标准。
  • JDK (Java Development Kit) JDK是 Java 语言的软件开发工具包,它包含了JAVA的运行环境,JAVA工具和JAVA基础的类库
  • JRE (Java Runtime Environment,Java运行环境),运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。
  • Servlet 是一种独立于操作系统平台和网络传输协议的服务器端的 Java 应用程序,它用来拓展服务器的功能,可以生成动态的Web页面
  • JSP (Java Server Pages),中文名叫java服务器页面,其根本是一个简化的Servlet设计。它是在传统的网页HTML(标准通用标记语言的子集)文件(.htm,.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)
  • Cookie 有时也用其复数形式 Cookies,指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)。
  • Session 称为“会话控制”。Session 对象存储特定用户会话所需的属性及配置信息。
  • Servlet 上下文 提供了一个同一 Web 应用内的不同资源间共享信息的场所。
  • Filter 拦截请求和响应,以便查看、提取或以某种方式操作正在客户机和服务器之间交换的数据。
  • Listener 是Servlet 2.4 规范以后增加的新特性。用来主动监听 Web 容器事件。
  • JavaBean 是一些可移植、可重用,并可以组装到应用程序中的 Java 类。
  • JDBC (Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
  • JPA JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。
  • EJB EJB是sun的JavaEE服务器端组件模型,设计目标与核心应用是部署分布式应用程序。
  • Web服务 Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。

java线程实现方法:

  • 继承Thread类,重写父类run()方法
  • 实现runnable接口
  • 使用ExecutorService、Callable、Future实现有返回结果的多线

java多态性的机制

  • 重载:有同样的方法名称不同的参数列表。a(){} a(String b){}…
  • 重写(也称覆盖):即可以重新编写与父类同名方法形象的称之为重写(覆盖)。

JSP中动态include和静态include区别:

动态INCLUDE在使用的时候,会先解析所要包含的页面(你例子中的included.jsp),解析后在和主页面放到一起显示;
静态INCLUDE在使用的时候,不会解析所要包含的页面(你例子中的included.htm),也就是说,不管你的included.htm中有什么,我的任务就是把你包含并显示,其他的一概不管搜索

jsp:include是先编译一下included.jsp文件,然后再包含 先编译,后包含
@ include是先把文件包含就来,然后统一编译 先包含,后编译

评论和共享

  • 第 1 页 共 1 页
作者的图片

Archie Shi

Nothing to say


Front-End Development Engineer