OSI七层网络模型

互联网建立的目的

网络建立的目的就是为了数据交互(通信)


OSI七层模型

OSI七层网络模型_数据链路层

每层运行常见设备

OSI七层网络模型_数据链路层_02

1.物理层

一些硬件设备:中继器 集线器 双绞线


2.数据链路层

数据链路层由来:单纯的电信号0和1没有任何意义,必须规定电信号多少位一组,每组什么意思
#数据链路层的功能:定义了电信号的分组方式

#以太网协议:
1.要有一块网卡,网卡上要有一个独一无二的地址(mac地址)
2.一组电信号构成一个数据包,叫做‘帧’
3.每一数据帧分成:报头head和数据data两部分

##注意
#报头(head):固定18个字节
发送者/源地址:6个字节
接收者/目标地址:6个字节
数据类型:6个字节

#数据(data);最短46个字节-最长1500个字节
mac地址 :每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48位2进制,通常由12位16进制数表示(前
六位是厂商编号,后六位是流水线号)

[Mon Jul 12 16:12:26 root@m01 ~]
# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.61 netmask 255.255.255.0 broadcast 10.0.0.255
inet6 fe80::20c:29ff:fe8b:8184 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:8b:81:84 txqueuelen 1000 (Ethernet)
RX packets 1371 bytes 116225 (113.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 948 bytes 60753 (59.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

其中# ether 00:0c:29:8b:81:84 就是mac地址

计算机通信,基本靠吼

广播 :让所有的其它计算机都能接收到你的数据包,其它计算机要根据报头(head)来判断,这个数据是不是发送给自己


故障:广播风暴...


3.网络层

#网络层功能:引入一套新的地址用来区分不同的广播域/子网,这套地址即网络地址

# ip协议
规定网络地址的协议叫ip协议,它定义的地址称之为ip地址,广泛采用的v4版本即ipv4,它规定网络地址由32位2进制表示
范围0.0.0.0-255.255.255.255 #(点分十进制)

一个IP地址分为两部分
1.网络位
2.主机位

#在不在同一个网段,取决于 子网掩码+IP地址 网段一样才能通信
172.16.1.31/255.255.255.0
172.16.1.31
10101100.00010000.00000001.00011111
11111111.11111111.11111111.00000000
10101100.00010000.00000001.00000000
172.16.1.0
172.16.1.41/255.255.255.0
10101100.00010000.00000001.00101001
11111111.11111111.11111111.11111101
10101100.00010000.00000001.00101001
172.16.1.0
10.0.0.0/24
10.0.0.1 ~ 10.0.0.255
IP和子网掩码之间的运算:AND(按位与运算)符号:& 1&1=1 1&0=0 0&0=0
&&:逻辑与运算
以太网头+报头+数据

#arp协议:地址映射协议
IP地址绑定在Mac地址上


4.传输层

#传输层功能:建立端口到端口的通信
端口范围:0-65535,系统占用的端口:0-1023

tcp协议:可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。
以太网头 ip 头 tcp头 数据

udp协议:不可靠传输,”报头”部分一共只有8个字节,总长度不超过65,535字节,正好放进一个IP数据包
以太网头 ip头 udp头 数据


三次握手

OSI七层网络模型_网络地址_03

OSI七层网络模型_网络地址_04

TCP数据传输

OSI七层网络模型_ip地址_05

四次挥手

OSI七层网络模型_数据_06

OSI七层网络模型_ip地址_07

##TCP协议的11种状态
#三次握手中:
1.SYN_SENT
2.LISTEN
3.SYN_REVD(syn洪水攻击)****半连接池
4.ESTABLISHED

#四次挥手中:
1.FIN_WAIT_1
2.CLOSE_WAIT
3.FIN_WAIT_2
4.LAST_ACK
5.TIME_WAIT(TIME_WAIT多,证明服务器上有大并发)

#关闭状态:
1.CLOSED(被动关闭端在接收到ack包后,进入CLOSED状态关闭TCP连接)
2.CLOSING(客户端和服务端同时发起断开连接)


5.会话层

#会话层主要三大功能:
1.建立会话
2.保持会话
3.断开会话


6.表示层

#表示层主要三大功能:
1.内码转换
2.压缩与解压缩
3.加密与解密。


7.应用层

#应用层功能:规定应用程序的数据格式。
例:TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了”应用层”。


以太网封装过程

OSI七层网络模型_ip地址_08