TCP/IP 概述
简介:本系列文章,主要对 TCP/IP 协议族进行概述,其实对于整个计算机网络来说,TCP/IP 只是属于其中的一个或者两个层级里面的内容;
1.1 分层
网络协议通常分不同的层次进行开发,每一层分别负责不同的通信功能.TCP/IP 通常被认为是一个四层的协议系统,如下图 1-1 所示.
1.1.1 各层简介
链路层,又称为数据链路层,主要负责设备驱动系统与计算机对应的网络接口;
网络层,主要负责处理分组在计算机网络中的活动,代表为 IP 协议;
运输层, 主要为两台主机的应用程序,提供端到端的通信,包括 TCP 协议和 UDP 协议;
应用层,负责处理特定的应用程序细节,包括 FTP 议 和 SMTP 协议
1.2 TCP/IP 的分层
在 TCP/IP 协议族中,有很多协议,下图 1-2 给出了主要协议:
图 1-2 TCP/IP 协议族中的不同层次协议
TCP 与 UDP 是两个主要的运输层协议,它们都使用 IP 协议作为网络层的协议;其中 TCP 提供可靠的运输层服务,它具有超时重传等特点,而 UDP 协议,提供非可靠的运输层服务.
关于两者的详细,在以后的文章中体现;
1.3 互联网的地址(此处主要为 IPV4)
互联网的每个接口都必须有一个唯一的 Internet 地址,也成为 IP 地址.其长度为 32bit.IP 地址具有五类不同的互联网地址格式,如下图所示:
类型 范围
此 32 为地址,被分成四个十进制的数,其中每一个整数代表为一个字节, 此种方法被称为:点分十进制表示法 (Dotted decimal notation),故其各个 IP 地址的范围为:
A TO
B TO
C TO
D TO
E TO
类型 范围
1.4 域名系统 DNS
A TO
B TO
C TO
D TO
E TO
为了网站访问的方便以及易记性,设计了一种 IP 与主机名之间映射信息的系统,即 DNS 域名系统,它是一个分布式的数据库;任何应用系统都可以调用一个标准的库函数来查看给定民称主机的 IP 地址,反之亦然;
1.5 分装
当应用程序使用 TCP 传送数据时,数据会被放入到协议栈中,然后逐层通过直到被当作一串比特流送入网络(数据链路层).其中,每一层对接受的数据都要增加一些首部信息(有时也会增加尾部信息),进行区分,该过程如下图所示.
封装
在信息传递过程中,由于 TCP,UDP 等都像 IP 传送数据,因此 IP 会在 IP 首部中加入一个长度为 8bit 的数值,称作协议域.1 代表 ICMP 协议,6 代表 TCP 协议,17 代表 UDP 协议;
类似的在应用程序采用 TCP 或者 UDP 传输数据时,也会在 TCP 首部使用一个 16bit 的数值来表示不同的应用程序,成为端口号;比较常用的 1--1023,80,3036 等;
链路层在发送和接收 IP,ARP 和 RARP 数据,同样需要再以太网的帧首部加入某些形式的标识,已表明生成数据的网络层协议.为此,以太网帧首部加入了一个 16bit 的帧类型域;
1.6 分用
当目的主机收到一个以太网数据帧时,数需要从协议栈中取出(有底向上升),同时去掉个协议层的加上的报文首部.每层协议盒都要去检查报文首部的协议标识,已确定接受数据的上层协议,这个过程就是分用;
其图示标识方式如下:
分用
1.7 客户 - 服务器模型
大部分网络应用程序在编写时都假设一段为客户,另一端为服务器,其目的是为了让服务器为客户提供一些特定的服务;
这种服务,可以分为两种:重复型和并发型;
重复型交互方式如下:
等待一个客户的请求
处理客户的请求
返回响应给发送请求的客户
返回第 1 步;
其主要问题在与第 2 步,此时,其它请求无法被处理,只能够等待;
而并发型服务器交互方式如下:
等待一个客户的请求
启动一个新的服务器处理来自此客户的请求,在此期间可能产生一个新的进程,任务或者线程,并依赖底层操作系统的支持;且请求处理完毕后,终止新服务器;
返回第 1 步;
并发型的主要优点是,利用生产其他服务器来处理别的请求.可以同时为多个用户服务;
一般来说,TCP 服务器是并发的,UDP 服务器是重复的;
1.8 端口号
在 1.5 中,我们已经直到,TCP/UDP 采用 16bit 的端口号来识别应用程序;
一般,FTP 服务器的端口号为 21,Telnet 服务器的端口号围殴 23...,大多数知名端口都分布在 1--255 之间,而 256--1023 通常被 Unix 系统占用,以提供一些特定的服务.
因此,大多数 TCP/IP 实现给临时端口分配 1024--5000 之间的端口号,大于 5000 的端口号为其他服务器预留;
1.9 应用编程接口
使用 TCP/IP 协议的应用程序通常采用两种应用编程接口(API):socket 和 TLI;
这些会在以后的学习中遇到;
@Author: hsjfans AND website
来源: http://www.jianshu.com/p/28d42a301cee