Advertisement

TCP/IP 网络协议基础

阅读量:

纯手打,着重记忆红色字体部分和表格。

1. 预备知识

  1. mac 地址,为48位(6字节)地址,指的是网卡的唯一的硬件地址,交换机只能识别 mac 地址,负责局域网(内网)通信,局域网下的计算机应处于同一网段。
  2. IP 地址,IPv4为32位(4字节)地址,负责公网(外网)通信,可以访问不同网段。
  3. 模型分层是为了便于排查传输故障。
  4. ISO模式是理论模型,TCP/IP是事实上的标准。

2. ISO/OSI 七层模型

层级 名称 数据传输单位
7 应用层 APDU 应用层协议数据单元
6 表示层 PPDU 表示层协议数据单元
5 会话层 SPUD 会话协议数据单元
4 传输层 TPDU 传输协议数据单元,封装服务端口号
3 网络层 报文,封装收发双方的 IP 地址
2 数据链路层 数据帧,封装收发双方的 mac 地址
1 物理层 比特,进行实际的传输

1. 发送数据时,从应用层到物理层(顶层到底层),一级一级的封装。例如你在浏览器的地址栏中输入一个网址,就是浏览器提供给你的应用层接口,它最终被封装成网线中的二进制比特流;
2. 接收数据时,从物理层到应用层, 一级一级的解析;
3. 高3层为用户提供服务,其数据传输单位并无太大意义,如果数据不需要传输,则只会用到高3层。
4. 低4层为数据传输提供服务。

3. ISO/OSI 各层协议含义

应用层(7)

为用户提供接口。例如你在浏览器中输入的网址。地址栏就是程序为用户提供的接口。

表示层(6)

数据的表现形式。通过字符编码把字符解码成数据。特定功能的实现,如加密和压缩。

会话层(5)

对应用会话的管理、同步。

传输层(4)

  1. 指定传输协议,TCP是面向连接的可靠传输协议, UDP速度更快但不可靠。
  2. 传输前的错误检查,流量控制功能。
  3. 确定端口号,一台计算机中可以存在各种服务,例如,www 服务,mail 服务,ftp 服务,因此通过 ip 找到一台主机后,需要用端口号确定是何种服务。理论上各种服务的端口号是固定的。最多65535个端口号。
  4. 常用默认端口号如下:
    网页服务端口号:80
    邮件服务端口号:110(pop3,收) 和 25(smtp,发)
    文件传输服务端口号:21 (FTP协议监听端口)

网络层(3)

提供逻辑地址,即 ip 地址;选择通路,自动选择传输过程中的各个路由器。

数据链路层(2)

数据帧,用 mac 地址访问媒介,错误检测与修正,例如数据错误时的重发机制。

物理层(1)

  1. 定义设备之间比特流的传输、物理接口、电气特性等。
  2. 比特流,是实际传输的二进制数据。
  3. 物理接口,例如网线的 RJ45或键盘鼠标的 PS/2接口。
  4. 电气特性指一根网线的8根线中,哪几根负责数据传输,其余的是冗余的。

4. TCP/IP 四层模式

应用层(4)

对应 ISO 的应用层、表示层、会话层

传输层(3)

  1. 对应 ISO 的传输层
  2. 为应用层实体提供端到端的通信功能,保证了数据包的正确传送及数据的完整性。
  3. 该层有2个主要协议:

传输控制协议(TCP)

  1. 可靠的面向连接的协议,发错则重发,不会丢失,因此可靠。
  2. 三次握手,因此需要连接。好比打电话。A 问 B,你在吗,B 回 A,我在,A 回 B,我也还在,则可进行通信。
  3. 例如网页,邮件用此协议。

用户数据包协议(UDP)

  1. 不可靠的无连接的协议,头信息更短,因此速度更快,但数据可能丢失。
  2. 例如QQ 聊天用此协议。

网际互联层(2)

  1. 对应 ISO 的网络层
  2. 主要解决主机到主机间的通信问题。
  3. 它所包含的协议设计数据包在整个网络上逻辑传输。该层有3个主要协议:

网际协议(IP)

互联网组管理协议(IGMP)

互联网控制报文协议(ICMP)

ping 命令用此协议。

