TCP/IP基础知识

#TCP/IP背景
在计算机网络中领域中,TCP/IP协议可谓名气最大,使用范围最广。
##军用技术应用
美国国防部(DoD,The Department of Defense)希望在通信传输的过程中,即使遭到了敌方的攻击和破坏,也可以经过迂回路线实现最终通信,保证通信不中断。为了达到这个目的,诞生了分组交换技术。它可以使多个用户同一时间共享一条通信线路进行通信,提高了线路的使用效率,也降低了搭建线路的成本。
##ARPANET的诞生
为验证分组交换技术的实用性,研究人员搭建了一套网络。该网络只连接了美国西海岸的大学和研究所等4个节点。之后,随着美国国防部重点开发和相关技术的飞速发展,普遍用户也逐渐加入其中,发展成了后来巨大规模的网络。该网络被人们称作ARPANET,同时也是全球互联网的鼻祖。在短短3年内,ARPANET从4个节点迅速发展成为34个节点的超大网络。
##TCP/IP的诞生
ARPANET是利用大学与研究机构组成的主干网络进行分组交换的实验,还在互连计算机之间提供了可靠传输的综合性通信协议的实验。20世纪70年代,ARPANET的一个研究机构研发了TCP/IP协议。直到1983年称为该网络唯一指定的协议。
##UNIX系统的普及与互联网的扩张
1980年左右,ARPANET中的很多大学与研究机构开始使用一种叫做BSD UNIX的操作系统。由于BSD UNIX实现了TCP/IP协议,在1983年,TCP/IP便被ARPANET正式采用。同年,前SUN公司也开始向一般用户提供实现了TCP/IP的产品。
20世纪80年代,UNIX工作站迅速普及,成就了TCP/IP网络最为盛行的时代。在这种情况下,大学和研究机构逐渐开始将ARPANET连接到NSFnet网络,慢慢的,基于TCP/IP而形成的世界性范围的网络——互联网(The Internet)便诞生了。以连接UNIX主机的形式连接各个终端节点,这一主要方式使互联网得到了迅速的普及。作为计算机网络主流协议的TCP/IP也得到了发展。80年代后半叶,开发自己通讯协议的网路设备供应商们,也陆续开始“顺从”于TCP/IP的规范,制造兼容性更好的产品以便用户使用。
##商用互联网服务的启蒙
研发互联网最初的目的是用于实验和研究,到了1990年逐渐被引入公司企业及一般家庭。也出现了专门提供互联网接入服务的公司(称作ISP,Internet Service Provider),这些都使互联网得到了更为广泛的普及。同时基于互联网技术的新型应用,如在线游戏、SNS、视频通信等商用服务也不断涌现出来。
由于·TCP/IP已长期应用于研究领域,使人们积累了丰富的经验,因此,面对这样一种成熟的技术,人们对于它的商用价值充满期待。
#TCP/IP的标准化
##TCP/IP的具体含义
在通常情况下,它只是利用IP进行通信时所必须用到的协议群的统称。有时也称TCP/IP为网际协议族。TCP/IP协议群又分为应用协议(HTTP)、传输协议(TCP、UDP)、路由器协议(RIP)、网际协议(IP)
##TCP/IP标准化过程
TCP/IP协议标准化过程具有两大特点:一是具有开放性,而是注重实用性,即能否被实际运用。
开放性是由于TCP/IP的协议是由IETF讨论制定的,而IEFT本身就是一个允许任何人加入进行讨论的组织。在这里人们通常采用电子邮件组的形式进行日常讨论,而邮件组可以任何人随时订阅。
在TCP/IP的标准化过程中,制订某一协议的规范本身已不再那么重要,而首要任务是实现真正能够实现通信的技术,所以在最终详细规范出炉的同时,其中一些协议已在某些设备中存在,并且能够进行通信,一旦发现有什么问题,就可以继续讨论,即使修改。经过一系列实验和讨论,一款协议的规范才最终诞生。
##TCP/IP规范——RFC
需要标准化的协议,被人们列入RFC(Request For Comment)文档并在互联网上公布。RFC不仅记录协议规范内容,还包含协议的实现和运用的相关信息以及实验方面的信息。
#互联网基础知识
##互联网定义
互联网,英文为Internet,Internet指的是将多个网络连接使其构成一个更大的网络,所以Internet一词本意为网际网。专门指代网络之间的连接时,可以使用网际网。为区分Internet指网际网,The Internet指互联网。
##互联网与TCP/IP的关系
互联网进行通信时,需要相应的网络协议,TCP/IP原本就是为使用互联网开发定制的协议族。
##互联网的结构
较小范围的网络之间相连组成机构内部的网络,机构内部的网络之间相连再形成区域网络,而各个区域网络之间再互连,最终就形成了连接全世界的互联网。
互联网中的每个网络都是由骨干网和末端网组成的,每个网络之间通过NOC(Network Operation Center)相连,如果网络的运营商不同,它的网络连接方式和使用方法也会不同。连接这种异构网络需要有IX(Internet Exchange)的支持。互联网就是众多的异构网络通过IX互联的一个巨型网络。
##ISP和区域网
连接互联网需要向ISP或区域网提出申请,公司企业或一般家庭申请入网需要联系ISP签约即可。
不同的ISP所提供的互联网接入服务的项目也不同。例如,不限流量包月限定上网时限以及有线/无线网络连接等各种各样的服务。
区域网指的是在特定区域内由团体或志愿者所运营的网络。这种方式通常价格比较便宜,但是有时可能会出现连接方式复杂或使用上限制等情况。
#TCP/IP协议分层模型
TCP/IP分层

应用层HTML、HTTP应用程序
传输层TCP、UDP操作系统
互联网层IP操作系统
网卡层设备驱动程序与网络接口
硬件设备驱动程序与网络接口

##硬件(物理层)
TCP/IP的最底层是负责数据传输的硬件。这种硬件就相当于以太网或电话线路等物理层的设备。
##网络接口层(数据链路层)
网络接口层利用以太网的数据链路层进行通信,因此属于接口层。也就是说,把他当做让NIC(Network Interface Controller,即网卡)起作用的驱动程序也无妨。驱动程序就是在操作系统与硬件之间起桥梁作用的软件。计算机的外围附加设备或扩展卡,不是直接插到电脑上或电脑的扩展槽上就可以使用的,需要有相应的驱动程序的支持。
##互联网层(网络层)
互联网层使用IP协议,IP协议基于IP地址转发分包数据,TCP/IP分层中的互联网层与传输层的功能通常由操作系统提供。尤其是路由器,他必须得实现通过互联网层转发分组数据包的功能。
其他连接互联网的网络设备就没必要一定实现IP或TCP的功能。
##传输层
TCP/IP的传输层有两个具有代表性的协议。该层的功能本身与OSI参考模型中的传输层类似。
传输层最主要的功能就是能够让应用程序之间实现通信。计算机内部,通常同一时间运行着多个程序。为此,必须分清是哪些程序与哪些程序在进行通信。识别这些应用程序的是端口号。
TCP
TCP是一种面向有连接的传输层协议。它可以保证两端通信主机之间的通信可达。TCP能够正确处理在传输过程中丢包、传输顺序乱掉等异常情况。此外,TCP还能够有效利用带宽,缓解网络拥堵。为了建立与断开连接,有时它需要至少7次的发包收包,导致网络流量的浪费。此外,为了提高网络的利用率,TCP协议中定义了各种各样复杂的规范,因此不利于视频会议等场合使用。
UDP
UDP有别于TCP,它是一种面向无连接的传输层协议。UDP不会关注对端是否真的收到了传送过去的数据,如果需要检查对端是否收到分组数据包,或者对端是否连接到网络,则需要在应用程序中实现。
##应用层(会话层以上的分层)
TCP/IP的分层中,将OSI参考模型中的会话层、表示层和应用层的功能都集中到了应用程序中实现。这些功能有时由一个单一的程序实现,有时也可能会由多个程序实现。因此,细看TCP/IP的应用程序功能会发现,它不仅实现OSI模型中应用层的内容,还要实现会话层与表示层的功能。
TCP/IP应用的架构绝大多数属于客户端/服务端模型。提供服务的程序叫服务端,接受服务的程序叫客户端。在这种通信模式中,提供服务的程序会预先被部署到主机上,等待接受任何时刻客户可能发送的请求。
客户端可以随时发送请求给服务端。有时服务端可能会有处理异常、超出负载等情况,这时客户端可以在等待片刻后重发一次请求。
WWW可以说是互联网能够如此普及的一个重要原动力。用户在一种叫Web浏览器的软件上借助鼠标和键盘就可以在网上自由地冲浪。
浏览器与服务器之间通信所用的协议是HTTP(HyperText Transfer Protocol)。所传输数据的主要格式是HTML(HyperText Markup Language)。WWW中的HTTP属于OSI应用层的协议,而HTML属于表示层的协议。
电子邮件(E-mail)
电子邮件就是指在网络上发送信件。发送电子邮件时用到的协议叫做SMTP(Simple Mail Tranfer Protocol)。
最初,人们只能发送文本格式的电子邮件。现在,电子邮件由MIME协议扩展以后,就可以发送声音、图像等各式各样的信息。甚至还可以修改邮件文字的大小、颜色。MIME属于OSI参考模型的第6层——表示层。
文件传输(FTP)
文件传输是指将保存在其他计算机硬盘上的文件转移到本地的硬盘上,或将本地硬盘的文件传送到其他机器硬盘上的意思。
该过程使用的协议叫做FTP(File Transfer Protocol)。FTP很早就已经投入使用,传输过程中可以选择用二进制方式还是文本方式。(表示层的功能)
在FTP中进行文件传输时会建立两个TCP连接,分别是发出传输请求时所要用到的控制连接与实际传输数据时所要用到的数据连接。(这两种连接属于会话层的功能)
#远程登录(TELNET与SSH)
远程登录是指登录到远程的计算机上,使那台计算机上的程序得以运行的一种功能。TCP/IP网络中远程登录常用TELNET和SSH两种协议。
网络管理(SNMP)
在TCP/IP中进行网络管理时,采用SNMP(Simple Network Management Protocol)协议。使用SNMP管理的主机、网桥、路由器等称作SNMP代理(Agent),而进行管理的那一段叫做管理器(Manager)。SNMP正是这个Manager与Agent所要用到的协议。
在SNMP的代理端,保存着网络接口的信息、通信数据量、异常数据量以及设备温度等信息。这些信息可以通过MIB(Management Information Base)访问。SNMP属于应用协议,MIB属于表示层协议。
#TCP/IP分层模型与通信示例
##数据包首部

以太网首部(IP包首部)(TCP包首部)(数据)
IP包首部TCP包首部(数据)
TCP包首部(数据)

每个分层中,都会对所发送的数据附加一个首部,在这个首部中包含了该层必要的信息,如发送的目标地址以及协议相关信息。为协议提供的信息为包首部,所要发送的内容为数据。在下一层的角度看,从上一层收到的包全部都被认为是本层的数据。
##发送数据包
从TCP/IP通信上看,是从一台计算机A向另一台计算机B发送电子邮件。
整个通信的过程
1、应用程序处理
编辑好邮件的相应内容,点击发送按钮就可以开始通信了,首先,应用程序会进行编码处理。例如,日文电子邮件使用ISO-2022-JP或UTF-8进行编码。这些编码相当于OSI的表示层功能。
编码转化后,实际邮件不一定会马上被发送出去,因为有些邮件的软件有一次同时发送多个邮件的功能,也可能会有用户点击”收信“按钮以后才一并接收新邮件的功能。像这种何时建立通信连接何时发送数据的管理功能,从某种宽泛的意义上看属于OSI参考模型中会话层的功能。
应用在发送邮件的那一刻建立TCP连接,从而利用这个TCP连接发送数据。它的过程首先将应用的数据发送给下一层的TCP,再做实际的转发处理。
2、TCP模块的处理
TCP根据应用的指示,负责建立连接、发送数据以及断开连接。TCP提供将应用层发来的数据顺利发送至对端的可靠传输。
为了实现TCP的这一功能,需要在应用层数据的前端附加一个TCP首部。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值