01.iso网络七层模型以及实现
一 iso网络七层模型
******************* 一,iso网络七层模型 ********************
A 主机 B 主机 单位
7,应用层 <------------应用层协议-------------> 应用层 APDU
接口| |
6,表示层 <------------ 表示层协议 -----------> 表示层 PPDU
接口 | |
5,会话层 <------------ 会话层协议 -----------> 会话层 SPDU
接口 | |
4,传输层 <------------ 传输层协议 -----------> 传输层 TPDU
接口 | |
3,网络层 <------------ 网络层协议 -----------> 网络层 报文
接口 | |
2, 数据链路层 <------- 数据链路层协议 -------> 数据链路层 帧
接口 | |
1,物理层 <------------- 物理层协议 ---------> 物理层 比特
tip
在制定TCP/IP
之前就是已经提出了iso网络七层模型
的理念了,TCP/IP
的这一已经实现使用的网络协议正是基于这个模型理念来实现的。
二 TCP/IP四层模型
tip
尽管TCP/IP
是基于iso网络七层模型
的理念实现的,但还把原来的七层简化为四层.
应用层,表示层,会话层 -------> 应用层 (7,FTP 8,SSH)
传输层 -------> 传输层 (5,TCP 6,UDP)
网络层 -------> 网际互联层 (2,IP,3,IGMP,4,ICMP)
数据链路层,物理层 -------> 网络接口层 (1,ARP)
1,ARP
ARP - 地址解析协议(Address Resolution Protocol)
ARP - 用于通过 IP 来查找基于 IP 地址的计算机网卡的硬件地址。
命令:
(1),查看计算机本地解析IP对应MAC地址
# arp -a
2,IP 网际协议(Internet Protocol)
IP 负责计算机之间的通信。
IP 负责在因特网上发送和接收数据包。
3,IGMP
Internet 组管理协议称为IGMP协议(Internet Group Management Protocol),
是因特网协议家族中的一个组播协议。
该协议运行在主机和组播路由器之间。IGMP协议共有三个版本,即IGMPv1、v2 和v3。
4,ICMP
ICMP - 因特网消息控制协议(Internet Control Message Protocol)
ICMP 负责网络中的错误处理。
5,TCP
传输控制协议
TCP 用于从应用程序到网络的数据传输控制。
TCP 负责在数据传送之前将它们分割为 IP 包,然后在它们到达的时候将它们重组
6,UDP
UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,
是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,
提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。UDP在IP报文的协议号是17。
例 : FPT封装过程
应用数据 字节流(数据)
应用层 FTPc - 字节流(数据)
传输层 TCF - FTP(21端口) - 字节流(数据)
网络层 IP头 - FTP(21端口) - 字节流(数据)
数据链路层 以太帧头 - IP - FTP(21端口) - 字节流(数据)
7,FTP
FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。
用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。
基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。
在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。"下载"
文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝
至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。
8,SSH
SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建
立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性
的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一
个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于
多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平
台,都可运行SSH。
一,IPV4详情
1,IP总数量(255*255*255*255 = 4 228 250 625(42亿多))
2,IP地址分类
A类 : IP地址范围 1.0.0.0 - 126.255.255.255 (2^24-2的数量)。 私有的IP范围 10.0.0.0 - 10.255.255.255 (1千6百多万)
B类 : IP地址范围 128.0.0.0 - 191.255.255.255 (2^16-2的数量) 。私有IP范围 172.16.0.0 - 172.31.255.255
(127.0.0.1代表当前的计算机)
B类 : IP地址范围 192.0.0.0 - 223.255.255.255 (2^8-2的数量) 。 192.168.0.0 - 192.168.255.255
二,通过IP地址和子网掩码计算本机的网络地址和广播地址
如:IP(192.168.2.187),子网掩码是(255.255.255.0)
IP(二进制) 11000000:10101000:00000010:00000000
子网掩码 11111111:11111111:11111111:00000000
网络地址 11000000:10101000:00000010:00000000 (将IP与子网掩码逻辑与运算,即网络地址十进制是:192.168.2.0)
广播地址 11000000:10101000:00000010:11111111 (十进制是:192.168.2.255,就是将主机段的最大值255)
三,端口总结(1-65536)
(1),在计算机每开启一服务,如果需要远程交换数据,则默认打开端口号,远程数据通过端口号与远程交换数据。(如果不是刻意去修改端口号,以端口号,大概知道是运行什么类
(2),常见端口
FTP(文件传输协议) 20,21
SSH(安全的shell协议) 22
telnet(远程登录协议) 23
DNS(域名系统) 53
http(超文本传输协议) 80
SMTP(简单邮件传输协议)25
POP3(邮局协议3代) 110
(3),查看本机端口
# netstat -an
选项:
-a 查看所有连接和监听的端口
-n 显示IP地址和端口号,(而不显示域名和服务名)
(4),UDP协议不监听远程端口号(不进行握手)。
四,DNS(domain name system)域名解析
(1),本机的host域名配置静态IP地址的优先级别高于公网。这有什么用?(可以在windows的配置个静态的IP,这样在Xshell的连接时是IP固定的而不随机)。
(2),DNS解析流程
本机---(1,发送网址,如:www.baidu.com)--->DNS服务器---(2,将网址解析成IP)--->本机---(以IP访问,www.baidu.com)--->百度服务器。
(2),DNS查询分类
1,从查询方式分
(1),递归查询
返回查询成功或失败的响应。一般客户机和DNS服务器之间的属于递归查询。即向DNS服务器发出请求,如果当前的DNS服务器查询不到,就向别的DNS
发起DNS解析请求,直到不停地请求和计算出结果。返回客户机结果。
(2),迭代查询
服务器收到一次迭代查询回复一次结果,这个结果不一定是目标IP与域名的直接映射关系。也可以是其它的DNS服务器的地址。
2,从查询内容上分
(1),正向查询,由域名-->IP
(2),反向查询,IP-->域名
(北京DNS服务器。主:202.106.0.20;备:114.114.114.114)
五,局域网
(1),交换机
负责局域网间的通信。所以只仅是局域网通信,可以没有配置网关,DNS,子网掩码。
(2),网关(网间连接器)
负责将局域网的IP转为公网IP实现公网通信
linux的网络配置
一,查看和临时配置IP
1,查看
# ifconfig
2,临时配置
# ifconfig eth0 [IP地址] netmask [子网掩码
3,网卡配置文件
(示例)
vim /etc/syconfig/network-script/ifcfg-eth0
DEVICE=eth0 网卡设备名
BOOTPROTO=none 是否自动获取IP(none,static,dhcp)
HWADDR=XX:XX:XX:XX:XX:XX MAC地址
NM_CONTROLLED=yes 是否可以由Network Manager图形管理工具托管
ONBOOT=yes 是否随网络服务启动,eth0生效
TYPE=Ethernet 类型为以太网
UUID="xxxx-xxxx-xxxx-xxxx-xxxx" 唯一识别码
IPADDR=xxx.xxx.xxx.xxx IP地址
NETMASK=255.255.255.0 子网掩码
GATWAY=192.168.0.1 网关
DNS1=xxx.xxx.xxx.xxx DNS
IPV6INIT=no IPV6没有启用
USERCTL=no 不允许非root用户控制此网卡
4,关于VMware使用Linux的静态IP
1,不能联外网
(1),在 /etc/sysconfig/network-script/eth0lk加入
check_link_down(){
return 1;
}
(2),虚拟机的网络配置:仅主机模式
(配置的静态IP地址是DHCP随机分配的,# ifconfig 查看的IP就是了。缺点是不能联网)
(3),在VMware的网络配置选择:仅主机模式与主机共享专有网络
2,能联网
(1),windwos下的的真实网卡的IP和DNS自动获取
(2),VMwarer 的网络配置选择:net桥接模式
(3),cmd输入 ipconfig -all 将 VMnet8 的网卡信息写入eth0网卡的配置文件
# vim /etc/sysconfig/network-scripts/ifcfg-eth0
# service network
(4),修改指定桥接的网卡
编辑-->虚拟网络编辑器t(自己选择当前使用的网卡)
5,局域网主机名
(1),临时修改局域网主机名
# hostname [主机名]
优点:立即生效
缺点:临时生效
(2),永久修改主机名
# vim /etc/sysconfig/network
优点:永久生效
缺点:重启生效
6,DNS配置文件
# vim /etc/resolv.conf
7,网络常用命令
(1),查看网卡的配置信息
# ifconfig
(2),启用和关闭网卡
# ifdown [网卡名] (禁用网卡)
# ifup [网卡名] (启用网卡)
8,查看本机DNS
# nslookup [任意可用域名]
9,相看本机网关
# netstat -rn (# route -n)
10,netstat命令选项
-t:列出tcp协议端口
-u:列出udp协议端口
-n:不使用域名和服务名,面使用IP地址和端口号
-l:列出监听状态的网络服务
-a:列出所有的网络连接
网络测试或应用命令
1,ping测试指定的IP或域名是否和本机能连接
# ping [IP或域名]
2,telnet 测试指定IP 23端口是否开启
# telnet [IP] [端口]
3,路径由追踪命令,查看数据包经过哪些节点
# traseroute [域名]
4,下载文件
# wget [下载链接]
5,数据包抓取
例: # tcpdump -i eth0 -nnX port 21
选项:
-i 指定网上的接口
-nn 将数据包中的域名与服务转为IP和端口
-X 以十六进制和ASCII码显示数据包内容
port 指定监听的端口
6,测试指定的端口是否开启
# tcping ip:端口
(# yum -y install tcping)
7,路径测试
# traceroute ip
(# yum -y install traceroute)
SSH协议的连接使用
1,ssh登录另一台服务器
# ssh [用户名]@[IP]
2,文件下载
# scp [-r] [用户名]@[IP]:[文件路径] [本地路径]
3,文件上传
# scp [-r] [本地文件] [用户名]@[IP]:[上传远程主机文件路径]