0%

IP协议

IP协议是一个不可靠、无连接的服务,负责在源地址和目的地址之间传送数据报,为了适应不同网络对分组大小的要求,需要对上层传来的报文进行分割,最后调用本地网络协议将数据报传送给下一个网关或目的计算机,所有的TCP、UDP、ICMP数据都是以IP数据报格式传输的

不可靠是指不能保证IP数据报能成功地到达目的地

无连接是指IP并不维护任何关于后续数据报的状态信息,每个数据报的处理是相互独立的

主要功能

  • IP寻址
  • 路由
  • 分包和组包
阅读全文 »

局域网中的MAC子层

MAC子层又称为介质访问控制子层,主要作用是

  • 用来寻址
  • 解决网络中多个用户争抢共享物理介质或者共享信道的现象(只有在广播类型网络中存在)

信道类型

信道分为点对点信道和广播信道两大类

  • 点对点信道:由两个没有经过任何中间设备的节点间构成的通道
  • 广播信道:一个信道被多条链路所共享,一个节点发送的数据可以同时被多个节点接收到

引导类

之前简单地介绍了一下Bootstrap和ServerBootstrap两个引导类,先来看一下Bootstrap有哪些方法

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
// 设置EventLoopGroup,EventLoopGroup用来处理所有通道的IO事件
public B group(EventLoopGroup group)

@SuppressWarnings("unchecked")
private B self() {
return (B) this;
}

// 设置通道类型
public B channel(Class<? extends C> channelClass)

// 使用ChannelFactory来设置通道类型
public B channelFactory(io.netty.channel.ChannelFactory<? extends C> channelFactory)

// 设置本地地址,也可以通过bind和connect方法来设定
public B localAddress(SocketAddress localAddress)

/**
* @see #localAddress(SocketAddress)
*/
public B localAddress(int inetPort)

/**
* @see #localAddress(SocketAddress)
*/
public B localAddress(String inetHost, int inetPort)

/**
* @see #localAddress(SocketAddress)
*/
public B localAddress(InetAddress inetHost, int inetPort)

// 设置通道选项,如果value为null,则删除设置对应的属性
public <T> B option(ChannelOption<T> option, T value)

// 设置属性到Channel,如果value为null,则删除对应的属性
public <T> B attr(AttributeKey<T> key, T value)

// 创建一个新的Channel并绑定
public ChannelFuture bind()

public ChannelFuture bind(int inetPort)

public ChannelFuture bind(String inetHost, int inetPort)

public ChannelFuture bind(InetAddress inetHost, int inetPort)

public ChannelFuture bind(SocketAddress localAddress)

// 设置ChannelHandler用于处理请求事件
public B handler(ChannelHandler handler)

// 连接远程通道
public ChannelFuture connect()

public ChannelFuture connect(String inetHost, int inetPort)

public ChannelFuture connect(InetAddress inetHost, int inetPort)

public ChannelFuture connect(SocketAddress remoteAddress)
阅读全文 »

文件管理

计算机中一般都把数据存储到文件中,在需要时再将数据调入内存,这一过程是由操作系统完成的,该功能称为文件管理功能

存储器管理

分页存储

由于连续分配方式会导致形成许多碎片,而如果总是进行碎片整合进行拼接会有很大的开销,为了解决这个问题,产生了一种离散分配的方式,基本单位是页,称为分页存储管理方式,该方式是将一个进程的逻辑地址空间分成若干个大小相等的页,为各个页进行编号,同样将内存空间分成与页相同大小的若干个存储块,称为物理块

这样分页地址的地址结构就是

分页地址结构

分为页号和偏移量,地址长度为32位,其中0~11位为页内地址,即每页的大小为4K;12~32位为页号,地址空间最多允许1M页

页表

为了使得在内存中找到每个页面多对应的物理块,系统又为每个进程建立了一张页面映像表,简称页表,记录页面在内存中对应的物理块号,页表一般存放在内存中。

进程在执行时,通过查找页表来寻找每页在内存中的物理块号

阅读全文 »