常见网络相关的协议
ARP(Address Resolution Protocol):地址解析协议,将IP解析成MAC地址
DNS:域名解析协议 www.baidu.com
SNMP(Simple Network Management Protocol)网络管理协议
DHCP(Dynamic Host Configuration Protocol)动态主机配置协议,它是在TCP/IP网络上使客户机获得配置信息的协议
FTP(File Transfer Protocol)文件传输协议,它是一个标准协议,是在计算机和网络之间交换文件的最简单的方法。
HTTP(Hypertext Transfer Protocol ):超文本传输协议
HTTPS(Secure Hypertext Transfer Protocol):安全超文本传输协议,它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作.
ICMP(Internet Control Message Protocol):Internet控制信息协议,互联网控制报文协议
ping ip定义消息类型有:TTL超时、地址的请求与应答、信息的请求与应答、目的地不可到达
SMTP(Simple Mail Transfer Protocol):简单邮件传送协议
TELNET Protocol:虚拟终端协议
TFTP(Trivial File Transfer Protocol):小文件传输协议
UDP(User Datagram Protocol):用户数据报协议,它是定义用来在互连网络环境中提供包交换的计算机通信的协议
TCP(Transmission Control Protocol): 传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议 log转发:开启一个协议:tcp(三次握手和四次挥手)
TCP协议和UDP协议的区别
(1)TCP协议:TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,在收发数据前,必须和对方建立可靠的连接。
(2)UDP协议:UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务
TCP与UDP的区别:
1.基于连接与无连接;
2.对系统资源的要求(TCP较多,UDP少);
3.UDP程序结构较简单;UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额外开销很小。所以传输速度可更快
4.TCP保证数据正确性,UDP可能丢包;TCP保证数据顺序,UDP不保证。
场景: 视频,语音通讯使用udp,或网络环境很好,比如局域网中通讯可以使用udp。 udp数据传输完整性,可以通过应用层的软件来校对就可以了。
tcp传文件,数据完整性要求高。
可以查看所有的服务端口
IP地址分类
IP地址分5类,常见的地址是A、B、C 三类
A类地址:范围从0-127,0是保留的并且表示所有IP地址,而127也是保留的地址,并且是用于测试环回口用的。因此A类地址的可用的范围其实是从1-126之间。以子网掩码:255.0.0.0.
B类地址:范围从128-191,如172.168.1.1,以子网掩码来进行区别:255.255.0.0
C类地址:范围从192-223,以子网掩码来进行区别: 255.255.255.0
D类地址:范围从224-239,被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。
ABC 3类中私有IP地址范围:
A:10.0.0.0–10.255.255.255 /8
B: 172.16.0.0–172.31.255.255 /16
C: 192.168.0.0–192.168.255.255 /24
查看IP相关信息
常见的一些网络接口
eth0 … eth4 … 以太网接口(linux6)
waln0 无线接口
eno177776 以太网接口 (linux7)
ens33 以太网接口(linux7)
bond0 team0 网卡绑定接口
virbr0 虚拟交换机桥接接口
br0 虚拟网桥接口
lo 本地回环接口
vnet0 KVM虚拟机网卡接口
给虚拟机再添加一个网卡,并手动成生网卡配置文件
服务器上有大量TIME_WAI连接,如何优化TCP连接,快速释放tcp连接 ?
linux下默认MSL等待时间是60秒
[root@localhost ~]# cat /proc/sys/net/ipv4/tcp_fin_timeout
60
[root@localhost ~]# echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout #通过缩短时间time_wait时间来快速释放链接
[root@localhost ~]# cat /proc/sys/net/ipv4/tcp_fin_timeout
30
修改主机名配置文件,作用:设置主机名永久生效
配置IP与主机名(域名)的对应关系
[root@localhost ~]# vim /etc/hosts #优先级高于DNS解析
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.10.100.56 abc.com
配置DNS-路由相关信息
DNS配置的配置文件
参数: -n :不要使用通讯协定或主机名称,直接使用 IP 或 port number;
route命令输出的路由表字段含义如下:
Destination 目标 :The destination network or destination host. 目标网络或目标主机。
Gateway 网关 :网关地址,如果是本地网段IP,就显示0.0.0.0
Genmask :子网掩码
添加/删除路由条目:
增加 (add) 与删除 (del) 路由的相关参数:
-net :表示后面接的路由为一个网域;
-host :表示后面接的为连接到单部主机的路由;
netmask :与网域有关,可以设定 netmask 决定网域的大小;
gw :gateway 的简写,后续接的是 IP 的数值喔,与 dev 不同;
dev :如果只是要指定由那一块网路卡连线出去,则使用这个设定,后面接 eth0 等
添加/删除路由条目:
添加路由(把Linux做成路由器时或服务器有多个网卡,指定到不同网段走哪个网卡)
实战场景:多个网卡,多个网段,实现不同数据走不同网卡。如果网络管理和生产数据分开管理。
[root@localhost ~]#route del -net 192.168.2.0 netmask 255.255.255.0
路由跟踪:查看经过多少个路由器到目标网址
使用tcpdump抓包查看tcp三次握手过程
tcp三次握手过程:
Client:我可以给你发数据吗?
Server:可以
Client:好的
如何产生tcp的链接?
打开另一个终端,开始建立tcp连接:
注:Flags [S] 中的 S 表示为SYN包为1
client主机返回ACK,包序号为ack=1 ,这是相对序号,如果需要看绝对序号,可以在tcpdump命令中加-S
如果恶意者通过通过ip欺骗,发送大量SYN包给受害者系统,导致服务端存在大量未决的连接并占用大量内存和tcp连接,从而导致正常客户端无法访问服务端,这就是SYN洪水攻击的过程。