TCP/IP基础知识
什么是TCP/IP
网络和协议
- 网络是计算机或类似计算机的设备之间通过常用传输介质进行通信的集合
- 网络协议就是一套通用规则,用来帮助定义复杂数据传输的过程
- TCP/IP协议定义了网络通信过程,更重要的是,定义了数据单元的格式和内容
- TCP/IP及其相关的协议构成了一套在TCP/IP网络中如何处理、传输和接收数据的完整系统
- TCP/IP标准定义了TCP/IP网络的通信规则
- TCP/IP实现是一个软件组件,计算机通过它参与到TCP/IP网络中
TCP/IP的开发
- Internet与其他高技术的发展一样,最初是由美国国防部主持研究的
- ARPAnet是TCP/IP协议系统的前身(ARPA: Advanced Research Projects Agency),并成为了Internet比较成功的一个部分
- 两个重要特性使得TCP/IP可以在分散的环境中运行: 端点验证和动态路由选择
TCP/IP的特性
- TCP/IP协议簇处理以下问题的方式是协议的核心:
- 逻辑编址
- 路由选择
- 名称解析
- 错误控制和流量控制
- 应用支持
- 在TCP/IP中,逻辑地址与具体硬件的物理地址之间的转换是使用地址解析协议(Address Resolution Protocol,ARP)和逆向地址解析协议(Reverse ARP,RARP)实现的
- 域名系统(Domain Name System,DNS)
- 域名到IP地址的映射称为名称解析
- 称为域名服务器的专用计算机中存储了用于显示域名和IP地址转换方式的表
- 在 TCP/IP 中,通过系统的逻辑通道实现从网络到应用程序的接口被称为端口,每个端口有一个用于识别该端口的数字
- 网关:连接LAN到大型网络的路由器
- 路由器:通过逻辑地址来转发数据的一种网络设备,并且也可以用来将大型网络分为几个较小的子网
TCP/IP的工作方式
TCP/IP协议系统
系统需要完成的任务:
- 把消息分解为可管理的数据块,并且这些数据块能够有效地通过传输介质。
- 与网络适配器硬件连接。
- 寻址,即发送端计算机必须能够定位到接收数据的计算机,接收计算机必须能够识别自己要接收的数据。
- 将数据路由到目的计算机所在的子网,即使源子网和目的子网分处不同的物理网络。
-  执行错误控制、流量控制和确认:对可靠的通信而言,发送和接收计算机必须能够发现并纠正传输错误,并控制数据流。
-  从应用程序接收数据并传输到网络。
-  从网络接收数据并传输到应用程序。
为了实现这些功能,TCP/IP采用了模块化设计
协议的分层:
- 网络访问层:提供了与物理网络连接的接口。针对传输介质设置数据的格式,根据硬件的物理地址实现数据的寻址,对数据在物理网络中的传递提供错误控制。
- 网际层:提供独立于硬件的逻辑寻址,从而让数据能够在具有不同物理结构的子网之间传递。提供路由功能来降低流量,支持网间的数据传递(术语“网间”(internetwork)指的是多个局域网互相连接而形成的较大的网络,比如大公司里的网络或Internet)。实现物理地址(网络访问层使用的地址)与逻辑地址的转换。
- 传输层:为网络提供了流量控制、错误控制和确认服务。充当网络应用程序的接口。
- 应用层:为网络排错、文件传输、远程控制和 Internet 操作提供了应用程序,还支持应用编程接口(API),从而使得针对特定操作系统编写的程序能够访问网络
当 TCP/IP 协议软件准备通过网络传递数据时,
发送端计算机上的每一层协议都在数据上添加层信息,对应于接收端计算机上相应的层.这个过程有时也被称为封装。
在接收端,当数据在协议栈里传递时,这些报头信息被逐步去除。
TCP/IP和OSI模型
网络业界针对网络协议体系有一个标准的七层模型,称为“开放系统互连(OSI)”模型,这是ISO(国际标准化组织)为了标准化网络协议系统所做出的规范,旨在提高网络互连性,并且方便软件开发人员以一种开放方式来使用协议标准。
OSI模型的7层:
- 物理层:把数据转换为传输介质上的电子流或模拟脉冲,并且监视数据的传输。
- 数据链路层:提供与网络适配器相连的接口,维护子网的逻辑链接。
- 网络层:支持逻辑寻址与路由选择。
- 传输层:为网络提供错误控制和数据流控制。
- 会话层:在计算机的通信应用程序之间建立会话。
- 表示层:把数据转换为标准格式,管理数据加密与压缩。
- 应用层:为应用程序提供网络接口,支持文件传输、通信等功能的网络应用。
需要注意的是,TCP/IP模型与OSI模型都是标准,而不是实现。
数据包
数据包在每一层具有不同的形式和名称:
- 在应用层生成的数据包被称为消息。
- 在传输层生成的数据包封装了应用层的消息,如果它来自于传输层的TCP协议,就被称为分段;如果来自于传输层的UDP协议,就被称为数据报。
- 在网际层的数据包封装了传输层的片段,被称为数据报。
- 在网络访问层的数据包封装了数据报(而且可能对其进行再分解),被称为帧。帧被访问层里的最低子层转化为比特流。
TCP/IP协议系统
网络访问层
逻辑IP地址只存在于软件中
网络访问层与OSI模型
TCP/IP网络访问层大致对应于OSI的物理层和数据链路层。
- OSI的物理层负责把数据帧转化为适合于传输介质的比特流,管理和同步实际传输的电子或模拟脉冲。在接收端,物理层把这些脉冲重新组合为数据帧.
- OSI数据链路层执行两个独立的任务,相应地划分为两个子层。
- 介质访问控制(MAC):这个子层提供与网络适配器连接的接口。实际上,网络适配器驱动程序通常被称为MAC驱动,而网卡在工厂固化的硬件地址通常被称为MAC地址。
- 逻辑链路控制(LLC):这个子层对经过子网传递的帧进行错误检查,并且管理子网上通信设备之间的链路。
网络体系
网络体系(比如以太网)具有一系列的规范来管理介质访问、物理寻址、计算机与传输介质的交互。在决定网络体系时,实际上是在决定如何设计网络访问层
网络访问层包括的体系:
- IEEE 802.3(以太网):在大多数办公室和家庭使用的基于线缆的网络。
- IEEE 802.11(无线网络):在办公室、家庭和咖啡厅使用的无线网络技术。
- IEEE 802.16(WiMAX):用于移动通信长距离无线连接的技术。
- 点到点协议(PPP):Modem通过电话线进行连接的技术。
物理寻址
物理地址通常也被称为MAC地址,这是因为在OSI模型中,物理寻址是由介质访问控制(MAC)子层负责的。
以太网
在典型的以太网上,全部计算机共享同一个传输介质。
以太网使用称为载波侦听多路访问/冲突检测(CSMA/CD)的方法,来判断计算机何时可以把数据发送到访问介质。通过使用 CSMA/CD,所有计算机都监视传输介质的状态,在传输之前等待线路空闲。
如果两台计算机尝试同时发送数据,就会发生冲突,计算机就会停止发送,等待一个随机的时间间隔,然后再次尝试发送。