梦见锡安
msgbartop
小舟从此逝,江海寄余生。
msgbarbottom

1 链路层 | 2006年10月02日

  • 链路层的功能:
  1. 为IP模块发送和接收IP数据报;
  2. 为ARP模块发送ARP请求和接收ARP应答;
  3. 为RARP发送RARP请求和接收RARP应答
  • 以太网IP数据报的封装定义在RFC 894中。
  • IP地址(32位)通过ARP映射到以太网地址(48位);
  • 以太网帧格式:
dest(6 bytes)–src(6 bytes)–type(2 bytes)–data(46~1500 bytes)–CRC(4 bytes)
 48 bits        48 bits       0800 (IP)
                              0806 (ARP)  28 bytes (R/A)-18 bytes(PAD)
                              8035 (RARP) as above
  • SLIP (串行线路IP,电话拨号等串行数据传输时使用):

END-数据-END        如果数据里含END,需要转义。

  • PPP(点对点协议),包括
1)串行线路上封装IP数据报的方法;              
                                                 RFC 1548
2)建立、配置、测试数据链路的链路控制协议LCP;  /
3)针对不同网络层协议的网络控制协议 NCP;       —RFC 1332

PPP数据侦格式(十六进制,两位表示一个字节):

标志(7E)–地址(FF)–控制(03)–协议(2字节)–信息(<1500字节)–CRC(2字节)-标志(7E)
                              0021 (IP)
                              c021 (LC)
                              8021 (NC)

信息段如果含0x7e(标志字段的值),需要转义,转义字符为0x7d,同时原值第六位取补码。如

0x7e –> 0x7d + 0x5e
0x7d –> 0x7d + 0x5d

原则上<0×20的值(ASCII控制字符之类)都要进行转义。

  • 环回接口(127.0.0.1 localhost):用于同一台主机上C/S的TCP/IP通信,
  • MTU最大传输单元:链路层的数据侦长度上限,各种网络的典型MTU值见RFC 1191
  • 路径MTU:两台通信主机路径中的最小MTU,由于取决于所选路由,故不是常数。

RFC1191描述了路径MTU的发现机制,即在任何时候确定路径MTU的方法。

  • $ netstat -i    查看主机接口及其MTU

vim命令 | 2006年09月22日

注:前缀’:'表示vim命令(命令模式),前缀’$'表示为shell命令,<C-W>表示Ctrl + W,<C-Sh-6>表示 Ctrl + Shift+ 6,无前缀者均为普通模式下的键盘按键。

基本的插入与修改:

a        光标下一个字符处插入;
i        在当前光标处插入;
A        行尾插入;
o        在光标下新建一行插入;
O        在光标上新建一行插入;
p        在光标之后粘贴;
P        在光标之前粘贴;
r        键入替换一个字符;
R        键入替换所有字符;
x        删除光标所在处的字符;
`.       光标定位到上一次修改处;
u        Undo
<C- R>   Redo
:e!      撤销所有修改。

文件查找与替换:

*, #             向前/后查找相同单词(如果打开set hlsearch,则自动高亮所有匹配单词)
/dest            按n查找下一个;N查找上一个;
?dest            反向查找;
:#,#s/old /new/g 把几行之间的old全部替换成new
:%s/old /new/g   整个文件全局替换,old -> new;
:s/old /new      只替换下一个匹配的字符串
:s/old /new/g    替换一行的 old -> new;

文件光标定位:

%                括号配对
ctrl + g         显示当前行号
linenum + G      跳至某行
w                跳到下一个单词处
G                跳至末行
H                跳至首行
^                跳至行首
$                跳至行尾
fx Fx            移动到下一个/上一个x开头的单词
[[               跳至上一个在第一列的{ (一般是函数的开头)
]]               跳至下一个在第一列的{
{                跳至上一个空行
}                跳至下一个空行
gd               光标定位在某个局部变量上时,跳到它的定义处;

使用cscope时,在源文件顶层运行

cscope-indexer

生成cscope的tags, 然后使用<C-]>查找各种数据类型的定义,再使用<C-o>回到光标原来的位置.

shell:

:!cmdname        临时使用shell命令cmdname
:sh              暂时回到shell(exit回到vim编辑界面)

多文件操作:

$ vi file1 file2         一次性读入多个文件(支持shell的所有通配符)
:sp file                 从一个新的水平分割窗口中打开文件file
:vd file                 从一个新的垂直分隔窗口中打开文件file
:n、:N                   当前窗口进行文件间切换
<C- Sh- 6>               当前窗口在两个文件之间切换
:Sex                     在新的分割窗口中打开目录流览器
:ls                      列出当前在编辑的文件
:b x                     当前窗口跳到第x个文件buffer(:ls列出序号)
:b file                  当前窗口跳到下一个文件名包含"file"的文件buffer
<C-W>+<C-W>              多窗口中快速切换(ctrl + w两次)

其它: 

<C-N><C-P>               插入模式中,用于语法的单词/结构自动补全
=                        可视模式下,可用于根据语法自动缩进文本格式

常用设置:

1
cp /usr/share/vim/vim70/vimrc_example.vim ~/.vimrc
:set hlsearch 高亮显示/与?命令查找结果;
:set num 显示每行行号

Fterm 登录时如果要使用vi的语法彩色,需要把termtype设置为xterm- color,或者

1
export TERM=xterm-color

应该也可以……