iso/osi七层模型

应用层 <-------------------------> 应用层 (APDU)
  |                                  |
  v                                  v
表示层  -------------------------- 表示层 (PPDU)
  |                                  |
  v                                  v
会话层  -------------------------- 会话层 (SPDU)
  |                                  |
  v                                  v
传输层  ---------------------------传输层 (TPDU)
  |                                  |
  v                                  v
网络层  -------------------------- 网络层 (报文)
  |                                  |
  v                                  v
数据链路层------------------------ 数据链路  (帧)
  |                                  |
  v                                  v
物理层 <=========================> 物理层 (比特)

 主机A                             主机B
  1. 应用层:用户接口
  2. 表示层:数据的表示形式、特定功能的实现(如数据加密)
  3. 会话层:对应用会话的管理、同步(根据应用决定应用数据(字节流)的传输,如加FTP头并传向传输层,或对一般文本编辑保存硬盘)
  4. 传输层:可靠与不可靠的传输(决定使用TCP或UDP,如有FTP头则加TCP头,在TCP或UDP头中增加源端口号和目标端口号)、传输前的错误检测、流控
  5. 网络层:提供逻辑地址(源IP地址和目标IP地址,加IP头)、选路
  6. 数据链路层:成帧、用MAC地址访问媒介、错误检测与修正
  7. 设备之间的比特流的传输、物理接口、电气特性等

MAC地址负责局域网通信,IP地址复制外网通信

TCP/IP四层模型

TCP/IP模型与OSI模型的对应:

osi七层模型               TCP/IP四层模型
-----------------------------------------------------
应用层                        应用层                                       用户进程
表示层                    (HTTP、FTP、Telnet...)                               ^
会话层                                                                         |
===================================================== <====套接字XTI      ==========
传输层                    传输层(TCP、UDP)                                     |
-----------------------------------------------------                          v
网络层               网络层(网际互联层)(IPv4、IPv6)                           内核
-----------------------------------------------------
数据链路层                  网络接口层
物理层                  (设备驱动程序与硬件)
-----------------------------------------------------
  1. 网络接口层与OSI模型中的物理层和数据链路层相对应,它负责监视数据在主机和网络之间的交换。事实上,TCP/IP本身并未定义该层的协议,而由参与互联的各网络使用自己的物理层和数据链路层协议,然后与TCP/IP的网络接入层进行连接。地址解析协议(ARP)工作在此层,即OSI参考模型的数据链路层。
  2. 网际互连层对于与OSI参考模型的网络层,主要解决主机到主机的通信问题。它所包含的协议设计数据包在整个网络上的逻辑传输。该层有三个主要协议:网际协议(IP)、互联网组管理协议(IGMP)、互联网控制报文协议(ICMP)。
  3. 传输层对应于OSI参考模型的传输层,为应用实体提供端到端的通信功能,保证了数据包的顺序传送及数据的完整性。该层定义了两个主要的协议:传输控制协议(TCP)和用户数据报协议(UDP)。
  4. 应用层对应于OSI模型的高层,为用户提供所需的各种服务,例如:FTP、Telnet、DNS、SMTP等。

IP地址

IP地址能够唯一标识主机。

IP地址分类:

-----------------------------------------------------------------------------
网络类别|        IP地址范围       |      私有IP地址范围       |  子网掩码
--------+-------------------------+---------------------------+--------------
   A    | 0.0.0.0~127.255.255.255 |  10.0.0.0~10.255.255.255  |  255.0.0.0
--------+-------------------------+---------------------------+--------------
   B    |128.0.0.0~191.255.255.255| 172.16.0.0~172.31.255.255 | 255.255.0.0
--------+-------------------------+---------------------------+--------------
   C    |192.0.0.0~233.255.255.255|192.168.0.0~192.168.255.255|255.255.255.0
-----------------------------------------------------------------------------

IP地址与子网掩码按位相与,所得及为网络地址(Network ID),将网络地址的0段换为255后,得到广播地址,网络地址与广播地址之间,即为该网段内可用主机地址。

如172.16.2.121,网络地址172.16.2.0,广播地址172.16.2.255

端口

一般而言一台主机能够同时运行许多网络应用,端口号用于区分不同应用。已经给流行的应用指定了特定的端口号,例如,web服务器使用80,SMTP使用25。

查看本机启用的端口(windows和unix均可使用):

netstat -an
# -a: 查看所有连接和监听端口
# -n: 显示IP地址和端口号,而不显示域名和服务名

DNS(Domain Name System)作用

在互联网中,通过IP地址进行通信,但IP地址记忆困难,所以使用域名来代表IP地址。

1.hosts文件

早期使用hosts文件解析域名(在windows下存储在C:\Windows\System32\drivers\etc\hosts),hosts文件做静态IP和域名对应,优先级高于DNS解析。但随着IP与域名的对应记录的增加,hosts文件解析效能会下降,而且主机维护困难。

DNS服务有着层次性,分布式的优点,在现在被用来做域名解析。

2.DNS服务

每个电脑都会配置有本地DNS服务器的IP地址,当电脑通过域名与其他主机进行通信时:

  1. 客户机向本地DNS服务器发送域名查询请求
  2. DNS服务器告知客户机域名对应的IP地址
  3. 客户机根据IP地址与其他主机进行通信

即本地客户机只需知道本地DNS服务器的IP地址,就可以凭借域名,访问其他主机

3.域名访问是如何找到正确的DNS并访问主机IP的?

  1. 首先域名是分层的:

    互联网中的域名是有结构和规划的:

    • 根域(.表示根域,根域名的服务器只用13台)
    • 顶级域(com, edu, gov, org, cn, uk等等,一般为组织域和国家地区域,由域名分配组织ISO决定)
    • 二级域(Microsoft, zhihu, douban,google等等,是自己申请的(需要购买))
    • 三级域(www, NEWS等,三级域名是申请完二级域名后自己规定的)

    三级域名.二级域名.顶级域名组成完整域名空间,此域名全球唯一。

  2. 下面是查询过程,以”www.zhihu.com”为例:

    1. 当你在浏览器输入域名http://www.zhihu.com/之后,浏览器会向本地DNS发送域名查询请求,本地DNS如果有对应的缓存则会找到对应IP并将IP返回,如果没有则会向根DNS服务器发送查询。
    2. 根DNS服务器知道所有的顶级域(其中包括com)的DNS服务器的IP,会把域名对应的顶级域的DNS服务器IP返回,本地DNS服务器继续向顶级域的DNS服务器(本例中是com)发送查询。
    3. 顶级域DNS服务器知道所有的二级域(其中包括zhihu)的DNS服务器的IP,会返回二级域DNS服务器IP,本地DNS服务器继续向二级域DNS服务器发送查询。
    4. 二级域DNS服务器知道所有的三级域(其中包括www)的主机对应的IP,它会返回正确的Web服务器IP给本地DNS服务器。
    5. 本地DNS服务器告知你Web服务器IP,之后你的电脑会通过IP与路由器找到Web服务器。

网关作用

  1. 网关在所有内网计算机访问的不是不是本网段的数据报时使用
  2. 网关负责将内网IP转换为公网IP,公网IP转换为内网IP(NAT: Network Address Translation)