Tcp/Ip基础,其一

最近在看游双老师的《linux高性能服务器编程》,现将自己之后会用到的知识点进行总结。

现在的网络体系分为物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。

各层中常见协议如下:

数据链路层:ARP地址解析协议,RARP反向地址解析协议。

网络层:IP协议,ICMP协议。其中ICMP使用了IP协议提供的服务。

传输层:TCP(传输控制)协议,UDP(用户数据包)协议,SCTP(流控制传输)协议。

应用层:ping(测试网络),telnet(远程登录),DNS(域名解析),OSPF(动态更新路由)。

各层之间的数据封装,即各层协议将接收到的上层数据加上本层协议的头部信息,然后传送到下一层。

常用命令:

arp -a[all] -s[set]

arp -a显示arp缓存中的全部内容。

arp -s ip mac 将该映射添加到arp缓存中。

host -a[all] //host为linux中的DNS客户端程。

host -a ip对DNS服务器发起一次服务。

tcpdump

-i[interface] 指定要监听的网口。

-n[number] 指定ip和port使用数字计法。

-s 设置数据包的大小。

-v 显示一个详细的信息。

-t 不打印时间戳。

-e 显示以太网帧头部信息。

-c 指定数据包的数量。

-x 显示数据包中信息,不包括以太网帧头部。

-X 与-x类似,不过打印出对应的ASCII码。

-XX 与-X类似,不过包括以太网帧头部。

-w 写入到某文件。

-r 从某文件读取。

除此以外,tcpdump还支持表达式:

type:host(主机),net(网络地址),port(端口号),portrange(端口范围)

dir:src(源地址),dst(目的地址)

proto:ip,tcp,udp,icmp

还可以用and(&&),or(||),not(!)进行连接,使用括号前,用进行转义,或者用单引号。

原文地址:https://www.cnblogs.com/meowyeon/p/8364935.html