OSI参考模型
OSI网络七层模型
7 应用层
6 表示层
5 会话层
4 传输层
3 网络层
1 物理层
2数据链路层
OSI参考模型 TCP/IP概念层
确认数据的传输及进行纠错处理,TCP UDP
负责数据传输,路径及地址选择,IP ARP协议
是针对不同物理网络的连接 FDDI ATM
各种服务及应用程序通过该层利用网络,http ftp smtp等协议
应用层
传输层
网络层
网络接口
OSI 是 Open System Interconnection 的缩写,译为“开放式系统互联”
OSI 模型把网络通信的工作分为 7 层,从下到上分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层
OSI 只是存在于概念和理论上的一种模型,它的缺点是分层太多,增加了网络工作的复杂性,所以没有大规模应用。后来人们对 OSI 进行了简化,合并了一些层,最终只保留了 4 层,从下到上分别是接口层、网络层、传输层和应用层,称之为TCP/IP 模型。
TCP数据包结构
1、源始端口16位,范围是0-65535啦。
2、目的端口,同上。
3、数据序号32位,TCP为发送的每个字节都编一个号码,这里存储当前数据包数据第一个字节的序号。
4、确认序号32位,为了安全,TCP告诉接受者希望他下次接到数据包的第一个字节的序号。
5、偏移4位,类似IP,表明数据距包头有多少个32位。
6、保留6位,未使用,应置零。
7、紧急比特URG—当URG=1时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。
8、确认比特ACK—只有当ACK=1时确认号字段才有效。当ACK=0时,确认号无效。参考TCP三次握手
9、复位比特RST(Reset) —当RST=1时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。参考TCP三次握手
10、同步比特SYN—同步比特SYN置为1,就表示这是一个连接请求或连接接受报文。参考TCP三次握手。
11、终止比特FIN(FINal)—用来释放一个连接。当FIN=1时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。
12、窗口字段16位,窗口字段用来控制对方发送的数据量,单位为字节。TCP连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限。
13、包校验和16位,包括首部和数据这两部分。在计算检验和时,要在TCP报文段的前面加上12字节的伪首部。
14、紧急指针16位,紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。
15、可选选项24位,类似IP,是可选选项。
16、填充8位,使选项凑足32位。
17、用户数据……
TCP的三次握手和四次挥手
TCP的三次握手和四次挥手实质就是TCP通信的连接和断开。
三次握手:为了对每次发送的数据量进行跟踪与协商,确保数据段的发送和接收同步,根据所接收到的数据量而确认数据发送、接收完毕后何时撤消联系,并建立虚连接。
四次挥手:即终止TCP连接,就是指断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开。
TCP三次握手时序图
1、三次握手
TCP协议位于传输层,作用是提供可靠的字节流服务,为了准确无误地将数据送达目的地,TCP协议采纳三次握手策略。
三次握手原理:
第1次握手:客户端发送一个带有SYN(synchronize)标志的数据包给服务端;
第2次握手:服务端接收成功后,回传一个带有SYN/ACK标志的数据包传递确认信息,表示我收到了;
第3次握手:客户端再回传一个带有ACK标志的数据包,表示我知道了,握手结束。
其中:SYN标志位数置1,表示建立TCP连接;ACK标志表示验证字段。
可通过以下趣味图解理解三次握手:
三次握手过程详细说明:
1、客户端发送建立TCP连接的请求报文,其中报文中包含seq序列号,是由发送端随机生成的,并且将报文中的SYN字段置为1,表示需要建立TCP连接。(SYN=1,seq=x,x为随机生成数值);
2、服务端回复客户端发送的TCP连接请求报文,其中包含seq序列号,是由回复端随机生成的,并且将SYN置为1,而且会产生ACK字段,ACK字段数值是在客户端发送过来的序列号seq的基础上加1进行回复,以便客户端收到信息时,知晓自己的TCP建立请求已得到验证。(SYN=1,ACK=x+1,seq=y,y为随机生成数值)这里的ack加1可以理解为是确认和谁建立连接;
3、客户端收到服务端发送的TCP建立验证请求后,会使自己的序列号加1表示,并且再次回复ACK验证请求,在服务端发过来的seq上加1进行回复。(SYN=1,ACK=y+1,seq=x+1)。
2、四次挥手
由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。
11.IP地址 A, B, C, D 类,并解析IP地址的组成
Ip地址可以唯一标识IP网络中每台设备,处在网络中的每一台设备必须具有唯一的地址。
IP地址由两部分组成:网络ID和主机ID
IPv4地址格式为点分十进制记法。
A类IP地址
一个A类IP地址由1字节的网络地址和3字节主机地址组成,它主要为大型网络而设计的,网络地址的最高位必须是“0”, 地址范围从1.0.0.0 到127.0.0.0)。可用的A类网络有127个,每个网络能容纳16777214个主机。其中127.0.0.1是一个特殊的IP地址,表示主机本身,用于本地机器的测试。
A:0-127,其中0代表任何地址,127为回环测试地址,因此,A类ip地址的实际范围是1-126.
默认子网掩码为255.0.0.0
B类IP地址
一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,地址范围从128.0.0.0到191.255.255.255。可用的B类网络有16382个,每个网络能容纳6万多个主机 。
B:128-191,其中128.0.0.0和191.255.0.0为保留ip,实际范围是128.1.0.0--191.254.0.0。
C类IP地址
一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”。范围从192.0.0.0到223.255.255.255。C类网络可达209万余个,每个网络能容纳254个主机。
C:192-223,其中192.0.0.0和223.255.255.0为保留ip,实际范围是192.0.1.0--223.255.254.0
D类IP地址
用于多点广播(Multicast)。 D类IP地址第一个字节以“lll0”开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。224.0.0.0到239.255.255.255用于多点广播 。
保留私有IP地址
在IP地址3种主要类型里,各保留了3个区域作为私有地址,其地址范围如下:
A类地址:10.0.0.0~10.255.255.255
B类地址:172.16.0.0~172.31.255.255
C类地址:192.168.0.0~192.168.255.255
12.201.222.200.111/18计算主机数?子网掩码?说明计算方法。
201.222.200.111/255.255.192.0
201.222.192.1-201.222.255.254 16382个主机
14.如何将10.0.0.0/8划分32个子网
网络列表网络 10.0.0.0 ,掩码255.0.0.0
网络 | 主机 | 广播地址 | |
起始 | 结束 | ||
10.0.0.0 | 10.0.0.1 | 10.7.255.254 | 10.7.255.255 |
10.8.0.0 | 10.8.0.1 | 10.15.255.254 | 10.15.255.255 |
10.16.0.0 | 10.16.0.1 | 10.23.255.254 | 10.23.255.255 |
10.24.0.0 | 10.24.0.1 | 10.31.255.254 | 10.31.255.255 |
10.32.0.0 | 10.32.0.1 | 10.39.255.254 | 10.39.255.255 |
10.40.0.0 | 10.40.0.1 | 10.47.255.254 | 10.47.255.255 |
10.48.0.0 | 10.48.0.1 | 10.55.255.254 | 10.55.255.255 |
10.56.0.0 | 10.56.0.1 | 10.63.255.254 | 10.63.255.255 |
10.64.0.0 | 10.64.0.1 | 10.71.255.254 | 10.71.255.255 |
10.72.0.0 | 10.72.0.1 | 10.79.255.254 | 10.79.255.255 |
10.80.0.0 | 10.80.0.1 | 10.87.255.254 | 10.87.255.255 |
10.88.0.0 | 10.88.0.1 | 10.95.255.254 | 10.95.255.255 |
10.96.0.0 | 10.96.0.1 | 10.103.255.254 | 10.103.255.255 |
10.104.0.0 | 10.104.0.1 | 10.111.255.254 | 10.111.255.255 |
10.112.0.0 | 10.112.0.1 | 10.119.255.254 | 10.119.255.255 |
10.120.0.0 | 10.120.0.1 | 10.127.255.254 | 10.127.255.255 |
10.128.0.0 | 10.128.0.1 | 10.135.255.254 | 10.135.255.255 |
10.136.0.0 | 10.136.0.1 | 10.143.255.254 | 10.143.255.255 |
10.144.0.0 | 10.144.0.1 | 10.151.255.254 | 10.151.255.255 |
10.152.0.0 | 10.152.0.1 | 10.159.255.254 | 10.159.255.255 |
10.160.0.0 | 10.160.0.1 | 10.167.255.254 | 10.167.255.255 |
10.168.0.0 | 10.168.0.1 | 10.175.255.254 | 10.175.255.255 |
10.176.0.0 | 10.176.0.1 | 10.183.255.254 | 10.183.255.255 |
10.184.0.0 | 10.184.0.1 | 10.191.255.254 | 10.191.255.255 |
10.192.0.0 | 10.192.0.1 | 10.199.255.254 | 10.199.255.255 |
10.200.0.0 | 10.200.0.1 | 10.207.255.254 | 10.207.255.255 |
10.208.0.0 | 10.208.0.1 | 10.215.255.254 | 10.215.255.255 |
10.216.0.0 | 10.216.0.1 | 10.223.255.254 | 10.223.255.255 |
10.224.0.0 | 10.224.0.1 | 10.231.255.254 | 10.231.255.255 |
10.232.0.0 | 10.232.0.1 | 10.239.255.254 | 10.239.255.255 |
10.240.0.0 | 10.240.0.1 | 10.247.255.254 | 10.247.255.255 |
10.248.0.0 | 10.248.0.1 | 10.255.255.254 | 10.255.255.255 |
15/16.通过网络配置命令,让主机可以上网。 ip, netmask, gateway, dns,主机名。相关命令总结,最终可以通过这些配置让你的主机上网
Ifconfig ip add nmtui nm-connection-editor
NAME=eth0 //网卡名称
ONBOOT=yes //网卡使用网络的状态
IPADDR=10.0.0.7 //IP地址
PREFIX=24 //子网掩码
GATEWAY=10.0.0.254 //网关
17.基于配置文件或命令完成bond0配置
首先配置绑定所需要的配置文件,再次配置两个需要绑定的网卡的配置文件。
18.通过ifconfig命令结果找到ip地址
ifconfig eth0 | grep inet | cut -c 14-27 | tail -n +0 | head -n 1
ifonfig eth0 | sed -n '2p' | awk '{print $2}`
- 使用脚本判断 你主机所在网络内在线的主机IP有哪些? ping通则在线。
#!/bin/bash
for IP in 192.168.150.{1..255}
do
ping -c1 -i0.2 -W1 $IP &> /dev/null
if [ $? -eq 0 ]
then echo "$IP is UP!"
else echo "$IP is down!"
fi
Done
- 使用while read line和/etc/passwd,计算用户id总和。