首页 > 技术文章 > TCP/IP学习笔记(1)-----基本概念

zyxsblogs 2018-10-21 14:55 原文

 TCP/IP的起源

  在全球各地,各种各样的电脑运行着各自不同的操作系统一起为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别。就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样。计算机使用者意识到,计算机只是单兵作战并不会发挥太大的作用。只有把它们联合起来,电脑才会发挥出它最大的潜力。于是人们就想方设法的用电线把电脑连接到了一起。

但是简单的连到一起是远远不够的,就好像语言不同的两个人互相见了面,完全不能交流信息。因而他们需要定义一些共通的东西来进行交流,TCP/IP就是为此而生。

TCP/IP不是一个协议,而是一个协议族的统称。里面包括了IP协议,ICMP协议,TCP协议,以及我们更加熟悉的http、ftp、pop3协议等等。电脑有了这些,就好像学会了外语一样,就可以和其他的计算机终端做自由的交流了。

TCP/IP协议分层

 

TCP/IP协议族按照层次由上到下,层层包装。最上面的就是应用层了,这里面有http,ftp,等等我们熟悉的协议。而第二层则是传输层,著名的TCP和UDP协议就在这个层次(不要告诉我你没用过udp玩星际)。第三层是网络层,IP协议就在这里,它负责对数据加上IP地址和其他的数据(后面会讲到)以确定传输的目标。第四层是叫数据链路层,这个层次为待传送的数据加入一个以太网协议头,并进行CRC编码,为最后的数据传输做准备。再往下则是硬件层次了,负责网络的传输,这个层次的定义包括网线的制式,网卡的定义等等(这些我们就不用关心了,我们也不做网卡),所以有些书并不把这个层次放在tcp/ip协议族里面,因为它几乎和tcp/ip协议的编写者没有任何的关系。发送协议的主机从上自下将数据按照协议封装,而接收数据的主机则按照协议从得到的数据包解开,最后拿到需要的数据。这种结构非常有栈的味道,所以某些文章也把tcp/ip协议族称为tcp/ip协议栈。

 对比

OSI模型

即开放式通信系统互联参考模型(Open System Interconnection,OSI/RM,Open Systems Interconnection Reference Model),是国际标准化组织(ISO)提出的一个试图使各种计算机在世界范围内互连为网络的标准框架,简称OSI。

OSI将计算机网络体系结构(architecture)划分为以下七层:
物理层: 将数据转换为可通过物理介质传送的电子信号 相当于
邮局中的搬运工人。
数据链路层: 决定访问网络介质的方式。
在此层将数据分帧,并处理流控制。本层 指定拓扑结构并提供硬件寻 址。相当于邮局中的装拆箱工人。
网络层: 使用权数据路由经过大型网络 相当于邮局中的排序工人。
传输层: 提供终端到终端的可靠连接 相当于公司中跑邮局的送信职员。
会话层: 允许用户使用简单易记的名称建立连接 相当于公司中收寄信、写信封与拆信封的秘书。
表示层: 协商数据交换格式 相当公司中简报老板、替老板写信的助理。
应用层: 用户的应用程序和网络之间的接口老板。

OSI分层协议

