TCP/IP 七层模型
一.网络通信原理
1.OSI模型
(1)OSI模型的由来
1945年2月14号世界上第一台计算机研发成功,名字叫ENIAC 挨尼阿克
1969年出现世界上第一个计算机网络,APNET 阿帕网,还有其他小网络例如HP,DEC,IBM等
统一标准:国际标准化组织 ISO在1984年制定了网络标准。
OSI模型 :open system interconnection开放式系统互联模型
(2)OSI模型的内容
应用层
表示层
会话层
传输层
网络层
数据链路层
物理层
2.TCP/IP模型
(1)TCP/IP五层模型
应用层 http 超文本传输协议
ftp 文件传输协议
telnet 远程登录
dns 域名服务
传输层 tcp 传输控制协议
udp 用户数据报协议
网络层 ip 网络协议
icmp 网络控制消息协议
arp 地址解析协议
数据链路层
物理层
(2)TCP/IP四层模型
应用层
传输层
网络层
网络接口层
3.TCP/IP数据传输过程
发送方封装数据,接收方解封装数据。
封装:包装
应用层 数据 裸数据 data
传输层 TCP头部+数据 数据段 segment
网络层 IP头部+TCP头部+数据 数据包 packet
数据链路层 MAC头部+IP头部+TCP头部+数据+尾部 数据帧 frame
物理层 比特流 比特流 bit
报头+数据 协议数据单元 pdu
4.TCP/IP每层对应的物理设备
应用层 计算机
传输层 防火墙
网络层 路由器
数据链路层 交换机
物理层 网线、网卡
7.IP地址
(1)IP地址的表示方法
ipv4 使用32位2进制数表示IP地址,分为4段,每段8位,中间用.来分隔,书写时使用10进制来表示
(2)IP地址分为两部份
网络位:网络位代表主机所在的范围
主机位:主机位代表一台真正的计算机
(3)每类IP地址的网络位和主机位
A 网络位.主机位.主机位.主机位
B 网络位.网络位.主机位.主机位
C 网络位.网络位.网络位.主机位
(4 )IP地址分类
A 1-127
B 128-191
C 192-223
D 224-239
E 240-255
(5)特殊IP地址
网络位任意,主机位全0 192.168.1.0 网络号,网段
网络位任意,主机位全1 192.168.1.255 广播地址
网络位全0,主机位全0 0.0.0.0 任意地址,常用于设置默认路由
网络位全1,主机位全1 255.255.255.255 全局广播地址
网终位127,主机位任意 127.0.0.1 本地回环地址,代表自己
(6)私有IP地址
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
8.子网掩码
(1)示方法
网络位全1,主机位全0
192.168.1.1 172.16.0.1 10.0.0.1
255.255.255.0 255.255.0.0 255.0.0.0
(2)子网掩码的作用
计算机判断主机之间是否能够通信的标准:网络号一样
二.物理层和数据链路层
1.物理层
(1)物理层传输介质
有线介质
双绞线 类型:屏蔽双绞线 非屏蔽双绞线
型号:cat5,cat5e,cat6,cat7
最大传输距离100M
水晶头制作规范: T568B:橙白、橙、绿白、蓝、蓝白、绿、棕白、棕
网线的制作类型:直通线:两头一样 连接不同设备 PC----交换机
交叉线:两头不一样 连接相同设备 PC-----PC
全反线:console接口
光纤 类型:单模,多模
无线介质 :无线电,微波,激光,红外线
(2)物理层设备
网卡 每块网卡都有一个全球唯一的硬件地址(mac地址)
中继器 放大信号,延长数据传输距离,只有两个接口。
集线器 多端口中继器,同时为多台电脑放大信号,组建一个星型拓扑的网络。
2.数据链路层(以太网)
(1)什么是以太网
通过交换机把电脑连接在一起,构成的网络就是局域网,也叫以太网 ethernet
(2)以太网的问题
同一时刻只能有一台主机发送数据帧,如果有多台主机发送数据帧,数据就会产生
碰撞,最终都无法发送数据帧。
(3)解决数据帧碰撞问题
CSMA/CD:载波侦听多路访问/冲突检测
每次发数据帧前,先发送一个检测数据帧,如果检测到有数据帧正在发送,则等待一会,
再次发送检测数据帧,如果检测到没有数据帧在发送,则立刻发送数据帧。
集线器:平面式的交通
交换机:立体式的交通
(4)以太网的mac地址
48位2进制数来表示,前24位是厂商编号,后24位是网卡的生产编号,第8位为0是单播地址,第8位1是组播地址。
单播地址:一对一
组播地址:一对多
广播地址:一对所有 FF-FF-FF-FF-FF-FF
书写的时候使用16进制,12位16进制数 mac地址:00-D8-61-EA-F1-CA
查看本机的MAC地址:ipconfig /all
更改MAC地址:
网卡--更改适配器设置--ethernet0--属性--配置--高级--locally administratorered address--值 “000c2900000
(5)以太网帧格式
目的地址 源地址 类型 数据 帧校验序列
--------- --------- ------- ---------------- -------------
6字节 6字节 2字节 46-1500字节 4字节
目的地址:目标主机的MAC地址 源地址:发送端主机的MAC地址 类型:此数据在网络层是由哪个协议进行的封装 ip,icmp,arp。
一个以太网数据帧的大小:报头+数据+报尾
(6)以太网的命名方法
速率: 10兆、100兆、1000兆、 网线,网卡,交换机。
信号:基带 base
介质:双绞线 TX , 光纤 FX
3.以太网交换机
(1)交换机:交换机是把电脑连接在一起的设备,构成一个局域网。
(2)交换机工作原理
交换机根据MAC地址表转发数据帧,MAC地址表默认是空白的,交换机需要通过学习数据帧的源MAC地址来形成MAC地址表。
学习:学习数据帧源MAC地址和交换机端口的对应关系
广播:向除了进口之外的所有端口广播
转发:根据MAC地址表转发数据帧
更新:MAC地址表中记录生存时间为300秒
(3)交换机端口的双工模式
单 工: 一个信道,只能接收或发送数据。
半双工 half: 一个信道,不能同时接收和发送数据。
全双工 full : 二个信道,同时接收和发送数据。
(4)冲突域和广播域
冲突域:同一时刻发送数据帧会产生冲突的网络节点的集合。 解决冲突:交换机。(交换机的每个端口都是一个独立的冲突域。)
广播域:能够接收到广播消息的网络节点的集合。 解决广播:路由器。(路由器的每个端口都是一个独立的广播域。)
路由器的主要功能就是屏蔽广播数据包,提高网络性能。
三.网络层
1.网络层的功能:定义了IP地址,连接不同的网络,选择最佳路径。
2.IP数据报报头字段
报头的大小:共分为5行 ,每行4个字节,一共20个字节。
ip数据报
-----------------------------------------------------------------------------------------
第1行 版本号 | 首部长度 | 优先级与服务类型 | 总长度 4字节
-----------------------------------------------------------------------------------------
第2行 标识符 | 标志 | 段偏移量 4字节
-----------------------------------------------------------------------------------------
第3行 TTL | 协议号 4字节
-----------------------------------------------------------------------------------------
第4行 源地址 4字节
-----------------------------------------------------------------------------------------
第5行 目标地址 4字节
-----------------------------------------------------------------------------------------
第6行 扩展报头 0-40字节
-----------------------------------------------------------------------------------------
第7行 数据 200字节
-----------------------------------------------------------------------------------------
版本号: 当前IP地址的版本 首部长度: IP报头字节的数量(20-60字节之间)
优先级与服务类型: 此IP数据报是否需要优先发送 总长度: 报头加数据的总的大小
标识符 : IP数据报的编号 标志: 当前数据是否经过分段
段偏移量:当前分段距离初始位置的数值 TTL: time to live 生存时间 (每个数据报发出去时,会添加一个生存时间,windows128、 linux 64 、网络设备 255。)
(数据包每经过一个路由器(一跳),TTL会减1,当TTL为0时,任何路由器都拒绝转发此数据包。)
协议号: 此数据在被IP协议封装之前,还被哪些协议封装过。(例:1 icmp 6 tcp 17 udp )
3.IP数据包封装过程地址分析: 网络层地址始终不变,数据链路层地址不断变化。
4.ICMP协议(网络控制消息协议)
作用:探测网络连接情况 手段:ping -t 目标IP或目标主机名 双向,有去有回。
(1) 消息提示
reply from 正常访问
request timed out 请求超时
destination host unreachable 目标主机不可达
(2) icmp报文类型:
echo 8 请求
echo replay 0 回应
5.ARP协议(地址解析协议)
作用:ip地址=>mac地址
解析的方式:发送arp广播,得到mac地址后,缓存到arp缓存表中
四.传输层和应用层
1.传输层
端口号:每台主机都有65535个端口。(数据从发送端口主机的某一个端口出去,发送到接收端主机的某一个端口。)
传输层只负责定义端口号,真正负责传输数据是网络层和数据链路层。传输层负责数据端(端口号)到端的传输,网络层负责数据点到点的传输。
2.传输层协议
--TCP:传输控制协议 面向连接的可靠的协议,传输效率低。
--UDP:用户数据报协议 面向非连接的不可靠的协议,传输效率高。
3.TCP报头的格式
TCP报头
---------------------------------------------------------------------------------------
第1行 源端口号 | 目标端口 4字节
---------------------------------------------------------------------------------------
第2行 序列号 4字节
---------------------------------------------------------------------------------------
第3行 确认号 4字节
---------------------------------------------------------------------------------------
第4行 首部长度|保留位| 控制位(syn,ack,fin,rst,urg,psh)| 窗口大小 4字节
---------------------------------------------------------------------------------------
第5行 校验和 | 紧急指针 4字节
---------------------------------------------------------------------------------------
第6行 可选项 0-40字节
---------------------------------------------------------------------------------------
第7行 数据
源端口:数据从发送端主机的哪个端口出去,192.168.1.1:1038 。 目标端口:数据要发送到目标主机的哪个端口, 192.168.1.2:80。
序列号:TCP数据报的编号 确认号:确认收到TCP数据包后,告诉发送端到底接收到了哪个数据段。(确认号=发送端发送的TCP数据报的序列号+1)
控制位: syn ,ack, fin, rst, urg, psh。
一些特定的开关: 0 =关闭,1=开启。/ syn=1 发起连接的报文 / ack=1 确认报文 / fin=1 中断连接的报文
4.TCP三次握手:使用TCP协议传输数据的过程。
建立连接--------传输数据----------释放连接
主机A 主机B
---------------------------------------------------------------------------------------------------
第一次 序列号 0
控制位 syn=1
----------------------------------------------------------------------------------------------------
第二次 回应:
确认号 0+1=1
控制位 ack=1
连接请求:
序列号 0
控制位 syn=1
------------------------------------------------------------------------------------------------------
第三次 序列号 1
确认号 0+1=1
控制位 ack=1
-------------------------------------------------------------------------------------------------------
5.TCP四次挥手:中断连接.
主机A 主机B
-----------------------------------------------------------------------------------------
第一次 我要跟你分手
fin=1 ack=1
-----------------------------------------------------------------------------------------
第二次 我知道了
ack=1
------------------------------------------------------------------------------------------
第三次 我也要跟你分手
fin=1 ack=1
------------------------------------------------------------------------------------------
第四次 我知道了
ack=1
------------------------------------------------------------------------------------------
6.TCP计时器
(1)TCP重传计时器
主机在发送完数据后,会立刻开启一个时间为60秒的重传计时器,如果在60秒
内没有接收到接收端的确认报文,则重传数据。
(2)TCP保活计时器
当客户机连接到网站服务器后,网站服务器会开启一个时间为2小时的保活计时器,
如果在2小时内,客户端没有任何活动,服务器则每隔75秒给客户机发送一个探测
数据段,一共发送10个,如果客户端还是没有任何反应,则断开连接。
7.基于TCP的应用层协议
1. http 80\tcp 2. ftp 21\tcp 3. telnet 23\tcp 4. dns 53\tcp
记录所有协议和端口号的文件: C:\Windows\System32\drivers\etc\services
8.UDP协议
(1)UDP报头结构
UDP报头
-------------------------------------------------------------------------------------------
第1行 源端口号 | 目标端口号 4字节
-------------------------------------------------------------------------------------------
第2行 UDP长度 | UDP校验和 4字节
-------------------------------------------------------------------------------------------
第3行 数据
-------------------------------------------------------------------------------------------
(2)基于UDP的应用层协议
1. tfty 69/udp 2. dns 53/udp 3. ntp 123/udp 4. rpc 111/udp