Internet的历史
Internet-“冷战”的产物
1957年10月和11月,前苏联先后有两颗“Sputnik”卫星上天
1958年美国总统艾森豪威尔向美国国会提出建立DARPA (Defense Advanced Research Project Agency),即国防部高级研究计划署,简称ARPA
1968年6月DARPA提出“资源共享计算机网络” (Resource Sharing Computer Networks),目的在于让DARPA的所有电脑互连起来,这个网络就叫做ARPAnet,即“阿帕网”,是Interne的最早雏形
网络互联促成了TCP/IP协议的产生
早期的ARPAnet使用网络控制协议(Network Control Protocol,NCP),不能互联不同类型的计算机和不同类型的操作系统,没有纠错功能
1973年由Kahn和Vinton Cerf两人合作为ARPAnet开发了新的互联协议。
1974年12月两人正式发表第一份TCP协议详细说明,但此协议在有数据包丢失时不能有效的纠正
TCP协议分成了两个不同的协议:
用来检测网络传输中差错的传输控制协议TCP
专门负责对不同网络进行互联的互联网协议IP
从此,TCP/IP协议诞生
1983年ARPAnet上停止使用NCP,互联网上的主机全部使用TCP/IP协议。TCP/IP协议成为Internet中的“世界语”
网络的体系结构
-
网络采用分而治之的方法设计,将网络的功能划分为不同的模块,以分层的形式有机组合在一起。
-
每层实现不同的功能,其内部实现方法对外部其他层次来说是透明的。每层向上层提供服务,同时使用下层提供的服务
-
网络体系结构即指网络的层次结构和每层所使用协议的集合
-
两类非常重要的体系结构:OSI与TCP/IP
OSI开放系统互联模型
-
OSI模型相关的协议已经很少使用,但模型本身非常通用
-
OSI模型是一个理想化的模型,尚未有完整的实现
-
OSI模型共有七层(右图)
TCP/IP与OSI参考模型的对应关系
-
网络接口和物理层:硬件驱动,屏蔽硬件差异,形成统一的接口(内核中的struct net_device),是TCP/IP的最底层,负责将二进制流转换成数据帧,并进行数据帧的发送和接收。数据帧是网络传输的基本单元。
-
网络层(IP层):跨不同的操作系统和机器,实现端到端的传输数据。负责在主机之间的通信中选择数据包的传输路径,即路由。
-
传输层:数据应该交给哪一个任务处理,负责实现应用程序之间的通信服务,这种通信又称为端到端通信。
-
应用层:各种应用层的协议,是分层模型的最高层。
常用协议 -
TCP(Transport Control Protocol)传输控制协议
-
IP(Internetworking
-
Protocol)网间协议
-
UDP(User Datagram Protocol)用户数据报协议
-
ICMP(Internet Control Message Protocol)互联网控制信息协议
-
SMTP(Simple Mail Transfer Protocol)简单邮件传输协议
-
SNMP(Simple Network manage Protocol)简单网络管理协议
-
HTTP(Hypertext Transfer Protocol) 超文本传输协议 FTP(File Transfer
-
Protocol)文件传输协议 ARP(Address Resolution Protocol)地址解析协议
TCP/IP协议通信模型
TCP/IP结构
TCP/IP协议下的数据包
- MTU(Max Transfer Unit):最大传输单元,和网络类型有关
·以太网:MTU=1500字节 - mss(maximum segment size):最大段大小,和网络类型、线路、系统特性等相关
数据的封装与传递过程(封包和拆包)
TCP协议特点
TCP(即传输控制协议):是一种面向连接的传输层协议,它能提供高可靠性通信(即数据无误、数据无丢失、数据无失序、数据无重复到达的通信)
适用情况:
- 适合于对传输质量要求较高,以及传输大量数据的通信。
- 在需要可靠数据传输的场合,通常使用TCP协议
- MSN/QQ等即时通讯软件的用户登录账户管理相关的功能通常采用TCP协议
TCP传输
UDP协议的特点
UDP(User Datagram Protocol)用户数据报协议,是不可靠的无连接的协议。在数据发送前,因为不需要进行连接,所以可以进行高效率的数据传输。
适用情况:
-
发送小尺寸数据(如对DNS服务器进行IP地址查询时)
-
在接收到数据,给出应答较困难的网络中使用UDP。(如:无线网络)
-
适合于广播/组播式通信中。
-
MSN/QQ/Skype等即时通讯软件的点对点文本通讯以及音视频通讯通常采用UDP协议
-
流媒体、VOD、VoIP、IPTV等网络多媒体服务中通常采用UDP方式进行实时数据传输
UDP传输
区别和联系:
共同点:同为传输层协议
不同点:
TCP:有连接,可靠
UDP:无连接,不保证可靠