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地址具有五类不同的互联网地址格式,如下图所示:
类型 | 范围 |
---|---|
A |
0.0.0.0 TO 127.255.255.255
|
B |
128.0.0.0 TO 191.255.255.255
|
C |
192.0.0.0 TO 223.255.255.255
|
D |
224.0.0.0 TO 239.255.255.255
|
E |
240.0.0.0 TO 247.255.255.255
|
此32为地址,被分成四个十进制的数,其中每一个整数代表为一个字节,此种方法被称为:点分十进制表示法 (Dotted decimal notation),故其各个IP地址的范围为:
类型 | 范围 |
---|---|
A |
0.0.0.0 TO 127.255.255.255
|
B |
128.0.0.0 TO 191.255.255.255
|
C |
192.0.0.0 TO 223.255.255.255
|
D |
224.0.0.0 TO 239.255.255.255
|
E |
240.0.0.0 TO 247.255.255.255
|
1.4 域名系统DNS
为了网站访问的方便以及易记性,设计了一种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;
这些会在以后的学习中遇到;
网友评论