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模型共有七层(右图)
    Linux网络编程基础-01_网络基础知识
    Linux网络编程基础-01_网络基础知识

TCP/IP与OSI参考模型的对应关系

Linux网络编程基础-01_网络基础知识

Linux网络编程基础-01_网络基础知识
常用协议

  • 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协议通信模型

Linux网络编程基础-01_网络基础知识
Linux网络编程基础-01_网络基础知识

TCP/IP结构

Linux网络编程基础-01_网络基础知识

TCP/IP协议下的数据包

Linux网络编程基础-01_网络基础知识

数据的封装与传递过程

Linux网络编程基础-01_网络基础知识

TCP协议特点

TCP(即传输控制协议):是一种面向连接的传输层协议,它能提供高可靠性通信(即数据无误、数据无丢失、数据无失序、数据无重复到达的通信)

适用情况:

  • 适合于对传输质量要求较高,以及传输大量数据的通信。
  • 在需要可靠数据传输的场合,通常使用TCP协议
  • MSN/QQ等即时通讯软件的用户登录账户管理相关的功能通常采用TCP协议
    TCP传输
    Linux网络编程基础-01_网络基础知识

UDP协议的特点

UDP(User Datagram Protocol)用户数据报协议,是不可靠的无连接的协议。在数据发送前,因为不需要进行连接,所以可以进行高效率的数据传输。

适用情况:

  • 发送小尺寸数据(如对DNS服务器进行IP地址查询时)

  • 在接收到数据,给出应答较困难的网络中使用UDP。(如:无线网络)

  • 适合于广播/组播式通信中。

  • MSN/QQ/Skype等即时通讯软件的点对点文本通讯以及音视频通讯通常采用UDP协议

  • 流媒体、VOD、VoIP、IPTV等网络多媒体服务中通常采用UDP方式进行实时数据传输

UDP传输
Linux网络编程基础-01_网络基础知识
区别和联系:
共同点:同为传输层协议
不同点:
TCP:有连接,可靠
UDP:无连接,不保证可靠

相关文章: