OSI参考模型

m490545607 / 2023-05-06 / 原文

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三次握手时序图

IMG_256

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}`

  1. 使用脚本判断 你主机所在网络内在线的主机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

  1. 使用while read line和/etc/passwd,计算用户id总和。