网络接口层(1)

  1. 对应 ISO 的数据链路层、物理层。
  2. 负责监视数据在主机和网络之间的交换。
  3. 事实上,TCP/IP 协议并未定义该层的协议,而由参与互连的各网络使用自己的物理层和数据链路层协议,然后与 TCP/IP的网络接入层进行连接。
  4. 地址解析协议(ARP)工作在此层,即 ISO参考模型中的数据链路层,用于解析 mac 地址。

5. 数据封装过程

从顶层到底层,加入各层各自的头信息。

6. IP 地址

  1. IP包头的长度不确定,因此浪费资源。
  2. 32位地址,最多可表示255^4=40多亿个。
  3. 不同网段的 IP地址相互通信需要路由器。
  4. 各类的主机数实际上是由子网掩码决定的。
  5. 私有 IP 地址,即内网 IP,不能直接访问公网,不需要付费。
  6. 公网 IP 地址,需要付费。
  7. IP 和子网掩码必须一起使用,因为子网掩码决定以多少位表示 IP 地址网段,单独使用没有意义。
  8. IP地址在网络层封装。

7. IP地址分类

依据子网掩码,即以不同位数表示网段,分成三类:

A 类

左边1个字节表示不同网段,后面3个字节表示不同主机

B 类

左边2个字节表示不同网段,后面2个字节表示不同主机

C 类

左边3个字节表示不同网段,后面1个字节表示不同主机

8. 子网掩码

二进制形式为1位即是网段的范围。

1. 标准子网掩码

255.0.0.0
255.255.0.0
255.255.255.0

2. 变长子网掩码

不必用1到3个255表示,但二进制形式为1的位必须连续。

9. 各种地址的辨析

IP地址,子网掩码,网络地址,广播地址之间的关系。

名称 含义
IP Address IP 地址 包括网络位、子网位、主机位
Subnet Mask 子网掩码 决定用多少位表示网段
Network ID 网络地址 IP 地址和子网掩码按位与,即该网段的第一个地址
广播地址 最右侧的字节为255,即该字节各位都为1

广播地址是专门用于同时向网络中所有工作站进行发送的一个地址。

10. 端口的作用

  1. 端口用16位数字表示,最大为65536.
  2. 在传输层进行封装。
  3. 服务器的端口号若进行更改,则相当于隐藏,客户端就访问不到了。
  4. TCP 包头 有20字节。
  5. UDP包头更加简单,所以更快。
  6. 10000以内的端口号给系统用,其他的开发时随意用。

netstat 命令

用于查看本机启用的端口。

查看结果中,UDP协议没有状态那一列,因为 UDP不是面向连接的,不需要监听,直接发信。

实例

想要知道你连接的游戏的服务器的 IP地址,可以先把其他端口都关掉,然后连接游戏,再用此命令查看正在连接中的 IP 就是要找的 IP 地址。

11. DNS 的作用

  1. 域名系统,作用是域名解析,将域名解析成 IP 地址
  2. 必须配置 DNS 地址才能访问互联网
  3. 域名到 IP 为正向查询,如网页。
  4. IP 到域名为反向查询,如邮件。

hosts 文件

静态的 IP 和域名对应关系,优先于 DNS

域名空间结构

也叫完全合格域名,全球唯一,只要完全合格域名正确,一般就不是钓鱼网站,因为一般认为 DNS 不会被劫持。

域名 含义
根域 用点分隔,便于分级管理
顶级域 国家、地区、组织
二级域 apple, google
主机名 www, NEWS

域名服务器中,一级(顶级)域名管理二级域名,二级域名管理三级(主机)域名。一级一级的查询。

解析过程

  1. 先查询本地域名服务器,若果有缓存,则直接获得 IP 地址。(递归查询)
  2. 否则,询问根 DNS 服务器,再询问顶级域服务器,再询问二级域服务器,再询问主机域服务器,至此,得到要访问的IP 地址。(迭代查询)
  3. 最终用此 IP 地址访问目标 web 服务器。

12. 网关的作用

交换机

  1. 交换机会记录计算机的 mac 地址(交换机是二层设备,不认识 IP 地址),因此可进行局域网通信。
  2. 交换机的作用是在同一个网段的内网中通信。

网关

  1. 网关可以理解为路由器,可以用来访问不同网段。
  2. 网关的作用是将内网 IP 翻译成公网 IP。
  3. 路由要按照路由协议一级一级的传递。
  4. 如果只配置 IP 地址和子网掩码,则可以访问局域网。
  5. 必须配置全网关和 DNS 才能访问公网。

13. 参考

Linux 网络管理

全部评论 (0)

还没有任何评论哟~