【1.3.1】网络协议(TCP/IP)

网络协议是网络运行的基石。在网络中,网络设备、传输介质、网卡又各有不同,数据在传输过程中也会使用不同的规则进行传输,而这些规则是依靠网络协议完成的,本节将介绍网络协议的相关知识。

一、什么是网络协议

网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合,它规定了通信时信息必须采用的格式和这些格式所代表的意义。网络协议使网络上各种设备能够相互交换信息。

网络中存在着许多协议,接收方和发送方使用的协议必须一致,否则一方将无法识别另一方发出的信息。而 TCP/IP 协议就是一种常见的协议,Internet 上的计算机使用的就是该协议。

二、TCP/IP 协议

TCP/IP 协议是 Internet 网络的基础协议,它不是一个协议,而是一个协议族的统称。

起初,TCP/IP 是一门新的通信技术,这项新技术主要用于国防军事上,是为了在通信过程中,即使遭到了敌人的攻击和破坏,也可以经过迂回线路实现最终通信,保证通信不中断。

在 20 世纪 70 年代前半叶,ARPANET(全球互联网的祖先)中的一个研究机构研发了 TCP/IP,直到 1983 年成为 ARPANET 网络中唯一指定的协议,后来逐步演变为现有的 TCP/IP 协议族。

TCP/IP 协议族包括 TCP 协议、IP 协议和 ICMP 协议和 HTTP 协议等。

三、TCP/IP 协议层次结构

以下是TCP/IP分层模型

        ┌────------────┐┌─┬─┬─-┬─┬─-┬─┬─-┬─┬─-┬─┬─-┐
  │        ││D│F│W│F│H│G│T│I│S│U│ │
  │        ││N│I│H│T│T│O│E│R│M│S│其│
  │第四层,应用层 ││S│N│O│P│T│P│L│C│T│E│ │
  │        ││ │G│I│ │P│H│N│ │P│N│ │
  │        ││ │E│S│ │ │E│E│ │ │E│它│
  │        ││ │R│ │ │ │R│T│ │ │T│ │
  └───────------─┘└─┴─┴─-┴─┴─-┴─┴─-┴─┴─-┴─┴-─┘
  ┌───────-----─┐┌─────────-------┬──--------─────────┐
  │第三层,传输层 ││   TCP   │    UDP    │
  └───────-----─┘└────────-------─┴──────────--------─┘
  ┌───────-----─┐┌───----──┬───---─┬────────-------──┐
  │        ││     │ICMP│          │
  │第二层,网间层 ││     └──---──┘          │
  │        ││       IP            │
  └────────-----┘└────────────────────-------------─-┘
  ┌────────-----┐┌─────────-------┬──────--------─────┐
  │第一层,网络接口││ARP/RARP │    其它     │
  └────────------┘└─────────------┴─────--------──────┘

TCP/IP协议被组织成四个概念层,其中有三层对应于ISO参考模型中的相应层。ICP/IP协议族并不包含物理层和数据链路层,因此它不能独立完成整个计算机网络系统的功能,必须与许多其他的协议协同工作。

TCP/IP分层模型的四个协议层分别完成以下的功能:

2.1 第一层:网络接口层(网络访问层)

  包括用于协作IP数据在已有网络介质上传输的协议。实际上TCP/IP标准并不定义与ISO数据链路层和物理层相对应的功能。相反,它定义像地址解析协议(Address Resolution Protocol,ARP)这样的协议,提供TCP/IP协议的数据结构和实际物理硬件之间的接口。

网络访问层是TCP/IP协议栈的最底层,它提供物理网络的接口,实现对复杂数据的发送和接收。网络访问层协议为网络接口、数据传输提供了对应的技术规范。

在 TCP/IP 协议中,网络访问层对应 OSI 七层网络模型的物理层和数据链路层。下面依次介绍这两个层的作用。

2.1.1 物理层

物理层是 OSI 七层网络模型中的第 1 层,它虽然处于最底层,却是整个开放系统的基础。在进行数据传输时,物理层的作用是提供传送数据的通路和可靠的环境。

对于计算机来说,物理层对应的就是网络适配器(通常意义上的“网卡”)。

根据网络适配器的存在方式,可以分为两类。 第一类是物理网络适配器,如有线网卡、无线网卡。 第二类是虚拟网络适配器,如宽带拨号连接、VPN 连接等。

显示计算机上的网络适配器信息,执行命令如下:

root@daxueba:~# netwox 169

输出信息如下:

Lo0 127.0.0.1 notether
Lo0 ::1 notether
Eth0 192.168.59.131 00:0C:29:CA:E4:66
Eth0 fd15:4ba5:5a2b:1008:20c:29ff:feca:e466 00:0C:29:CA:E4:66
Eth0 fd15:4ba5:5a2b:1008:61f8:89cd:3207:9d0 00:0C:29:CA:E4:66
Eth0 fe80::20c:29ff:feca:e466 00:0C:29:CA:E4:66

从输出信息可以看到,该计算机中存在两类网络适配器,分别为 Lo 和 Eth。其中,Lo 表示回环接口,它是虚拟网络适配器;Eth 为以太网网络适配器。

如果同类型设备有多个,会在后面添加数字编号。编号从 0 开始,表示该类型的网络接口的第一个设备。

2.1.2 数据链路层

数据链路层是 OSI 七层网络模型中的第 2 层,介于物理层与网络层之间,用来为网络层提供数据传送服务。它定义了数据传输的起始位置,并且通过一些规则来控制这些数据的传输,以保证数据传输的正确性。

由于数据链路层完成以上两个独立的任务,所以相应地划分为两个子层,其含义如下:

  • 介质访问控制(Media Access Control,MAC):提供与网络适配器连接的接口。实际上,网络适配器驱动程序通常被称为 MAC 驱动,而网卡在工厂固化的硬件地址通常被称为 MAC 地址。
  • 逻辑链路控制(Logical Link Control,LLC):这个子层对经过子网传递的帧进行错误检查,并且管理子网上通信设备之间的链路。

2.2 第二层:网间层

  对应于OSI七层参考模型的网络层。本层包含IP协议、RIP协议(Routing Information Protocol,路由信息协议),负责数据的包装、寻址和路由。同时还包含网间控制报文协议(Internet Control Message Protocol,ICMP)用来提供网络诊断信息。

2.3 第三层:传输层

  对应于OSI七层参考模型的传输层,它提供两种端到端的通信服务。其中TCP协议(Transmission Control Protocol)提供可靠的数据流运输服务,UDP协议(Use Datagram Protocol)提供不可靠的用户数据报服务。  

2.4 第四层:应用层

  对应于OSI七层参考模型的应用层和表达层。因特网的应用层协议包括Finger、Whois、FTP(文件传输协议)、Gopher、HTTP(超文本传输协议)、Telent(远程终端协议)、SMTP(简单邮件传送协议)、IRC(因特网中继会话)、NNTP(网络新闻传输协议)等,这也是本书将要讨论的重点

参考资料

药企,独角兽,苏州。团队长期招人,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn