没有合适的资源?快使用搜索试试~ 我知道了~
wozhikankan.pdf
资源详情
资源评论
资源推荐
1、网络协议
计算机网络是什么?
随着计算机技术发展,计算机的体积和价格都在下降,之前计算机多用于研究机构,现
阶段逐步进入一般的公司用于办公。原来计算机之间传输数据需要通过软盘等第三方存储介
质进行转存,人们需要将数据直接通过通信线路传输,来缩短传输时间,于是计算机网络开
始诞生,并逐渐发展为现在巨大的 Internet。
定义和分类
计算机网络的标准定义是:利用通信线路将地理上分散的、具有独立功能的计算机系统
和通信设备按不同的形式连接起来,以功能完善的网络软件及协议实现资源共享和信息传递
的系统。
计算机网络从覆盖范围上划分可以分为三类:局域网、城域网、广域网。局域网 LAN(作
用范围一般为几米到几十公里)、城域网 MAN(界于 WAN 与 LAN 之间)、广域网 WAN(作用
范围一般为几十到几千公里)。当然计算机网络划分不止这一种分类方式,可以按拓扑结构
分类(总线型、环型、星型、网状)、还可以按按信息的交换方式(电路交换、报文交换、
报文分组交换)来分等等方式。
计算机网络发展简史
1、诞生阶段,20 世纪 60 年代中期之前的第一代计算机网络是以单个计算机为中心的
远程联机系统。端是一台计算机的外部设备包括显示器和键盘,无 CPU 和内存。随着远程终
端的增多,在主机前增加了前端机。当时,人们把计算机网络定义为“以传输信息为目的而连
接起来,实现远程信息处理或进一步达到资源共享的系统”,但这样的通信系统已具备了网络
的雏形。
2、ARPANET,多个主机通过通信线路互联起来。60 年代初。当时,美国国防部为了保
证美国本土防卫力量和海外防御武装在受到前苏联第一次核打击以后仍然具有一定的生存
和反击能力,认为有必要设计出一种分散的指挥系统;它由一个个分散的指挥点组成,当部
分指挥点被摧毁后,其它点仍能正常工作,并且在这些点之间能够绕过那些已被摧毁的指挥
点而继续保持联系。为了对这一构思进行验证,1969 年,美国国防部国防高级研究计划署
(DOD/DARPA)资助建立了一个名为 ARPANET(即"阿帕网")的网络,将多个大学的计算机主机
联接起来,位于各个结点的大型计算机采用分组交换技术,通过专门的通信交换机和专门的
通信线路相互连接。E-mail、FTP 和 Telnet 在 ARPANET 上已经诞生。
3、开放性的标准化体系结构,OSI 诞生。ARPANET 兴起后,计算机网络发展迅猛,各大计
算机公司相继推出自己的网络体系结构及实现这些结构的软硬件产品。由于没有统一的标准,
不同厂商的产品之间互联很困难,人们迫切需要一种开放性的标准化实用网络环境,这样应
运而生了两种国际通用的最重要的体系结构, 为了实现网络设备间的互相通讯,ISO 和 IEEE
(电气和电子工程师协会,是世界上最大的非营利性专业技术学会,其会员人数超过 40 万
人,遍布 160 多个国家。IEEE 致力于电气、电子、计算机工程和与科学有关的领域的开发
和研究)相继提出了 OSI 参考模型及其 TCP/IP 模型。由于 TCP/IP 尽早地制定了可行性较强
的协议,提出了应对技术快速革新的协议,并及时进行后期改良的方案,因此打败了 OSI
模型,成为了事实上的标准。
4、Internet 互联网
20 世纪 90 年代至今的第四代计算机网络, 1993 年是因特网发展过程中非常重要的一年,
在这一年中因特网完成了到目前为止所有最重要的技术创新,WWW(万维网)和浏览器的应
用使因特网上有了一个令人耳目一新的平台:人们在因特网上所看到的内容不仅只是文字,
而且有了图片、声音和动画,、甚至还有了电影。因特网演变成了一个文字、图像、声音、
动画、影片等多种媒体交相辉映的新世界,更以前所未有的速度席卷了全世界。出现光纤及
高速网络技术,多媒体网络,智能网络,整个网络就像一个对用户透明的大的计算机系统,发
展为以 Internet 为代表的互联网。随着全球范围内以 Internet 为代表的信息基础设施的建
立和发展,促进了信息产业和知识经济的诞生和迅猛发展,标志着人类已进入信息时代,计
算机网络的普及与应用正向全人类展开其新的一页,也诞生了很多巨大的互联网公司。
计算机网络体系结构
OSI 七层模型
开放系统互连参考模型
(Open System Interconnect
简称
OSI
)是国际标准化组织
(ISO)
和国际电报电话咨询委员会
(CCITT)
联合制定的开放系统互连参考模型,为开放式互连信息系
统提供了一种功能结构的框架。其目的是为异种计算机互连提供一个共同的基础和标准框架,
并为保持相关标准的一致性和兼容性提供共同的参考。这里所说的开放系统,实质上指的是
遵循
OSI
参考模型和相关协议能够实现互连的具有各种应用目的的计算机系统。
OSI
采用了分层的结构化技术,共分七层,物理层、数据链路层、网络层、传输层、会
话层、表示层、应用层。
TCP/IP 模型
OSI 模型比较复杂且学术化,所以我们实际使用的 TCP/IP 模型,共分 4 层,链路层、网
络层、传输层、应用层。两个模型之间的对应关系如图所示:
无论什么模型,每一个抽象层建立在低一层提供的服务上,并且为高一层提供服务。
TCP/IP 协议族
Transmission Control Protocol/Internet Protocol
的简写,中译名为传输控制协议
/
因特网
互联协议,是
Internet
最基本的协议、
Internet
国际互联网络的基础,由网络层的
IP
协议和
传输层的
TCP
协议组成。协议采用了
4
层的层级结构。然而在很多情况下,它是利用
IP
进
行通信时所必须用到的协议群的统称。也就是说,它其实是个协议家族,由很多个协议组成,
并且是在不同的层, 是互联网的基础通信架构。
TCP/IP 网络传输中的数据
每个分层中,都会对所发送的数据附加一个首部,在这个首部中包含了该层必要的信息,
如发送的目标地址以及协议相关信息。通常,为协议提供的信息为包首部,所要发送的内容
为数据。在下一层的角度看,从上一层收到的包全部都被认为是本层的数据。
网络中传输的数据包由两部分组成:一部分是协议所要用到的首部,另一部分是上一层
传过来的数据。首部的结构由协议的具体规范详细定义。在数据包的首部,明确标明了协议
应该如何读取数据。反过来说,看到首部,也就能够了解该协议必要的信息以及所要处理的
数据。
①
应用程序处理
首先应用程序会进行编码处理,这些编码相当于
OSI
的表示层功能;
编码转化后,邮件不一定马上被发送出去,这种何时建立通信连接何时发送数据的管理功能,
相当于
OSI
的会话层功能。
② TCP 模块的处理
TCP 根据应用的指示,负责建立连接、发送数据以及断开连接。TCP 提供将应用层发来的
数据顺利发送至对端的可靠传输。为了实现这一功能,需要在应用层数据的前端附加一个
TCP 首部。
③ IP
模块的处理
IP
将
TCP
传过来的
TCP
首部和
TCP
数据合起来当做自己的数据,并在
TCP
首部的前端
加上自己的
IP
首部。
IP
包生成后,参考路由控制表决定接受此
IP
包的路由或主机。
④
网络接口(以太网驱动)的处理
从
IP
传过来的
IP
包对于以太网来说就是数据。给这些数据附加上以太网首部并进行发送
处理,生成的以太网数据包将通过物理层传输给接收端。
⑤ 网络接口(以太网驱动)的处理
主机收到以太网包后,首先从以太网包首部找到 MAC 地址判断是否为发送给自己的包,若
不是则丢弃数据。
如果是发送给自己的包,则从以太网包首部中的类型确定数据类型,再传给相应的模块,如
IP、ARP 等。这里的例子则是 IP 。
⑥ IP
模块的处理
IP
模块接收到 数据后也做类似的处理。从包首部中判断此
IP
地址是否与自己的
IP
地址
匹配,如果匹配则根据首部的协议类型将数据发送给对应的模块,如
TCP
、
UDP
。这里的例
子则是
TCP
。
另外吗,对于有路由器的情况,接收端地址往往不是自己的地址,此时,需要借助路由控制
表,在调查应该送往的主机或路由器之后再进行转发数据。
⑦ TCP
模块的处理
在
TCP
模块中,首先会计算一下校验和,判断数据是否被破坏。然后检查是否在按照序号
接收数据。最后检查端口号,确定具体的应用程序。数据被完整地接收以后,会传给由端口
号识别的应用程序。
⑧ 应用程序的处理
接收端应用程序会直接接收发送端发送的数据。通过解析数据,展示相应的内容。
TCP 和 UDP
在上述表格中,网际协议
IP
是
TCP/IP
中非常重要的协议。负责对数据加上
IP
地址(有
发送它的主机的地址(源地址)和接收它的主机的地址(目的地址))和其他的数据以确定
传输的目标。
而
TCP
和
UDP
都是传输层的协议,传输层主要为两台主机上的应用程序提供端到端的
通信。
但是 TCP 和 UDP 最不同的地方是,TCP 提供了一种可靠的数据传输服务,TCP 是面向连
接的,也就是说,利用 TCP 通信的两台主机首先要经历一个建立连接的过程,等到连接建立
后才开始传输数据,而且传输过程中采用“带重传的肯定确认”技术来实现传输的可靠性。TCP
还采用一种称为“滑动窗口”的方式进行流量控制,发送完成后还会关闭连接。所以 TCP 要比
UDP 可靠的多。
UDP
(
User Datagram Protocol
的简称, 中文名是用户数据报协议)是把数据直接发出
去,而不管对方是不是在接收,也不管对方是否能接收的了,也不需要接收方确认,属于不
可靠的传输,可能会出现丢包现象,实际应用中要求程序员编程验证。
注意:
我们一些常见的网络应用基本上都是基于 TCP 和 UDP 的,这两个协议又会使用网络层
的 IP 协议。但是我们完全可以绕过传输层的 TCP 和 UDP,直接使用 IP,比如 Linux 中 LVS,
甚至直接访问链路层,比如 tcpdump 程序就是直接和链路层进行通信的。
剩余83页未读,继续阅读
EatJavaDne
- 粉丝: 0
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0