第二章 TCP-IP基础知识
2.1 TCP/IP的标准化
-
2.2.1 TCP/IP的具体含义
- 利用IP进行通信时所必须用到的协议群的统称
- TCP/IP协议群:
(1)应用协议:HTTP,SMTP,FTP,TELNET,SNMP
(2)传输协议:TCP,UDP
(3)网际协议:IP,ICMP,ARP
(4)路由控制协议:RIP,OSFP,BGP
-
2.2.2 TCP/IP标准化精髓
- 一是具有开放性,二是要注重实用性,即被标准化的协议能否被实际运用
-
2.2.3 TCP/IP规范—RFC
- RFC文档通过编号组织每个协议的标准化请求
2.2 互联网基础知识
-
2.2.1 互联网定义
- The Internet为互联网,表示不同区域网的连接
Internet指网际网,专门指代网络之间的连接
- The Internet为互联网,表示不同区域网的连接
-
2.2.2 互联网与TCP/IP的关系
- 互联网进行通信时,所使用的协议即为TCP/IP
-
2.2.3 互联网的结构
- 互联网中每个网络都是由骨干网和末端网组成的。每个网络之间通过NOC(网络操作中心)相连,不同网络运营商其连接方式也有所不同,连接这些异构网络需要IX(网络交换中心)的支持。
总之,互联网就是众多异构的网络通过IX互连的巨型网络(图2.5)
- 互联网中每个网络都是由骨干网和末端网组成的。每个网络之间通过NOC(网络操作中心)相连,不同网络运营商其连接方式也有所不同,连接这些异构网络需要IX(网络交换中心)的支持。
-
2.2.4 ISP和区域网
- ISP为网络供应商网络,即我们用的电信移动联通;
区域网为在特定区域由团体或志愿者所运营的网络
- ISP为网络供应商网络,即我们用的电信移动联通;
2.3 TCP/IP 协议分层模型
-
2.4.1 TCP/IP与OSI参考模型
- (1)OSI参考模型:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
- (2)TCP/IP参考模型:应用层(应用程序)、传输层与互联网层(操作系统)、网卡层与硬件(设备驱动程序与网络接口)
-
2.4.2 硬件(物理层)
- 最底层,是负责数据传输的硬件,这种硬件就相当于以太网或电话线路等物理层设备
-
2.4.3 网络接口层(网卡层/数据链路层)
- 利用以太网中的数据链路层进行通信,因此属于接口层;
其同时也可以被认为是NIC起作用的“驱动程序”,使互联网层的数据变成可以由数据链路层传输的信息
- 利用以太网中的数据链路层进行通信,因此属于接口层;
-
2.4.4 互联网层(网络层)
- (1)定义:使用IP协议基于IP地址转发分包数据,其与传输层的功能通常由操作系统提供
- (2)主要的相关协议:
① IP:跨越网络传输数据包,使整个互联网都能收到数据的协议。在发送期间使用IP地址作为主机的标识;
② ICMP:当IP数据包在发送途中一旦发生异常导致无法到达对端地址时,通过此协议给发送端发送一个异常通知。同时其也可以用来诊断网络的健康状况;
③ ARP:用于在开始连接前进行探索包发送,并从所得探索包的IP地址中解析中物理地址(MAC地址)的协议;
-
2.4.5 传输层
- (1)定义:能够让应用程序之间实现通信。而使用端口号来区分计算机内部运行的所有程序
- (2)相关协议:
① TCP:面向有连接的传输层协议,可以正确处理在传输过程中丢包、传输顺序乱掉等异常情况,此外还能有效地利用带宽,缓解网络拥堵;
其连接需要三握四挥导致网络利用率低,适用于对数据稳定性完整性要求较高,对于实时性要求较低的情况。
② UDP:面向无连接的传输层协议,其不会执行对发送数据的检查,如需要则需要在应用程序中实现;
其发送成功率可能稍低但实时性很强,适用于对数据稳定性完整性要求不高,对于实时性要求很高的情况。
-
2.4.6 应用层(会话层以上的分层)
- (1)与OSI模型的关系:将OSI中的会话层、表示层和应用层的功能都集中到了应用程序中实现。这些功能有时由单一的程序实现,有时可能会由多个程序实现
- (2)客户端/服务端模型:TCP/IP的主要应用架构
- (3)相关应用:
① WWW:许多互相链接的超文本(Web)组成的系统,其中浏览器与服务端之间通信所用的协议是HTTP,所传输数据的主要格式HTML,访问信息的手段为URL;
② 电子邮件(MIME):现传输格式为MIME协议定义的;
③ 文本传输(FTP):通信过程建立两个TCP连接,分别是发出传输请求时所要用的控制连接与实际传输数据时所要用到的数据连接。使用协议为FTP协议;
④ 远程登录(TELNET与SSH):远程登录常用TELNET(TELetypewriter NETwork)和SSH(Secure SHell)两种协议;
⑤ 网络管理(SNMP):SNMP协议,使用SNMP管理的主机、网桥、路由器称为SNMP代理(Agent),而进行管理的那一段叫做管理器(Manager),其中的交互信息为MIB。其中SNMP属于应用协议,MIB属于表示层协议。
2.4 TCP/IP 分层模型与通信示例
-
2.5.1 数据包首部
- 每个分层都会在所发送的数据前加一个首部,在这个首部中包含了该层必要的信息。从上一层接收到的包全部都被认为是本层的数据
- 数据的单位:包是全能性术语。帧表示数据链路层中包的单位。而数据报是IP和UDP等网络层以上的分层中的包的单位。段则表示TCP数据流中额信息。最后,消息是指应用协议中数据的单位
-
2.5.2 发送数据包
- (1)应用程序处理:先确定使用的应用协议,然后再对数据进行编码处理,最后确定连接建立时机与发送时机等。最后加上应用层首部生成应用消息。
- (2)TCP模块的处理:根据应用数据加上TCP首部生成TCP段,根据应用的指示,负责建立连接、发送数据以及断开连接。TCP提供将应用层发来的数据顺利发送至对端的可靠传输。
- (3)IP模块的处理:根据TCP数据加上IP首部生成IP包,然后参考路由控制表决定接受此IP包的路由或主机。随后,IP包将被发送给连接这些路由器或主机网络接口的驱动程序
- (4)网络接口(以太网驱动)的处理:首先根据IP包加上以太网首部生成数据帧,然后根据首部中的源与目标MAC地址等信息将数据帧通过物理层传输给接收端
-
2.5.3 经过数据链路的包
- 经过数据链路的包,除了加上以太网的包首部外,还会加上以太网的包尾
-
2.5.4 数据包接收处理
- (1)网络接口(以太网驱动)的处理:首先从以太网的包首部找到MAC地址判断是否为发给自己的包,然后找到下一个的协议类型,若能识别则转接,不能识别则丢弃
- (2)IP模块的处理:正常是匹配IP地址与下一步的协议。对于有路由器的情况需要对照路由控制表调查是否需要转发数据
- (3)TCP模块的处理:首先计算校验和判断数据是否被破坏,然后检查是否在按照序号接收数据,最后检查端口号,确定具体的应用程序。在数据接收完毕后,进行确认回执的未收到则重发的操作。在数据完全接收后,会把数据转给由端口号识别的程序
- (4)应用程序的处理:应用程序会得到发送端发送时的最原始数据,对这段数据进行相应的处理后,若接收成功则反馈处理正常,否则则返回相应的异常信息