1、应用层协议
应用层协议工作在OSI模型的上层,提供应用程序间的交换和数据交换。比较常用的应用层协议有:
FTP (File Transfer Protocol,文件传输协议)
HTTP(Hypertext Transfer Protocol,超文本传输协议
SMTP (simple Mail Transfer Protocol,简单邮件传输协议)
BOOTP(Boot trap.Protocol)
AFP (Apple Talk文件协议)--Apple公司的网络协议族,用于交换文件
SNMP (Simple Network Management Protocol)
SMB (Server Message Block Protocol)
X.500
NCP (NetWare Core Protocol)
NFS (Network File System)
DNS
2、传输层协议
传输层协议提供计算机之间的通信会话,并确保数据在计算机之间可靠地传输。主要的传输层协议有:
TCP(Transmission Control Protocol,传输控制协议
SPX(SequenCed Packet ExChange Protocol
NWL INK
ATP(AppleTalk Transaction Protocol),NBP(名字绑定协议)
NetBEUI(NetBIOS Extended User Internet)
3、网络层协议
网络层协议提供所谓的链路服务,这些协议可以处理寻址路由信息、错误检测和重传请求。网络层协议包括:
IP
IPX (Internet work Packet Exchange)
NWLINK--微软实现的 IPX/SPX
DDP (Datagram Delivery Protocol)
NetBEUI
X.25
Ethernet
ARP
RARP
ICMP

ip地址

网络上每一个节点都必须有一个独立的Internet地址(也叫做IP地址)。现在,通常使用的IP地址是一个32bit的数字,也就是我们常说的IPv4标准,这32bit的数字分成四组,也就是常见的255.255.255.255的样式。

IPv4标准上,地址被分为五类,我们常用的是B类地址。需要注意的是IP地址是网络号+主机号的组合,这非常重要。

IP地址分类

最初设计互联网络时,为了便于寻址以及层次化构造网络,每个IP地址包括两个标识码(ID),即网络ID和主机ID。同一个物理网络上的所有主机都使用同一个网络ID,网络上的一个主机(包括网络上工作站,服务器和路由器等)有一个主机ID与其对应。Internet委员会定义了5种IP地址类型以适合不同容量的网络,即A类~E类。
其中A、B、C3类(如下表格)由InternetNIC在全球范围内统一分配,D、E类为特殊地址。
类别
最大网络数
IP地址范围
最大主机数
私有IP地址范围
A
126(2^7-2)
0.0.0.0-127.255.255.255
16777214
10.0.0.0-10.255.255.255
B
16384(2^14)
128.0.0.0-191.255.255.255
65534
172.16.0.0-172.31.255.255
C
2097152(2^21)
192.0.0.0-223.255.255.255
254
192.168.0.0-192.168.255.255
 

A类IP地址

一个A类IP地址是指, 在IP地址的四段号码中,第一段号码为网络号码,剩下的三段号码为本地计算机的号码。如果用二进制表示IP地址的话,A类IP地址就由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”。A类IP地址中网络的标识长度为8位,主机标识的长度为24位,A类网络地址数量较少,有126个网络,每个网络可以容纳主机数达1600多万台。
A类IP地址 地址范围1.0.0.0到127.255.255.255 [1]  (二进制表示为:00000001 00000000 00000000 00000000 - 01111111 11111111 11111111 11111111)。最后一个是广播地址。
A类IP地址的子网掩码为255.0.0.0,每个网络支持的最大主机数为256的3次方-2=16777214台。
[2]
B类IP地址
一个B类IP地址是指,在IP地址的四段号码中,前两段号码为网络号码。如果用二进制表示IP地址的话,B类IP地址就由2字节的网络地址和2字节主机地址组成,网络地址的最高位必须是“10”。B类IP地址中网络的标识长度为16位,主机标识的长度为16位,B类网络地址适用于中等规模的网络,有16384个网络,每个网络所能容纳的计算机数为6万多台。
B类IP地址地址范围128.0.0.0-191.255.255.255 [3]  (二进制表示为:10000000 00000000 00000000 00000000----10111111 11111111 11111111 11111111)。 最后一个是广播地址。
B类IP地址的子网掩码为255.255.0.0,每个网络支持的最大主机数为256的2次方-2=65534台。
 

C类IP地址

一个C类IP地址是指,在IP地址的四段号码中,前三段号码为网络号码,剩下的一段号码为本地计算机的号码。如果用二进制表示IP地址的话,C类IP地址就由3字节的网络地址和1字节主机地址组成,网络地址的最高位必须是“110”。C类IP地址中网络的标识长度为24位,主机标识的长度为8位,C类网络地址数量较多,有209万余个网络。适用于小规模的局域网络,每个网络最多只能包含254台计算机。
C类IP地址范围192.0.0.0-223.255.255.255 [3]  (二进制表示为: 11000000 00000000 00000000 00000000 - 11011111 11111111 11111111 11111111)。
C类IP地址的子网掩码为255.255.255.0,每个网络支持的最大主机数为256-2=254台
 

D类IP地址

D类IP地址在历史上被叫做多播地址(multicast address),即组播地址。在以太网中,多播地址命名了一组应该在这个网络中应用接收到一个分组的站点。多播地址的最高位必须是“1110”,范围从224.0.0.0到239.255.255.255。
 

特殊的网址

  1. 每一个字节都为0的地址(“0.0.0.0”)对应于当前主机
  2. IP地址中的每一个字节都为1的IP地址(“255.255.255.255”)是当前子网的广播地址
  3. IP地址中凡是以“11110”开头的E类IP地址都保留用于将来和实验使用。
  4. IP地址中不能以十进制“127”作为开头,该类地址中数字127.0.0.1到127.255.255.255用于回路测试,如:127.0.0.1可以代表本机IP地址,用“http://127.0.0.1”就可以测试本机中配置的Web服务器。
  5. 网络ID的第一个8位组也不能全置为“0”,全“0”表示本地网络。
 

IP网络段

IP地址根据网络ID的不同分为5种类型,A类地址、B类地址、C类地址、D类地址和E类地址。
查找ip有个cmd命令:tracert 后面加ip地址,可以查所经过的路由!
 

局域网的IP

在一个局域网中,有两个IP地址比较特殊,一个是网络号,一个是广播地址。网络号是用于三层寻址的地址,它代表了整个网络本身;另一个是广播地址,它代表了网络全部的主机。网络号是网段中的第一个地址,广播地址是网段中的最后一个地址,这两个地址是不能配置在计算机主机上的。
例如在192.168.0.0这样的网段中,网络号是192.168.0.0,广播地址是192.168.0.255。因此,在一个局域网中,能配置在计算机中的地址比网段内的地址要少两个(网络号、广播地址),这些地址称之为主机地址。在上面的例子中,主机地址就只有192.168.0.1至192.168.0.254可以配置在计算机上了。

域名系统

域名系统是一个分布的数据库,它提供将主机名(就是网址啦)转换成IP地址的服务。

RFC

RFC是什么?RFC就是tcp/ip协议的标准文档,在这里我们可以看到RFC那长长的定义列表,现在它一共有4000多个协议的定义,当然,我们所要学习的,也就是那么十几个协议而已。

端口号

注意,这个号码是用在TCP,UDP上的一个逻辑号码,并不是一个硬件端口,我们平时说把某某端口封掉了,也只是在IP层次把带有这个号码的IP包给过滤掉了而已。

应用编程接口

现在常用的编程接口有socket和TLI。而前面的有时候也叫做“Berkeley socket”,可见Berkeley对于网络的发展有多大的贡献。

 

推荐阅读