虽然不同的厂家生产出各种型号的计算机,而且可能运行不同的操作系统(例如windows系统、linux系统、Mac系统),但是TCP/IP协议运行它们之间相互通信。
1.分层概念
网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能,如此,可以降低开发的难度,利于多人协同开发,而且层分明,利于别人调用进行二次开发。TCP/IP作为最重要的网络协议,也不例外。
|应用层|
|:-:|
|运输层|
|网络层|
|链路层|
如上图所示,TCP/IP协议通常被认为是一个四层协议体系,每层的功能是:
- 1.链路层
也叫数据链路层或者网络接口层:包括操作系统中的设备驱动程序和计算机中的网络接口卡。它们一起处理与传输媒介的物理接口细节。 - 2.网络层
也叫互联网层。处理分组(IP数据报或IP数据报的一个分片)在网络中的活动,主要功能是分组的选路,即我们常说的路由寻址。 - 3.运输层
运输层主要为主机上的应用程序(应用层)提供端到端的通信服务。在TCP/IP协议族中,有两种不同的传输协议:TCP(传输控制协议)和UDP(用户数据报协议)。 - 4.应用层
负责处理特定的应用程序细节。
2.互联网的地址
互联网上的每个接口必须有一个唯一的Internet地址。IP地址有两大类:iPv4和IPv6。
现在常用的是ipv4,ipv4地址长度是32位(bit)。IPv6的地址长度是128位(bit)。
多接口(可理解为多网卡)主机具有多个IP地址,每个接口都对应一个IP地址。
按照目的端主句分类,有三类ip地址:
- 单播地址:目的端为单个主机
- 广播地址:目的端为给定网络上的所有主机
- 多播地址:目的端为同一组内的所有主机
3.域名系统
域名系统(DNS)是一个分布的数据库,由它来提供IP地址和主机名(例如www.baidu.com网址)之间的映射关系。注意和ARP/RARP直接的区别(IP地址和MAC地址之间的映射关系)。
4.封装和分用
当应用程序用TCP(UDP)传输数据时,数据被送入协议栈中,然后逐个通过每一层直到被当做一串比特流传入网络,其中每一层对收到的数据都要增加一个首部信息,这个过程叫做封装。
当目的主机收到一个以太网数据帧,数据就要开始从协议栈中由底向上升,同时去掉各协议层加上的报文首部。每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议,这个过程称作分用。
5.客户-服务器模型
有两种类型:重复型和并发型。其中并发型用的较多。
6.internet和Internet
internet意思是用一个共同的协议族把多个网络连接在一起(osi、tcp/ip,aprnet等),Internet指的是世界范围内通过TCP/IP互相通信的所有主机集合(特指TCP
/IP)。
7应用编程接口
使用TCP/IP协议的应用程序通常采用两种应用编程接口:socket(套接字)和TLI(运输层接口)。前者称为伯克利套接字,或者起初是由AT&T开发的。