2020年1月

#tcp/ip five layer model
tcp/ip stack

network layer : communicate through routers
通过router连接:internetwork -> Internet
协议: IP -> internet protocol

data link layer : across a single link
network layer : across a collection of networks
transport layer : sort out which client and sever programs are supposed to get that data

hub: physical层设备,少用
switch:data link层设备

router:forward data between independent network
network layer
Border Gateway Protocol(BGP) : router最优路径选择协议

网线接口 : RJ45
link light : 正确连接
activity light : 数据正确传输

data link层

MAC地址:48位 前24位表示生产厂商

unicast : 一对一传输 least significant bit为0
mulcast : least significant bit为1
broadcast : 发送到LAN中每个设备 -> board cast address : FF:FF:FF:FF:FF:FF

Ethernet frame

Preamble: 8byte
前7byte : 交替01
最后byte : SFD(start frame delimiter)

destination address : 目标MAC地址
source address : 来源MAC地址
ether-type : 16bit 描述协议
VLAN header : 表示frame本身为VLAN frame
VLAN(virtual LAN):单个物理设备有多个虚拟LAN
payload :数据
FCS : frame check sequence cyclical redudancy check(CRC)

network层

DHCP(dynamic host configuration protocol):分配ip地址

ip datagram

version : 协议版本
header length : 20bytes for ipv4
service type: 8bits quality of service (QoS)
identification: 相同message该字段相同
flag field: datagram是否可以fragment
fragment offset: 标识一个datagram的切片
TTL: time to live 被抛弃前最多的router hop次数
protocol: 传输层所使用协议
header checksum: datagram header校验和

ipv4地址:
class A:
开始为0
第一个byte:network ID
后三个byte: host ID
class B:
开始为10
前两个byte:network ID
后两个byte: host ID
class C:
开始为110
前三个byte:network ID
最后一个byte: host ID

ARP : address resolution protocol
寻找一个ip的硬件地址
ARP table: ip地址与MAC地址表

三段non-routable address:
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
对外部router不可见

transport层

tcp header

sequence number : 当前段的编号
acknowledgement number : 下一段编号

命令

linux : traceroute
win : tracert
打印传输路线

linux : mtr
win :pathping
持续traceroute

linux : netcat
nc -z -v [host] [port] -z: zero input -v: verbose
win : Test-NetConnection

nslookup

官方mooc笔记

factual question: evaluate each option to determine if it is correct
For the Negative Factual Information questions,
remember that you're looking for an answer
that either isn't in the paragraph,
or directly contradicts information in the paragraph.

看起来挺有趣的书
果然自己还是懂得太少了

ELF(Executable and Linking Format) 可执行可链接格式

od {-t [c/x1/x1z...]} [file] 将文件转为[字符/ 十六进制 / 十六进制后显示字符]格式,默认为8进制

readelf -h [file] 读取elf格式头信息

静态链接库

ar ruv libfoo.a foo.o bar.o #打包静态链接库
ar tv libfoo.a #查看库中内容
cc -o baz.o -lfoo #链接libfoo.a到baz.o

动态链接库

gcc -fPIC -c add.c #生成.o文件,PIC:position independent code
gcc -shared -o libmymath.so subtract.o add.o #生成动态链接库
gcc -o libmymath.so -fPIC -shared subtract.c add.c #将两步命令合为一步
gcc main.c -L. -lmymath 

同时有静态动态链接库时优先链接动态链接库

objdump -d hello.o 反汇编

我还能有多少次像这样奋斗呢?
我还能有多少次像这样追求着目标呢?
就将每一次的奋斗的机会当做一份馈赠吧。

给2020的自己订下两个目标:
1. 参加超算比赛,最好能和学长们一起拿到冠军
2. 发一篇paper,尽管目标很远,不过尽量去努力吧

以上