> For the complete documentation index, see [llms.txt](https://valineliu.gitbook.io/deuterium-wiki/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://valineliu.gitbook.io/deuterium-wiki/reading/cs-jing-dian-shu-ji/tcpv1/ch03-internet-protocol.md).

# ch03: Internet Protocol

IP

## MindMap

![IP: Internet Protocol](https://tva1.sinaimg.cn/large/007S8ZIlly1gfnfmlj6jij31l90u0wr2.jpg)

## IP Header

![image-20200610203519442](https://tva1.sinaimg.cn/large/007S8ZIlly1gfnh1luf1uj30zq0pk0wa.jpg)

**注意：checksum只对IP Header进行校验。**

## IP路由

路由表：

* 目的IP地址。可以是主机地址，也可以是网络地址；
* 下一跳的IP地址；
* Flag，更多的信息；
* 传输datagram的网络接口。

路由选择：

* 查找完全匹配的IP地址，如果找到了直接发送；
* 找不到的话，查找匹配的网络地址；
* 找default；
* 目标不可达。

一个例子：

![image-20200610205129156](https://tva1.sinaimg.cn/large/007S8ZIlly1gfnhifah7ej30x50u0796.jpg)

子网与子网掩码

## 特殊情况的IP地址

![image-20200610210330250](https://tva1.sinaimg.cn/large/007S8ZIlly1gfnhux7yxmj314g0gsdkg.jpg)

## netstat

查看系统上的网络接口信息。`-i`选项打印出接口信息，`-n`选项打印IP地址而不是hostname：

```
$ netstat -in
Kernel Interface table
Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth1      1500  3484713      0      0 0       3501905      0      0      0 BMRU
lo       65536   813519      0      0 0        813519      0      0      0 LRU
tunnat    1480        0      0      0 0         66702      0      0      0 OPRU
```
