标签:linux 网络基础知识
1、硬件知识1.1 网卡
? 【作用】
通过网卡调制或接收不同的信号,在单位时间内调制解调出相应数量信号的个数
? 【类型】
10M、100M、1000M
100Mbps等于每秒可以传输100M个bit
1.2 网线
? 网线至少需要4根铜线,其中第1、2脚起着接收信号的作用,3、6起着发信号的作用
? 【制作】
568A:俗称交叉线 绿橙蓝棕 46交换
568B:俗称直通线 橙绿蓝棕 46交换
? 【注意】
直通线是用来连接地位不平等的设备的,像交换机连接电脑
交叉线是用来连接地位平等的设备的,像电脑与电脑
只要1236四根线是通的,其他的通不通都无所谓
1.3 HUB
? 【功能】
多端口的转发器
? 【特点】
多端口的信号放大设备,共享介质的局域网
? 【缺点】
同一时刻只能一个方向传输数据
网络规模在10台一下
不能隔离冲突域和广播域
1.4 交换机
? 【定义】
实现多台设备间相互通信的设备
? 【特点】
工作在OSI的二层(数据链路层)
依据链路层的MAC地址,将以太网数据帧在端口之间进行转发
提供更多的接口,隔离冲突域
自行学习和维护MAC地址
? 【缺点】
不能隔离广播域
1.5 路由器
? 【功能】
实现不同网段之间的通信
? 【特点】
隔离广播
提供丰富的接口类型
支持丰富的链路层协议
2.1 OSI七层模型及TCP/IP四层模型的简单总结
2.2 linux常用端口及对照的服务
端口号 | 服务名 | 作用 |
---|---|---|
20 | ftp | 用于ftp的数据传输 |
21 | ftp | 用于控制文件传输信息的 |
22 | ssh | 用于远程加密连接 |
23 | telnet | 用于telnet远程连接 不加密 |
25 | smtp | 简单的邮件传输协议 |
53 | DNS | 域名解析服务 |
69 | tftp | 文件传输协议 |
80 h | ttp | 超文本传输协议 |
109 | POP2 | 邮局协议2 用于接收邮件 |
110 | POP3 | 邮局协议3 用于接收邮件 |
115 | sftp | 安全文件传输协议 |
123 | ntp | 网络时间同步协议 |
143 | IMAP | 用于接收邮件的 |
161 | snmp | 简单的网络管理协议 |
443 | https | 安全的超文本传输协议 |
873 | rsync | rsync文件传输服务 |
2049 | nfs | 网络文件系统 |
3306 | mysql | mysql数据服务 |
2.3 数据包的封装与解封装的过程图解
2.3.1 封装过程
2.3.2 解封装过程
2.4 TCP/UDP的总结
2.4.1 TCP
? 源端口:本地发起连接的端口(是随机分配的一般是大于1023的)
? 目的端口:即要访问服务的端口(例如22/23等)
? 序列号:因为在传输层会对上层的数据进行分段,因此需要对分段的数据进行编号,便于对数据的重组
? 校验和:用于对数据进行验证
2.4.2 UDP
? 源端口与目的端口同上
2.4.3 TCP与UDP的对比
传输控制协议TCP | 用户数据报协议UDP |
---|---|
面向连接 | 无连接 |
可靠传输 | 不可靠传输 |
传输大量数据 | 传输少量数据 |
传输数据速度慢 | 传输数据速度快 |
2.5 TCP的三次握手与四次断开详解
2.5.1 TCP的三次握手
? 【文字描述】
1.在最开始,客户端和服务器都处于CLOSE状态
2.在打开服务器时,服务器会创建scoket[源端口、目的端口、源IP、目的IP、TCP/UDP的标识符]开始监听,此时服务器处于LISTEN状态
3.客户端像服务器发送SYN、seq,请求建立连接,此时的状态处于SYN_SENT
4.服务器收到客户端的SYN,回复ack和syn报文,此时处于SYN_RECV或SYN_RCVD
5.客户端在收到服务端的SYN和ack后,马上恢复ack报文,此时处于ESTAB_LISHED
6.服务器收到客户端的ack后,会直接进入ESTAB_LISHED
? 【抓包的详细过程】
第一次握手:
客户端IP:192.168.124.1 服务器IP:192.168.124.129 Flags [s] seq 2957146164
第二次握手:
服务器IP:192. 168.124.129 客户端IP:192.168.124.1 Flags [s.] seq 46316550 ack 2957146165
第三次握手
客户端IP:192.168.124.1 服务器IP:192.168.124.129 Flags [.] ack 46316551
? 【注意】
在三次握手的过程中可能会出现SYN泛洪的问题,产生的原因是在一端回应后,另一端不在进行回应,导致目标长期等待至超时,占用大量的目标资源,从而导致出现SYN泛洪问题
2.5.2 TCP连接的四次断开
2.5.3 TCP的包头及常用字段的解释
? ACK:表示验证字段
? SYN:位数置1,表示建立TCP连接
? FIN:位数置1,表示断开TCP连接
2.5.4 TCP11种状态转移总结
2.6 访问网站的基本流程
2.6.1 图解
2.6.2 文字的基本描述
? 客户端在浏览器中输入www.baidu.com网站网址按回车后,系统会首先查询本地hosts文件和DNS缓存记录,若有IP地址解析记录,则直接返回IP然后访问网站。
? 如果本地hosts文件和DNS缓存记录没有对应的IP地址解析记录,系统会把请求交给LDNS(即本地设置的DNS 像8.8.8.8等)进行解析,若LDNS中有相应的解析记录,则返回IP,如果没有,LDNS会请求其他的DNS服务器。
? LDNS经过一系列的请求,会找到网站的授权服务器,然后会把网站对应的IP返回给LDNS,并把域名对应的IP发送给客户端浏览器,并且LDNS会把域名对应的IP缓存起来,以便下次更快的返回相同的解析。
? 客户端在接收到网站对应的IP后,会请求IP地址对应的Web服务器,并将网站对应的IP在本地进行DNS缓存,Web服务器接收到请求并响应处理,并将客户端请求的内容返回给客户端浏览器
2.2.7 DNS解析原理
记录名称. . . . . . . : get.sogou.com
记录类型. . . . . . . : 1
生存时间. . . . . . . : 137
数据长度. . . . . . . : 4
部分. . . . . . . . . : 答案
A (主机)记录 . . . . : 123.125.125.86
C:\Users\Administrator>ipconfig /flushdns 清空dns缓存
Windows IP 配置
已成功刷新 DNS 解析缓存。
3.2 linux相关的命令
? 【查看地址解析】
================================ping==================================
[root@oldboy ~]# ping www.baidu.com
PING www.a.shifen.com (61.135.169.125) 56(84) bytes of data.
64 bytes from 61.135.169.125: icmp_seq=1 ttl=128 time=19.0 ms
===================================dig================================
[root@oldboy ~]# dig @8.8.8.8 www.baidu.com +trace
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6 <<>> @8.8.8.8 www.baidu.com +trace
; (1 server found)
;; global options: +cmd
. 17717 IN NS a.root-servers.net.
...
. 17717 IN NS l.root-servers.net.
. 17717 IN NS m.root-servers.net.
...
a.shifen.com. 1200 IN NS ns2.a.shifen.com.
;; Received 228 bytes from 61.135.165.235#53(61.135.165.235) in 54 ms
注意:用dig的时候也可以什么也不加,直接 dig 域名
=================================host==================================
[root@oldboy ~]# host www.baidu.com
www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 61.135.169.125
www.a.shifen.com has address 61.135.169.121
===============================nslookup================================
[root@oldboy ~]# nslookup
baidu.com
Server: 192.168.124.2
Address: 192.168.124.2#53
Non-authoritative answer:
Name: baidu.com
Address: 111.13.101.208
Name: baidu.com
Address: 123.125.114.144
Name: baidu.com
Address: 220.181.57.217
【查看路由】
[root@oldboy ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.124.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
0.0.0.0 192.168.124.2 0.0.0.0 UG 0 0 0 eth0
[root@oldboy ~]# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.124.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 192.168.124.2 0.0.0.0 UG 0 0 0 eth0
[root@oldboy ~]# ip route show
192.168.124.0/24 dev eth0 proto kernel scope link src 192.168.124.129
169.254.0.0/16 dev eth0 scope link metric 1002
default via 192.168.124.2 dev eth0
[root@oldboy ~]# ip r s
192.168.124.0/24 dev eth0 proto kernel scope link src 192.168.124.129
169.254.0.0/16 dev eth0 scope link metric 1002
default via 192.168.124.2 dev eth0
【增加删除网关】 临时修改
[root@oldboy ~]# route del default gw 192.168.124.2
[root@oldboy ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.124.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
[root@oldboy ~]# route add default gw 192.168.124.2
[root@oldboy ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.124.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
0.0.0.0 192.168.124.2 0.0.0.0 UG 0 0 0 eth0
【增加删除路由】 临时修改
================================添加路由===============================
[root@oldboy ~]# route add -net 10.0.0.0/16 gw 192.168.124.2
[root@oldboy ~]# route add -host 10.0.0.1 dev eth0
================================删除路由===============================
[root@oldboy ~]# route del -net 10.0.0.0/16
[root@oldboy ~]# route del 10.0.0.1
============================增加默认路由===============================
[root@oldboy ~]# route del default gw 192.168.124.2
3.3 配置和查看网络相关的信息
? 【ifconfig】
ifconfig [设备名] 查看网刊信息
ifconfig eth0: x ip/mask up 配置别名ip并启用
ifconfig eth0:x ip netmask 掩码 up 配置别名ip并启用
ifconfig eth0:x down 停用
配置别名永久生效的方法:编辑/etc/sysconfig/network-scripts/ifcfg-eth1:x
? 【ip】
ip addr 查看网络网卡信息
ip addr add ip/mask dev eth0:x 一个网卡配置多个ip的方法
3.4 tcpdump
? 【功能】一款强大的抓包工具
? 【常用参数】
选项 | 参数说明 |
---|---|
-i | 是interface的含义,是指我们有义务告诉tcpdump希望去监听哪一个网卡。这在一台服务器有多块网卡时很有必要 |
-nn | 意思是说当tcpdump遇到协议号或端口号时,不要将这些号码转换成对应的协议名称或端口名称。比如,众所周知21端口是FTP端口,我们希望显示21,而非tcpdump自作聪明的将它显示成FTP。 |
-X | 告诉tcpdump命令,需要把协议头和包内容都原原本本的显示出来(tcpdump会以16进制和ASCII的形式显示),这在进行协议分析时是绝对的利器。如果不进行原本的显示输出,当将收到的信息放入到其它专业分析包软件中分析时会有问题 |
-c | 是Count的含义,这设置了我们希望tcpdump帮我们抓几个包。设置的是1,所以tcpdump不会帮我再多抓哪怕一个包回来 |
-w | 将流量保存到文件中,tcpdump的-w方式是把raw packets(原始网络包)直接存储到文件中了,也就是存储的都是结构体形式,而非是分析之后的文本格式的信息,因此是无法直接通过less命令查看的。 |
-r | 读取raw packets文件 |
-n | 指明协议 |
? 【应用实例】
[root@oldboy ~]# tcpdump tcp port 22 -c4 -i eth0 -nn
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
18:23:31.592883 IP 192.168.124.129.22 > 192.168.124.1.58274: Flags [P.], seq 3537615929:3537616125, ack 3597215233, win 304, length 196
18:23:31.593276 IP 192.168.124.1.58274 > 192.168.124.129.22: Flags [.], ack 196, win 256, length 0
18:23:31.595035 IP 192.168.124.129.22 > 192.168.124.1.58274: Flags [P.], seq 196:472, ack 1, win 304, length 276
18:23:31.597068 IP 192.168.124.129.22 > 192.168.124.1.58274: Flags [P.], seq 472:636, ack 1, win 304, length 164
4 packets captured
4 packets received by filter
0 packets dropped by kernel
[root@oldboy ~]# tcpdump tcp port 22 and host 192.168.124.129 -c2
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
18:24:49.155438 IP 192.168.124.129.ssh > 192.168.124.1.58274: Flags [P.], seq 3537619685:3537619881, ack 3597218077, win 304, length 196
18:24:49.155970 IP 192.168.124.1.58274 > 192.168.124.129.ssh: Flags [.], ack 196, win 253, length 0
2 packets captured
2 packets received by filter
0 packets dropped by kerne
3.5 开启路由转发功能[root@oldboy ~]# vim /etc/sysctl.conf 修改配置文件
# Controls IP packet forwarding
net.ipv4.ip_forward = 0 此项参默认是0 将其改为1即可
[root@oldboy ~]# sysctl -p 进行查看
标签:linux 网络基础知识
原文地址:http://blog.51cto.com/lzhnb/2085014